@kp-mods/mods-settings v2.4.0
Mods Settings
Description
Adds menu with settings to configure mods.
Download
Download the latest version of the mod.
Installation
Preview
For mod creators
How to add settings to your 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:
Register settings using global library
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. 1. Install types:
```bash npm install -D @kp-mods/mods-settings ``` 2. Add types to your mod: Changes in `MyMod.js`: ```diff // #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!'); ``` 3. 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. ```ts // 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(); ``` 4. Use settings: ```ts if (settings.get('isEanbled')) { const usefulValue = settings.get('someValueYouWillUse') * 100; console.log('Very useful mod here! Useful value is: ' + usefulValue); } ``` Resulted `MyMod.js`: ```ts // #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); } ```
- Add dependency to your mod's declarations (at the beginning).
It will ensure that
Register settings using a module
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('isEanbled')) { 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
Links
1 month ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago