Nero's MMD World VIP and 18+ Code
-
@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. -
@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. -
rip vip
-
rip
-
-
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. -
hello does anyone knows the code?
-
hello does anyone knows the code?
@sillystarfish codes are different for everyone now so they cant be handed out anymore
-
(updated August 9th 2025)
Premium code override: 744036
Spicy code override: 851420If they no longer work/patched, do let me know, and I will create a small script to generate them with your usernameCodes are patched, so I will be working on a script to generate your own codes, give me a few days
-
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
-
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
@Lucian What's the constant string? Where can I get it?
-
@Lucian What's the constant string? Where can I get it?
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; } } -
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
@Lucian Any updates on the script you are making?
-
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; } }@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
-
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() -
@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
@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
-
best of luck to you - even if it doesn't work, we're all grateful for the effort

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