-
Notifications
You must be signed in to change notification settings - Fork 137
LEGACY HarmonyPatcher Vortex Harmony Mod Loader Mod Types
Mod types are currently identified (quite naively, but this will change) using the mod’s manifest file; the mod loader parses the manifest and verifies whether it matches the expected object schema/data for each registered mod type. If a manifest is successfully matched to a Mod Type, the mod loader will load and invoke the mod’s entry-point as defined by the Mod Type. Any unmatched mods will not be loaded.
Vortex Mod Type - this is the default Vortex mod type, it exposes the mod’s data, a series of logging functions and GUI/Unity specific helper methods. UMM Mod Type - Experimental Unity Mod Manager Mod support is available and should be able to support any games developed in Unity 2018 and above (.NET 4.0) Please note that the Mod Loader needs to disassemble and re-assemble any UMM mods prior to being able to load them correctly. QMM Mod Type used for the Subnautica games is still in development/testing.
Exposed mod types refer to the objects that are actually exposed to mod assemblies and to Vortex’s Unity UI module. This is done primarily for encapsulation reasons, but also to mimic other mod managers when trying to load mods which are not natively built for Vortex’s mod loader.
Currently we use:
- VortexMod (Exposed Vortex mod type)
- ModEntry (Exposed Unity Mod Manager mod type)
- QMod (Exposed QMOD Manager mod type)
It’s important to understand that aside from the patch method calls - which are injected directly into the game’s assembly by the patcher executable - Vortex will not tamper, or persistently change the game’s code in any way, unless a mod is explicitly changing IL instructions when the mod loader invokes the mod’s entry-point. If IL level changes are required, please use Harmony Transpilers instead.
Harmony lib patches are designed to keep the original method intact and allows for multiple patches to co-exist without conflicting with each other while making mod removal as easy as deleting the mod’s folder. That’s all fine and dandy unless your mod is customizable, in which case you need to be able to save the mod’s state/user’s customized options, so he’s not forced to make the same changes each time he runs the game.
For this purpose, the mod loader provides an option to serialize/deserialize mod settings into json or xml documents using generic pre-defined settings classes. It is the mod author’s responsibility to load/manage/save these settings throughout his mod to ensure that it functions correctly.
This wiki and the Vortex Readme document contains a lot of information, please take your time and read these instructions carefully.
We provide detailed changes for each Vortex release.
If you have any questions about Vortex usage or want to share some information with the Vortex community, please go to one of the following places:
- About
- Install
- Troubleshooting
- Troubleshooting
- Developers
- Troubleshooting
- Developers
- Valheim
- Bannerlord
- BepInEx
- How to test a game extension
- How to package a game extension
- How to upload an extension to Nexus
- How to submit a game extension for review
Warning
The below documentation has not been checked for quality since migrating to GitHub Wiki and the information contained is potentially out of date and\or repeated.
- Frequently Asked Questions
- Getting Started
- Deployment Methods
- Downloading from Nexus Mods
- Managing File Conflicts
- Managing your Load Order
- Managing Save Games
- Setting up Profiles
- Keyboard Shortcuts
- How to create mod installers
- External Changes
- The Vortex Approach to Load Order
- Moving Vortex to a new PC
- Modding Skyrim Special Edition with Vortex
- Modding Mount & Blade II: Bannerlord with Vortex
- Modding Monster Hunter: World with Vortex
- Modding The Witcher 3 with Vortex
- Modding Baldur's Gate 3 with Vortex
- Modding Stardew Valley with Vortex
- Modding Valheim with Vortex
- Error Messages
- Misconfigured Documents Folder
- .NET 6 Install Issues
- Downgrading Extensions
- Command Line Parameters
- Introduction to Vortex extensions
- Creating a game extension (JavaScript)
- Creating a theme
- Game detection
- Adding a main page
- Adding a load order page
- Building UI with Vortex and React
- Packaging an extension
- Introduction
- Packaging extensions
- Project management
- Harmony Patcher Exectuable
- Vortex Harmony Mod Loader
- Setting up your dev environment
- Creating a theme
- Creating a game extension