Manual:Data Files

's modding support extends to several data files that can be read and interpreted to add new functionality to the game.

The files are in two main locations:  and in modding folders. The files located in Data are from the vanilla version of the game.

Types of Natively Supported Files

 * Lua files are used for logic implementation, through objects exposed by MoonSharp.
 * .dll files are used for logic implementation, through Harmony's patching. There are no extra .dll files in the base game, aside from those needed for the game to run.
 * XML files are used for entity implementation and to use behaviors declared with the two above files.
 * .png files are used for graphical implementation. They are used with XML files.

XML Files
XML files are used to instantiate entities and give them properties. Whether writing new content or overwriting vanilla content, XML files must use the name of an existing file in order to be parsed.

Artifacts.xml
Artifacts.xml contains every single artifact in the game.

Battles.xml
Battles.xml contains locations and prefabs of enemy spawns.

Enemies.xml
Enemies.xml contains all the enemies in the game, including bosses.

Heroes.xml
Heroes.xml stores the playable characters and their stats, including their kits.

Pacts.xml
Pacts.xml contains every single pact in the game.

Spells.xml
Spells.xml contains every single spell in the game.

Structures.xml
Structures.xml contains every structure in the game.

WorkshopItemInfo.xml
WorkshopItemInfo.xml contains metadata for Steam Workshop mods. As per its description, it has no base game counterpart.

Zones.xml
Zones.xml contains information about what regions can appear in the game, and what enemies can spawn in it.

Lua Files
Any Lua file in a mod directory will be parsed by the game upon mod load.

Artifacts.lua
Artifacts.lua contains Lua functions for artifact effects.

Effects.lua
Effects.lua contains Lua functions for many of the effects called by Artifacts.xml.

Lib.lua
Lib.lua contains many Lua functions that are used by other Lua files. This is intended to be the primary library of Lua files.

Spells.lua
Spells.lua contains Lua functions that are used for spell actions.

NAME.png
NAME.png contains image data. It is called ingame by an item with the same itemID or being with the same beingID. For example, if Sniper was the base spellID, the game would look for a file called Sniper.png. The directory it looks in is dependent on whether it's from a mod (root mod directory) or the base game.

NAME_AnimInfo.xml
NAME_AnimInfo.xml contains animation data by calling several images.