MelonLoader
The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono
CHANGELOG
v0.6.6
- Updated Il2CppInterop to 1.4.6-ci.579
- Reverted AssetTools.NET to 3.0.0-preview3
- Implemented a RegisterTypeInIl2CppWithInterfaces attribute
- Implemented Recursive Melon Folders with extended UserLib Resolving
- Implemented Melon Preprocessor to prevent Loading Duplicates
- Reimplemented NetFramework Variant of Cpp2IL as fallback
- Standardized Assembly Searching and Resolving to work on both Mono and Il2Cpp Games
- Temporarily removed Start Screen for being broken in most cases
- Modified Command-Line Argument Logging to show Internal Arguments Only
- Reworked Il2CppICallInjector to use Il2CppInterop's Native to Manage trampoline generation
- Reworked Launch Option Parsing to ignore First Element
- Added UserLibs folders to Native Library Search Directories
- Moved
dobby.dll
toMelonLoader\Dependencies
- Moved Assembly Resolver Related Classes to
MelonLoader.Resolver
Namespace - Moved
MonoLibrary
class toMelonLoader.Utils
Namespace - Moved dobby scan to check Game Directory after Base Directory
- Removed Useless TODO Warning from Il2CppAssemblyGenerator
- Removed EOS Compatibility Layer for being Unneeded
- Fixed Regression with LemonMD5, LemonSHA256, and LemonSHA512
- Fixed an issue with older Cpp2IL versions causing a download failure
- Fixed an issue with Il2CppInterop not properly logging Trampoline Exceptions
- Fixed an issue with Il2Cpp Class Injection Attributes causing exceptions to be thrown on Mono games
- Fixed an issue with the Bootstrap not reading
--melonloader.basedir
correctly - Fixed an issue with Loading
dobby.dll
in some rare cases - Fixed an issue with Compatibility Layers getting Garbage Collected while still in use
- Fixed an issue with Linux Proxy failing to find dobby
- Fixed an issue with trying to load Managed Assemblies from Native Libraries inside UserLibs
- Fixed an issue with Compatibility Layer loading not validating Names Checked
- Fixed an issue with Type Load spamming errors when failing to resolve a Dependency
- Fixed an issue with Launch Option Parsing ignoring Argument Values
- Fixed a race condition crash with Multi-Launching a Game and the Logger trying to delete old files
v0.6.5
- Updated Il2CppInterop to 1.4.6-ci.545
- Updated Cpp2IL to 2022.1.0-pre-release.18
- Updated AsmResolver to 6.0.0-beta.1
- Updated AssetRipper.VersionUtilities to 1.5.0
- Updated AssetsTools.NET to 3.0.0
- Updated UnityEngine.Il2CppAssetBundleManager for latest compatibility
- Updated UnityEngine.Il2CppImageConversionManager for latest compatibility
- Implemented
--cpp2il.callanalyzer
launch option to enable Cpp2IL's CallAnalyzer processor - Implemented
--cpp2il.nativemethoddetector
launch option to enable Cpp2IL's NativeMethodDetector processor - Implemented several fixes for Il2CppInterop related issues
- Implemented
ExternalArguments
Dictionary for MelonLaunchOptions (Credits to HAHOOS :P) - Implemented
MsgPastel
Method for MelonLogger (Credits to HAHOOS :P) - Implemented
Peek
Method for LemonEnumerator - Implemented ICallInjector for handling when Unity strips or renames Internal Calls
- Fixed an accidental regression with LemonSHA256
- Fixed an issue with Native logs using the wrong Colors
- Fixed an issue with Preload module not replacing Mono libraries on Older Mono Games
- Fixed an issue with MonoMod DetourContext Disposal not working properly
- Fixed an issue with Debugger Launch Option causing crashes
- Fixed an issue with Console not having the Game Name and Version in the title
- Fixed an issue with Sharing Violation during Log Initialization
- Fixed an issue with
--melonloader.basedir
launch option always expecting an=
sign before the path - Fixed an issue with Il2CppInteropFixes not being properly error handled
- Fixed an issue with Il2CppInteropFixes using
il2cpp_type_get_class_or_element_class
instead ofil2cpp_class_from_type
- Fixed an issue with EOS Support Module not being properly error handled
- Fixed an issue with NativeStackWalk not unregistering addresses
- Fixed an issue with Errors being Spammed if
UnityEngine.Transform::SetAsLastSibling
fails to resolve - Fixed an issue with MelonLaunchOptions failing to parse options if a
-
prefix is used instead of--
- Fixed an issue with MelonLaunchOptions failing to parse option arguments if an
=
sign is used instead of a space - Fixed an issue with Command Line Arguments not being logged
- Fixed an issue with Il2CppInterop Assembly Resolving when Il2Cpp Prefixing is used
- Fixed an issue with .NET Executables not being Resolved properly when used as Dependencies
- Fixed an issue with Dependency Graph failing to Resolve Assemblies properly
- Fixed an issue with Il2Cpp Support Module not attempting to use direct references
v0.6.4
- Removed Analytics Blocker for causing crashes, will be ported to its own Plugin
- Updated Cpp2IL to 2022.1.0-pre-release.15
v0.6.3
- Updated NuGet Packages
- Updated Cpp2IL to 2022.1.0-pre-release.14
- Updated Il2CppInterop to 1.4.6-ci.433
- Updated Tomlet to 5.3.1
- Fixed Referenced DLLs not being resolved properly resulting in crashes
- Fixed Proxy being unable to find Original DLL (Credits to RinLovesYou :3)
- Fixed LoadLibrary failing on in rare cases (Credits to RinLovesYou :3)
- Fixed Preload Module failing to initialize included resources (Credits to TrevTV :P)
- Reimplemented Log Caching and Logs folder
- Implemented Additional Initialization Error Handling
- Implemented Garbage Collection handling for NativeHook
- Rewrote the Demeo Compatibility Layer to be less prone to breakage
- Fixed DarkRed ConsoleColor (Credits to Scoolnik :D)
- Fixed several .NET Framework 2.0 compatibility issues (Credits to slxdy :D)
- Fixed an issue with Mods loading when Il2Cpp Assembly Generation fails
- Added
--melonloader.sab
Launch Option to disable the Analytics Blocker - Fixed an issue with MelonCompatibilityLayer causing crashes on some games
v0.6.2
- Added a compatibility layer for EOS (Epic Online Services), preventing a crash caused by the Overlay
- Updated Cpp2IL
- Updated Tomlet
- Updated
MelonLoader.NativeUtils.NativeHook
to prevent GC issues - Updated Il2CppAssetBundleManager for Il2CppInterop
- Fixed Proxy being unable to find System32 when Windows is not installed in C:
- Fixed logger sha256 hash (Credits to Windows10CE)
- Fixed DAB Thread safety & Oculus Profile Pictures (Credits to SirCoolness)
- Fix Melon Load Order (Credits to Loukylor)
- General fixes for Proxy & Bootstrap
v0.6.1
- Refactored Bootstrap, more informative errors
- Updated classdata.tpk, fixing some issues when reading game versions
- Deprecated NativeHooks, giving a new utility class
MelonLoader.NativeUtils.NativeHook<T> where T : Delegate
- Updated MonoMod, fixing some issues with old Mono Games
- Fix some compatibility issues for certain Mono Games
- Implemented some missing launch options
v0.6.0:
- Added Linux Support (Credits to RinLovesYou :3)
- Switched the runtime to .NET 6 CoreCLR for Il2Cpp Games (Credits to SamboyCoding :D)
- Moved a lot of logic from Native to Managed (Credits to SamboyCoding & RinLovesYou :D)
- Replaced Unhollower with Il2CppInterop (Credits to SamboyCoding, nitrog0d & ds5678 :D)
- Rewrote Proxy & Bootstrap (Credits to RinLovesYou :3)
- Fixed some start screen corruption
- Added helper methods for determining current platform
- added
Utils.MelonConsole
for printing to console on mono games - Removed Il2CppDumper
- Update HarmonyX, MonoMod, and Tomlet
- Switched from MSDetours to Dobby
- Added full RGB color support in console using Pastel
- Added
MelonEnvironment
class
v0.5.7:
- Fixed the MelonEvent registration sorting. (Credits to SlidyDev :D)
- Inverted the MelonEvent priority sorting system to match the MelonPriorityAttribute. (Credits to SlidyDev :D)
- Updated Start Screen Signatures. (Credits to Slaynash :3)
- Fixed Start Screen Issues with UnityInternals.runtime_class_init.
- Updated Class Data TPK. (Credits to ds5678 :D)
- Updated Cpp2IL to v2022.1.0-pre-release.8.
- Added Launch Option Logging.
- Added new MelonInfo constructors.
- Setup Compatibility Layer for BONEWORKS and BONELAB.
- Made Game Specific Compatibility Layers load agnostically.
- Fixed race condition issue with multiple concurrent scene loads.
- Removed BONEWORKS_OnLoadingScreen MelonMod override and MelonEvent.
- Added Auto-Resolver for OnLoadingScreen MelonMod methods.
- Rewrote ServerCertificateValidation Fix to use Reflection.
- Separated Melon Harmony Initialization from OnApplicationStart events.
- Fixed issue with MelonInfo Semver Constructors being inaccessable.
- Added LemonTuple Constructors.
v0.5.5:
- Rewrote Proxy. (Credits to autumncpp :D)
- Updated AssetsTools.NET to v3.0.0-preview1.
- Updated AssetRipper.VersionUtilities to v1.2.1.
- Removed Game Blacklist. (Credits to SlidyDev :D)
- Rewritten the Melons loader. (Credits to SlidyDev :D)
- Added MelonEvents. (Credits to SlidyDev :D)
- Added MelonModules. (Credits to SlidyDev :D)
- Gave all MelonModules their own logger instances. (Credits to SlidyDev :D)
- Added MelonAssemblies. (Credits to SlidyDev :D)
- Fixed MelonLoader's deinitialization time. (Credits to SlidyDev :D)
- Implemented warning for Melons which don't use a semver-style version. (Credits to SlidyDev :D)
- Fixed Crash Issue with Demeo Compatibility Layer.
- Fixed Issue with VR Mode on Demeo.
- Fixed Issues with Demeo CL not refreshing Melon Listings.
- Fixed MME Issue with MelonBase.
- Updated Cpp2IL to v2022.1.0-pre-release.7.
- Backported StackFrame::GetMethod Fix. (Credits to Samboy :3)
- Added a singleton class for Melons (Melon<T>) (Credits to SlidyDev :])
- Fixed Issue with Unity Game Check in Proxy.
- Removed
--melonloader.agfvunity
Launch Option. - Added
--melonloader.unityversion
Launch Option. - Added Backup Unity Version Parsing Method.
- Fixed Issue with Reading Launch Options.
- Temporarily disabled mono_debug_init Call for Mono Games to fix Crash Issue.
- Removed Useless DLL Name Parse.
- Downgraded HarmonyX and MonoMod.RuntimeDetour to fix NRE issue with MonoMod's ReflectionHelper.
- Added a simpler unsub method for melon events. (Credits to Samboy :3)
- Replaced Assembly Generator User-Agent with Build Version.
- Cleaned the melon info log format. (Credits to SlidyDev :])
- Implemented Fallback Unity Version Parsing. (Credits to Samboy and ds5678 :D)
- Swapped out the official bHaptics library with the open-source bHapticsLib.
- Fixed MRE Issue with MelonLoader.Core referencing the Obsolete bHaptics class.
- Fixed Regex Compatibility Issue with Older Runtimes.
- Added additional null checking for Start Screen's GfxDevice.
- Fixed Start Screen issue with Signature Scanning GfxDevice on Unity 2020.3.15 x86 Mono.
- Updated Tomlet to v5.0.0.
- Implemented Fallback Game Information Parsing.
- Fixed issue with manually setting Unity version via Launch Option causing it to not attempt to read Game Name, Game Developer, or Game Version.
v0.5.4:
- Modified VerifyLoaderVersion Attribute to bring it in line with SemVer spec.
- Removed File Watchers from Start Screen Config.
- Removed Manual Parsing for Game Information.
- Implemented AssetsTools.NET.
- Rewrote Unity Information Handling.
- Fixed Issue with Exception Logging on Older Mono versions.
- Improved UnityInformationHandler Exception Handling.
- Fixed Issue with Il2CppAssemblyUnhollower Initialization.
- Fixed Issue with Cpp2IL Package Cleanup.
- Fixed Comparison Issue with Semver.
- Fixed Issue with Start Screen Background and Logo not Animating Properly.
- Added Start Screen Element Position Customization.
- Fixed Issue with Start Screen Progress Bar Positioning.
- Added Start Screen Version Text Customization.
- Added Start Screen Version Text Anchor Customization.
- Added Start Screen Version Text Style, RichText, FontSize, Scale, and LineSpacing Customization.
- Demeo_LobbyRequired has been renamed to Demeo_LobbyRequirement.
- Cleaned up Start Screen Config.
- Rewrote Start Screen UI Element Backend.
- Updated AssetsTools.NET to v2.0.11.
- Fixed Issue with Melon Author Coloring.
- Added Theme Folders and Theme Selection to Start Screen Customization.
- Fixed Issue with Custom Start Screen Background Image rendering upside-down.
- Fixed Issue with Custom Start Screen Image Scanning not checking the Theme's Folder.
- Fixed Issue with TomlEnumParseException during MelonPreferences load causing Crashing.
- Added Default Fallback to Start Screen Customization.
- Added Old Category Purging to Start Screen Customization.
- Fixed Issue with Custom Start Screen Image Scanning not taking into account File Extension.
- Added Optional Random Theme Selection to Start Screen.
- Fixed Issue with OnPreferencesSaved and OnPreferencesLoaded being called Incorrectly.
- Changed "No Compatibility Layer Found" Message from Error to Warning. (Credits to ds5678 :D)
- Implemented AssetRipper.VersionUtilities (Credits to ds5678 :D)
- Fixed Demeo Incompatibility Issues with Compatibility Layer and PC Edition.
- Combined Demeo Compatibility Layers into 1 Singular Dll.
- Fixed TLS Bridging Failure on Unity 2021.2.7 x64 Il2Cpp.
- Updated to Il2CppAssemblyUnhollower v0.4.18.0.
- Improved Signature Scanning for Il2CppUnityTls Compatibility Layer.
- Fixed Mono TLS Provider Registration.
- Updated AssetRipper.VersionUtilities to v1.2.0. (Credits to ds5678 :D)
- Implemented TLS Certificate Validation Fix.
- Fixed Downloading Issue with Deobfuscation Maps.
- Fixed Crash Issue with Start Screen attempting to instantiate stripped classes. (Credits to Samboy :3)
- Fixed Crash Issue with Il2CppUnityTls Compatibility Layer. (Credits to Samboy :3)
- Fixed Hashing Case Issue with Deobfuscation Maps.
- Removed ILRepack. (Credits to ds5678 :D)
- Added Forwarding Attributes. (Credits to ds5678 :D)
- Moved Il2Cpp Harmony Patcher to Il2Cpp Support Module.
- Fixed Issue with Solution Build Dependencies copying to Output Directory.
- Fixed Issue with Il2Cpp Harmony Patcher breaking on Custom Il2Cpp Types. (Credits to ds5678 :D)
- Implemented Management and Disposal Handling for Start Screen UI Elements.
- Used a different namespace for UnityEngine classes in Start Screen wrapper. (Credits to Sinai :D)
- Removed runtime_class_init Call from MelonUnityEngine.UnityObject to fix Crashing Issue.
- Updated Cpp2IL to v2022.1.0-pre-release.3. (Credits to Samboy :3)
- Added Version Check to Cpp2IL Package Usage.
v0.5.3:
- Updated HarmonyX to v2.8.0.
- Updated Tomlet to v3.1.3.
- Updated SharpZipLib to v1.3.3.
- Updated Il2CppAssemblyUnhollower to v0.4.17.1.
- Updated Newtonsoft.Json to v13.0.1.
- Updated Cpp2IL to v2022.0.0.
- Removed Analytics Blocker's modification of hostname if NULL. (Credits to SirCoolness :D)
- Fixed Connection Issue on Demeo.
- Added Demeo_LobbyRequired Attribute to Compatibility Layer to enforce all lobby members on Demeo to have a specific melon and version.
- Implemented mgGif for Start Screen Image Parsing. (Credits to TrevTV :P)
- Reimplemented Image Frame Parsing for Start Screen. (Credits to TrevTV :P)
- Moved EnumExtensions from MelonStartScreen Assembly to Main MelonLoader Assembly.
- Removed ZIP Loading Functionality for Plugins and Mods folders.
- Fixed Issue with FileHandler Blacklist.
- Added Optional MelonID Attribute for Melons.
- Updated Logger to Print MelonID when set.
- Removed Obsolete Attributes from MelonLogger static methods.
- Internal Failures now print their proper Failure Messages in the MessageBox even if not in Debug Mode.
- Cleaned Up Start Screen's Animated Image Customization.
- Added Start Screen Color Customization for Background, Progress Bar, and Progress Bar Outline.
- Added Start Screen Text Color Customization.
- Fixed Issue with Colors Reading and Writing to Start Screen Config Incorrectly.
- Implemented Element Toggles for Start Screen.
- Added LemonArraySegment because System.ArraySegment doesn't have interfaces on older .NET Framework versions.
- Fixed Issue with SharpZipLib's InflaterHuffmanTree not properly Segmenting Array.
- Refactored Start Screen Image Handling.
- Added Start Screen Logo Customization.
- Added Start Screen Background Image Customization.
- Proxy will now terminate any Non-Unity Process that load it without warning. Example of this is UnityCrashHandler.
- Fixed Issue with Custom Start Screen Background Image being Inverted.
- Added JPG/JPEG Support to Start Screen Image Customization.
- Replaced Start Screen's Default Loading GIF. (Credits to gompocp :D)
- Combined Mono Support Modules into 1 Singular Support Module.
- Fixed Start Screen Issue with Image Filtering.
- Added Start Screen Image Filtering Customization.
- MelonPreferences_Category DisplayName and IsHidden is now Modifiable during Runtime.
- MelonPreferences_Entry DisplayName, Description, IsHidden, and DontSaveDefault are now Modifiable during Runtime.
- Added MelonPreferences_Category.IsInlined for inlining the TomlTable of the Category.
- MelonPreferences_Entry.Description now Writes to File as a Comment.
- Changed MelonPreferences_Entry.Description to Preceding Comment.
- Added MelonPreferences_Entry.Comment for Inline Comment.
- Fixed Issue with Apostrophes in File Pathing. (Credits to SlidyDev :D)
- Added Methods for deleting and renaming Entries in MelonPreferences. (Credits to DragonPlayerX :D)
- Removed Newtonsoft.Json from Il2CppAssemblyUnhollower Blacklist.
- Moved OnApplicationStart Initialization to Component Start.
- MelonPreferences files will now Auto-Reset if TomlUnescapedUnicodeControlCharException is thrown when the file is corrupt.
- Fixed Assembly Verification Issue with MonoMod DMD Dumping.
- Added OnPreferencesSaved string variant that gets passed the Preferences's File Path.
- Added OnPreferencesLoaded string variant that gets passed the Preferences's File Path.
- Fixed MissingMethodException Issue with MelonLoader.MelonPreferences_Category.CreateEntry.
- Added Il2CppUnityTls CL for Managed-sided Il2Cpp Unity TLS Bridging.
- Fixed Issue with OnSceneWasLoaded not being called for First Scene Load.
- [StartScreen] ICall <2018.1 for UE.SystemInfo::GetGraphicsDeviceType. (Credits to Slaynash :3)
- Added Additional Exception Catching to Il2CppUnityTls CL.
- Moved InstallUnityTlsInterface Signature Scanning from Bootstrap to Il2CppUnityTls CL.
- Fixed MissingMethodException Issue with MelonUtils.SetCurrentDomainBaseDirectory.
- Added --melonloader.agfregex Launch Option to Force Regex used for Assembly Generation.
- Added LemonSHA256 because System.Security.Cryptography.SHA256 can be stripped.
- Fixed MissingMethodException Issue with MelonHandler.sha256.
- Fixed MissingMethodException Issue with MonoResolveManager.AddSearchDirectory.
- Added LemonSHA512 because System.Security.Cryptography.SHA512 can be stripped.
- Added LemonMD5 because System.Security.Cryptography.MD5 can be stripped.
- Fixed Issue with Assembly Generator where Deobfuscation Regex changes wouldn't induce Regeneration.
- Rewrote Package System in Assembly Generator.
- Fixed Issue with Main Window not having it's Close Button Disabled during Assembly Generation.
- Added OnPreSupportModule override for Plugins and Mods.
- Fixed Issue with Initialization of Il2Cpp Harmony Patcher.
- Temporarily Disabled Start Screen on Unity Versions lower than 2018.
- Improved Exception Catching on Start Screen.
- Added '{' and '}' to Assembly Verifier whitelist.
- Added Melon Author Coloring and MelonAuthorColor Attribute. (Credits to adamdev :D)
- Fixed Issue with Melon Author Coloring.
- Fixed Regeneration Issue with Assembly Generator.
- Temporarily Disabled Start Screen on Unity Versions higher than or equal to 2020.3.22.
- Fixed Issue with Assembly Generator not Re-Enabling the Close Button on the Game Window.
v0.5.2:
- Fixed Issue with --melonloader.basedir Launch Option not finding Bootstrap.dll.
- Fixed Issue with Console not properly Coloring Melon Names. (Credits to benaclejames :D)
v0.5.1:
- Updated Il2CppAssemblyUnhollower to v0.4.16.2.
- Added '(' and ')' Character to Assembly Verification.
- Fixed Issue with Force Launch Options not checking Argument Count.
- Fixed Issue with Proxy not properly detecting UnityCrashHandler.
- Fixed Issue with Proxy not properly locating Bootstrap.
- Fixed Issue with Offline Mode throwing an NRE during Assembly Generation.
- Fixed Issue with Launch Options causing Crash.
- [StartScreen] Fix resize crash on DX11/DX12. (Credits to Slaynash :3)
- Fixed Issue with Older OS Check running under Wine/Proton.
- [StartScreen] Resize fix x86. (Credits to Slaynash :3)
- [StartScreen] Fixed crash on mono. (Credits to Slaynash :3)
- Rewrote MelonLaunchOptions Loading.
- Fixed Issue with Console not displaying Properly under Wine/Proton.
- Fixed Issue with VerifyLoaderVersion Attribute missing methods.
v0.5.0:
- Updated HarmonyX to v2.6.1.
- Updated Tomlet to v2.1.0.
- Updated Il2CppAssemblyUnhollower to v0.4.16.1.
- Updated Cpp2IL to v2021.5.3.
- Added User Libs Directory and Assembly Resolver.
- Replaced StackTrace System in MelonLogger with Instance Based System. 7 Fixed Issue with Il2Cpp Harmony Method Patcher throwing Debug Warnings multiple times for the same Method.
- Implemented Temporary Workaround for Cpp2IL Failing under Wine or Steam Proton.
- Fixed Missing Method Issue caused by LemonAction.
- Implemented MonoResolveManager and Assembly Resolving Management System.
- Removed symbolsdata null check. (Credits to AuM0b :D)
- Implemented Directory Priority Scanning for MonoResolveManager.
- Implemented SteamManifestReader.
- Fixed Issue with Bhaptics API and Steam Version of Bhaptics Player.
- Added an error message for paths with non-ASCII characters. (Credits to SlidyDev :D)
- File Pathing is now printed to Log by Default to help aid in Debugging.
- Implemented Non-ASCII Character Check in Proxy.
- Fixed Issue with ASCII Character Check preventing Bootstrap from Loading.
- Implemented Automated Cleanup System for Support Modules.
- Added MelonLogger Error Overloads for Exceptions. (Credits to zeobviouslyfakeacc :3)
- Implemented Start Screen. (Credits to Slaynash :3)
- Added "--melonloader.disablestartscreen" Launch Option. (Credits to Slaynash :3)
- Added Unity Game Check to Proxy.
- Fixed Issue with MonoResolveManager on x86 Platform.
- Fixed Issue with Proxy's Unity Game Check on Older Unity Versions.
- Made Failure to Properly Load MelonStartScreen less severe of an Error.
- Fixed Type Locking Issue with MelonPreferences_ReflectiveCategory.
- Fixed Issue with MelonLoader reading the wrong Unity Version from EXEs with Custom Info.
- Removed base_path DirectoryExists Check in Mono::CheckLibName. (Credits to Samboy :3)
- Fixed Issue with new Cpp2IL Download.
- Moved Obfuscation Mapping Download to Il2CppAssemblyGenerator folder.
- Added '@' Character to Assembly Verification.
- Fixed Issue with the Start Screen using stripped Func instead of LemonFunc. (Credits to Slaynash :3)
- Fixed Issue with the Start Screen not functioning under Mono Games. (Credits to Slaynash :3)
- Improved Start Screen Compatibility. (Credits to Slaynash :3)
- Changed UnityEngine.Mesh Implementation in Start Screen to Internal Calls. (Credits to Slaynash :3)
- Fixed Issue with the Start Screen's UIVertex Implementation. (Credits to Slaynash :3)
- Fixed Crash Issue with Mesh::SetArrayForChannelImpl. (Credits to Slaynash :3)
- Reimplemented Image Frame Parsing for Start Screen.
- Custom Start Screen Image File Name is now Case Insensitive.
- Improved Frame Size Handling when Parsing Custom Start Screen Image.
- Improved Manual FrameBuffer Input for Image Frame Parsing.
- Changed UnityEngine.Material Implementation in Start Screen to Internal Calls. (Credits to Slaynash :3)
- Fixed Issue with Mono TLS Bridge running on Mono Games.
- Fixed Issue with Proxy not properly detecting Unity Games.
- Fixed Issue with Mono TLS Bridge not failing Gracefully.
- Fixed Issue with Start Screen Support of Unity 2020.2.0+. (Credits to Slaynash :3)
- Implemented Automatic Aspect Ratio Sizing for Custom Start Screen Image. (Credits to Slaynash :3)
- Il2Cpp Assembly Generation issues now elevated to Internal Failure.
- [StartScreen] Removed UE.GL class initializer. (Credits to Slaynash :3)
- [StartScreen] Put the NSR in a try/catch. (Credits to Slaynash :3)
- [StartScreen] Mono + Mono x64 fixes. (Credits to Slaynash :3)
- [StartScreen] Fix UE.Graphics icall fallback. (Credits to Slaynash :3)
- [StartScreen] Fix text rendering on Mono. (Credits to Slaynash :3)
- Fixed Resolving Issue with MonoResolveManager.
- Switched Coroutine System for Il2Cpp to a Wrapper based Interface. (Credits to HookedBehemoth :D)
- Fixed occasional double-logging issue with MelonLogger. (Credits to benaclejames :D)
- Removed Useless Logger Instance Constructor.
- Added more Comprehensive Exception Message when attempting to use an Instance Patch Method.
- Fixed Conflict Issue with Debug Mode.
- Added "--melonloader.disableunityclc" Launch Option to toggle Unity Console Log Cleaner.
- Fixed Issue with Process.MainWindowHandle and Process.MainWindowTitle returning null.
- Improved Assembly Verifier to make it less angry about small assemblies. (Credits to knah :D)
- Use ReferenceEquals to compare il2cpp delegates as op_equality is not always present. (Credits to knah :D)
- Fixed Issue with Animated Image on Start Screen using Incorrect Sizing.
- [StartScreen] <U2018.3 and Mono x64 fixes. (Credits to Slaynash :3)
- Added MelonLoader.Assertions.LemonAssert Utility for Universal Assertions Functionality.
- Implemented Map Based Backend for Assertions under MelonLoader.Assertions.LemonAssertMapping.
- Fixed Issue with LemonAssert.IsNull Mapping.
- Implemented SemVer Library.
- Fixed Comparison Issue with VerifyLoaderVersion Attribute.
v0.4.3:
- Fixed Issue with Mono Library Scanning.
- Updated HarmonyX to v2.5.1.
- Updated Cpp2IL to v2021.2.4.
- Fixed Issue with Assembly Generator not responding to RemoteAPI when Forcing Dumper Version.
v0.4.2:
- Fixed Issue with Internal Calls being added twice.
- Fixed Issue with Compatibility Layer System not running Constructors.
- Fixed Issue with Compatibility Layer System having the RefreshMods event ran for Plugins.
- Fixed Issue with Compatibility Layer System's Assembly to Resolver conversion check failing.
- Updated Cpp2IL to v2021.1.2.
- Updated Il2CppAssemblyUnhollower to v0.4.15.4.
- Fixed Dependency Issue with MuseDashModLoader Compatibility Layer. (Credits to gompocp :D)
- Fixed Issue with --melonloader.consolemode Launch Option not being properly capped.
- Added Melon Name Sorting for Printout Log. (Credits to ds5678 :D)
- Updated Il2CppDumper to v6.6.5.
- Fixed Issue with Demeo Integration not showing Plugins.
- Added MelonProcess Attribute.
- Added MelonGameVersion Attribute for Mods.
- Fixed Issue with Core PreStart and OnApplicationEarlyStart not getting called on Mono Games.
- Added --melonloader.basedir Launch Option.
v0.4.1:
- Fixed Issue with Compatibility Layer system throwing NRE about Default Constructors.
- Added MelonCompatibilityLayer.WrapperData Extensions.
- Fixed Case Issue with MelonHandler not handling File Extensions properly.
- Fixed Case Issue with MelonHandler not handling File Extensions inside ZIPs properly.
- Fixed Issue with the Close Button of the Console still being Active during Assembly Generation.
- Fixed Issue with MelonHandler not calling OnModSettingsApplied on Legacy Melons.
- Fixed Issue with DAB not properly caching already found Hosts.
- Fixed NRE Issue in Il2CppAssemblyGenerator.RemoteAPI.ContactHosts. (Credits to zeobviouslyfakeacc :3)
- Updated Tomlet to v1.3.5. (Credits to loukylor and Samboy :3)
- Added MuseDashModLoader Compatibility Layer. (Credits to gompocp :D)
- Fixed Issue with MelonLogger causing Crash on null Input Text. (Credits to loukylor :3)
- Fixed Issue with MelonLogger not allowing Empty Input Text. (Credits to ds5678 :D)
- Updated Il2CppDumper to v6.6.3.
- Swapped out Il2CppDumper for Cpp2IL.
- Added "--melonloader.agfoffline" Launch Option to Force the Assembly Generator to Run without Contacting the Remote API.
- Fixed Issue with MelonLogger not abiding by Warning and Error Caps.
- Fixed Issue with Assembly Generator using the wrong Download URL for Cpp2IL.
- Updated Cpp2IL to v2021.1. (Credits to ardittristan and Samboy :3)
- Fixed Issue with MelonGameAttribute not setting Name after Creation.
- Converted Compatibility Layer System to be Module Based.
- Fixed Issue with Compatibility Layer System running Module Setup twice.
- Implemented Demeo Integration.
- Fixed String Marshalling Issue with bHaptics Native Library.
- Update Il2CppAssemblyUnhollower to v0.4.15.3.
- Fixed Issue with Compatibility Layer System incorrectly casting Delegates. (Credits to ds5678 :D)
- Fixed Issue with Log Coloration from Cpp2IL. (Credits to Samboy :3)
- Improved Analytics Blocker.
- Added "psapi.dll" Support to Proxy.
- Fixed Encoding Issue with MelonLogger. (Credits to lolligun :D)
- Cleaned Up Logger Implementation. (Credits to benaclejames :D)
- Fixed Issue with Console not properly using Non-Ansi Manual Coloring. (Credits to benaclejames :D)
- Fixed Issue with Default Melon Constructors not being run.
v0.4.0:
- Tweaked Assembly Load exceptions logging. (Credits to Slaynash :3)
- Fixed Assembly Load logging typo. (Credits to Slaynash :3)
- Added MelonUtils.HashCode.
- Fixed Issue with UnityCrashHandler.
- Cleaned up Console Title Renaming.
- Added Game Name to Console Title.
- Added Game Version to Console Title.
- Changed Debug Mode Indicator in Console Title to "[D]".
- Updated bHaptics Native Library to v1.5.3.
- Fixed Issue with Console Always On Top Launch Options causing Warnings to be Hidden. 11 Fixed Issue with Force Version Launch Options being overwritten.
- Fixed Issue with Force Version Launch Options counting "0.0.0.0" as a valid version.
- Added "--melonloader.consoledst" Launch Option. When Used it will set the Console Title as the Game Name.
- Added Secret Lemon.
- Added Game Version to Logs.
- Fixed Collision Issue with Hash Code Generation.
- Improved Hash Code Generation.
- Improved SamboyAPI Implementation in Assembly Generator.
- Added Wine Detection to Operating System Check.
- Converted Assembly Generator to using Internal Calls instead of Native Exports.
- Removed Native Exports from Bootstrap.
- Fixed Issue where Debug Mode's "[D]" would print to log.
- Fixed Issue with SamboyAPI not parsing correctly.
- Added Among Us Deobfuscation Mapping.
- Fixed Issue with Game Version returning 0.
- Fixed Issue with Deobfuscation not abiding by Config's Obfuscation Regex as a fallback.
- Fixed Issue with bHaptics Library causing "Unable to Connect" to be spammed in Console.
- Added Color32 Support to MelonPreferences.
- Internal Failures now Kill the Process when thrown.
- Fixed Issue with Analytics Blocker incorrectly blocking certain hosts.
- Added OnApplicationLateStart Melon Override.
- Added Missing Attribute Cleanup Fix from Installer.
- Improved Proxy.
- Added dont_save_default Option to MelonPreferences. (Credits to YOWChap :D)
- Added Backwards Compatibility for MelonPreferences. (Credits to knah :D)
- Fixed the return type of the MelonPreferences API. (Credits to knah :D)
- Fixed Issue with HostName Check in Analytics Blocker.
- Fixed Issue with HarmonyInstance.Unpatch not doing a proper null check.
- Proxy will now have an Error Popup when it has an Invalid File Name.
- Updated Il2CppDumper to v6.5.0.
- Added Object Oriented File System for MelonPreferences.
- Added MelonPreferences_Category.SetFilePath.
- Added MelonPreferences_Category.ResetFilePath.
- Fixed Issue with Core Initialization.
- Fixed Conflict Issue with Multiple MelonPreferences Categories using the same file.
- Fixed Issue with File Watcher System and Separated MelonPreferences Files.
- Fixed Issue with OnPreferencesLoaded not being called on Creation of a Separated MelonPreferences File.
- Moved GetMelonFromStackTrace to MelonUtils.
- Made GetMelonFromStackTrace Accessible.
- Fixed Encoding Issue with Mono API. (Credits to constfold :3)
- Fixed Issue with LoadLibrary failing when a DLL file path contains Non-ASCII Characters. (Credits to constfold :3)
- Fixed Issue with Unicode Command Line. (Credits to constfold :3)
- Removed MelonBase.Compatibility.
- Added MelonPlatform Attribute.
- Added MelonPlatformDomain Attribute.
- Added Proper Check for if MelonPlugin or MelonMod is Incorrectly Loaded.
- Implemented MelonPlatform Attribute Check.
- Implemented MelonPlatformDomain Attribute Check.
- Added MelonAdditionalDependencies Attribute.
- Implemented MelonAdditionalDependencies Attribute Check.
- Implemented File Path Display for Latest.log when Internal Failures occur.
- Fixed Issue with Missing Plugin Check.
- Fixed Issue with TomlArray trying to act as a List.
- Made Initialization Exception Logging more Verbose. (Credits to constfold :3)
- Fixed Issue with TomlArray Transform causing Out of Range Exception.
- Fixed Issue with FileSystemWatcher throwing an NIE on some MonoBleedingEdge Games.
- Changed TomlArray.Insert to TomlArray.Replace.
- Upgraded Harmony Library to HarmonyX.
- Ported Il2Cpp Patch Fix to HarmonyX Patcher.
- Added Compatibility Layer for Harmony.
- Added and Implemented RegisterTypeInIl2Cpp Attribute to further streamline Registering Custom Types in Il2Cpp.
- Fixed Internal Failure Issue from Missing Exports with Older Mono.
- Added MelonPreferences_Category.SaveToFile Method.
- Added MelonPreferences_Category.LoadFromFile Method.
- Added VerifyLoaderVersion Attribute for Melons to Specify MelonLoader Version Dependency.
- Added VerifyLoaderBuild Attribute for Melons to Specify MelonLoader Build Dependency.
- Implemented Fallback System to Assembly Generator.
- Implemented Fallback Obfuscation Regex for Among Us.
- Added Enum support in MelonPreferences. (Credits to loukylor :3)
- Fixed Issue with Enum.TryParse in TomlMapper.
- Fixed Issue with Console Title being improperly set on older Unity Versions.
- Fixed Issue with Missing System.dll on older Unity Versions.
- Fixed MME Issue on older Unity Versions.
- Fixed Issue with Mods not running on older Unity Versions.
- Added Load Balancing Hosting for Assembly Generator RemoteAPI. (Credits to DubyaDude and Samboy :D)
- Fixed Small Bug in the RemoteAPI Request System for the Assembly Generator.
- Added Compatibility Layer Resolver to MelonHandler for Future Changes.
- Cleaned Up Inlined Harmony Patch Warning Implementation for Il2Cpp Games.
- Isolated All Harmony Modifications to their own Files.
- Updated HarmonyX to v2.4.0.
- Fixed Issue with Assembly Generator causing Regeneration every Launch.
- Cleaned Up Melon Method Call Implementation.
- Added Compatibility Layer Resolver for IPA Plugins to be Loaded as Mods.
- MelonInfo Attribute No Longer Requires that an Author be Set.
- Fixed Issue with IPA Compatibility Layer not Loading Multi-Plugin Assemblies.
- Fixed Issue with Harmony Patch Attributes not abiding by Melon Priority or Dependency Graph.
- Fixed Issue with RegisterTypeInIl2Cpp Attribute not abiding by Melon Priority or Dependency Graph.
- Fixed Harmony Patch Attribute Collision Issue with IPA Compatibility Layer and Multi-Plugin Assemblies.
- Fixed Issue with ILRepack not Running for Debug Compilation of MelonLoader.dll.
- Fixed Issue with ILRepack not using NuGet Package Paths for Merging.
- Fixed Issue with MelonLoader.dll Compilation would copy NuGet Package Dependencies to Output Folder.
- Improved Compatibility Layer Resolve System.
- Improved MelonLoader Core Initialization.
- Temporarily Disabled the "--melonloader.agfregenerate" Launch Option.
- Added Managed-Sided Command Line Interface.
- Converted Assembly Generator to be ran by Base Assembly.
- Fixed Issue with Parsing Unity Version on Weirdly Marked Versions.
- Fixed Issue with Mono Base Directory being Wrong causing Crashes.
- Added Warning for Transpiler Use on Il2Cpp Unhollowed Methods.
- Added More to Harmony Compatibility Layer.
- Fixed Issue with Missing Harmony.GeneralExtensions and Harmony.CollectionExtensions in Harmony Compatibility Layer.
- Added Description, Validator and BoxedValue to MelonPreferences_Entry. (Credits to Sinai :D)
- Fixed Issue with not Forcing FloatValueSyntax to serialize with decimal for MelonPreferences_Entry. (Credits to Sinai :D)
- Fixed Order of Validation for MelonPreferences_Entry. (Credits to Sinai :D)
- Moved ValueValidator to its own class. (Credits to Sinai :D)
- Added BoxedEditedValue to MelonPreferences_Entry. (Credits to Sinai :D)
- Moved Plugin Loading and OnPreInitialization to before Assembly Generation.
- Added MelonUtils.ParseJSONStringtoStruct.
- Added Custom Hosts Interface for Plugins to add new Contact Hosts for the Assembly Generator's RemoteAPI.
- Removed VRChat_OnUiManagerInit check and override.
- Removed MelonUtils.IsVRChat.
- Added System.Collections.Generic.List Mapping Support for MelonPreferences.
- Assembly Generator now uses the MelonPreferences API for it's Config.
- Fixed NRE Issue with MelonUtils.ParseJSONStringtoStruct.
- Fixed String Null Issue with MelonPreferences.
- Fixed NIE Issue with FileSystemWatcher on GORN failing to be caught properly.
- Fixed Issue with Il2CppAssemblyUnhollower Unstripping Methods and failing to Resolve Unity Dependencies.
- Fixed Issue with Il2CppAssemblyGenerator not setting Working Directory for ProcessStartInfo.
- Added Separate Support Module for Compatibility Layer System to keep References Clean.
- Made Compatibility Layer System Extendible.
- Removed Tomlyn. (Credits to Samboy :D)
- Added Tomlet created by Samboy. (Credits to Samboy :D)
- Converted MelonPreferences to use Tomlet. (Credits to Samboy :D)
- Updated to Tomlet 1.1.0. (Credits to Samboy :D)
- Added ReflectiveCategory API for Type-Checked Category Creation. (Credits to Samboy :D)
- Added SaveToFile to ReflectiveCategory. (Credits to Samboy :D)
- Added a Force-Save option to ReflectiveCategory. (Credits to Samboy :D)
- Fixed NRE Issue with MelonPreferences when Parsing TOML Document.
- Fixed Issue with DAB functionality not properly iterating its list.
- Changed Assembly Generator Config to use new Reflective Categories. (Credits to Samboy :D)
- Fixed NRE Issue with Reflective Categories.
- Updated to Tomlet 1.2.0. (Credits to Samboy :D)
- Updated Il2CppAssemblyUnhollower to v0.4.14.0.
- Updated Il2CppDumper to v6.6.2.
- Improved BHaptics Support Implementation.
- Fixed Issue with PatchShield preventing Harmony Patching on some Games.
- Temporarily Disabled Launch Options Config File.
- Fixed Issue with Il2Cpp Support Fixes running before Il2CppAssemblyGenerator.
- Fixed Launch Option Conflict Issue with Debug Builds.
- Fixed Issue with FileWatcher's NotImplementedException Detection.
- Updated to Tomlet 1.3.0. (Credits to Samboy :D)
- Fixed Ambiguous Match Found Issue with UnhollowerSupport.
- Updated to Tomlet 1.3.1. (Credits to Samboy :D)
- Fixed NRE Issue with Preference Entries to TOML. (Credits to Samboy :D)
- Fixed NRE Issue with Assembly Generator RemoteAPI.
- Fixed MFE Issue with MelonBase.Harmony.
- Fixed Loading Issue with MelonPreferences_ReflectiveCategory.
- Added OnEarlyStartOnApplicationEarlyStart for Plugins. (Credits to Slaynash :3)
- Moved Il2CppAssemblyGenerator after OnApplicationEarlyStart. (Credits to Slaynash :3)
- Fixed Issue with Loading Melons from ZIP Archives.
- Rewrote File Handling and Assembly Loading System.
- Fixed Issue with Extra Tomlet DLL getting copied to Support Modules.
- Added MDB Loading Support for ZIPs.
- Added Source Code Detection for ZIPs.
- Fixed Bad Image Format Exception Issue with Loading DLLs from ZIPs.
- Fixed Issue with Assembly Generator Contacting All RemoteAPI Hosts when One Responded.
- Added OnSceneWasUnloaded MelonMod Override.
- Fixed IOException Issue with Assembly Generator extracting ZIP Archives. (Credits to Extacy :D)
- Fixed Issue with MelonHandler being unable to resolve MelonPriority type.
- Added Better Exception Handling during Melon Resolving.
- Fixed IOORE Issue with Melon Enumeration.
- Fixed Issue with StackTrace not showing Line Numbers even when Debug Symbol Information was present.
- HarmonyX is now integrated and updated through NuGet.
- Fixed Issue with ILRepack and Tomlet Conflicting.
- Fixed Issue with UnhollowerSupport causing BIF Exception to be thrown.
- Fixed Issue with Melon Sorting.
- Fixed Issue with Dependency Sorting.
- Fixed Issue with Assembly Attribute Finding in MelonHandler.
- Improved IL2CPP coroutine exception reporting to include faulty coroutine name, don't continue running an erroring-out coroutine. (Credits to knah :D)
- Fixed Issue with MelonHandler checking File Extensions.
- Fixed Issue with MelonHandler not properly abiding by Load Mode.
- Added Message Suppression Support for the RegisterTypeInIl2Cpp Attribute.
- Fixed Issue with VerifyLoaderVersion Attribute causing an IOORE when parsing SemVer.
- Fixed Issue with VerifyLoaderVersion Attribute not properly abiding by IsMinimum.
- Updated Il2CppAssemblyUnhollower to v0.4.15.0.
- Fixed Issue with newer Il2CppAssemblyUnhollower version breaking Harmony Patching. (Credits to ds5678 :D)
- Fixed Issue with Displaying MelonLoader Version Information.
- Updated Il2CppAssemblyUnhollower to v0.4.15.1.
- Added Missing Harmony Patch Forwarders. (Credits to ds5678 :D)
- Added Error Message for when a Plugin or Mod attempts to Load from the Wrong Folder.
- Updated Tomlet to v1.3.3.
- Added MelonLoader.HarmonyDontPatchAll Assembly Attribute.
- Prepared Changes for Il2CppAssemblyUnhollower v0.4.15.2. (Credits to ds5678 :D)
- Added dnSpy Debugger Environment Variable Handling. (Credits to TechInterMezzo :D)
- Fixed Issue with DNSPY_UNITY_DBG Environment Variable not being Handled.
- Fixed Crash Issue with Certain Oculus Platform Games.
- Fix wrong type being created in IL2CPP SM_Component. (Credits to knah :D)
- Updated Il2CppAssemblyUnhollower to v0.4.15.2. (Credits to knah :D)
- Fixed Issue with Directory Check overextending.
- Improved Native Library Handling.
- Fixed NRE Issue with Support Module being unable to find Application.buildGUID on Certain Unity Engine Versions.
- Fixed Issue with Export mono_debug_domain_create on Older Mono Versions.
v0.3.0:
- Rewrote Proxy from scratch.
- Rewrote Bootstrap from scratch.
- Rewrote MelonLoader from scratch.
- Rewrote AssemblyGenerator from scratch.
- Rewrote Support Modules from scratch.
- Added x86 Support.
- Proxy now has the ability to be named version.dll, winmm.dll, or winhttp.dll.
- OnModSettingsApplied has been changed to OnPreferencesSaved.
- Temporarily Removed OnLevelIsLoading.
- Internal Failures are now a lot more informative.
- Debug Mode is now a lot more informative.
- Logs folder has been moved to MelonLoader/Logs.
- Logger now produces a latest.log file in the MelonLoader folder.
- Removed LightJson. Not Needed.
- Load Mode "-dev" Name Extension has been changed to ".dev" Extension.
- Added Launch Option "--melonloader.dab" to Debug Analytics Blocker.
- Fixed Assembly Resolve Issue between Plugins and Mods.
- MelonHandler now requires Name, Version, and Author to all be properly set in Melons.
- Author is now mandatory to be set in MelonInfoAttribute for Melons. It can no longer be set to null.
- Fixed issue with Support Module due to Time.deltaTime being stripped.
- Fixed Issue with Mono Support Module.
- Fixed Issue with Assembly Generator.
- Fixed Issue with Queued Coroutines in Mono Pre-5 Games.
- Re-added "--quitfix" Launch Option.
- Fixed Console On Top Check.
- Fixed Legacy Support for OnLevelWasLoaded and OnLevelWasInitialized.
- Fixed Legacy Support for Preferences and OnModSettingsApplied.
- Fixed Type Overwrite Issue with MelonPreferences.
- Fixed Loading Issue when a Plugin is in the Mods folder or vice-versa.
- Improved Loading of Plugins and Mods.
- Re-added UnityEngine.Il2CppAssetBundleManager.
- Fixed Issue with UnityEngine.Il2CppAssetBundleManager being outdated.
- Changed Unity Dependencies URL to LavaGang/Unity-Runtime-Libraries.
- Fixed Type Overwrite Issue with MelonPreferences when Loading during Runtime.
- Fixed Legacy Support for MelonPluginInfo and MelonPluginGame.
- Re-added Launch Option "--melonloader.agregenerate".
- Re-added Launch Option "--melonloader.agfvunhollower".
- Added Launch Option "--melonloader.agfvdumper" to Force the Version of Il2CppDumper to use.
- Added Launch Option "--melonloader.agfvunity" to Force the Version of Unity Dependencies to use.
- Fixed Assembly Resolve Issue when a Plugin references a Mod.
- Fixed Displacement Issue when calling Save for MelonPreferences or Legacy MelonPrefs.
- Fixed Issue with Legacy MelonPrefs logging "Legacy Config Saved!" even when nothing happened.
- Fixed Issue with DEV Load Mode not working with ZIP Archives.
- Added Check to MelonHandler to make sure Plugins and Mods only load once from 1 DLL copy.
- Legacy MelonPrefs now properly redirect to MelonPreferences.
- Added MelonUtils.IsOldMono.
- Fixed Issue with MelonPreferences creating a new entry when one already exists.
- Added Auto-Converter to convert MelonPrefs to MelonPreferences.
- Fixed Issue with Auto-Converter deleting modprefs.ini but not saving MelonPreferences.cfg.
- Fixed Issue with Console Output not Flushing.
- Fixed Issue with Log Output not Flushing.
- Fixed Crash Issue with Fresh Install Assembly Generation.
- Support Module now uses MelonUtils.GetUnityVersion properly.
- Fixed Hooking Issue with Harmony Attributes.
- Fixed Issue with Reflection based Assembly Resolving.
- Moved Plugins and Mods folders back to the Game Installation folder.
- Fixed ConsoleOnTop Focusing Issues.
- Added More HostNames to Analytics Blocker.
- Fixed Issue with Legacy MelonPrefs Support when GetString or SetString was called.
- Added "MonoBleedingEdge.x86" and "MonoBleedingEdge.x64" to the Mono Directory Search.
- Fixed Issue with certain Mono Games causing the Mono Directory Search to fail.
- Disabled Close Button on Console during Assembly Generation.
- Console will now properly appear for Assembly Generation only on Il2Cpp Games when using Launch Option "--melonloader.hideconsole".
- Fixed Issue with Launch Option "--melonloader.hideconsole" causing a Crash.
- Fixed Execution Order of Console Initialization when using Launch Option "--melonloader.hideconsole".
- Fixed Issue with Il2CppDumper and Il2CppAssemblyUnhollower hanging when Games are closed during Assembly Generation.
- Launch Option "--melonloader.dab" no longer requires "--melonloader.debug".
- Fixed Visual C++ Error that occurs when closing certain Games by closing the Console (for example: Audica).
- Fixed Issue with Launch Option "--melonloader.hideconsole" ignoring "--melonloader.debug".
- Fixed Console Coloring Issue.
- Added MelonDebug.Msg.
- Fixed Issue with MelonLoader Unity Debug Log not running when Plugins are loaded.
- Fixed Issue with VRChat_OnUiManagerInit not getting called.
- MelonLoader Unity Debug Log is now default even when no Plugins or Mods are loaded.
- Fixed Issue with No Attribute showing as Universal.
- Implemented Fallback Game Compatibility for Melons when no app.info is found.
- Added Internal Failure when failing to get Unity Version.
- Implemented globalgamemanagers as Fallback for Unity Version.
- Added Try Catch to Support Module Loading.
- Fixed Issue with Unity Version Fallback not Triggering.
- Fixed Issue with Exceptions not including StackTrace.
- Fixed Issue with certain Mono Games not having the FileVersionInfo class.
- Added Value Change Callbacks to MelonPreferences Entries.
- Cleaned up MelonPreferences Entry Exception Handling.
- Fixed Issue with Launch Option "--melonloader.dab" that caused it to only Log when "--melonloader.debug" was used.
- Fixed Issue with Bootstrap Game Warnings not Logging.
- Fixed Issue with Il2Cpp Support Module failing to Parse Unity Version.
- Fixed Issue with Il2Cpp Support Module failing to load "Assembly-CSharp.dll" on VRChat.
- Added Legacy Style Methods to MelonPreferences.
- Fixed Issue with the GetString and SetString methods for ModPrefs and MelonPrefs Legacy Support.
- Fixed Logger Flushing.
- Redirected 0Harmony.dll References to MelonLoader.dll.
- Added Current Culture Fix to ensure Culture is always Invariant.
- Fixed Issue with Product Names and Versions not using Translation Query.
- Fixed Issue with Debug Compilation.
- Added SHA512 Check to Installer Updates.
- Added SHA512 Check to Installer Downloads.
- Fixed Issue when using the Installer to install v0.2.
- Fixed Issue with Releases Selection in Installer not being properly Sorted.
- Added Shortcut Support to Installer.
- Added HarmonyShield Attribute.
- HarmonyShield now protects Methods and Assembly from being patched.
- Added HarmonyShield Protection to MelonLoader, SM_Il2Cpp, SM_Mono, SM_Mono.Pre-2017, and SM_Mono.Pre-5.
- Fixed Issue with Unneeded Return in Logger breaking Logs after Plugin Loading.
- Fixed Issue with Console Buffer.
- Fixed Issue with Console Coloring.
- Added MelonColor Attribute for Melons to set their Name Color.
- Fixed Issue with OnSceneWasLoaded not being called.
- Added string Parameter to OnSceneWasLoaded and OnSceneWasInitialized that gets passed the Scene's Name.
- Plugins and Mods now have their Names Colorized properly when Loading.
- Added HarmonyShield Support for Classes and Structs.
- Fixed Internal Failure with mono_free on Non-BleedingEdge Mono Games.
- Improved HashCode Implementation.
- Added HashCodes for Support Modules.
- Added File Change Detection for MelonPreferences.
- Fixed Issue with MelonPreferences not Updating after Load.
- Added MelonIncompatibleAssembliesAttribute to mark Plugins and Mods as Incompatible with each other. (Credits to YOWChap :D)
- Fixed Issue with 127.0.0.1 showing as a Unique Host Name.
- Fixed Issue with ValueEdited of MelonPreferences.
- Fixed Issue with ValueEdited not correctly saving to MelonPreferences when Save is called.
- Fixed Issue with ValueEdited not being set when Auto-Converter runs.
- Added UnityEngine.Il2CppImageConversionManager to Managed folder to help with Image Conversion on Il2Cpp Games.
- Added Better Exception Handling for MelonLoader Core Initialization.
- Added Error Log File Output to Installer.
- Added MelonPreferences Auto-Downgrade System to Installer.
- Added MelonUtils.ColorToANSI to convert ConsoleColor to ANSI String.
- Fixed Issue with ALPHA Setting in Installer not abiding by Selected Theme.
- Fixed Issue with MelonPreferences Auto-Downgrade System in Installer when clean installing.
- Fixed Issue with Assembly Generator not Logging Launch Arguments.
- Added LaunchOptions.ini to allow for Configuration of Launch Options without using the Command Line.
- Fixed Issue where Launch Option "--melonloader.hidewarnings" would not function correctly.
- Added OnPreferencesLoaded Override for Plugins and Mods.
- Fixed Issue where Plugins weren't given priority for OnApplicationStart.
- Fixed Issue where certain Games would be unable to have their Unity Version read.
- Temporarily removed the Force-Regenerate Launch Option.
- Added GameAssembly Hash Check Logs.
- Added double and long Support to MelonPreferences.
- Improved MelonPreferences Type Conversion when Loading.
- Improved Lambda Expression Usage in MelonPreferences.
- Improved MelonPreferences Type Conversion when Loading string, floats, ints, longs, and doubles.
- Improved MelonPreferences Change Callback Invoking.
- Fixed Issue where Bootstrap and Proxy would cause Crashes when compiled under Debug Compilation.
- Improved Core Initialization.
- Fixed Issue with MelonPreferences Caching on Load and not setting the cache as Hidden.
- Fixed Issue with Older Mono that doesn't need a Posix Helper Native Module.
- Fixed Issue with Logger not properly detecting the Calling Melon.
- Fixed Issue with Debug Logger not properly coloring Melons.
- MelonPreferences Type Handling is now Modular for easier extension.
- MelonPreferences now supports the Type byte.
- Fixed Issue with MelonPreferences Loading when there is an Unhandled Type in the Config File.
- Fixed Issue with MelonPreferences where Saving would Trigger the FileWatcher and cause a needless reload.
- Fixed Issue with MelonPreferences where the Config File wasn't creating itself on Initialization.
- Fixed Issue with MelonPreferences causing the Config File to ignore certain Preferences during Initialization.
- Fixed Issue with Compatibility Layer failing to resolve type for MelonLoader.UnhollowerSupport.
- Fixed Issue with Compatibility Layer failing to resolve MelonMod.InfoAttribute, MelonMod.GameAttributes, MelonPlugin.InfoAttribute, and MelonPlugin.GameAttributes.
- Fixed Issue with Mods on BONEWORKS having OnSceneWasLoaded and OnSceneWasInitialized called too early.
- Fixed Issue with Mods on BONEWORKS having OnSceneWasLoaded and OnSceneWasInitialized called for the Loading Screen.
- Added BONEWORKS_OnLoadingScreen Override for Mods and it runs when BONEWORKS shows the Loading Screen.
- Fixed Issue with MelonDebug.Msg causing Crash.
- Fixed Issue with MelonDebug.Msg not checking if Debug is Enabled.
- Added MelonUtils.GetCurrentGameAttribute that returns the Current Game's MelonGameAttribute.
- Added MelonGameAttribute.Universal, MelonGameAttribute.IsCompatible, and MelonGameAttribute.IsCompatibleBecauseUniversal.
- Fixed Issue with BONEWORKS_OnLoadingScreen not being called.
- Fixed Issue with Certain Melons having the wrong Default Color.
- Improved MelonPreferences Error Handling.
- Improved MelonPreferences Unsupported Type Handling.
- Added string[] and bool[] Support to MelonPreferences.
- Added int[] and float[] Support to MelonPreferences.
- Fixed Issue with MelonPreferences Value Type Conversion causing Conflicts in File.
- Added long[] Support to MelonPreferences.
- Added byte[] Support to MelonPreferences.
- Added Warning to Debug Mode for when Attempting to Harmony Patch Methods that may possibly be Inlined. (Credits to zeobviouslyfakeacc :3)
- Added a Built-In bHaptics API.
- Fixed Issue with MelonPreferences not setting properly while using Fallback Functionality.
- Fixed Issue with Melon Name not Showing for Inline Harmony Patch Detection Warning. (Credits to zeobviouslyfakeacc :3)
- Fixed Issue with Null Reference Exception from MelonLogger.ManualWarning. (Credits to zeobviouslyfakeacc :3)
- Fixed Issue with Null Reference Exception from Inline Harmony Patch Detection.
- Fixed Issue with MelonUtils.IsVRChat causing Null Reference Exception.
- Fixed Issue with MelonUtils.IsBONEWORKS causing Null Reference Exception.
- Fixed Issue with Native Unity Logs showing when not in Debug Mode.
- Fixed Issue with Certain Unity Games when the EXE has no Information Attached.
- Fixed Issue with Unity Games using a Version older than 5.0 not Loading Mods.
- Fixed Issue with Unity Games using a Version older than 5.0 having mainData instead of globalgamemanagers.
- Fixed Issue with Support Modules with Mono Games not having UnityEngine.Transform.SetAsLastSibling.
- Added Preload Support Module.
- Fixed Issue with Unity Games not having System.Core.dll.
- Added bHaptics.DeviceType.
- Added bHaptics.IsDeviceConnected.
- Added bHaptics.DeviceTypeToPositionType.
- Added bHaptics.DeviceType Methods.
- Fixed Issue with Support Modules throwing a Target Framework Exception.
- Fixed Internal Failure with Operating Systems older than Windows 10.
- Fixed Issue with C# 9 Record Types making Assemblies Unloadable. (Credits to knah :D)
- Added Melon Hashes to Logs. (Credits to TrevTV :P)
- Temporarily Disabled Analytics Blocker for x86 (32bit) to Fix Random Crash Issue.
- Fixed Issue with Console Coloring on Operating Systems older than Windows 10.
- Fixed Issue with app.info Does Not Exist Warning showing Twice.
- Re-Implemented Color Variations of MelonLogger.Msg.
- Fixed Issue with Melon Logging Traceback not finding certain Melons in the Call Stack.
- Added MDB Symbol Support. (Credits to avail :P)
- Added Deobfuscation Map Support.
- Added "--melonloader.agfregenerate" Launch Option.
- Re-factored Assembly Generator.
- Re-factored MelonPreferences.
- MelonPreferences Entries are now Extendable for Custom Type Support.
- Added MelonPriority Assembly Attribute.
- Fixed String Issue with MelonPreferences.
- Re-factored MelonColor Support.
- Fixed Issue with Legacy Settings failing to Load and breaking settings system completely. (Credits to knah :D)
- Fixed Issue suppress exceptions from Settings Save/Load. (Credits to knah :D)
- Rewrote settings classes to be much cleaner and easier to extend. (Credits to knah :D)
- Updated Il2CppAssemblyUnhollower to v0.4.13.0. (Credits to knah :D)
- Fixed Issue with Deobfuscation Map not Downloading if File does not Exist. (Credits to knah :D)
- Fixed Issue String Settings not loading from TOML. (Credits to knah :D)
- Fixed Issue Legacy Float Settings with Round Values not loading from INI. (Credits to knah :D)
- Rewrote TOML Array Handling. (Credits to knah :D)
- Fixed Issue with Virtual Terminal Processing on some systems.
- Fixed Issue with MelonPreferences having Category and Entry Display Names not be set to Identifier when null.
- Fixed Issue with MelonPreferences.CreateEntry not creating Category.
- Fixed Issue with MelonPreferences.CreateCategory causing an Exception when it wasn't supposed to.
- Fixed Issue with "Collection was modified" Error.
- Fixed No Melon Attribute Found Issue.
- Fixed Issue with Melon Override Exceptions not showing which Melon it was.
- Fixed Issue with Protobuf Assemblies being rejected. (Credits to knah :D)
- Fixed Issue with Assembly Generator's OverrideAppDomainBase Method under Mono. (Credits to MiincK :D)
- Changed MelonBase.Color to MelonBase.ConsoleColor.
- Fixed Enumerator Issue with Index Loop Locking.
- Fixed Issue with Duplicate Melons causing the rest of the Melons to Not Load.
- Added MonoBleedingEdge Metadata.
- Re-factored Assembly Generator run with Mono instead of CLR. (Credits to MiincK :D)
- Fixed NRE Issue with Audica and similar games. (Credits to MiincK :D)
- Fixed log file name time format. (Credits to MiincK :D)
- Fixed NRE Issue with Newer Games after Audica. (Credits to MiincK :D)
- Changed Mono Configuration Directory on Il2Cpp Games to the Included Metadata. (Credits to MiincK :D)
- Fixed Issue with Assembly Generator getting the Incorrect Configuration Directory. (Credits to MiincK :D)
- Fixed Issue with Assembly Generator when Deobfuscation Map already exists. (Credits to knah :D)
v0.2.7.4:
- Fixed Issue with Amplitude using new Endpoints.
v0.2.7.3:
- Updated Il2CppAssemblyUnhollower to v0.4.10.0.
- Il2CppDumper and Il2CppAssemblyUnhollower executables will now display their command lines in the log files. (Credits to stephenc87 :D)
v0.2.7.2:
- Fixed Small Issue with VRChat_OnUiManagerInit.
v0.2.7.1:
- Use a different approach to console cleaning for better interop with other tools. (Credits to knah :D)
v0.2.7:
- Console no longer has stdout directed to it. (Credits to knah :D)
- Removed VRChat Auth Token Hider as it's no longer necessary. (Credits to knah :D)
- Added Try Catch to DisableAnalytics Hooks.
- Updated Il2CppAssemblyUnhollower and Il2CppDumper Versions. (Credits to knah :D)
- Implemented potentially dead method detection. (Credits to knah :D)
- Exposed new Console Output Handle and assign it to Managed Console Class Output. (Credits to knah :D)
- Added Unity 2019.4.3 Dependencies.
- Bumped Il2CppAssemblyUnhollower Version.
v0.2.6:
- Fixed Issue with Logger Timestamp making New Lines.
- Added Silent Launch Option to Installer. (Credits to TrevTV :P)
- Fixed Internal Failure caused by DisableAnalytics for certain users.
- Added Operating System log to startup info.
- Added ValueTupleBridge to Managed Folder.
- Added Unified Attributes for both Plugins and Mods.
- Added Legacy Attribute Support.
- Fixed Logger Issue with new Unified Attributes.
- Deprecated MelonModLogger, use MelonLogger instead.
- Deprecated ModPrefs, use MelonPrefs instead.
- Added HarmonyInstance Method for easier Unpatching of Mods and Plugins.
- Create MelonLoaderComponent after first scene load in Mono Games. (Credits to knah :D)
- Removed Launch Option --melonloader.devpluginsonly.
- Removed Launch Option --melonloader.devmodsonly.
- Added Launch Option --melonloader.loadmodeplugins.
- Added Launch Option --melonloader.loadmodemods.
- Fixed Issue with Debug Mode causing Crashes for Some Games.
- Fixed Issue with Manual Zip overriding Latest Version.
- Fixed Issue where Manual Zip would get set as Default Selection.
- Unity Analytics now redirected to localhost, rather than throwing null and exceptions. (Credits to Emilia :3)
- Plugins are now able to use OnUpdate.
- Plugins are now able to use OnLateUpdate.
- Plugins are now able to use OnGUI.
- Added GetUnityTlsInterface to Imports.
- Implemented Native Sided SSL/TLS/HTTPS Fix.
- Fixed Issue with Support Modules not loading due to Missing Method errors.
- Fixed Issue with attaching dnSpy on Il2Cpp Games.
- Replaced mono-2.0-bdwgc.dll with dnSpy Debug dll.
- Debug Mode will now use LoadFrom instead of Load for breakpoint compatibility.
- Fixed Crash Issue with DisableAnalytics.
- Revised Console Logger Callbacks.
- Fixed Issue with LogMelonError not running Callbacks.
- Deprecated MelonLoader.Main use MelonLoaderBase or MelonHandler instead.
- Revised Base Melon Handling.
- Revised IniFile.
- Fixed Issue with Plugins not getting OnUpdate called.
- Fixed Issue with Plugins not getting OnLateUpdate called.
- Fixed Issue with Plugins not getting OnGUI called.
- Plugins are now able to use VRChat_OnUiManagerInit.
- Fixed Coroutine Queue for Mono Games.
- Added Launch Option --melonloader.consoleontop. (Credits to TrevTV :P)
- Fixed Issue with Assembly Generator not stopping when failing to Download.
- Escalated Assembly Generator failures to Internal Failures.
- Fixed Issue where Assembly Generator failures would cause a Crash.
- Fixed Crash Issue with Unity TLS Fix for some Games.
- Fixed Issue with Assembly Generator not working for some Users.
- Fixed Crash Issue with DisableAnalytics for some Games.
- Fixed Missing NULL Check in DisableAnalytics. (Credits to Sinai :D)
- Added Try Catch to Assembly Generator Execution. (Credits to Samboy :D)
v0.2.5:
- Fixed Issue that prevented deserializing structs with TinyJSON. (Credits to zeobviouslyfakeacc :3)
- Simplified External Tool Versions.
- Updated Il2CppDumper to 6.3.3.
- Added Unity 2019.3.15 Dependencies.
- Fixed Issue with some Games causing DisableAnalytics to have an Internal Failure.
- Fixed File Descriptions.
- Added Icon to AssemblyGenerator.exe.
- Temporarily Removed the ModSettingsMenu.
- Temporarily Removed RenderHelper from Support Modules.
- Fixed Issue with some Games causing DisableAnalytics to have an Internal Failure.
- Fixed Issue with using Application.unityVersion on some Unity versions.
- Fixed Issue with using SetAsLastSibling on some Unity versions.
- Fixed Issue with Release Compilation still saving Debug files to the Output Directory.
- Added UnityEngine.Il2CppAssetBundleManager to Managed folder to help with Asset Bundle Manipulation on Il2Cpp Games.
- Installer now properly displays UPDATE instead of INSTALL when updating to a newer version.
- Added Auto-Update System to Installer.
- Installer Version Check now Parses the Project File directly.
- Added Installer Check for Manual Zip (MelonLoader.zip) next to the Installer exe.
- Added UN-INSTALL button to Installer.
- Added Auth Token Hider for VRChat.
- Added Console Cleaner for Normal Console
- Console Cleaner now uses a Harmony Patch instead of unsafe hooking.
- Improved Unhollower Logging Support.
- Added Console Log Callbacks to MelonLoader.Console.
- Installer now runs Update Check on Main Thread.
- Improved Logger System.
- Fixed Issue with Installer where installing from Manual Zip would cause it to download Latest Version.
- Temporarily Removed Console Cleaner.
v0.2.4:
- Added Error Output Log to Installer. (Credits to TrevTV :P)
- Use List.Count / Array.Length property instead of Linq's Count() method. (Credits to zeobviouslyfakeacc :3)
- Added mechanism to catch when game is open to display additional information. (Credits to DubyaDude ^.^)
- Harmony: Remove prefixes after postfixes to fix unpatching patches with __state variables. (Credits to zeobviouslyfakeacc :3)
- Fixed Issue with certain Games not having a File Version attached to the EXE.
- Fixed Small Issue with Thief Simulator.
- Added MetroUI, Fody, and new revised Dark Theme to Installer. (Credits to DubyaDude ^.^)
- UnityCrashHandler now terminates upon running with MelonLoader.
- Added Analytics Disabler.
- Added Oculus and Facebook Tracking URLs to Analytics Disabler.
- Added Fallback System for downloading Unity Dependencies needed for Unstripping.
- Moved LightJson under its own Namespace as MelonLoader.LightJson.
- Installer now correctly displays Download Percentage. (Credits to charlesdeepk :D)
- Installer now correctly displays Percentage of Zip Extraction.
v0.2.3:
- Added Unity 2019.3.4 Dependencies.
- Temporarily Fixed Issue with TLS Fix on Certain Il2Cpp Unity Games.
- Added Launch Option "--melonloader.agfvunhollower" that Forces the Assembly Generator to use a Specified Version of Il2CppAssemblyUnhollower.
- Added Location property to the MelonMod class.
- Revised Plugin System.
- Fixed Issue causing the Assembly Generator to constantly Regenerate every time a Game Launched.
- Installer now creates the Plugins folder.
- Revised MelonMod class to use a new MelonBase.
- All Commonly used Methods and Properties that both MelonMod and MelonPlugin use have been moved to MelonBase.
- Plugins now use their own Attributes.
- Fixed Issue that let Plugins load as Mods when placed in the Mods folder and vice-versa.
- Added better Legacy Version handling for "--melonloader.agfvunhollower".
- Added Clearer Display Text to State that DLL Status is Game Compatibility.
- Also call Harmony patches if IL2CPP methods get called using reflection / il2cpp_runtime_invoke. (Credits to zeobviouslyfakeacc :3)
- Fixed Issue with Harmony Patches on Virtual Methods. (Credits to zeobviouslyfakeacc :3)
- Improved the Harmony error message if the unhollowed target method is not backed by an IL2CPP method. (Credits to zeobviouslyfakeacc :3)
- Fixed Issue with Harmony AccessTools not being able to resolve the no-args constructor if a static constructor exists. (Credits to zeobviouslyfakeacc :3)
- Added Support for Mono Debuggers.
- Mono JIT Domain on Il2Cpp Games should now parse Command Line arguments properly.
- Forced Installer to reinstall the entire MelonLoader folder.
- Moved all Console and Log Functionality to Native Exports.
- Updated Il2CppDumper to v6.3.0.
- Updated Il2CppDumper Config Fix in the Assembly Generator to support Il2CppDumper v6.3.0.
- Added Temp File Cache to Assembly Generator.
- Re-enabled Launch Option "--melonloader.devpluginsonly".
- Fixed Issue with Certain Mono Games not having OnApplicationStart called.
- Added Unity 2018.4.2 Dependencies.
- Fixed Debug Compilation Issue with Console.
- Added Launch Option "--melonloader.hidewarnings" that will Hide Warnings from Displaying in Normal Console. (Debug Console ignores this Launch Option.)
- Fixed Issue with Support Modules not Unloading their Components properly when OnApplicationQuit is called.
- Fixed Mistake with Error Catching Console Creation.
- Log Spam Shield will now Disable itself when MelonLoader is using Debug Mode/Console.
- Log Spam Shield has now been moved to the Native Logger.
- Added Launch Option "--melonloader.maxwarnings" for Setting the Max Amount of Warnings for the Log Spam Shield. (Debug Console ignores this Launch Option, Default is 100, 0 to Disable.)
- Added Launch Option "--melonloader.maxerrors" for Setting the Max Amount of Errors for the Log Spam Shield. (Debug Console ignores this Launch Option, Default is 100, 0 to Disable.)
- Fixed Memory Leak in Log Spam Shield.
- Fixed Issue with Exports.
- Moved DLL Status to its own Enum.
- Added "Compatibility" property to MelonBase.
- Removed "IsUniversal" property from MelonBase.
- Fixed Issue with Incompatible Plugins and Mods still being used after Logging.
- Added Unity 2018.4.23 Dependencies.
- Fixed Issue with Console.h / Console::IsInitialized().
- Added Tomlyn to ModHandler for TOML Parsing.
- Moved Tomlyn to its own Namespace under MelonLoader.Tomlyn.
- Added Unity 2018.3.14 Dependencies.
- Added Unity 2019.2.16 Dependencies.
- Added Tomlyn to Assembly Generator for TOML Parsing.
- Cleaned up Config Handling in Assembly Generator.
- Fixed Issue with Corrupt Tomlyn Lib.
- Added Dependency Graph System for Plugins and Mods. (Credits to zeobviouslyfakeacc :3)
- Fixed Issue with Plugins still calling OnPreInitialization even when Incompatible. (Credits to zeobviouslyfakeacc :3)
- Added Better Plugin and Mod Cleanup when OnPreInitialization or OnApplicationStart fails. (Credits to zeobviouslyfakeacc :3)
- Switched Assembly Generator Config from JSON to TOML.
- Assembly Generator Config will now be saved to a file named "config.cfg" instead of "config.json".
- Fixed Issue with Tomlyn in the ModHandler.
- Added Unity 2020.1.0 Dependencies.
- Added Temporary Warning for Missing Dependencies. (Credits to zeobviouslyfakeacc :3)
- Added MelonOptionalDependencies Attribute. (Credits to zeobviouslyfakeacc :3)
- Fixed compilation issues on .NET Framework 3.5. (Credits to zeobviouslyfakeacc :3)
- Implemented 'Populate' methods to TinyJSON to de-serialize JSON into an existing object. (Credits to zeobviouslyfakeacc :3)
- Reimplemented TinyJSON in AssemblyGenerator to be up to date with the one in the ModHandler.
- Static Linked Runtime Library to Reduce User Issues with Microsoft Visual C++ 2015-2019 Re-distributable. (Credits to knah :D)
- Updated Il2CppAssemblyUnhollower Download to v0.4.8. (Credits to knah :D)
- Fixed Issue with the RenderHelper of ModSettingsMenu causing Error when SupportModule Unloads their Component.
- SupportModules now properly Unloads their Component if no Plugins or Mods are loaded.
- Temporarily Disabled ModSettingsMenu.
- Added Launch Option "--melonloader.chromium" to turn the Console Color Magenta. (Thanks Chromium lol)
- Fixed Issue with Logger methods with Color Parameter being Overridden by RainbowMode or ChromiumMode.
- Added Unity 2019.3.5 Dependencies.
- Added Unity 5.6.7 Dependencies.
- Added Unity 5.6.3 Dependencies.
- Changed Launch Option "--melonloader.chromium" to "--melonloader.magenta".
v0.2.2:
- Downgraded Installer to .NET Framework 4.7.2. (Credits to knah :D)
- Added Error Messages to Installer. (Credits to knah :D)
- Added Proper Threading to Installer. (Credits to knah :D)
- Installer now creates a Mods folder if none exists.
- Fixed Installer Form Size.
- Fixed Issue with Label in Installer Form not Auto-Centering.
- Fixed Build Information for Installer.
- Moved Plugins to its own separate Plugins folder.
- Installer now creates a Plugins folder if none exists.
- Installer now properly installs the Latest Version instead of a Predetermined Version.
- Fixed and Re-Enabled --melonloader.hideconsole.
- Added Log to Unity Debug to Signify to Developers that a Game has been Modded.
- Fixed SSL/TLS issue with the Assembly Generator. (Credits to zeobviouslyfakeacc :3)
- Fixed Crash Issue with Harmony when Patching Methods Multiple Times or when a Method happens to be null. (Credits to zeobviouslyfakeacc :3)
- Made the Loaded Mods List public.
- Fix ModPrefs.SaveConfig() overriding previous SetString/Bool/etc calls. (Credits to knah :D)
- Fixed SSL/TLS Issue with the Installer.
- Fixed Issue with Games that don't have Assembly-CSharp.
- Added a check and a warning for if the OS is older than Windows 7.
- Updated Il2CppAssemblyUnhollower Download to v0.4.4. (Credits to knah :D)
- Cleaned up version.dll.
- version.dll Proxy will now look for version_original.dll next to the EXE before loading from System32.
- Small change to version.dll to Prevent Crashing when MelonLoader.dll fails to load.
- Revised Loading System to work without needing Signatures.
- Reorganized Installation Folder Structure.
- Fixed Issue with Signature-less System on Pre-2017 Unity Versions.
- Fixed Issue with Support Modules not loading on Unity Versions older than 5.3.
- Fixed Issue Loading Mono Module.
- Fixed Issue with OnApplicationStart getting called even when the Assembly Generator fails.
- Switched Assembly Generator to Process Based Execution.
- Fixed Mistake with Assembly Generator not returning false when Execution fails.
- Fixed Directory Issue with Assembly Generator.
- Updated Il2CppAssemblyUnhollower Download to v0.4.5.
- Added new Launch Option --melonloader.devmodsonly.
- Added Unity 2018.4.16 Dependencies.
- Plugins now only call OnPreInitialization, OnApplicationStart, OnApplicationQuit, and OnModSettingsApplied.
- Revised Installer Design.
- Fixed Issue with Plugin Loading.
- Fixed OnLevelWasLoaded and OnLevelWasInitialized on Unity Versions lower than 5.3.
- Fixed GetActiveSceneIndex for Pre2017.2 Support Module.
- Re-added TinyJSON to ModHandler.
- Moved TinyJSON to its own Namespace.
- Fixed SupportModule Issue with Pre-2017 Unity Games.
- Added Force-Regeneration to Assembly Generator.
- Added Launch Option --melonloader.agregenerate.
- Added Support for Mods to Harmony Patch using Harmony Attributes.
- Fixed Issue with Assembly Generator losing output lines. (Credits to knah :D)
- Fixed Issue with Assembly Generator failing on paths with spaces. (Credits to knah :D)
- Fixed SSL/TLS issues in Mods for Il2Cpp games. (Credits to knah :D)
- Updated Il2CppAssemblyUnhollower Download to v0.4.6. (Credits to knah :D)
- Improved String Support for Harmony in Il2Cpp Games. (Credits to zeobviouslyfakeacc :3)
- Added Harmony Support for null Il2Cpp Argument Values. (Credits to zeobviouslyfakeacc :3)
- Added Harmony Support for ref Types in Il2Cpp Games. (Credits to zeobviouslyfakeacc :3)
- Fixed Crash Issue when Exception is thrown from C# Code. (Credits to zeobviouslyfakeacc :3)
- Updated Method Targeting in Il2Cpp Games. (Credits to zeobviouslyfakeacc :3)
- Installer now Downloads and Installs Required VC Redist.
- Fixed Invalid Handle Issue with Console Coloring.
- Added Embedded SharpZipLib to ModHandler.
- Fixed Zipped Mod Support.
- Moved SharpZipLib in ModHandler to its own Namespace.
- Fixed Issue with Zipped Mod Support when using --melonloader.devmodsonly.
- Added Launch Option --melonloader.devpluginsonly.
- Updated Il2CppAssemblyUnhollower Download to v0.4.7. (Credits to knah :D)
- Launch Option --melonloader.quitfix has been changed to --quitfix.
- Temporarily Disabled Plugins.
- Temporarily Disabled Launch Option --melonloader.devpluginsonly.
- Added Unity 2018.1.9 Dependencies.
- Added Unity 2019.2.17 Dependencies.
- Added Unity 2019.2.21 Dependencies.
- Regenerated Unity Dependencies Zips.
- Fixed Issue with --melonloader.devmodsonly.
- Disabled VC Redist Installation in Installer.
- Fixed Issue with Installer not running as Administrator.
- Fixed Installer UAC Issue.
v0.2.1:
- Overwrite files when copying freshly generated assemblies. (Credits to knah :D)
- Implemented auto-download of required tools for Il2Cpp games. (Credits to knah :D)
- Fixed Config Issue causing Assembly to always need to Regenerate.
- Added an Installer.
- Fixed Console Display Issue.
- Temporarily disabled --melonloader.hideconsole.
v0.2.0:
- Fixed Issue with the Console still showing as Closed-Beta.
- Fixed Issue with not having MelonLoader.ModHandler.3.5.dll included in the Release zip.
- Fixed support for 2018.4.11f1 and Ori and the Will of the Wisps. (Credits to Hector ^.^)
- Added 2018.4.11f1 Unity Dependencies. (Credits to Hector ^.^)
- Removed Unity Dependencies from Release Build. (No Longer Needed)
- Fixed Issue with MelonCoroutines not allowing a yield of Coroutine within a Coroutine. (Credits to Slaynash :3)
- Revised README.MD.
- Changed the Hook and Unhook Internal Calls in MelonLoader.Imports from internal to public to expose them and allow them to be used by Mods.
- Revised CHANGELOG.MD.
- Added Built-In QuitFix under the Launch Option --melonloader.quitfix (For Games like VRChat where the Process Hangs after telling it to Exit)
- Added Stop Methods to MelonCoroutines. (Credits to Slaynash :3)
- Fixed Error Handling in MelonCoroutines. (Credits to Slaynash :3)
- Fixed Issue with MelonCoroutines when using Non-Yielding Coroutines. (Credits to Slaynash :3)
- Added Support for Method Unstripping through Il2CppAssemblyUnhollower to MelonLoader.AssemblyGenerator.
- Replaced the Doorstop winmm.dll with version.dll.
- Fixed Compatibility with Il2Cpp Games for 0Harmony in MelonLoader.ModHandler. (Credits to zeobviouslyfakeacc :D)
- Fixed Issue with 0Harmony not Unpatching Methods when Unloading.
- Fixed Incompatibility Issue between 0Harmony in MelonLoader.ModHandler and Mono Game Support.
- Added Event Fix for knah's Unhollower Logging.
- Fixed Null Reference Exception Error when using MethodInfo of Generated Assembly Methods for 0Harmony.
- Removed NET_SDK.
- Added Custom Component System for the ModHandler.
- Added Preload Support for Mods to Load before the Game Initializes.
- Added OnPreInitialization for Mods that Preload.
- Split support for Mono and Il2Cpp into their own Support Modules. (Credits to knah :D)
- Fixed Issue with OnSceneLoad in Il2Cpp Support Module. (Credits to knah :D)
- Split MelonCoroutines to integrate Support Module support. (Credits to knah :D)
- Fixed Issues with needing the ModHandler compiled under a certain .NET Framework. (Credits to knah :D)
- Fixed Issue with OnGUI.
- Fixed Compatibility Issues with SCP Unity.
- Fixed Issue with version.dll causing UnityCrashHandler to crash.
- Fixed Compatibility Issues with Hot Dogs, Horseshoes & Hand Grenades.
- Added Pre 2017 Mono Support Module.
- Made Normal Console Open by Default.
- Removed Launch Option "--melonloader.console".
- Added Launch Option "--melonloader.hideconsole" to Hide the Normal Console.
- Cleaned up Il2Cpp Imports.
- Cleaned up Mono Imports.
- Revised Command Line Parsing.
- Fixed Issue with the Log Cleaner deleting Logs that were not made by MelonLoader.
- Added Launch Option --melonloader.maxlogs. Sets the Max Logs for the Log Cleaner. Set as 0 to Disable the Log Cleaner.
- Added Global Exception Handler to the Mono Domain.
- Added Assembly Generation Integration.
- Fixed Illegal Characters in Path Error.
- Temporarily Disabled Zipped Mod Support.
- Added Log Error Limiter.
- Re-Enabled Download Links in Mod Logs.
- Fixed Issue with TestMod not loading on Mono Games.
v0.1.0:
- Moved Exports in MelonLoader.ModHandler to Mono Internal Calls.
- Cleaned up Hooking for MelonLoader Internals.
- Added a new cleaner and faster Internal Call Resolver for an Assembly Generator Test.
- Added 2018.4.19f1 Unity Dependencies.
- Added additional check for MelonLoader.ModHandler needing to be built with .NET 3.5.
- Added 2018.4.20f1 Unity Dependencies.
- Changed lists to arrays for caching classes, fields, methods, events, and etc. (Credits to Kronik ^.^)
- Changed foreach to statements to for statements for faster iteration. (Credits to Kronik ^.^)
- Made certain fields "readonly" (Name, Flags, etc) as it won't be reassigned. (Credits to Kronik ^.^)
- Made SDK and Imports class static. (Credits to Kronik ^.^)
- Cleaned up MelonLoader.ModHandler to use less Linq when possible for improved performance. (Credits to Kronik ^.^)
- Added CreateInstance method to Il2Cpp_Class in NET_SDK.Reflection. (Credits to Kronik ^.^)
- Fixed SystemTypeToIl2CppClass in NET_SDK.Il2Cpp.
- Cleaned up TestMod.
- Added VRChat_OnUiManagerInit for VRChat Mods.
- Made MelonModGameAttribute work as intended and MelonLoader.ModHandler will now only load Mods marked as Compatible or Universal.
- Temporarily removed the Guid attribute from the AssemblyInfo of both TestMod and MelonLoader.ModHandler.
- MelonMod now properly caches their respective MelonModInfoAttribute and MelonModGameAttribute.
- Fixed PointerUtils::FindAllPattern.
- OnLevelWasLoaded, OnLevelWasInitialized, OnUpdate, OnFixedUpdate, OnLateUpdate, and OnGUI have been fixed and now function properly.
- Cleaned up LoadLibraryW Hook.
- Cleaned up and Renamed Exports in MelonLoader.ModHandler.
- Added a HookManager system.
- Cleaned up and Combined all Internal Hooking into HookManager.cpp and HookManager.h improving compile time.
- Cleaned up and removed unused or otherwise unneeded includes improving compile time.
- Used regions to further clean up and organize HookManager.cpp.
- Added Status Log for when detecting if a Mod is Universal, Compatible, or Incompatible.
- Cleaned up the Mod Loading functionality of MelonLoader.ModHandler.
- Fixed Issue with the Compatibility Check when using multiple MelonModGameAttribute.
- Fixed Issue with OnLevelWasLoaded and OnLevelWasInitialized getting the wrong Scene Index and only running once then never again.
- Upgraded MelonLoader.ModHandler and TestMod to .NET v4.7.2. (As requested by Emilia :D)
- Made MelonModController use directly invokable delegates for faster invoking. (Credits to Kronik ^.^)
- Removed Unneeded Caching of MethodInfo in MelonModController.
- Added mono-2.0-boehm.dll to Mono Check.
- Added --melonloader.rainbow and --melonloader.randomrainbow as Launch Options. (As requested by Hordini :3)
- Redesigned the Logging system to be unified between MelonLoader and MelonLoader.ModHandler.
- Colorized Errors in both Consoles.
- Added the ability for Mods to set a Color when Logging.
- Fixed Issue with --melonloader.rainbow and --melonloader.randomrainbow not working when using --melonloader.console.
- Added Unload Functionality. Entirely unloads MelonLoader. (MelonLoader::UNLOAD() or MelonLoader.Imports.UNLOAD_MELONLOADER())
- Fixed Issue with using 1 or 0 for a boolean in ModPrefs.
- Fixed Issue with OnUpdate, OnFixedUpdate, and OnLateUpdate invoking too early.
- Fixed Issue with Unload Functionality not closing either Consoles.
- Added MelonCoroutines to handle Coroutine functionality for Mods on both Il2Cpp and Mono. (Credits to knah :D)
- Fixed Issue with Logger removing Old Logs when it shouldn't.
- Fixed Issue with OnLevelWasLoaded, OnLevelWasInitialized, and VRChat_OnUiManagerInit when using knah's UnHollower.
- Fixed Execution Order of OnApplicationStart to run before any of the other Mod Methods.
- Added Assertion Manager to handle MelonLoader Internals.
- Fixed Issue with MelonCoroutines throwing a Cast Exception for knah's UnHollower.
- Added Support for WaitForFixedUpdate and WaitForEndOfFrame to MelonCoroutines.
- Fixed Issue with MelonCoroutines throwing a Missing Method Exception for knah's UnHollower.
- Added 2019.3.6f1 Unity Dependencies.
- Fixed Internal Failure issues with RotMG Exalt and Unity 2019.3.6f1.
- Fixed Internal Failure issues with Pistol Whip and Unity 2019.2.0f1.
- Fixed Issue with MelonLoader.ModHandler complaining about Mod Libraries.
- Fixed Issue with MelonCoroutines processing a yield of null as the same as WaitForFixedUpdate.
- Made MelonMod use directly invokable virtuals and overrides for faster invoking. (As requested by knah :3)
- Removed MelonModController from MelonLoader.ModHandler.
- Made MelonLoader.ModHandler look for the MelonMod subclass in the Mod's MelonModInfoAttribute instead of searching the entire Assembly. (As requested by knah :3)
- Fixed Issue with Logger Imports in MelonLoader.ModHandler being passed garbage strings.
v0.0.3:
- General Stability and Optimization Improvements.
- Added Support for Mono based Games.
- Added MUPOT Mode which forces Il2Cpp games to run under Mono. This Mode is still extremely Experimental.
- Logger has been renamed to MelonModLogger to prevent conflict with UnityEngine.Logger.
- Fixed Crash issue when using System.Type in MUPOT Mode.
- MelonModInfo Attribute has been changed to an Assembly Attribute.
- Fixed Issue with MelonModLogger not getting the Mod Name when used outside of the main class.
- FileInfo in the TestMod has been renamed to BuildInfo so it won't conflict with the System.IO.FileInfo class.
- Added 0Harmony Integration and Support.
- Modified MelonLoader.ModHandler to use a Component based system in MUPOT Mode and Mono based games.
- Fixed Issue preventing OnUpdate from being called in MUPOT Mode and Mono based games.
- Fixed Issue preventing OnApplicationQuit from being called in MUPOT Mode and Mono based games.
- Fixed Conflict issue triggering Unity's Single Instance function in MUPOT Mode.
- Added OnLevelWasLoaded, OnLevelWasInitialized, OnUpdate, OnFixedUpdate, OnLateUpdate, and OnGUI for Mods in MUPOT Mode and Mono based games.
- Bug that prevented Debug Compilation is now fixed.
- Fixed Issue that caused Unity Crash Handler to initialize MelonLoader twice.
- Fixed Runtime Initialization issue with Audica that caused crashes.
- Fixed Execution Order of MelonLoader.ModHandler.
- Fixed Issue with Mono Game Support due to Mono DLL naming.
- Fixed Issue with Internal Calls through MUPOT Mode.
- Added better Mod Exception Handling and Logging.
- Added Dependencies for Unity 2019.1.0b1.
- Added Dependencies for Unity 2017.4.28f1.
- Added Dependencies for Unity 2018.4.13f1.
- Added Dependencies for Unity 2018.1.6f1.
- Added Dependencies for Unity 2019.2.0f1.
- Fixed Incompatibility issue with Unity Dependencies between x86 and x64.
- Added Log in MelonLoader.ModHandler for Unity Version.
- General Code Cleanup.
- Fixed OnApplicationQuit not working without MUPOT Mode.
- Fixed Mono Game Support for games that don't use MonoBleedingEdge. (MelonLoader.ModHandler and Mods must be compiled with .NET 3.5 Framework)
- Fixed Execution Order when using MUPOT Mode.
v0.0.2:
- Added NET_SDK to be built into MelonLoader.ModHandler as the designated Il2Cpp Wrapper.
- Fixed Issue with Mods and Logs folders not being in the correct place next to the game's exe.
- Fixed Issue with the ModPrefs not calling the OnModSettingsApplied method of Mods.
- Replaced old ModPrefs debug log message left in from my VRChat mod.
- Fixed Issue with Audica crashing when trying to use MelonLoader.
- Added Unity 2018.4.6f1 Dependencies.
- Fixed bug with Launch Options.
- Fixed Pathing issue that caused games like Boneworks to crash.
- Fixed Issue where Environment.CurrentDirectory wasn't being set properly.
- Clean-up and Additions made to NET_SDK. (Thanks Sc4ad :D)
- Added SteamVR and OculusVR Dependency DLLs to MelonLoader/Managed.
- Added TestMod to Project Files.
- Added Attribute StackTrace System to Logger. (As requested by Camobiwon :3)
- Replaced Spaces in Names for the Attribute StackTrace System with Underscores.
- Fixed the bug that caused the Logger from MelonLoader.ModHandler to not properly output when using the Debug Console.
- Added SystemTypeToIl2CppClass method to NET_SDK.Il2Cpp.
- Crash Issue with Game.DontDestroyOnLoad has been fixed and it now works.
- Fixed Il2Cpp_Field where SetValue does not function on a instance object. (Thanks DubyaDude ^.^)
- Fixed Compile Version conflict with the 2 Consoles.
MelonLoader [DEBUG] & MelonLoader.ModHandler [RELEASE] = Debug Console
MelonLoader [RELEASE] & MelonLoader.ModHandler [DEBUG] = Normal Console
MelonLoader [DEBUG] & MelonLoader.ModHandler [DEBUG] = Debug Console
MelonLoader [RELEASE] & MelonLoader.ModHandler [RELEASE] = Left up to the Launch Options
v0.0.1:
- Initial Commit and Rewrite.