-
Notifications
You must be signed in to change notification settings - Fork 17
Configuring a Patcher at Startup
- AddPatch
- SetTypicalOpen (will be renamed to SetStandaloneOpen)
- Run
- SetAutogeneratedSettings
- AddRunnabilityCheck
- SetOpenForSettings
The main method of a patcher is dedicated to calling SynthesisPipeline, which is a builder that lets you customize how and what your patcher is going to run.
// A typical main method
public static async Task<int> Main(string[] args)
{
return await SynthesisPipeline.Instance
.AddPatch<ISkyrimMod, ISkyrimModGetter>(RunPatch)
.SetTypicalOpen(GameRelease.SkyrimSE, "YourPatcher.esp")
.Run(args);
}
The main method as created by the template system can be left as-is for a basic setup, but it can be customized to your needs from there.
Adds a Game Category to be handled by your patcher, and lets you decide what function should be called when your patcher is being run for that game. One AddPatch
is generally required, as it's the entry point into your patcher for the game you want to target.
This is an optional argument to an AddPatch
call, which will customize some settings related to that Patch operation.
- IncludeDisabledMods: Whether to include mods that are disabled on the LoadOrder object (default false)
- AddImplicitMasters: Whether to enable masters that are listed as disabled, but required by an active mod
- NoPatch: If toggled on, your patcher will skip the export step. Useful if your patcher is just modifying other unrelated files only.
- Cancel: (Advanced) If your app wants to be able to cancel an in-progress patching run, for some reason, a cancellation token can be given here.
- Inclusion/ExclusionMods: (Untested) Allows whitelisting or blacklisting mods from the load order
Determines what your patcher will do if it's run standalone, either via running the exe directly from the desktop, or more likely when running it from your IDE for testing.
It takes in which Game to run (if you're targeting multiple), and what mod name to export to.
Capstone call to the SynthesisPipeline builder which takes in the arguments given to your app when it started and runs the patcher given the rules you've specified. Nothing will happen if this is missing.
Associates a settings file with a settings object. This allows you to get easy autogenerated settings provided by Synthesis.
The main method just passes the arguments given your program to the Synthesis systems, which handles all the various commands that could be passed in. Generally, the main method can be left as-is.
Provides a callback to check if your patcher sees itself as having all the necessary things it needs to run, and block execution until those requirements are satisfied. Read More
This is a more advanced option, which allows your patcher to be opened as a settings editor. It requires you to modify your patcher project a lot, so that it is simultaneously a patcher executable as well as a UI application. If that is set up, then this call provides the entry point to know when to open your application as a UI for settings input.
- Home
- Overview
- Installation
- Typical Usage
- Multiple Output Targets
- Load Order and Previous Patchers
- Overriding Data Folder Path
- Blacklisting Mods
- Versioning
- Synthesis vs Mutagen
- .synth Files
- Other Dynamic Mod Generators
- Language Settings
- Running With Existing Saves
- Starting Into a Specific Profile
- Updating UI
- FAQ and Troubleshooting
- Patcher Types
- Developers
- Other