Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Harmony Patcher Executable #14

Open
IDCs opened this issue Nov 3, 2020 · 0 comments
Open

Harmony Patcher Executable #14

IDCs opened this issue Nov 3, 2020 · 0 comments
Labels
Article General Harmony Patcher Anything tied to Vortex's Harmony Patcher API

Comments

@IDCs
Copy link
Contributor

IDCs commented Nov 3, 2020

The executable should only be used to inject/remove the mod loader method call into/from a game’s assembly; each stage will deploy/remove all libraries required by the mod loader to function correctly. Optionally, if a Unity3D assembly is detected, the patcher will inject the Vortex In-Game Overlay (VIGO) loader method as well.

Please note that modern Unity3D games (likely version 2018 and above) are currently distributed with a restricted Mono runtime library which disables reflection. The patcher will attempt to identify games with tampered runtime libraries and replace them with untampered versions. Please inform us if/when this functionality fails to replace the library.

Given that the patcher is a standalone executable, it is possible to execute it outside Vortex but please note that the mod loader is not designed to install or manage mods on its own.

Patcher arguments

Argument Description
‘-h’ Displays the help screen.
‘-g’ or ‘extension=’ i.e.

‘./VortexHarmonyExec.exe -g “../game-untitledgoose”’

(optional) Path to the game extension’s folder. Currently this is used to retrieve game-specific UI asset bundles stored inside the game’s extension folder.
‘-m’ or ‘managed=’ i.e. ./VortexHarmonyExec.exe -m “../path_to_game_assembly” Used to define the full file path to the game assembly we wish to patch.

Alternatively just a folder path can be defined and the patcher will assume we’re attempting to mod a Unity3D game and will try to load “Assembly-CSharp.dll”

‘-i’ or ‘install=’ i.e. ‘-i “../lib/”’ Path to the patcher’s built dependencies - these are copied over to the game’s dataPath.
‘-e’ or ‘entry=’ i.e. ‘-e “NameSpace.ClassName::MethodName”’ The entrypoint for the patch. This defines the function where we wish to insert/inject the patcher function call for the game to use.
‘-r’ i.e. ‘./VortexHarmonyExec.exe -r’ (optional) Adding the -r argument will inform the patcher that it needs to attempt to remove the Vortex patch. The entrypoint and game assembly still need to be provided.

Any errors which may have occurred during patch injection will be logged inside Vortex’s appdata folder

“C:\Users{YOUR_USERNAME}\AppData\Roaming\Vortex\harmonypatcher.log”

@IDCs IDCs added Article General Harmony Patcher Anything tied to Vortex's Harmony Patcher API labels Nov 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Article General Harmony Patcher Anything tied to Vortex's Harmony Patcher API
Projects
None yet
Development

No branches or pull requests

1 participant