Quick Nav


Back To Top

Background Information

Most of my Subnautica mods contain configuration options to modify things ranging from numerical balancing to the presence of entire features. However, due to the nature of Subnautica modding, mod loading, and game data patching at runtime, many of these kinds of options are not feasible to use the ingame settings menus (even the ones dedicated to mod settings); Some are too complex to properly express in a slider or checkbox, and most of them control code that only runs during the mod loading, ie before the settings menu is even accessible.

As a result, I use a system based on the one in my FCE mods, where each mod, once installed, contains a config XML in its folder, named [modname]_Config.xml.

Structure

This file contains an XML node for each configurable property, of the following structure:
<!--Description of the setting and its effect-->
<SETTING_IDENTIFIER>
<value>SomeValue</value>
<defaultValue>SomeValue2</defaultValue>
<vanillaValue>SomeValue3</vanillaValue>
<minimumValue>SomeValue4</minimumValue>
<maximumValue>SomeValue5</maximumValue>
</SETTING_IDENTIFIER>


The only value you need or should change is the one inside the value tag; this is the one which is read by the config loader and controls the actual behavior ingame. The other parameters are there to help you choose proper and desirable values, and will not affect anything if changed in the config file.

Not all properties will contain all parameters, nor would this make sense; boolean-type settings have no min/max options, and a "what the vanilla value is" entry is meaningless when it pertains to a feature which only exists in a mod.

Examples

These are some sample configuration nodes from various mods:
<!--Replace scanner HUD chip magnetite-->
<CHEAP_HUDCHIP>
<value>True</value>
<defaultValue>True</defaultValue>
<vanillaValue>False</vanillaValue>
</CHEAP_HUDCHIP>
<!--Max Scanner Range (m)-->
<MAXRANGE>
<value>500.00</value>
<defaultValue>500.00</defaultValue>
<vanillaValue>500.00</vanillaValue>
<minimumValue>100.00</minimumValue>
<maximumValue>2000.00</maximumValue>
</MAXRANGE>
<!--Luma Oil Lifespan Factor-->
<GLOWLIFE>
<value>1.00</value>
<defaultValue>1.00</defaultValue>
<vanillaValue>1.00</vanillaValue>
<minimumValue>0.20</minimumValue>
<maximumValue>5.00</maximumValue>
</GLOWLIFE>