-
Notifications
You must be signed in to change notification settings - Fork 6
Mod Types
This page is for mod authors. Modnix supports a few type of Mods:
A Mod Pack is a package that contains other mods, optionally preconfigured.
The mod pack contains a mode_info.js,
listing its included mods in the Mods
field.
This allows non-coders to bundle and config other mods to achieve a unified vision, or simply to save users the trouble of trying each individual mods one by one.
Modnix Actions mods are plain-text .js mods that have one or more "Actions" specified.
These mods depends on other mods to handle or process the actions, for example Scripting Library.
The actions must be loosely parsable as json, but their specs and actual result depends on the action processor. Modnix itself supports no actions that would affect the game.
Because Action mods is being developed, there is no time to write the spec yet. See Laser On Fire for an example that use the Scripting Library to modify weapon damage and ability.
Modnix DLL mods are dlls that have one or more of these public methods:
HomeMod/HomeOnShow/HomeOnHide
GameeMod/GameeOnShow/GameeOnHide
GeoscapeeMod/GeoscapeeOnShow/GeoscapeeOnHide
TacticaleMod/TacticaleOnShow/TacticaleOnHide
Init
, Initialize
and MainMod
methods will not be executed for these mods,
but they may be included for backward compatibility with PPML and Modnix 2.
See Mod Phases and See DLL Specs for details.
Modnix DLL mods are dlls that have none of the above Mx3 methods, and either of these public methods:
SplashMod
MainMod
Init
and Initialize
methods will not be executed for these mods,
but either may be included for backward compatibility with PPML.
(Including both in the same class is pointless; the PPMLs are incompatible.)
A mod can support both Modnix 2 and Modnix 3, in which case it runs in the highest mode. There are no differences other than the loading phase(s). Modnix 2 mods can use or support Modnix 3 features such as new APIs, Actions, Disarm and Rearm etc.
See Mod Phases and DLL Specs for details.
Any dlls that do not have the above methods, but have an Init
method,
are considered a PPML v0.1 mod.
These mods are displayed as type "PPML" in the GUI,
and will be loaded in the MainMod
phase,
the same time as original PPML.
The Initialize
methods, if any, will not be executed for these mods.
Any dlls that do not have the above methods,
but have an Initialise
method
in a class that implements PhoenixPointModLoader.IPhoenixPointMod
,
are considered a PPML v0.2 mod.
These mods are displayed as type "PPML+" in the GUI,
and they requires special support from Modnix or the correct PPML version to run.
They will be loaded in the MainMod
phase,
Modnix Loader embeds PPML+, so users should not install it themselves.
Otherwise, all PPML(+) mods may be loaded twice.
Because Modnix aims to not touch the game in anyway other than loading mods, console-related PPML+ features are not natively supported. Instead, use Debug Console to enable console and support mod-added console commands.
Support table:
- Modnix 2.1 and up supports PPML 0.2
- Modnix 2.0 supports PPML 0.3
- Modnix 1.0 supports PPML 0.2
A mod may have both Actions and DLL.
For example, a mod can implements ActionMod in a DLL, then write actions that depend on it.
They will be displayed as "Act+*" in the GUI, such as "Act+Mx3", "Act+PPML+" etc.