File information
Created by
SpontanCombust AeltothUploaded by
SpontanCombustVirus scan
About this mod
Framework for modding Witcher 3 that simplifies the pipeline of using mod settings by generating WitcherScript code based directly on mod menu XML and providing extendible interface for reacting to changes of settings.
- Requirements
- Permissions and credits

Synopsis
Framework for modding Witcher 3 that simplifies the pipeline of using mod settings by generating code based directly on mod menu XML and providing extendible interface for reacting to changes of settings.
Compatible with major game versions from 1.32 to 4.04 through appropriate hooks.
Overview
Witcher 3 allows for creating custom mod menus which provide an interface between the mod developer and the end user to further customize their experience. The way settings are accessed in game's scripts is not complicated, but can often result in very boilerplaty code and situations when settings can be fetched improperly simply due to some typo. This framework is trying to midigate that.
Framework provides xml parser program. It generates WitcherScript code which mirrors the structure of customisable variables in the xml and assures on compile time that the developer uses their variables properly - no way for typos, bad type cast or other headaches.
Instructions for mod users
1. Download modSettingsFramework
2. Download modSettingsFrameworkHooks for your game version
3. Install them like any other Witcher 3 mod by dropping what's inside into your Mods folder
4. Use Script Merger to solve any conflicts
!!! Mod Settings Framework is meant to be a dependency of other mods and does nothing by itself !!!
Instructions for mod developers
The main place I host this framework and all the instructions you'd need to use it with your own mod is on GitHub:
https://github.com/SpontanCombust/tw3-settings-framework
The main takeway is that the framework will let you take a more streamlined approach to accessing mod settings.
Example of regular use of mod settings:
var config : CInGameConfigWrapper = theGame.GetInGameConfigWrapper();
if(config.GetVarValue('MODtab1', 'MODtoggle'))
{
doSomething();
config.SetVarValue('MODtab1', 'MODsliderInt', IntToString(50));
theGame.SaveUserSettings();
}
And here's the use of it with the framework:
var settings : MyModSettings = GetMyModSettings();
if(settings.tab1.toggle)
{
doSomething();
settings.tab1.sliderInt = 50;
settings.WriteSettings();
}
CAUTION
If you're coming from v0.6 of earlier, first uninstall the old "modSettingsFramework" before installing the new one.
Framework version v0.6 is not backwards compatible with previous versions.
Script files generated by pre-v0.6 version parsers and therefore mods using them can't be mixed.
If you're a mod creator, please reparse you XMLs for this version.