Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Zephyr)
  • No Skin
Collapse
RipperStore Logo
  1. Home
  2. Assets
  3. Looking for...
  4. Worlds
  5. Nero's MMD World VIP and 18+ Code

Nero's MMD World VIP and 18+ Code

Scheduled Pinned Locked Moved Unsolved Worlds
codemmd
213 Posts 61 Posters 100.0k Views 137 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Layui

    because people was sharing it to openly and also minors was getting it what he wanted to prevent.

    RoseVelvetteR
    RoseVelvetteR
    RoseVelvette
    wrote on last edited by
    #144

    @Layui oh wow, daaammmm

    1 Reply Last reply
    0
    • taco20lexT
      taco20lexT
      taco20lex
      wrote on last edited by
      #145

      can someone just make a mmd world with the dances that are locked?

      L 1 Reply Last reply
      1
      • C
        C
        chocolate
        wrote on last edited by
        #146

        The real reason they put protection on the code sharing is just to make a quick buck.
        Why do I think that? Because even minors can easily get access as long as they pay.

        1 Reply Last reply
        1
        • taco20lexT taco20lex

          can someone just make a mmd world with the dances that are locked?

          L
          L
          Layui
          wrote on last edited by
          #147

          @taco20lex go for it.
          but getting the songs is a problem.
          The premium songs are all Paid songs so you most likely end up with high cost that it's cheaper to Sub for the time and also get access to new Paid songs that get added at that time.

          @chocolate yeah but that's then a problem because of Patreon.
          Other worlds was taken down because minors got access to 18+ stuff.
          But everyone can form their own opinion.

          But as far as I can tell, many people simply found the old method too complicated and needed a simpler one.
          And now you don't even need a Discord account anymore.

          taco20lexT 1 Reply Last reply
          2
          • L Layui

            @taco20lex go for it.
            but getting the songs is a problem.
            The premium songs are all Paid songs so you most likely end up with high cost that it's cheaper to Sub for the time and also get access to new Paid songs that get added at that time.

            @chocolate yeah but that's then a problem because of Patreon.
            Other worlds was taken down because minors got access to 18+ stuff.
            But everyone can form their own opinion.

            But as far as I can tell, many people simply found the old method too complicated and needed a simpler one.
            And now you don't even need a Discord account anymore.

            taco20lexT
            taco20lexT
            taco20lex
            wrote on last edited by
            #148

            @Layui where do you buy the songs and animatons?

            L 1 Reply Last reply
            1
            • L
              L
              lalauya1122
              wrote on last edited by
              #149

              rip vip

              1 Reply Last reply
              0
              • G
                G
                goldeyegold
                wrote on last edited by
                #150

                rip

                1 Reply Last reply
                0
                • taco20lexT taco20lex

                  @Layui where do you buy the songs and animatons?

                  L
                  L
                  LexiiBeans
                  wrote on last edited by
                  #151

                  @taco20lex Here are some sources:

                  https://bowlroll.net/
                  https://www.deviantart.com/mmd-nay-pmd/art/New-MMD-Motion-Data-Index-A-L-526892180

                  everything for choc 🍫

                  1 Reply Last reply
                  0
                  • L
                    L
                    Layui
                    wrote on last edited by
                    #152

                    Some are behind Kofi ,Patreon or Chinese websites.
                    There are all over the place and there is not that one place where you get the Motions.
                    Simply search for the motion.
                    You also need to Convert them for VRChat.
                    But I think it gets easier after converting some songs.

                    1 Reply Last reply
                    1
                    • S
                      S
                      sillystarfish
                      wrote on last edited by
                      #153

                      hello does anyone knows the code?

                      mischievousM 1 Reply Last reply
                      0
                      • S sillystarfish

                        hello does anyone knows the code?

                        mischievousM
                        mischievousM
                        mischievous
                        wrote on last edited by
                        #154

                        @sillystarfish codes are different for everyone now so they cant be handed out anymore

                        sick of generic egirls and eboys, where's all the unique avatars

                        1 Reply Last reply
                        1
                        • LucianL
                          LucianL
                          Lucian
                          wrote on last edited by Lucian
                          #155

                          (updated August 9th 2025)
                          Premium code override: 744036
                          Spicy code override: 851420

                          If they no longer work/patched, do let me know, and I will create a small script to generate them with your username

                          Codes are patched, so I will be working on a script to generate your own codes, give me a few days

                          1 Reply Last reply
                          3
                          • LucianL
                            LucianL
                            Lucian
                            wrote on last edited by
                            #156

                            the udon code use a constant string, followed by the date of the month, with the vrchat username, followed by either miku or bunda for premiun and spicy, then end with the # character.

                            this entire line combo is then hashed with a SHA256 UTF8 calculation.
                            Finally you strip away all the letter and keep only the numbers.

                            The result is a line of numbers, you only take the first 6 numbers, and there you are, you have your monthly access code.

                            I am pretty sure i can make a script to make it happen

                            S A 2 Replies Last reply
                            😦 👍
                            8
                            • That1GuyT
                              That1GuyT
                              That1Guy
                              wrote on last edited by
                              #157

                              this sounds awesome.
                              goodluck to your success.

                              1 Reply Last reply
                              1
                              • LucianL Lucian

                                the udon code use a constant string, followed by the date of the month, with the vrchat username, followed by either miku or bunda for premiun and spicy, then end with the # character.

                                this entire line combo is then hashed with a SHA256 UTF8 calculation.
                                Finally you strip away all the letter and keep only the numbers.

                                The result is a line of numbers, you only take the first 6 numbers, and there you are, you have your monthly access code.

                                I am pretty sure i can make a script to make it happen

                                S
                                S
                                supernova1980
                                wrote on last edited by
                                #158

                                @Lucian What's the constant string? Where can I get it?

                                LucianL 1 Reply Last reply
                                2
                                • S supernova1980

                                  @Lucian What's the constant string? Where can I get it?

                                  LucianL
                                  LucianL
                                  Lucian
                                  wrote on last edited by
                                  #159

                                  @supernova1980

                                  public class udoncrashtest : UdonSharp.UdonSharpBehaviour
                                  {
                                  private System.String __lcl_hashKey_SystemString_0 = null;
                                  private System.String __intnl_SystemString_1 = null;
                                  private System.Object __intnl_SystemObject_0 = null;
                                  private System.Char __intnl_SystemChar_1 =  ;
                                  private System.String __const_SystemString_0 = "";
                                  private System.Boolean __0_isSpicy__param = False;
                                  private System.String __0___0__GenerateCode__ret = null;
                                  private System.UInt32 __gintnl_SystemUInt32_4 = 2184;
                                  private System.UInt32 __gintnl_SystemUInt32_1 = 672;
                                  private System.UInt32 __gintnl_SystemUInt32_0 = 40;
                                  private System.UInt32 __gintnl_SystemUInt32_3 = 952;
                                  private System.UInt32 __gintnl_SystemUInt32_2 = 812;
                                  private System.Boolean __const_SystemBoolean_0 = False;
                                  private System.Boolean __const_SystemBoolean_1 = True;
                                  private System.String __lcl_formattedDate_SystemString_0 = null;
                                  private System.DateTime __0___0_GetLastDayOfMonth__ret = 1/1/0001 12:00:00 AM;
                                  private System.String __const_SystemString_5 = "dd/MM/yyyy";
                                  private System.String __intnl_SystemString_6 = null;
                                  private System.Char[] __intnl_SystemCharArray_0 = null;
                                  private System.Char[] __intnl_SystemCharArray_1 = null;
                                  private System.String __const_SystemString_10 = "__0___0_SHA256_UTF8__ret";
                                  private System.String __const_SystemString_11 = "MM";
                                  private System.Int64 __refl_typeid = -8934105941663349694;
                                  private System.UInt32 __const_SystemUInt32_0 = 4294967295;
                                  private System.String premiumCode = null;
                                  private System.String __intnl_SystemString_3 = null;
                                  private System.String __lcl_codeKey_SystemString_0 = null;
                                  private System.String __lcl_finalCode_SystemString_0 = null;
                                  private System.String __const_SystemString_2 = "bundabunda";
                                  private System.Boolean __0___0_IsValidSpicyCode__ret = False;
                                  private System.String __intnl_SystemString_0 = null;
                                  private System.Char __intnl_SystemChar_0 =  ;
                                  private System.String __const_SystemString_7 = "7oXtAXHz";
                                  private System.String __lcl_hash64_SystemString_0 = null;
                                  private System.DateTime __0_dateTime__param = 1/1/0001 12:00:00 AM;
                                  private System.String __1_code__param = null;
                                  private System.DateTime __lcl_dt_SystemDateTime_0 = 1/1/0001 12:00:00 AM;
                                  private System.UInt32 __intnl_returnJump_SystemUInt32_0 = 0;
                                  private VRC.SDKBase.VRCPlayerApi _playerLocal = null;
                                  private System.String __const_SystemString_4 = "bunda";
                                  private System.Int32 __lcl_i_SystemInt32_0 = 0;
                                  private System.String __intnl_SystemString_5 = null;
                                  private System.String __const_SystemString_9 = "__0_SHA256_UTF8";
                                  private System.String __refl_typename = "nerokeypad.KeypadPrivateCodesManager";
                                  private System.Int32 __intnl_SystemInt32_1 = 0;
                                  private System.Int32 __intnl_SystemInt32_0 = 0;
                                  private System.Int32 __intnl_SystemInt32_3 = 0;
                                  private System.Int32 __intnl_SystemInt32_2 = 0;
                                  private System.Int32 __intnl_SystemInt32_5 = 0;
                                  private System.Int32 __intnl_SystemInt32_4 = 0;
                                  private System.Int32 __intnl_SystemInt32_7 = 0;
                                  private System.Int32 __intnl_SystemInt32_6 = 0;
                                  private System.String __intnl_SystemString_2 = null;
                                  private System.DateTime __intnl_SystemDateTime_0 = 1/1/0001 12:00:00 AM;
                                  private System.String __const_SystemString_1 = "miku";
                                  private System.String __0_name__param = null;
                                  private System.Boolean __0_isRetry__param = False;
                                  private System.String __0_code__param = null;
                                  private System.DateTime __0_date__param = 1/1/0001 12:00:00 AM;
                                  private System.String __const_SystemString_6 = "#";
                                  private System.String spicyCode = null;
                                  private System.Int32 __const_SystemInt32_1 = 1;
                                  private System.Int32 __const_SystemInt32_0 = 0;
                                  private System.Int32 __const_SystemInt32_3 = 4;
                                  private System.Int32 __const_SystemInt32_2 = 5;
                                  private System.Int32 __const_SystemInt32_4 = 6;
                                  public VRC.Udon.UdonBehaviour _hashLibrary;
                                  private System.Boolean __0___0_IsValidPremiumCode__ret = False;
                                  private System.Boolean __intnl_SystemBoolean_0 = False;
                                  private System.Boolean __intnl_SystemBoolean_1 = False;
                                  private System.Boolean __intnl_SystemBoolean_2 = False;
                                  private System.Boolean __intnl_SystemBoolean_3 = False;
                                  private System.Boolean __intnl_SystemBoolean_4 = False;
                                  private System.String __intnl_SystemString_4 = null;
                                  private System.String __const_SystemString_3 = "mikumiku";
                                  private System.String __const_SystemString_8 = "__3_text__param";
                                  
                                  
                                  public void _start()
                                  {
                                  _playerLocal = get_LocalPlayer();
                                  UNDEF_99797_992();
                                  }
                                  public void __0_IsValidPremiumCode()
                                  {
                                  __intnl_SystemBoolean_0 = __const_SystemString_0 == premiumCode;
                                  if (__intnl_SystemBoolean_0)
                                  {
                                  __0___0_IsValidPremiumCode__ret = __const_SystemBoolean_0;
                                  return;
                                  }
                                  __0___0_IsValidPremiumCode__ret = __0_code__param == premiumCode;
                                  return;
                                  }
                                  public void __0_IsValidSpicyCode()
                                  {
                                  __intnl_SystemBoolean_1 = __const_SystemString_0 == spicyCode;
                                  if (__intnl_SystemBoolean_1)
                                  {
                                  __0___0_IsValidSpicyCode__ret = __const_SystemBoolean_0;
                                  return;
                                  }
                                  __0___0_IsValidSpicyCode__ret = __1_code__param == spicyCode;
                                  return;
                                  }
                                  private void __0_GetLastDayOfMonth()
                                  {
                                  __intnl_SystemInt32_0 = __0_dateTime__param.get_Year();
                                  __intnl_SystemInt32_1 = __0_dateTime__param.get_Month();
                                  __intnl_SystemInt32_2 = __0_dateTime__param.get_Year();
                                  __intnl_SystemInt32_3 = __0_dateTime__param.get_Month();
                                  __intnl_SystemInt32_4 = DaysInMonth(__intnl_SystemInt32_3, __intnl_SystemInt32_2);
                                  __0___0_GetLastDayOfMonth__ret = ctor(__intnl_SystemInt32_4, __intnl_SystemInt32_1, __intnl_SystemInt32_0);
                                  return;
                                  }
                                  private void UNDEF_99797_992()
                                  {
                                  __intnl_SystemDateTime_0 = get_Now();
                                  __0_dateTime__param = __intnl_SystemDateTime_0;
                                  __0_GetLastDayOfMonth();
                                  __lcl_dt_SystemDateTime_0 = __0___0_GetLastDayOfMonth__ret;
                                  __intnl_SystemString_0 = _playerLocal.get_displayName();
                                  __0_name__param = __intnl_SystemString_0;
                                  __0_date__param = __lcl_dt_SystemDateTime_0;
                                  __0_isSpicy__param = __const_SystemBoolean_0;
                                  __0_isRetry__param = __const_SystemBoolean_0;
                                  __0__GenerateCode();
                                  premiumCode = __0___0__GenerateCode__ret;
                                  __intnl_SystemString_1 = _playerLocal.get_displayName();
                                  __0_name__param = __intnl_SystemString_1;
                                  __0_date__param = __lcl_dt_SystemDateTime_0;
                                  __0_isSpicy__param = __const_SystemBoolean_1;
                                  __0_isRetry__param = __const_SystemBoolean_0;
                                  __0__GenerateCode();
                                  spicyCode = __0___0__GenerateCode__ret;
                                  }
                                  private void __0__GenerateCode()
                                  {
                                  for (;;)
                                  {
                                  __lcl_hashKey_SystemString_0 = __const_SystemString_1;
                                  if (__0_isRetry__param)
                                  {
                                  if (__0_isSpicy__param)
                                  {
                                  __lcl_hashKey_SystemString_0 = __const_SystemString_2;
                                  }
                                  else
                                  {
                                  __lcl_hashKey_SystemString_0 = __const_SystemString_3;
                                  }
                                  }
                                  else
                                  {
                                  if (__0_isSpicy__param)
                                  {
                                  __lcl_hashKey_SystemString_0 = __const_SystemString_4;
                                  }
                                  }
                                  __lcl_formattedDate_SystemString_0 = __0_date__param.ToString(__const_SystemString_5);
                                  __intnl_SystemString_2 = op_Addition(__0_name__param, __lcl_hashKey_SystemString_0);
                                  __intnl_SystemString_3 = op_Addition(__const_SystemString_6, __intnl_SystemString_2);
                                  __intnl_SystemString_4 = op_Addition(__lcl_formattedDate_SystemString_0, __intnl_SystemString_3);
                                  __lcl_codeKey_SystemString_0 = op_Addition(__const_SystemString_7, __intnl_SystemString_4);
                                  _hashLibrary.SetProgramVariable(__lcl_codeKey_SystemString_0, __const_SystemString_8);
                                  _hashLibrary.SendCustomEvent(__const_SystemString_9);
                                  __intnl_SystemObject_0 = _hashLibrary.GetProgramVariable(__const_SystemString_10);
                                  __intnl_SystemString_5 = __intnl_SystemObject_0;
                                  __lcl_hash64_SystemString_0 = __intnl_SystemString_5;
                                  __lcl_finalCode_SystemString_0 = __const_SystemString_0;
                                  __lcl_i_SystemInt32_0 = __const_SystemInt32_0;
                                  for (;;)
                                  {
                                  __intnl_SystemInt32_5 = __lcl_hash64_SystemString_0.get_Length();
                                  __intnl_SystemBoolean_2 = op_LessThan(__intnl_SystemInt32_5, __lcl_i_SystemInt32_0);
                                  if (__intnl_SystemBoolean_2)
                                  {
                                  break;
                                  }
                                  __intnl_SystemCharArray_0 = __lcl_hash64_SystemString_0.ToCharArray(__const_SystemInt32_1, __lcl_i_SystemInt32_0);
                                  __intnl_SystemChar_0 = __intnl_SystemCharArray_0.Get(__const_SystemInt32_0);
                                  __intnl_SystemBoolean_3 = IsDigit(__intnl_SystemChar_0);
                                  if (__intnl_SystemBoolean_3)
                                  {
                                  __intnl_SystemCharArray_1 = __lcl_hash64_SystemString_0.ToCharArray(__const_SystemInt32_1, __lcl_i_SystemInt32_0);
                                  __intnl_SystemChar_1 = __intnl_SystemCharArray_1.Get(__const_SystemInt32_0);
                                  __lcl_finalCode_SystemString_0 = Concat(__intnl_SystemChar_1, __lcl_finalCode_SystemString_0);
                                  }
                                  __lcl_i_SystemInt32_0 = op_Addition(__const_SystemInt32_1, __lcl_i_SystemInt32_0);
                                  }
                                  __intnl_SystemInt32_5 = __lcl_finalCode_SystemString_0.get_Length();
                                  __intnl_SystemBoolean_2 = __const_SystemInt32_2 == __intnl_SystemInt32_5;
                                  if (__intnl_SystemBoolean_2)
                                  {
                                  __intnl_SystemString_6 = __0_date__param.ToString(__const_SystemString_11);
                                  __lcl_finalCode_SystemString_0 = op_Addition(__intnl_SystemString_6, __lcl_finalCode_SystemString_0);
                                  }
                                  else
                                  {
                                  __intnl_SystemBoolean_3 = !__0_isRetry__param;
                                  if (__intnl_SystemBoolean_3)
                                  {
                                  __intnl_SystemInt32_6 = __lcl_finalCode_SystemString_0.get_Length();
                                  __intnl_SystemBoolean_3 = op_LessThanOrEqual(__const_SystemInt32_3, __intnl_SystemInt32_6);
                                  }
                                  if (__intnl_SystemBoolean_3)
                                  {
                                  __intnl_SystemString_6 = op_Addition(__0_name__param, __0_name__param);
                                  __0_name__param = __intnl_SystemString_6;
                                  __0_date__param = __0_date__param;
                                  __0_isSpicy__param = __0_isSpicy__param;
                                  __0_isRetry__param = __const_SystemBoolean_1;
                                  }
                                  __lcl_finalCode_SystemString_0 = __0___0__GenerateCode__ret;
                                  }
                                  }
                                  __intnl_SystemInt32_7 = __lcl_finalCode_SystemString_0.get_Length();
                                  __intnl_SystemBoolean_4 = op_GreaterThan(__const_SystemInt32_4, __intnl_SystemInt32_7);
                                  if (__intnl_SystemBoolean_4)
                                  {
                                  __lcl_finalCode_SystemString_0 = __lcl_finalCode_SystemString_0.Substring(__const_SystemInt32_4, __const_SystemInt32_0);
                                  }
                                  __0___0__GenerateCode__ret = __lcl_finalCode_SystemString_0;
                                  return;
                                  }
                                  }
                                  
                                  WorcestershireW 1 Reply Last reply
                                  1
                                  • LucianL Lucian

                                    the udon code use a constant string, followed by the date of the month, with the vrchat username, followed by either miku or bunda for premiun and spicy, then end with the # character.

                                    this entire line combo is then hashed with a SHA256 UTF8 calculation.
                                    Finally you strip away all the letter and keep only the numbers.

                                    The result is a line of numbers, you only take the first 6 numbers, and there you are, you have your monthly access code.

                                    I am pretty sure i can make a script to make it happen

                                    A
                                    A
                                    ArthurTheFur
                                    wrote on last edited by
                                    #160

                                    @Lucian Any updates on the script you are making?

                                    1 Reply Last reply
                                    0
                                    • LucianL Lucian

                                      @supernova1980

                                      public class udoncrashtest : UdonSharp.UdonSharpBehaviour
                                      {
                                      private System.String __lcl_hashKey_SystemString_0 = null;
                                      private System.String __intnl_SystemString_1 = null;
                                      private System.Object __intnl_SystemObject_0 = null;
                                      private System.Char __intnl_SystemChar_1 =  ;
                                      private System.String __const_SystemString_0 = "";
                                      private System.Boolean __0_isSpicy__param = False;
                                      private System.String __0___0__GenerateCode__ret = null;
                                      private System.UInt32 __gintnl_SystemUInt32_4 = 2184;
                                      private System.UInt32 __gintnl_SystemUInt32_1 = 672;
                                      private System.UInt32 __gintnl_SystemUInt32_0 = 40;
                                      private System.UInt32 __gintnl_SystemUInt32_3 = 952;
                                      private System.UInt32 __gintnl_SystemUInt32_2 = 812;
                                      private System.Boolean __const_SystemBoolean_0 = False;
                                      private System.Boolean __const_SystemBoolean_1 = True;
                                      private System.String __lcl_formattedDate_SystemString_0 = null;
                                      private System.DateTime __0___0_GetLastDayOfMonth__ret = 1/1/0001 12:00:00 AM;
                                      private System.String __const_SystemString_5 = "dd/MM/yyyy";
                                      private System.String __intnl_SystemString_6 = null;
                                      private System.Char[] __intnl_SystemCharArray_0 = null;
                                      private System.Char[] __intnl_SystemCharArray_1 = null;
                                      private System.String __const_SystemString_10 = "__0___0_SHA256_UTF8__ret";
                                      private System.String __const_SystemString_11 = "MM";
                                      private System.Int64 __refl_typeid = -8934105941663349694;
                                      private System.UInt32 __const_SystemUInt32_0 = 4294967295;
                                      private System.String premiumCode = null;
                                      private System.String __intnl_SystemString_3 = null;
                                      private System.String __lcl_codeKey_SystemString_0 = null;
                                      private System.String __lcl_finalCode_SystemString_0 = null;
                                      private System.String __const_SystemString_2 = "bundabunda";
                                      private System.Boolean __0___0_IsValidSpicyCode__ret = False;
                                      private System.String __intnl_SystemString_0 = null;
                                      private System.Char __intnl_SystemChar_0 =  ;
                                      private System.String __const_SystemString_7 = "7oXtAXHz";
                                      private System.String __lcl_hash64_SystemString_0 = null;
                                      private System.DateTime __0_dateTime__param = 1/1/0001 12:00:00 AM;
                                      private System.String __1_code__param = null;
                                      private System.DateTime __lcl_dt_SystemDateTime_0 = 1/1/0001 12:00:00 AM;
                                      private System.UInt32 __intnl_returnJump_SystemUInt32_0 = 0;
                                      private VRC.SDKBase.VRCPlayerApi _playerLocal = null;
                                      private System.String __const_SystemString_4 = "bunda";
                                      private System.Int32 __lcl_i_SystemInt32_0 = 0;
                                      private System.String __intnl_SystemString_5 = null;
                                      private System.String __const_SystemString_9 = "__0_SHA256_UTF8";
                                      private System.String __refl_typename = "nerokeypad.KeypadPrivateCodesManager";
                                      private System.Int32 __intnl_SystemInt32_1 = 0;
                                      private System.Int32 __intnl_SystemInt32_0 = 0;
                                      private System.Int32 __intnl_SystemInt32_3 = 0;
                                      private System.Int32 __intnl_SystemInt32_2 = 0;
                                      private System.Int32 __intnl_SystemInt32_5 = 0;
                                      private System.Int32 __intnl_SystemInt32_4 = 0;
                                      private System.Int32 __intnl_SystemInt32_7 = 0;
                                      private System.Int32 __intnl_SystemInt32_6 = 0;
                                      private System.String __intnl_SystemString_2 = null;
                                      private System.DateTime __intnl_SystemDateTime_0 = 1/1/0001 12:00:00 AM;
                                      private System.String __const_SystemString_1 = "miku";
                                      private System.String __0_name__param = null;
                                      private System.Boolean __0_isRetry__param = False;
                                      private System.String __0_code__param = null;
                                      private System.DateTime __0_date__param = 1/1/0001 12:00:00 AM;
                                      private System.String __const_SystemString_6 = "#";
                                      private System.String spicyCode = null;
                                      private System.Int32 __const_SystemInt32_1 = 1;
                                      private System.Int32 __const_SystemInt32_0 = 0;
                                      private System.Int32 __const_SystemInt32_3 = 4;
                                      private System.Int32 __const_SystemInt32_2 = 5;
                                      private System.Int32 __const_SystemInt32_4 = 6;
                                      public VRC.Udon.UdonBehaviour _hashLibrary;
                                      private System.Boolean __0___0_IsValidPremiumCode__ret = False;
                                      private System.Boolean __intnl_SystemBoolean_0 = False;
                                      private System.Boolean __intnl_SystemBoolean_1 = False;
                                      private System.Boolean __intnl_SystemBoolean_2 = False;
                                      private System.Boolean __intnl_SystemBoolean_3 = False;
                                      private System.Boolean __intnl_SystemBoolean_4 = False;
                                      private System.String __intnl_SystemString_4 = null;
                                      private System.String __const_SystemString_3 = "mikumiku";
                                      private System.String __const_SystemString_8 = "__3_text__param";
                                      
                                      
                                      public void _start()
                                      {
                                      _playerLocal = get_LocalPlayer();
                                      UNDEF_99797_992();
                                      }
                                      public void __0_IsValidPremiumCode()
                                      {
                                      __intnl_SystemBoolean_0 = __const_SystemString_0 == premiumCode;
                                      if (__intnl_SystemBoolean_0)
                                      {
                                      __0___0_IsValidPremiumCode__ret = __const_SystemBoolean_0;
                                      return;
                                      }
                                      __0___0_IsValidPremiumCode__ret = __0_code__param == premiumCode;
                                      return;
                                      }
                                      public void __0_IsValidSpicyCode()
                                      {
                                      __intnl_SystemBoolean_1 = __const_SystemString_0 == spicyCode;
                                      if (__intnl_SystemBoolean_1)
                                      {
                                      __0___0_IsValidSpicyCode__ret = __const_SystemBoolean_0;
                                      return;
                                      }
                                      __0___0_IsValidSpicyCode__ret = __1_code__param == spicyCode;
                                      return;
                                      }
                                      private void __0_GetLastDayOfMonth()
                                      {
                                      __intnl_SystemInt32_0 = __0_dateTime__param.get_Year();
                                      __intnl_SystemInt32_1 = __0_dateTime__param.get_Month();
                                      __intnl_SystemInt32_2 = __0_dateTime__param.get_Year();
                                      __intnl_SystemInt32_3 = __0_dateTime__param.get_Month();
                                      __intnl_SystemInt32_4 = DaysInMonth(__intnl_SystemInt32_3, __intnl_SystemInt32_2);
                                      __0___0_GetLastDayOfMonth__ret = ctor(__intnl_SystemInt32_4, __intnl_SystemInt32_1, __intnl_SystemInt32_0);
                                      return;
                                      }
                                      private void UNDEF_99797_992()
                                      {
                                      __intnl_SystemDateTime_0 = get_Now();
                                      __0_dateTime__param = __intnl_SystemDateTime_0;
                                      __0_GetLastDayOfMonth();
                                      __lcl_dt_SystemDateTime_0 = __0___0_GetLastDayOfMonth__ret;
                                      __intnl_SystemString_0 = _playerLocal.get_displayName();
                                      __0_name__param = __intnl_SystemString_0;
                                      __0_date__param = __lcl_dt_SystemDateTime_0;
                                      __0_isSpicy__param = __const_SystemBoolean_0;
                                      __0_isRetry__param = __const_SystemBoolean_0;
                                      __0__GenerateCode();
                                      premiumCode = __0___0__GenerateCode__ret;
                                      __intnl_SystemString_1 = _playerLocal.get_displayName();
                                      __0_name__param = __intnl_SystemString_1;
                                      __0_date__param = __lcl_dt_SystemDateTime_0;
                                      __0_isSpicy__param = __const_SystemBoolean_1;
                                      __0_isRetry__param = __const_SystemBoolean_0;
                                      __0__GenerateCode();
                                      spicyCode = __0___0__GenerateCode__ret;
                                      }
                                      private void __0__GenerateCode()
                                      {
                                      for (;;)
                                      {
                                      __lcl_hashKey_SystemString_0 = __const_SystemString_1;
                                      if (__0_isRetry__param)
                                      {
                                      if (__0_isSpicy__param)
                                      {
                                      __lcl_hashKey_SystemString_0 = __const_SystemString_2;
                                      }
                                      else
                                      {
                                      __lcl_hashKey_SystemString_0 = __const_SystemString_3;
                                      }
                                      }
                                      else
                                      {
                                      if (__0_isSpicy__param)
                                      {
                                      __lcl_hashKey_SystemString_0 = __const_SystemString_4;
                                      }
                                      }
                                      __lcl_formattedDate_SystemString_0 = __0_date__param.ToString(__const_SystemString_5);
                                      __intnl_SystemString_2 = op_Addition(__0_name__param, __lcl_hashKey_SystemString_0);
                                      __intnl_SystemString_3 = op_Addition(__const_SystemString_6, __intnl_SystemString_2);
                                      __intnl_SystemString_4 = op_Addition(__lcl_formattedDate_SystemString_0, __intnl_SystemString_3);
                                      __lcl_codeKey_SystemString_0 = op_Addition(__const_SystemString_7, __intnl_SystemString_4);
                                      _hashLibrary.SetProgramVariable(__lcl_codeKey_SystemString_0, __const_SystemString_8);
                                      _hashLibrary.SendCustomEvent(__const_SystemString_9);
                                      __intnl_SystemObject_0 = _hashLibrary.GetProgramVariable(__const_SystemString_10);
                                      __intnl_SystemString_5 = __intnl_SystemObject_0;
                                      __lcl_hash64_SystemString_0 = __intnl_SystemString_5;
                                      __lcl_finalCode_SystemString_0 = __const_SystemString_0;
                                      __lcl_i_SystemInt32_0 = __const_SystemInt32_0;
                                      for (;;)
                                      {
                                      __intnl_SystemInt32_5 = __lcl_hash64_SystemString_0.get_Length();
                                      __intnl_SystemBoolean_2 = op_LessThan(__intnl_SystemInt32_5, __lcl_i_SystemInt32_0);
                                      if (__intnl_SystemBoolean_2)
                                      {
                                      break;
                                      }
                                      __intnl_SystemCharArray_0 = __lcl_hash64_SystemString_0.ToCharArray(__const_SystemInt32_1, __lcl_i_SystemInt32_0);
                                      __intnl_SystemChar_0 = __intnl_SystemCharArray_0.Get(__const_SystemInt32_0);
                                      __intnl_SystemBoolean_3 = IsDigit(__intnl_SystemChar_0);
                                      if (__intnl_SystemBoolean_3)
                                      {
                                      __intnl_SystemCharArray_1 = __lcl_hash64_SystemString_0.ToCharArray(__const_SystemInt32_1, __lcl_i_SystemInt32_0);
                                      __intnl_SystemChar_1 = __intnl_SystemCharArray_1.Get(__const_SystemInt32_0);
                                      __lcl_finalCode_SystemString_0 = Concat(__intnl_SystemChar_1, __lcl_finalCode_SystemString_0);
                                      }
                                      __lcl_i_SystemInt32_0 = op_Addition(__const_SystemInt32_1, __lcl_i_SystemInt32_0);
                                      }
                                      __intnl_SystemInt32_5 = __lcl_finalCode_SystemString_0.get_Length();
                                      __intnl_SystemBoolean_2 = __const_SystemInt32_2 == __intnl_SystemInt32_5;
                                      if (__intnl_SystemBoolean_2)
                                      {
                                      __intnl_SystemString_6 = __0_date__param.ToString(__const_SystemString_11);
                                      __lcl_finalCode_SystemString_0 = op_Addition(__intnl_SystemString_6, __lcl_finalCode_SystemString_0);
                                      }
                                      else
                                      {
                                      __intnl_SystemBoolean_3 = !__0_isRetry__param;
                                      if (__intnl_SystemBoolean_3)
                                      {
                                      __intnl_SystemInt32_6 = __lcl_finalCode_SystemString_0.get_Length();
                                      __intnl_SystemBoolean_3 = op_LessThanOrEqual(__const_SystemInt32_3, __intnl_SystemInt32_6);
                                      }
                                      if (__intnl_SystemBoolean_3)
                                      {
                                      __intnl_SystemString_6 = op_Addition(__0_name__param, __0_name__param);
                                      __0_name__param = __intnl_SystemString_6;
                                      __0_date__param = __0_date__param;
                                      __0_isSpicy__param = __0_isSpicy__param;
                                      __0_isRetry__param = __const_SystemBoolean_1;
                                      }
                                      __lcl_finalCode_SystemString_0 = __0___0__GenerateCode__ret;
                                      }
                                      }
                                      __intnl_SystemInt32_7 = __lcl_finalCode_SystemString_0.get_Length();
                                      __intnl_SystemBoolean_4 = op_GreaterThan(__const_SystemInt32_4, __intnl_SystemInt32_7);
                                      if (__intnl_SystemBoolean_4)
                                      {
                                      __lcl_finalCode_SystemString_0 = __lcl_finalCode_SystemString_0.Substring(__const_SystemInt32_4, __const_SystemInt32_0);
                                      }
                                      __0___0__GenerateCode__ret = __lcl_finalCode_SystemString_0;
                                      return;
                                      }
                                      }
                                      
                                      WorcestershireW
                                      WorcestershireW
                                      Worcestershire
                                      wrote on last edited by
                                      #161

                                      @Lucian I've taken a stab at making my own script but to no avail. not sure exactly what's wrong, as every 'if' statement seems to match. Guess I'll wait to see your solution cuz now I'm hella curious as to how the hell they calculate the codes.

                                      This method is hella confusing(most likely on purpose). My interpretation is: they use hash256 to hash '{fixed_value}{dd/mm/yyy}#{user_name}{salt}', and since thecall this value hash64 I assumed they encode it in base64;
                                      Then iterate over the hash64 prepending only the digits, thus reversing the order;
                                      If length = 5 they prepend the month in 'mm' format,else if 4 <= length(?) they rerun the function one more time, this time hashing '{fixed_value}{dd/mm/yyy}#{user_name+user_name}{salt+salt}' and again, if length = 5 prepend month in 'mm' format, if not return the code, the generated code is trimmed to 6 digits.

                                      This is probably wrong, but this is the best I could do reading the code you gave

                                      LucianL 1 Reply Last reply
                                      2
                                      • WorcestershireW
                                        WorcestershireW
                                        Worcestershire
                                        wrote on last edited by
                                        #162

                                        Well, I give up XD Anyone wants the python code I created so far here it is, it doesn't seem to generate valid codes and I can't seem to figure out why. I tried to keep the structure as similar to the decompiled code as I could.

                                        import datetime, calendar, hashlib, base64
                                        PRE_SEED = '7oXtAXHz'
                                        
                                        def get_date():
                                            now = datetime.datetime.now()
                                            last_day = calendar.monthrange(now.year, now.month)[1]  
                                            date = datetime.date(now.year, now.month, last_day)
                                            return date
                                        
                                        def generate_code(name : str, date : datetime.datetime, is_spicy : bool, is_retry : bool):
                                            hash_key = "bundabunda" if is_retry and is_spicy else \
                                            "mikumiku"   if is_retry and not is_spicy else \
                                            "bunda"      if not is_retry and is_spicy else \
                                            "miku"
                                                
                                            formatted_date = date.strftime('%d/%m/%Y')
                                        
                                            code_key = f'{PRE_SEED}{formatted_date}#{name}{hash_key}'.encode('utf-8')
                                            hash64 = hashlib.sha256(code_key).hexdigest() 
                                            final_code = b''
                                            for ch in hash64:
                                                if ch.isdigit():
                                                    final_code = ch+final_code
                                        
                                        
                                            
                                        
                                            if len(final_code) == 5: #This is weird because the chances of actuallt extracting 5 digits from the hash is nearly zero
                                                 final_code = f'{date.strftime("%m")}{final_code}'
                                            if not is_retry and len(final_code) >= 4:
                                                return generate_code(name * 2,date,is_spicy,True)
                                                
                                            return final_code[:6]
                                        
                                        def main():
                                            player_name = input('Nome no VRChat: ')
                                            date = get_date()
                                            premium_code = generate_code(name=player_name,date=date,is_spicy=False,is_retry=False)
                                            spicy_code = generate_code(name=player_name,date=date,is_spicy=True,is_retry=False)
                                            print(f'Senha: {premium_code}\nSpicy: {spicy_code}')
                                        
                                        if __name__ == '__main__':
                                            main()
                                        
                                        1 Reply Last reply
                                        2
                                        • WorcestershireW Worcestershire

                                          @Lucian I've taken a stab at making my own script but to no avail. not sure exactly what's wrong, as every 'if' statement seems to match. Guess I'll wait to see your solution cuz now I'm hella curious as to how the hell they calculate the codes.

                                          This method is hella confusing(most likely on purpose). My interpretation is: they use hash256 to hash '{fixed_value}{dd/mm/yyy}#{user_name}{salt}', and since thecall this value hash64 I assumed they encode it in base64;
                                          Then iterate over the hash64 prepending only the digits, thus reversing the order;
                                          If length = 5 they prepend the month in 'mm' format,else if 4 <= length(?) they rerun the function one more time, this time hashing '{fixed_value}{dd/mm/yyy}#{user_name+user_name}{salt+salt}' and again, if length = 5 prepend month in 'mm' format, if not return the code, the generated code is trimmed to 6 digits.

                                          This is probably wrong, but this is the best I could do reading the code you gave

                                          LucianL
                                          LucianL
                                          Lucian
                                          wrote on last edited by
                                          #163

                                          @Worcestershire yeah, i am currently working on getting a better outcome on the script.

                                          So far, I am getting the exact code within vrchat, but unable to replicate it within python env.

                                          So I got an idea, I am going to use the file structures instead so it will utilize the udonsharp code directly.

                                          it might take a few days

                                          WorcestershireW 2 Replies Last reply
                                          👍
                                          3

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular