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

LavaGang/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.