Skip to content

Mod Types

Sheep-y edited this page Jan 25, 2021 · 17 revisions

This page is for mod authors. Modnix supports a few type of Mods:

Table of Contents

Modnix 3 Mod Packs

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 3 Action mods

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 3 DLL mods

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
These mods are displayed as type "Mx3" in the GUI. The 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 2 DLL mods

Modnix DLL mods are dlls that have none of the above Mx3 methods, and either of these public methods:

  • SplashMod
  • MainMod
These mods are displayed as type "Mx2" in the GUI. (Or just "DLL" on and before Modnix 2.) The 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.

PPML dll mods

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.

PPML+ dll 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

Hybrid mods

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.

Clone this wiki locally