Porn and Porncows

Here's a copy of the decompiled source code if anyone wants to help go through it and find anything interesting.

An excerpt from the code with the names of various custom events they defined:

Java:
public enum a2 {
  NULL(0, false, true),
  STARTBLOWJOB(2, true, false),
  SUCKBLOWJOB(2, true, false),
  SUCKBLOWJOB_BLINK(2, true, true),
  CUMBLOWJOB(0, true, false),
  THRUSTBLOWJOB(2, true, false),
  PAYMENT(5, true, false),
  STARTDOGGY(2, false, false),
  WAITDOGGY(0, false, true),
  DOGGYSTART(0, true, false),
  DOGGYSLOW(2, true, false),
  DOGGYFAST(2, true, false),
  DOGGYCUM(2, true, false),
  STRIP(5, false, false),
  DASH(2, false, false),
  HUG(2, true, false),
  HUGIDLE(0, true, true),
  HUGSELECTED(0, true, false),
  UNDRESS(2, false, true),
  DRESS(2, false, true),
  SITDOWN(2, false, false, 60.0F, -90.0F, true),
  SITDOWNIDLE(0, false, true, 60.0F, -60.0F, true),
  COWGIRLSTART(0, true, false, 60.0F, -60.0F, false),
  COWGIRLSLOW(10, true, false, 60.0F, -60.0F, false),
  COWGIRLFAST(10, true, false, 60.0F, -60.0F, false),
  COWGIRLCUM(2, true, false, 60.0F, -60.0F, false),
  ATTACK(0, false, true),
  BOW(2, false, true),
  RIDE(0, false, true),
  SIT(0, false, true),
  THROW_PEARL(0, false, false),
  DOWNED(7, false, true),
  PAIZURI_START(0, true, false, -56.0F, -90.0F, false, true),
  PAIZURI_IDLE(0, true, false, -56.0F, -90.0F, false, true),
  PAIZURI_SLOW(0, true, true, -56.0F, -90.0F, false, true),
  PAIZURI_FAST(0, true, false, -56.0F, -90.0F, false, true),
  PAIZURI_FAST_CONTINUES(0, true, false, -56.0F, -90.0F, false, true),
  PAIZURI_CUM(0, true, false, -56.0F, -90.0F, false, true),
  MISSIONARY_START(0, true, false, 30.0F, -90.0F, true),
  MISSIONARY_SLOW(2, true, false, 30.0F, -90.0F, true),
  MISSIONARY_FAST(2, true, false, 30.0F, -90.0F, true),
  MISSIONARY_CUM(2, true, false, 30.0F, -90.0F, true),
  TALK_HORNY(5, true, false),
  TALK_IDLE(0, true, true),
  TALK_RESPONSE(2, true, false),
  ANAL_PREPARE(5, false, false),
  ANAL_WAIT(0, false, true),
  ANAL_START(0, true, false),
  ANAL_SLOW(2, true, true),
  ANAL_FAST(0, true, false),
  ANAL_CUM(2, true, false),
  KOBOLD_ANAL_START(0, true, false, false, 4.0F, -80.0F, true),
  KOBOLD_ANAL_SLOW(0, true, true, false, 4.0F, -80.0F, true),
  KOBOLD_ANAL_FAST(0, true, false, false, 4.0F, -80.0F, true),
  KOBOLD_ANAL_CUM(2, true, false, false, 4.0F, -80.0F, true),
  SUMMON(0, false, false, false, true),
  SUMMON_WAIT(0, false, true, false, true),
  HEAD_PAT(0, true, false),
  ALLIE_PREPARE_FIRST_TIME(0, false, false, 40.0F, -40.0F, false),
  DEEPTHROAT_START(0, true, false, true, 40.0F, -40.0F, false),
  DEEPTHROAT_SLOW(2, true, false, true, 40.0F, -40.0F, false),
  DEEPTHROAT_FAST(2, true, false, true, 40.0F, -40.0F, false),
  DEEPTHROAT_CUM(2, true, false, true, 40.0F, -40.0F, false),
  ALLIE_PREPARE_NORMAL(2, false, false, 40.0F, -40.0F, false),
  SUMMON_NORMAL(0, false, false),
  SUMMON_SAND(0, false, false),
  SUMMON_NORMAL_WAIT(2, false, true),
  RICH_FIRST_TIME(0, false, false),
  RICH_NORMAL(0, false, false),
  CITIZEN_START(0, true, false, 10.0F, -90.0F, false),
  CITIZEN_SLOW(0, true, false, 10.0F, -90.0F, false),
  CITIZEN_FAST(0, true, false, 10.0F, -90.0F, false),
  CITIZEN_CUM(2, true, false, 10.0F, -90.0F, false),
  FISHING_START(5, false, false),
  FISHING_IDLE(0, false, true),
  FISHING_EAT(0, false, false),
  FISHING_THROW_AWAY(0, false, false),
  TOUCH_BOOBS_INTRO(0, true, false),
  TOUCH_BOOBS_SLOW(2, true, false),
  TOUCH_BOOBS_FAST(2, true, false),
  TOUCH_BOOBS_CUM(2, true, false),
  WAIT_CAT(0, false, false, 30.0F, -90.0F, true),
  COWGIRL_SITTING_INTRO(0, true, false),
  COWGIRL_SITTING_SLOW(5, true, false),
  COWGIRL_SITTING_FAST(5, true, false),
  COWGIRL_SITTING_CUM(5, true, false),
  MINE(0, false, false),
  SLEEP(5, false, false),
  MATING_PRESS_START(0, true, false, false, -50.0F, -90.0F, false),
  MATING_PRESS_SOFT(0, true, false, -50.0F, -90.0F, false),
  MATING_PRESS_HARD(0, true, false, -50.0F, -90.0F, false),
  MATING_PRESS_CUM(2, true, false, -30.0F, -90.0F, false),
  SHOULDER_IDLE(0, false, true, false, true),
  PICK_UP(0, true, false, 10.0F, -90.0F, true, true),
  RUN(5, false, true),
  CATCH(0, true, false),
  CATCH_BJ(0, true, false),
  CATCH_BJ_IDLE(0, true, false),
  START_THROWING(0, true, true),
  THROWN(0, false, true),
  JUMP_0(0, true, false),
  JUMP_1(0, false, false),
  JUMP_2(0, false, false),
  BREEDING_INTRO_0(0, true, false),
  BREEDING_INTRO_1(0, false, false),
  BREEDING_INTRO_2(0, false, false),
  BREEDING_SLOW_0(0, true, false),
  BREEDING_1(0, false, false),
  BREEDING_SLOW_2(5, false, false),
  BREEDING_FAST_0(0, true, false),
  BREEDING_FAST_2(5, false, false),
  BREEDING_CUM_0(0, true, false),
  BREEDING_CUM_1(0, false, false),
  BREEDING_CUM_2(0, false, false),
  AWAIT_PICK_UP(0, false, true),
  VANISH(0, false, true),
  STAND_UP(0, false, false),
  NELSON_INTRO(0, true, false, 30.0F, -20.0F, false, true),
  NELSON_SLOW(0, true, false, 30.0F, -20.0F, false, true),
  NELSON_FAST(0, true, false, 30.0F, -20.0F, false, true),
  NELSON_CUM(0, true, false, 30.0F, -20.0F, false, true),
  CARRY_SLOW(0, true, false, true, true),
  CARRY_FAST(0, true, false, true, true),
  CARRY_CUM(0, true, false, true, true),
  CARRY_INTRO(0, true, false, true, true, 191, CARRY_SLOW),
  PRONE_DOGGY_INTRO(0, true, false, true, true),
  PRONE_DOGGY_SOFT(0, true, false, true, true),
  PRONE_DOGGY_HARD(0, true, false, true, true, 34, PRONE_DOGGY_SOFT),
  PRONE_DOGGY_INSERT(2, true, false, true, true, 42, PRONE_DOGGY_SOFT),
  PRONE_DOGGY_CUM(0, true, false, true, true),
  REVERSE_COWGIRL_SLOW(0, true, false, true, 30.0F, -90.0F, true),
  REVERSE_COWGIRL_FAST_START(0, true, false, true, 34, REVERSE_COWGIRL_SLOW, 30.0F, -90.0F, true),
  REVERSE_COWGIRL_FAST_CONTINUES(0, true, false, true, 39, REVERSE_COWGIRL_SLOW, 30.0F, -90.0F, true),
  REVERSE_COWGIRL_CUM(0, true, false, true, 30.0F, -90.0F, true),
  REVERSE_COWGIRL_START(0, true, false, true, 88, REVERSE_COWGIRL_SLOW, 30.0F, -90.0F, true),
  WAVE_IDLE(0, false, false, false, true),
  WAVE(0, false, false, true, false, 71, WAVE_IDLE),
  FLY(0, false, true),
  SUMMON_SKELETON(0, false, false),
  ATTACK_SWORD(0, false, false),
  KNOCK_OUT_FLY(5, false, false),
  KNOCK_OUT_GROUND(3, false, false),
  KNOCK_OUT_STAND_UP(0, false, false),
  RAPE_PREPARE(0, false, false),
  RAPE_CHARGE(0, false, false),
  RAPE_ON_GOING(0, true, false, true, 60.0F, -30.0F, false),
  RAPE_INTRO(0, true, false, false, true, 46, RAPE_ON_GOING),
  RAPE_CUM_IDLE(0, true, false, true),
  RAPE_CUM(0, true, false, true, 34, RAPE_CUM_IDLE, 60.0F, -30.0F, false),
  CORRUPT_SLOW(0, true, false, -30.0F, -90.0F, false),
  CORRUPT_FAST(0, true, false, -30.0F, -90.0F, false),
  CORRUPT_CUM(0, true, false, false, -30.0F, -90.0F, false),
  CORRUPT_INTRO(0, true, false, true, 29, CORRUPT_SLOW),
  CONTROLLED_FLIGHT(0, true, true, true, true),
  BOOST(3, true, false, true, true, 43, CONTROLLED_FLIGHT),
  GALATH_SUMMON(0, false, false, false, true, 15, NULL),
  GALATH_DE_SUMMON(0, false, false, false, true),
  GIVE_COIN(0, true, false, true, true, 140, NULL),
  MASTERBATE(0, false, false);

Some more random tidbits:
Java:
public static final String e = "Defeating a succubus makes her accept the victor as her master, granting him a coin to which her soul is bound. Using the coin summons her, offering services on demand. If her master uses the coin on her or goes too far, she returns to the coin";
            case 25:
              a("Ooh headpats!");
              a(eh.GIRLS_BIA_BREATH[0]);
              break;
            case 26:
              a("Hmmm.... :D");
              a(eh.GIRLS_BIA_MMM[0]);
              break;
            case 27:
              a("huh...?");
              a(eh.GIRLS_BIA_HUH[0]);
              break;
            case 28:
              a("Tanku hehe");
              a(eh.GIRLS_BIA_GIGGLE[1]);
              break;
            case 29:
              try {
                if (C())
                  I();
              } catch (RuntimeException runtimeException) {
                throw a(null);
              }
              break;
            case 30:
              a("come here big boy~");
              a(eh.GIRLS_BIA_BREATH);

    AnimationController.ISoundListener iSoundListener = paramSoundKeyframeEvent -> {
        String str = paramSoundKeyframeEvent.sound;
        byte b = -1;
        try {
          switch (str.hashCode()) {
            case -676816985:
              if (str.equals("attackSound"))
                b = 0;
              break;
            case -1961942550:
              if (str.equals("attackDone"))
                b = 1;
              break;
            case 54906230:
              if (str.equals("idleDone"))
                b = 2;
              break;
            case 1684190080:
              if (str.equals("idle2Done"))
                b = 3;
              break;
            case 106540102:
              if (str.equals("pearl"))
                b = 4;
              break;
            case -922762033:
              if (str.equals("start_fishingDone"))
                b = 5;
              break;
            case 1672277927:
              if (str.equals("rod_shoot"))
                b = 6;
              break;
            case 100184:
              if (str.equals("eat"))
                b = 7;
              break;
            case -1310305744:
              if (str.equals("eatPay"))
                b = 8;
              break;
            case 3035601:
              if (str.equals("burp"))
                b = 9;
              break;
            case 350188588:
              if (str.equals("eatingDone"))
                b = 10;
              break;
            case -274246489:
              if (str.equals("throw_away"))
                b = 11;
              break;
            case 1193768393:
              if (str.equals("renderItem"))
                b = 12;
              break;
            case -1540620298:
              if (str.equals("paymentMSG1"))
                b = 13;
              break;
            case -1540620297:
              if (str.equals("paymentMSG2"))
                b = 14;
              break;
            case -1540620296:
              if (str.equals("paymentMSG3"))
                b = 15;
              break;
            case -1540620295:
              if (str.equals("paymentMSG4"))
                b = 16;
              break;
            case -1540860248:
              if (str.equals("paymentDone"))
                b = 17;
              break;
            case -1380923296:
              if (str.equals("breath"))
                b = 18;
              break;
            case -176763432:
              if (str.equals("rod_breath"))
                b = 19;
              break;
            case 695019737:
              if (str.equals("happyOh"))
                b = 20;
              break;
            case 620933088:
              if (str.equals("cutenya3"))
                b = 21;
              break;
            case 620933087:
              if (str.equals("cutenya2"))
                b = 22;
              break;
            case 103675:
              if (str.equals("huh"))
                b = 23;
              break;
            case 3206589:
              if (str.equals("hmph"))
                b = 24;
              break;
            case 3198650:
              if (str.equals("hehe"))
                b = 25;
              break;
            case -1246024133:
              if (str.equals("giggle"))
                b = 26;
              break;
            case 2094529267:
              if (str.equals("singing"))
                b = 27;
              break;
            case 816936963:
              if (str.equals("touch_boobsMSG1"))
                b = 28;
              break;
            case 110550847:
              if (str.equals("touch"))
                b = 29;
              break;
            case 3273774:
              if (str.equals("jump"))
                b = 30;
              break;
            case -334109968:
              if (str.equals("horninya"))
                b = 31;
              break;
            case -1767474366:
              if (str.equals("horninya2"))
                b = 32;
              break;
            case -108443135:
              if (str.equals("touch_boobs_cumMSG3"))
                b = 33;
              break;
            case 296663352:
              if (str.equals("sitting_cumMSG1"))
                b = 34;
              break;
            case 3357007:
              if (str.equals("moan"))
                b = 35;
              break;
            case 298467170:
              if (str.equals("touch_boobs_introDone"))
                b = 36;
              break;
            case -548534449:
              if (str.equals("touch_boobs_slowDone"))
                b = 37;
              break;
            case -1265327365:
              if (str.equals("addCumSlow"))
                b = 38;
              break;
            case -1265725098:
              if (str.equals("addCumFast"))
                b = 39;
              break;
            case 968155646:
              if (str.equals("fastDone"))
                b = 40;
              break;
            case -146438396:
              if (str.equals("moanOrNya"))
                b = 41;
              break;
            case 403702091:
              if (str.equals("blackScreen"))
                b = 42;
              break;
            case -108683087:
              if (str.equals("touch_boobs_cumDone"))
                b = 43;
              break;
            case 2023406731:
              if (str.equals("resetGirl"))
                b = 44;
              break;
            case -108443137:
              if (str.equals("touch_boobs_cumMSG1"))
                b = 45;
              break;
            case -108443136:
              if (str.equals("touch_boobs_cumMSG2"))
                b = 46;
              break;
            case -253569070:
              if (str.equals("call_playerMSG1"))
                b = 47;
              break;
            case 809204182:
              if (str.equals("pounding"))
                b = 48;
              break;
            case -1235980887:
              if (str.equals("sitting_introMSG1"))
                b = 49;
              break;
            case -1236220837:
              if (str.equals("sitting_introDone"))
                b = 50;
              break;
            case -874895228:
              if (str.equals("sitting_slowMSG1"))
                b = 51;
              break;
            case 1177514335:
              if (str.equals("sitting_fastMSG1"))
                b = 52;
              break;
            case 1177274385:
              if (str.equals("sitting_fastDone"))
                b = 53;
              break;
            case 1185581771:
              if (str.equals("sitting_fastTp"))
                b = 54;
              break;
            case 1888271923:
              if (str.equals("headpatMSG1"))
                b = 55;
              break;
            case 1888271924:
              if (str.equals("headpatMSG2"))
                b = 56;
              break;
            case 1888271925:
              if (str.equals("headpatMSG3"))
                b = 57;
              break;
          }

  class b extends HashSet<String> {
    b() {
      add("boobs");
      add("booty");
      add("vagina");
      add("fuckhole");
      add("preggy");
      add("LegL");
      add("LegR");
      add("cheekR");
      add("cheekL");
    }
Also, the code is not obfuscated at all - all they did was generate random class names, but the classes themselves can be run through a decompiler and they get output perfectly readable.
 
Last edited:
Also, the code is not obfuscated at all - all they did was generate random class names, but the classes themselves can be run through a decompiler and they get output perfectly readable.
fg.class has two UUIDs baked in that point to these winners
1694509889353.png
1694509906837.png
Trying to find where the DRM is at but it's kind of a mess and gross to look at. Like what the fuck
1694510264927.png
 
Here's a copy of the decompiled source code if anyone wants to help go through it and find anything interesting.

fg.class has two UUIDs baked in that point to these winners
View attachment 5333116
View attachment 5333117
Trying to find where the DRM is at but it's kind of a mess and gross to look at. Like what the fuck
View attachment 5333120
Nice find.

I came across this URL in the code, no idea what it is -
Java:
Desktop.getDesktop().browse(new URI("https://www.schnurritv.com/devlogs/1.9.mp4"));
 

Attachments

Found some weird code for when it detects a child:
Java:
JButton jButton2 = new JButton(I18n.func_135052_a("window.pornwarning.not18", new Object[0]));
    jButton2.addActionListener(paramActionEvent -> {
          c = false;
          System.out.println("MINOR!!! WHEOO WOOO WHEEE WHOOO WHEEE WHOO");
          File file1 = new File("sexmod");
          try {
            FileUtils.deleteDirectory(file1);
          } catch (IOException iOException) {
            iOException.printStackTrace();
          }
          File file2 = new File("mods/youCanJustDeleteMe.bat");
          try {
            FileWriter fileWriter = new FileWriter(file2);
            fileWriter.write("@echo off\n");
            fileWriter.write("TIMEOUT /T 5\n");
            fileWriter.write("DEL \"mods\\*sexmod*.jar\"\n");
            fileWriter.write("exit 0");
            fileWriter.close();
            Runtime.getRuntime().exec("cmd /c start " + file2.getPath());
          } catch (IOException iOException) {
            iOException.printStackTrace();
          }
          FMLCommonHandler.instance().exitJava(0, true);
        });
 
I came across this URL in the code, no idea what it is -
Old website associated with the project

I think fg.class is the DRM, it's the only class containing a reference to PlayerLoggedInEvent and appears to send a packet to the server containing the player's UUID. It still doesn't make a lot of sense though as the server knows the player's UUID on connection anyway. I think the actual DRM is all server side.
Found some weird code for when it detects a child:
You see its sophisticated detection technology? Two buttons!
Java:
JButton jButton1 = new JButton(I18n.func_135052_a("window.pornwarning.am18", new Object[0]));
// snip
JButton jButton2 = new JButton(I18n.func_135052_a("window.pornwarning.not18", new Object[0]));
Here's the i18n strings
Code:
window.pornwarning.title=Adult content warning!
window.pornwarning.text=This version of Minecraft has been modified, so that it contains pornographic content. By continuing the launch of the game, you are at the risk of being exposed to it. If you are below the age of 18 and/or just don't want that to happen,<br> hit the 'I'm below the age of 18!' button. Then the pornographic content will be removed of your System, the Game will be closed and by restarting Minecraft, you can play your session of Minecraft in peace
window.pornwarning.dontaskagain=don't ask again
window.pornwarning.am18=I'm at least 18 years old!
window.pornwarning.not18=I'm below the age of 18!
 
Old website associated with the project

I think fg.class is the DRM, it's the only class containing a reference to PlayerLoggedInEvent and appears to send a packet to the server containing the player's UUID. It still doesn't make a lot of sense though as the server knows the player's UUID on connection anyway. I think the actual DRM is all server side.

You see its sophisticated detection technology? Two buttons!
Java:
JButton jButton1 = new JButton(I18n.func_135052_a("window.pornwarning.am18", new Object[0]));
// snip
JButton jButton2 = new JButton(I18n.func_135052_a("window.pornwarning.not18", new Object[0]));
Here's the i18n strings
Code:
window.pornwarning.title=Adult content warning!
window.pornwarning.text=This version of Minecraft has been modified, so that it contains pornographic content. By continuing the launch of the game, you are at the risk of being exposed to it. If you are below the age of 18 and/or just don't want that to happen,<br> hit the 'I'm below the age of 18!' button. Then the pornographic content will be removed of your System, the Game will be closed and by restarting Minecraft, you can play your session of Minecraft in peace
window.pornwarning.dontaskagain=don't ask again
window.pornwarning.am18=I'm at least 18 years old!
window.pornwarning.not18=I'm below the age of 18!
There's actually some specific functions of interest that are compiled to bytecode. I am going to try using Krakatau to decompile it since we know its stock JVM bytecode and I'll see how it goes.
I think you are right that fg.class is the DRM - it passes the players ID to a bytecode-compiled function. Maybe they verify you on Discord, then add your player ID to the whitelist? I'm guessing nobody here has done the process.
 
Found some weird code for when it detects a child:
Java:
JButton jButton2 = new JButton(I18n.func_135052_a("window.pornwarning.not18", new Object[0]));
    jButton2.addActionListener(paramActionEvent -> {
          c = false;
          System.out.println("MINOR!!! WHEOO WOOO WHEEE WHOOO WHEEE WHOO");
          File file1 = new File("sexmod");
          try {
            FileUtils.deleteDirectory(file1);
          } catch (IOException iOException) {
            iOException.printStackTrace();
          }
          File file2 = new File("mods/youCanJustDeleteMe.bat");
          try {
            FileWriter fileWriter = new FileWriter(file2);
            fileWriter.write("@echo off\n");
            fileWriter.write("TIMEOUT /T 5\n");
            fileWriter.write("DEL \"mods\\*sexmod*.jar\"\n");
            fileWriter.write("exit 0");
            fileWriter.close();
            Runtime.getRuntime().exec("cmd /c start " + file2.getPath());
          } catch (IOException iOException) {
            iOException.printStackTrace();
          }
          FMLCommonHandler.instance().exitJava(0, true);
        });
I love it when my Minecraft sex mod requests my id, has a DRM, and can delete itself and run arbitrary code. Reminds me of the recent Curseforge malware scare and that time a modder got mad at someone and included a line that CTD for that guy whenever they launched Minecraft when it was enabled.

Also, the code is not obfuscated at all
Not too surprising. Minecraft modders never really had a reason to obfuscate their code since they don't tend to commercialize their mods.
 
Found some weird code for when it detects a child:
Java:
JButton jButton2 = new JButton(I18n.func_135052_a("window.pornwarning.not18", new Object[0]));
    jButton2.addActionListener(paramActionEvent -> {
          c = false;
          System.out.println("MINOR!!! WHEOO WOOO WHEEE WHOOO WHEEE WHOO");
          File file1 = new File("sexmod");
          try {
            FileUtils.deleteDirectory(file1);
          } catch (IOException iOException) {
            iOException.printStackTrace();
          }
          File file2 = new File("mods/youCanJustDeleteMe.bat");
          try {
            FileWriter fileWriter = new FileWriter(file2);
            fileWriter.write("@echo off\n");
            fileWriter.write("TIMEOUT /T 5\n");
            fileWriter.write("DEL \"mods\\*sexmod*.jar\"\n");
            fileWriter.write("exit 0");
            fileWriter.close();
            Runtime.getRuntime().exec("cmd /c start " + file2.getPath());
          } catch (IOException iOException) {
            iOException.printStackTrace();
          }
          FMLCommonHandler.instance().exitJava(0, true);
        });
is this code meant to disable lewd acts with minors in-game, or just send a silly warning message?
Also, what the hell is an "underage" minecraft character? What are they like, shorter? Smaller blocks? Wtf?
 
  • Like
Reactions: TheGuntinator
is this code meant to disable lewd acts with minors in-game, or just send a silly warning message?
It's just a retarded message for if someone clicks the "I'm under 18" message when one of those pointless boxes pops up asking you to pinky promise that you're totally of age to be looking at porn.
 
  • Like
Reactions: demicolon
is this code meant to disable lewd acts with minors in-game, or just send a silly warning message?
It deletes the subdirectory the mod uses and then creates a bat to delete the jar file.
Also, what the hell is an "underage" minecraft character? What are they like, shorter? Smaller blocks? Wtf?
The button is for an age verification that will catch honest(lol) minors trying to get their blocks wet.
 
I'd say marginally less. It doesn't take away from the fact that it's a Minecraft sex mod, but the fact that there are relatively realistic tits and asses, with relatively realistic physics, on square Minecraft models takes it from degenerate to uncanny and unnerving.


Here you go.
Screenshot_20230912-072811.png
Well, I wasn't expecting to find a good mod recommendation here. Thanks, guy!
 
Very shortly after, sex mod dev handed all of his assets over to this "girl"(?) who picked up development immediately and seems to have added quite a lot in a surprisingly short amount of time and on what seems to be a much larger scale than the previous dev.
Yeah, well...
Edit: that is an edited pic. Thanks for pointing this out @MetokurGroomedMe

A random check for trolmastercard@gmail.com returned this:
1694521510578.png1694521527993.png
I assume it's the same faggot.

Edit -
1694521921302.png


Edit 2 - He only received 265 likes but had to post the vid anyways:



His whateversona:
1694521980291.png

Edit 2 - He tweeted 2 pics of his dogs:
1694542377318.png

1694542405005.png1694542460985.png

There is a Paypal account with the same username trolmastercard and its profile pic seems to be the same dog but trimmed and same location:
1694542676159.png
https://www.paypal.com/paypalme/trolmastercard / https://archive.ph/IAVId

He deleted his Pintrest account but it's still visible in Yandex cache.
Same dog and same location as in his tweets.
1694543582307.png
1694543594932.png

 
Last edited:
Back