Skip to content

ModsManagerConfig.xml

Srsly edited this page Jul 10, 2026 · 2 revisions

ModsManagerConfig.xml Overview

ModsManagerConfig.xml tells Mods Manager which settings can be edited from inside the menu.

A basic file looks like this:

<?xml version="1.0" encoding="utf-8"?>
<ModsManagerConfig>
  <Setting
    id="enableFeature"
    label="Enable Feature"
    description="Turns the main feature on or off."
    type="bool"
    target="Config/MyModConfig.txt"
    key="EnableFeature"
    default="true"
    restartRequired="true" />
</ModsManagerConfig>

Mods Manager reads every <Setting> node it finds in the file. The root can technically be named anything, but ModsManagerConfig is recommended because it is clear.

Each <Setting> is one editable row in the Config tab.

Setting Attribute Reference

id

Optional, but strongly recommended.

id="enableFeature"

Beginner meaning: a unique name for this setting.

Advanced meaning: a stable internal identifier for the setting row. It is useful for debugging and for keeping settings distinct even if labels change.

Use simple names with letters, numbers, and underscores. Do not reuse the same id for two different settings in the same mod.

label

Optional, but recommended.

label="Enable Feature"

Beginner meaning: the name players see in the Config tab.

Advanced meaning: display text only. Changing the label does not change what file or key is edited.

Keep labels short. Long labels can crowd the menu.

description

Optional.

description="Turns the main feature on or off."

Beginner meaning: helper text under the setting label.

Advanced meaning: display-only explanation text. It does not affect saving.

Use this to explain what a value does, what units it uses, or what happens when it is changed.

type

Optional. Defaults to text.

type="bool"

Supported types:

  • bool
  • int
  • float
  • text
  • choice
  • color

The type controls how the setting is displayed and how the plus/minus buttons behave.

target

Required.

target="Config/MyModConfig.txt"

Beginner meaning: the config file Mods Manager should edit.

Advanced meaning: a path relative to your mod folder. Mods Manager will not save outside the selected mod folder. If the file does not exist, the setting is ignored.

Use forward slashes or backslashes. Both are fine:

target="Config/MyModConfig.txt"
target="Config\MyModConfig.txt"

Do not point at vanilla game files. Only point at files inside your own mod folder.

mode

Optional. Defaults to key/value mode.

mode="xml"

Supported modes:

  • keyValue or omitted: edits simple Key=Value text files.
  • xml: edits XML files by XPath.

Any value other than xml is treated as key/value mode.

key

Required for key/value mode.

key="EnableFeature"

Beginner meaning: the setting name in your text config file.

Advanced meaning: the key on the left side of a key=value line. Matching is case-insensitive.

Example target file:

EnableFeature=true
LootMultiplier=2
ThemeColor=#FFB3D1

Example setting:

<Setting
  id="enableFeature"
  label="Enable Feature"
  type="bool"
  target="Config/MyModConfig.txt"
  key="EnableFeature"
  default="true" />

xpath

Required for XML mode.

xpath="/MyMod/Feature"

Beginner meaning: the path to the XML node Mods Manager should edit.

Advanced meaning: passed to XmlDocument.SelectSingleNode. The XPath must find exactly the node or attribute you want to read and save. If it does not find a node while saving, the save fails.

Examples:

xpath="/MyMod/Feature"
xpath="/MyMod/Feature/@enabled"
xpath="//property[@name='EnableFeature']"

attribute

Optional. Used only with XML mode.

attribute="value"

Beginner meaning: the XML attribute to edit on the selected node.

Advanced meaning: if xpath selects an element and attribute is provided, Mods Manager reads and writes that attribute. If the attribute is missing, saving creates it. If xpath already selects an attribute directly, attribute is not needed.

Both of these are valid ways to edit the same value:

<Setting
  id="enableFeature"
  label="Enable Feature"
  type="bool"
  mode="xml"
  target="Config/MyModConfig.xml"
  xpath="/MyMod/Feature"
  attribute="enabled"
  default="true" />
<Setting
  id="enableFeature"
  label="Enable Feature"
  type="bool"
  mode="xml"
  target="Config/MyModConfig.xml"
  xpath="/MyMod/Feature/@enabled"
  default="true" />

default

Optional.

default="true"

Beginner meaning: the value to show if Mods Manager cannot find the current value.

Advanced meaning: fallback value used when a key or XML node does not return a value during read. It does not create missing XML nodes. For key/value files, missing keys can be appended during save.

Keep defaults matching your shipped config file.

min

Optional. Used by numeric types.

min="1"

Beginner meaning: the lowest number the plus/minus buttons can reach.

Advanced meaning: clamp applied after numeric adjustment.

max

Optional. Used by numeric types.

max="200"

Beginner meaning: the highest number the plus/minus buttons can reach.

Advanced meaning: clamp applied after numeric adjustment.

step

Optional. Used by numeric types.

step="5"

Beginner meaning: how much the plus/minus buttons change the value.

Advanced meaning: numeric delta per click. If omitted, int uses 1 and float uses 0.1.

options

Optional. Used for choice-style settings.

options="balanced,linear,vanilla"

Beginner meaning: a list of allowed values the player can cycle through.

Advanced meaning: comma-separated list. If options is present and type is omitted or text, Mods Manager treats the setting as choice.

Avoid commas inside option values.

restartRequired

Optional. Defaults to true.

restartRequired="true"

Beginner meaning: tells creators whether this setting needs a restart.

Advanced meaning: currently tracked on the setting object. In practice, most 7 Days To Die XML and DLL-backed configs require a full restart before they are safely reloaded, so use true unless your mod is specifically built to hot-reload its config.

Supported Setting Types

Bool

Use bool for on/off settings.

<Setting
  id="enableBackpack"
  label="Enable Backpack"
  description="Master switch for the backpack changes."
  type="bool"
  target="Config/Srsly/ScrollableBackpackConfig.txt"
  key="EnableBackpack"
  default="true" />

Displayed as ON or OFF.

Values treated as true:

  • true
  • 1
  • yes
  • on

When saved, bool settings write true or false.

Int

Use int for whole numbers.

<Setting
  id="backpackSize"
  label="Backpack Size"
  description="Total player backpack slots."
  type="int"
  target="Config/Srsly/ScrollableBackpackConfig.txt"
  key="BackpackSize"
  default="90"
  min="45"
  max="180"
  step="5" />

Plus and minus buttons adjust the value by step.

Float

Use float for decimal numbers.

<Setting
  id="staminaMultiplier"
  label="Stamina Multiplier"
  description="Decimal multiplier applied to stamina cost."
  type="float"
  target="Config/MyModConfig.txt"
  key="StaminaMultiplier"
  default="1.0"
  min="0.25"
  max="3.0"
  step="0.25" />

If step is omitted, float settings adjust by 0.1.

Text

Use text for free-form strings.

<Setting
  id="customName"
  label="Custom Name"
  description="Text used by this mod in its UI."
  type="text"
  target="Config/MyModConfig.txt"
  key="CustomName"
  default="My Custom Name" />

Text settings are edited directly in the value box. Plus and minus do not adjust text settings.

Use text sparingly. If there are only a few valid values, use choice instead.

Choice

Use choice when players should pick from a fixed list.

<Setting
  id="carryScalingMode"
  label="Carry Scaling Mode"
  description="Balanced keeps progression closer; linear scales directly."
  type="choice"
  target="Config/Srsly/ScrollableBackpackConfig.txt"
  key="CarryScalingMode"
  default="balanced"
  options="balanced,linear,vanilla" />

Plus and minus cycle through the options.

Color

Use color for hex color values.

<Setting
  id="uiAccentColor"
  label="UI Accent Color"
  description="Accent color used by this mod."
  type="color"
  target="Config/MyModConfig.txt"
  key="UiAccentColor"
  default="#B31919" />

Mods Manager does not use a color wheel. Instead, type="color" uses a built-in palette of readable preset colors:

#FFFFFF  White
#000000  Black
#808080  Grey
#FFB3B3  Light Red
#B31919  Dark Red
#FFD8A8  Light Orange
#CC6500  Dark Orange
#FFF0A8  Light Yellow
#B38A00  Dark Yellow
#B8F5B8  Light Green
#1C8F2E  Dark Green
#AEEFEA  Light Cyan
#007D79  Dark Cyan
#A8D8FF  Light Blue
#0066CC  Dark Blue
#C8B6FF  Light Purple
#5C2DB3  Dark Purple
#F4B4FF  Light Magenta
#9B1FA8  Dark Magenta
#FFB3D1  Light Pink
#B3195A  Dark Pink

If a setting's current value already looks like a hex color, Mods Manager can also treat it like a color choice even if the type was not set correctly. Still, creators should use type="color" for clarity.

Key/Value Config Files

Key/value mode is the simplest format. It works well for custom .txt, .cfg, or .ini style config files where each setting is one line.

Example config file:

# MyModConfig.txt
EnableFeature=true
LootMultiplier=2
ThemeColor=#B31919
Mode=balanced

Example ModsManagerConfig.xml:

<?xml version="1.0" encoding="utf-8"?>
<ModsManagerConfig>
  <Setting
    id="enableFeature"
    label="Enable Feature"
    description="Turns the feature on or off."
    type="bool"
    target="Config/MyModConfig.txt"
    key="EnableFeature"
    default="true" />

  <Setting
    id="lootMultiplier"
    label="Loot Multiplier"
    description="Multiplier applied by this mod."
    type="int"
    target="Config/MyModConfig.txt"
    key="LootMultiplier"
    default="2"
    min="1"
    max="10"
    step="1" />

  <Setting
    id="themeColor"
    label="Theme Color"
    description="Color used by the mod UI."
    type="color"
    target="Config/MyModConfig.txt"
    key="ThemeColor"
    default="#B31919" />

  <Setting
    id="mode"
    label="Mode"
    description="Controls how strongly the feature behaves."
    type="choice"
    target="Config/MyModConfig.txt"
    key="Mode"
    default="balanced"
    options="balanced,linear,vanilla" />
</ModsManagerConfig>

How Key/Value Reading Works

Mods Manager:

  • Reads the target file line by line.
  • Ignores blank lines.
  • Ignores lines that start with # or ;.
  • Looks for the first = in the line.
  • Compares the left side to key, case-insensitive.
  • Reads the trimmed right side as the current value.

How Key/Value Saving Works

When saving, Mods Manager:

  • Saves only settings the player changed.
  • Creates one backup named YourConfigFile.modsmanager.bak if it does not already exist.
  • Updates matching key=value lines while preserving the existing left side and equals sign.
  • Appends missing keys to the end of the file.

Example:

LootMultiplier=2

If the player changes it to 3, it becomes:

LootMultiplier=3

XML Config Files

XML mode is for mods that already store settings in XML.

Example config file:

<?xml version="1.0" encoding="utf-8"?>
<MyModConfig>
  <Feature enabled="true" range="8" />
  <Ui>
    <AccentColor>#B31919</AccentColor>
  </Ui>
</MyModConfig>

Editing an XML Attribute on an Element

Use xpath to select the element and attribute to name the attribute.

<Setting
  id="featureEnabled"
  label="Feature Enabled"
  description="Turns the feature on or off."
  type="bool"
  mode="xml"
  target="Config/MyModConfig.xml"
  xpath="/MyModConfig/Feature"
  attribute="enabled"
  default="true" />

This edits:

<Feature enabled="true" />

Editing an XML Attribute Directly

You can also point XPath directly at the attribute.

<Setting
  id="featureRange"
  label="Feature Range"
  description="Distance used by this feature."
  type="int"
  mode="xml"
  target="Config/MyModConfig.xml"
  xpath="/MyModConfig/Feature/@range"
  default="8"
  min="1"
  max="30"
  step="1" />

This edits:

<Feature range="8" />

Editing XML Element Text

If the value is stored between opening and closing tags, omit attribute.

<Setting
  id="accentColor"
  label="Accent Color"
  description="Color used by this mod's UI."
  type="color"
  mode="xml"
  target="Config/MyModConfig.xml"
  xpath="/MyModConfig/Ui/AccentColor"
  default="#B31919" />

This edits:

<AccentColor>#B31919</AccentColor>

XML Save Rules

When saving XML settings, Mods Manager:

  • Loads the XML document.
  • Preserves whitespace as much as possible while rewriting the file.
  • Saves only changed values.
  • Creates one backup named YourXmlFile.modsmanager.bak if it does not already exist.
  • Uses XPath to find the node.
  • Writes an attribute, selected attribute, or element text depending on your setting.

If the XPath cannot be found, saving fails and the player sees an error. Mods Manager does not create missing XML elements for you. Ship the target nodes in your config file.

Full Mixed Example

This example shows one mod exposing key/value settings and XML settings at the same time.

<?xml version="1.0" encoding="utf-8"?>
<ModsManagerConfig>
  <Setting
    id="enableBackpack"
    label="Enable Backpack"
    description="Master switch for the player backpack changes."
    type="bool"
    target="Config/Srsly/ScrollableBackpackConfig.txt"
    key="EnableBackpack"
    default="true" />

  <Setting
    id="backpackSize"
    label="Backpack Size"
    description="Total player backpack slots."
    type="int"
    target="Config/Srsly/ScrollableBackpackConfig.txt"
    key="BackpackSize"
    default="90"
    min="45"
    max="180"
    step="5" />

  <Setting
    id="carryScalingMode"
    label="Carry Scaling Mode"
    description="Balanced keeps vanilla progression closer; linear scales directly."
    type="choice"
    target="Config/Srsly/ScrollableBackpackConfig.txt"
    key="CarryScalingMode"
    default="balanced"
    options="balanced,linear,vanilla" />

  <Setting
    id="hudAccentColor"
    label="HUD Accent Color"
    description="Preset color used by this mod's HUD pieces."
    type="color"
    target="Config/Srsly/ScrollableBackpackConfig.txt"
    key="HudAccentColor"
    default="#B31919" />

  <Setting
    id="xmlFeatureEnabled"
    label="XML Feature Enabled"
    description="Example setting stored inside an XML attribute."
    type="bool"
    mode="xml"
    target="Config/MyXmlConfig.xml"
    xpath="/MyModConfig/Feature"
    attribute="enabled"
    default="true" />
</ModsManagerConfig>