[TOC]
Adds menu with settings to configure mods.
Download the latest version of the mod.
Let's take mod MyMod.js
as an example:
// #MODS TXT LINES:
// {"name":"MyMod","status":true,"description":"","parameters":{}}
// #MODS TXT LINES END
console.log('Very useful mod here!');
There are two ways to register settings:
-
By using global library (click me!)
To add settings to the mod perform following steps:
-
Add dependency to your mod's declarations (at the beginning). It will ensure that
ModsSettings
loaded beforeMyMod
. Changes inMyMod.js
:// #MODS TXT LINES: +// {"name":"ModsSettings","status":true,"parameters":{}} // {"name":"MyMod","status":true,"description":"","parameters":{}} // #MODS TXT LINES END
-
Optional. Install and use types if you want to operate with strongly typed settings.
- Install types:
npm install -D @kp-mods/mods-settings
- Add types to your mod:
Changes in
MyMod.js
:// #MODS TXT LINES: // {"name":"ModsSettings","status":true,"parameters":{}} // {"name":"MyMod","status":true,"description":"","parameters":{}} // #MODS TXT LINES END +/// <reference types="@kp-mods/mods-settings" /> console.log('Very useful mod here!');
- Register settings. Intelli-sense will help you if you didn't skip step 2.
After this step specified settings will be available in mods menu.
// Name of the mod must be the same as js filename. const settings = ModsSettings.forMod('MyMod') .addSettings({ // Adds ON/OFF setting with description isEnabled: { type: 'bool', defaultValue: true, description: { title: 'Is Enabled', help: 'Enables mod' } }, // Adds value gauge with range from 0 to 1 and step of 0.1 (without description) someValueYouWillUse: { type: 'volume', defaultValue: 1, step: 0.1, minValue: 0, maxValue: 1 } }) .register();
- Use settings:
if (settings.get('isEnabled')) { const usefulValue = settings.get('someValueYouWillUse') * 100; console.log('Very useful mod here! Useful value is: ' + usefulValue); }
Resulted
MyMod.js
:// #MODS TXT LINES: // {"name":"ModsSettings","status":true,"parameters":{}} // {"name":"MyMod","status":true,"description":"","parameters":{}} // #MODS TXT LINES END /// <reference types="@kp-mods/mods-settings" /> // Register settings. const settings = ModsSettings.forMod('MyMod') .addSettings({ isEnabled: { type: 'bool', defaultValue: true, description: { title: 'Is Enabled', help: 'Enables mod' } }, someValueYouWillUse: { type: 'volume', defaultValue: 1, step: 0.1, minValue: 0, maxValue: 1 } }) .register(); // Use settings if (settings.get('isEnabled')) { const usefulValue = settings.get('someValueYouWillUse') * 100; console.log('Very useful mod here! Useful value is: ' + usefulValue); }
- Install types:
-
-
By bundling with a module (click me!)
Alternatively, you can import the library as module, if you use bundler (e.g. webpack):
- Add dependency to your mod's declarations (at the beginning).
It will ensure that
ModsSettings
loaded beforeMyMod
. Changes inMyMod.js
:// #MODS TXT LINES: +// {"name":"ModsSettings","status":true,"parameters":{}} // {"name":"MyMod","status":true,"description":"","parameters":{}} // #MODS TXT LINES END
- Install library
@kp-mods/mods-settings
npm install @kp-mods/mods-settings
- Register settings. After this step specified settings will be available in mods menu.
import {registerMod} from '@kp-mods/mods-settings'; // or if you use don't use typescript: // const {registerMod} = require('@kp-mods/mods-settings'); // Name of the mod must be the same as js filename. const settings = ModsSettings.forMod('MyMod') .addSettings({ // Adds ON/OFF setting with description isEnabled: { type: 'bool', defaultValue: true, description: { title: 'Is Enabled', help: 'Enables mod' } }, // Adds value gauge with range from 0 to 1 and step of 0.1 (without description) someValueYouWillUse: { type: 'volume', defaultValue: 1, step: 0.1, minValue: 0, maxValue: 1 } }) .register();
- Use settings:
if (settings.get('isEnabled')) { const usefulValue = settings.get('someValueYouWillUse') * 100; console.log('Very useful mod here! Useful value is: ' + usefulValue); }
Resulted
MyMod.js
:// #MODS TXT LINES: // {"name":"ModsSettings","status":true,"parameters":{}} // {"name":"MyMod","status":true,"description":"","parameters":{}} // #MODS TXT LINES END import {registerMod} from '@kp-mods/mods-settings'; // or if you use don't use typescript: // const {registerMod} = require('@kp-mods/mods-settings'); // Register settings. const settings = ModsSettings.forMod('MyMod') .addSettings({ isEnabled: { type: 'bool', defaultValue: true, description: { title: 'Is Enabled', help: 'Enables mod' } }, someValueYouWillUse: { type: 'volume', defaultValue: 1, step: 0.1, minValue: 0, maxValue: 1 } }) .register(); // Use settings if (settings.get('isEnabled')) { const usefulValue = settings.get('someValueYouWillUse') * 100; console.log('Very useful mod here! Useful value is: ' + usefulValue); }
- Add dependency to your mod's declarations (at the beginning).
It will ensure that