-
Notifications
You must be signed in to change notification settings - Fork 10
Modfiles | modfile.txt
A modfile can be any plaintext file, but would typically be a .txt
Mods that are directly imported by the importer need to have a modfile.txt
in its Mod Folder
Mods intended as modules for other mods / included by other mods may not need this main modfile.
The mod importer (modimporter.py) will read the modfile.txt
file in your mod's folder and implement the changes described by commands in it.
Syntax highlighting for modfiles for Notepad++ UDL can be found here
Any modfile is read with the following rules:
- The unignored portions of each line is a command
- Empty commands are ignored
- Any of the below is only relevant if not enclosed by quotes
"
on the same line -
-:
begins a multiline comment, everything including and beyond is ignored until and including:-
-
::
begins a line comment, the entire line from and including this point is ignored -
;
forces the beginning of a new command on the same line -
,
acts like a space and are interchangable - Indentation and excess spacing is ignored
The simplest file to import all the lua scripts in the folder Scripts
in your mod's folder:
Import "Scripts"
The generic anatomy of a modfile may look something like this:
-: Mod Name -
Author(s) -
This mod does something...
Installation:
...
...
:-
Include <optional modules>
To <files>
Load Priority <N>
<Payload Command> <files or folders>
...
<Payload Command> <files or folders>
Include <optional modules>
Include
<filenames>
Parses the files as modfiles, executes everything in them in order before continuing to other commands.
You can use this to defer loading your mod to a separate file allowing users to quickly disable the mod from the main modfile.
Eg:
Include "subfile.txt"
To
<filenames>
Sets any future payload commands to target these files
Defaults to the best generic choices for the game for lua scripts.
Load
Priority
<N>
Sets the priority of future payload commands
Default priority is 100, lower priority is loaded first.
Import
<files or folders>
File Format: Lua
Adds the files as import statements to the target files.
SJSON
<files or folders>
File Format: SJSON
Merges the SJSON of the files into the SJSON of the target files.
XML
<files or folders>
File Format: XML
Merges the XML of the files into the XML of the target files.