Mod Config Tool [Beta]

If you liked this item, please rate it up on Steam Workshop page.

Author: Ironic

Last revision: 27 Sep, 2025 at 16:46 UTC

File size: 371.27 KB

On Steam Workshop

Description:

The idea shamelessly taken from WH3, this allows for the modder to create options for the user to select and choose from.

USERS

You just need to install this mod and you are good to go, you will see a new button on the main menu below quit.

You can stop reading now.

MODS THAT USE THIS

190 Expanded (in a future update)

Please leave a link/mod name in the comments so I can add it here.

Modders

# MCT Configuration System – Developer Guide

Create Configurable Options for Your Mods

The MCT (Mod Configuration Tool) system provides a standardized way to add configurable options to your mods. This guide will show you exactly how to implement it.

## Quick Start

1. File Naming (IMPORTANT!)
Always name your config file with

zzz_

prefix:

zzz_my_mod_config.lua

This ensures it loads after the main MCT system.

2. Basic Template

local my_config = { ["MyModName"] = { option_1 = { name = "EnableFeature", template = "checkbox", adopt = true, tooltip = "MCT_localised_string_enable_feature", base = "selected" } } } if RegisterMCTConfig then RegisterMCTConfig("MyMod_Config", my_config) ModLog("MyMod MCT registered successfully!") else ModLog("ERROR: MCT not found! Enable MCT mod first.") end

## Configuration Parameters

Required Parameters:
name – Unique identifier for your option
template – UI type: "checkbox" or "dropdown"
tooltip – Localization key for tooltip text
base – Default state: "selected", "active", or "inactive"

Optional Parameters:
adopt – Set to true to use root as parent (recommended)
priority – Display order (ignored if adopt = true)
amount – Number of options (for dropdowns only)

## Template Types

Checkbox (Simple On/Off)

simple_toggle = { name = "EnableAwesomeFeature", template = "checkbox", adopt = true, tooltip = "MCT_localised_string_awesome_feature", base = "selected" — Starts enabled }

Checkbox (Multiple Choices)

difficulty_setting = { name = "DifficultyLevel", template = "checkbox", adopt = true, amount = 3, — 3 options tooltip = { "MCT_localised_string_easy", "MCT_localised_string_normal", "MCT_localised_string_hard" }, base = "active" }

Dropdown (Multiple Choices)

difficulty_setting = { name = "DifficultyLevel", template = "dropdown", adopt = true, amount = 3, — 3 options tooltip = { "MCT_localised_string_easy", "MCT_localised_string_normal", "MCT_localised_string_hard" }, base = { "active", "active", "active"} }

## Localization Setup

Tooltip Format:
Base key:

MCT_localised_string_[your_key]

Language variants:

MCT_localised_string_[your_key]_EN

,

MCT_localised_string_[your_key]_KR

, etc.

Example:

tooltip = "MCT_localised_string_enable_god_mode" — In your localization files: — MCT_localised_string_enable_god_mode_EN = "Enable God Mode" — MCT_localised_string_enable_god_mode_KR = "신 모드 활성화" — MCT_localised_string_enable_god_mode_FR = "Activer le mode Dieu"

Multiple Tooltips (for dropdowns):

tooltip = { "MCT_localised_string_difficulty_easy", "MCT_localised_string_difficulty_normal", "MCT_localised_string_difficulty_hard" }

## Complete Working Example

— File: zzz_awesome_mod_config.lua local awesome_mod_config = { ["AwesomeMod"] = { — Enable/disable main feature enable_mod = { name = "EnableAwesomeMod", template = "checkbox", adopt = true, tooltip = "MCT_localised_string_enable_awesome_mod", base = "selected" }, — Difficulty selection difficulty = { name = "DifficultyLevel", template = "dropdown", adopt = true, amount = 4, tooltip = { "MCT_localised_string_diff_easy", "MCT_localised_string_diff_normal", "MCT_localised_string_diff_hard", "MCT_localised_string_diff_nightmare" }, base = "active" }, — Debug option (starts disabled) debug_mode = { name = "DebugMode", template = "checkbox", adopt = true, tooltip = "MCT_localised_string_debug_mode", base = "inactive" } } } — Register configuration if RegisterMCTConfig then RegisterMCTConfig("AwesomeMod_Config", awesome_mod_config) ModLog("AwesomeMod MCT configuration registered successfully!") else ModLog("ERROR: MCT system not found! Make sure the main MCT mod is loaded first.") end — Optional: Check if registration worked function IsAwesomeModMCTRegistered() return _G.MCT_REGISTRY and _G.MCT_REGISTRY["AwesomeMod_Config"] ~= nil end

## Adding to Existing Groups

You can extend existing MCT groups by using the same group name:

local extend_vanilla = { ["ExistingModGroup"] = { my_new_option = { name = "MyNewFeature", template = "checkbox", adopt = true, tooltip = "MCT_localised_string_my_new_feature", base = "inactive" } } }

## Base State Values

"selected" – Checkbox starts checked, option is enabled by default
"active" – Option is available and functional (good for dropdowns)
"inactive" – Checkbox starts unchecked, option is disabled by default

## Troubleshooting

My options don’t appear:
• Check your file has the

zzz_

prefix
• Make sure MCT main mod is enabled and loaded
• Verify your script has no syntax errors

Tooltips not showing:
• Check localization key format:

MCT_localised_string_[key]

• Make sure you have language-specific variants (_EN, _KR, etc.)

Registration fails:
• Ensure MCT mod is loaded before your mod
• Check the lua_mod_log for error messages
• Use the debug function to verify registration

Options not working in-game:
• Make sure option names are unique within each group
• Check that your mod actually reads the MCT values
• Verify the base state is set correctly

Credits

Credits to l Groove Wizard