Skip to content

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

License

Notifications You must be signed in to change notification settings

slxdy/MelonLoader

 
 

Repository files navigation



GENERAL INFORMATION:

Usage Guides:
INSTALLER
MANUAL USE
Example Projects:
TestPlugin
TestMod
Nightly Builds:
master
alpha-development
universality

❤️ SPECIAL THANKS TO OUR WONDERFUL PATRONS ❤️

  • Givo
  • Florian Fahrenberger
  • Python
  • SirCoolness
  • SlidyDev

REQUIREMENTS:

Il2Cpp Games:

On Windows, the .NET 6.0 Desktop Runtime will be installed automatically


HOW TO USE THE INSTALLER:

  1. Follow the Instructions in one of the Guides linked below.
Installer Guides:
INSTALL
UPDATE
RE-INSTALL
UN-INSTALL

HOW TO MANUALLY USE MELONLOADER:

UPDATE / RE-INSTALL:

  1. Follow the Steps to UN-INSTALL
  2. Follow the Steps to INSTALL

INSTALL:

  1. Make sure the Game is Closed and Not Running before attempting to Install.
  2. Make sure you have all the Requirements Installed before attempting to Install.
  3. Download MelonLoader [x86] [x64]
  4. Extract the MelonLoader folder from the MelonLoader Zip Archive to the Game's Installation Folder.
  5. Extract version.dll & dobby.dll from the MelonLoader Zip Archive to the Game's Installation Folder.

UN-INSTALL:

  1. Make sure the Game is Closed and Not Running before attempting to UN-INSTALL.
  2. Remove the version.dll file from the Game's Installation Folder.
  3. Remove the MelonLoader folder from the Game's Installation Folder.

These additional steps below are OPTIONAL if you want to do a FULL UN-INSTALL.

  1. Remove the Plugins folder from the Game's Installation Folder.
  2. Remove the Mods folder from the Game's Installation Folder.
  3. Remove the UserData folder from the Game's Installation Folder.

CONFIG:

MelonLoader has its own config file at ./UserData/Loader.cfg (you need to run MelonLoader at least once for it to appear).

Here is a list of the current config options (and their default values):

[loader]
# Disables MelonLoader. Equivalent to the '--no-mods' launch option
disable = false
# Equivalent to the '--melonloader.debug' launch option
debug_mode = true
# Only use this if the game freezes when trying to quit. Equivalent to the '--quitfix' launch option
force_quit = false
# Disables the start screen. Equivalent to the '--melonloader.disablestartscreen' launch option
disable_start_screen = false
# Starts the dotnet debugger (only for Il2Cpp games). Equivalent to the '--melonloader.launchdebugger' launch option
launch_debugger = false
# Sets the loader theme. Currently, the only available themes are "Normal" and "Lemon". Equivalent to the '--melonloader.consolemode' launch option (0 for Normal, 4 for Lemon)
theme = "Normal"

[console]
# Hides warnings from displaying. Equivalent to the '--melonloader.hidewarnings' launch option
hide_warnings = false
# Hides the console. Equivalent to the '--melonloader.hideconsole' launch option
hide_console = false
# Forces the console to always stay on-top of all other applications. Equivalent to the '--melonloader.consoleontop' launch option
console_on_top = false
# Keeps the console title as original. Equivalent to the '--melonloader.consoledst' launch option
dont_set_title = false

[logs]
# Sets the maximum amount of log files in the Logs folder (Default: 10). Equivalent to the '--melonloader.maxlogs' launch option
max_logs = 10

[unityengine]
# Overrides the detected UnityEngine version. Equivalent to the '--melonloader.unityversion' launch option
version_override = ""
# Disables the console log cleaner (only applies to Il2Cpp games). Equivalent to the '--melonloader.disableunityclc' launch option
disable_console_log_cleaner = false
# Forces the Il2Cpp Assembly Generator to run without contacting the remote API. Equivalent to the '--melonloader.agfoffline' launch option
force_offline_generation = false
# Forces the Il2Cpp Assembly Generator to use the specified regex. Equivalent to the '--melonloader.agfregex' launch option
force_generator_regex = ""
# Forces the Il2Cpp Assembly Generator to use the specified Il2Cpp dumper version. Equivalent to the '--melonloader.agfvdumper' launch option
force_il2cpp_dumper_version = ""
# Forces the Il2Cpp Assembly Generator to always regenerate assemblies. Equivalent to the '--melonloader.agfregenerate' launch option
force_regeneration = false
# Enables the CallAnalyzer processor for Cpp2IL. Equivalent to the '--cpp2il.callanalyzer' launch option
enable_cpp2il_call_analyzer = false
# Enables the NativeMethodDetector processor for Cpp2IL. Equivalent to the '--cpp2il.nativemethoddetector' launch option
enable_cpp2il_native_method_detector = false

LAUNCH OPTIONS:

  • These are additional Launch Options that MelonLoader adds to the Game.
  • These can be used to manipulate how MelonLoader works.
Argument Description
--no-mods Launches the Game without loading any Plugins or Mods
--quitfix Fixes the Hanging Process Issue with some Games
--melonloader.consolemode Changes the Theme Display Mode of the Console [ Default = 0 ]
--melonloader.consoleontop Forces the Console to always stay on-top of all other Applications
--melonloader.consoledst Keeps the Console Title as Original
--melonloader.hideconsole Hides the Console
--melonloader.hidewarnings Hides Warnings from Displaying
--melonloader.debug Debug Mode
--melonloader.maxlogs Max Log Files [ Default: 10 ] [ NoCap: 0 ]
--melonloader.loadmodeplugins Load Mode for Plugins [ Default: 0 ]
--melonloader.loadmodemods Load Mode for Mods [ Default: 0 ]
--melonloader.basedir Changes the Proxy's Load Directory for the Bootstrap
--melonloader.disablestartscreen Disable the Start Screen
  • These ones below are Unity Engine specific Launch Options.
Argument Description
--melonloader.unityversion Allows you to Specify the Version of Unity Engine
--melonloader.agfoffline Forces Assembly Generator to Run without Contacting the Remote API
--melonloader.agfregenerate Forces Regeneration of Assembly
--melonloader.agfregex Forces Assembly Generator to use a Specified Regex
--melonloader.agfvdumper Forces Assembly Generator to use a Specified Version of Dumper
--melonloader.disableunityclc Disable Unity Console Log Cleaner
  • These ones below are Cpp2IL specific Launch Options.
Argument Description
--cpp2il.callanalyzer Enables CallAnalyzer processor
--cpp2il.nativemethoddetector Enables NativeMethodDetector processor

PROXIES:

MelonLoader uses a proxy DLL to trick the game into loading itself on startup. This only applies for Windows.

  • The Proxy DLL is able to be Renamed to the Compatible File Names below.
  • By Default the Proxy is named as "version.dll".
  • For most Games the Default File Name should work perfectly fine.
  • Some Games may have you use a different Proxy File Name depending on the Architecture, Operating System, version of the Engine used by the Game, etc.
File Names:
version.dll
winhttp.dll
winmm.dll
dinput.dll
dinput8.dll
dsound.dll
d3d8.dll
d3d9.dll
d3d10.dll
d3d11.dll
d3d12.dll
ddraw.dll
msacm32.dll

LICENSING & CREDITS:

MelonLoader is licensed under the Apache License, Version 2.0. See LICENSE for the full License.

Third-party Libraries used as Source Code and/or bundled in Binary Form:

External Libraries and Tools that are downloaded and used at Runtime:

See MelonLoader Wiki for the full Credits.

MelonLoader is not sponsored by, affiliated with or endorsed by Unity Technologies or its affiliates.
"Unity" is a trademark or a registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere.

About

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.9%
  • C++ 0.1%