SettingsManagerLib

SettingsManagerLib

A simple, easy-to-set-up config library using YACL and Mod Menu to create simple or complex config menus

by
77.4K Downloads
fabriclibraryoptimizationutility
Configure a Compatible Minecraft Server

About this Mod

A simple settings manager library, which implements YACL to easily generate config screens for Mod Menu.

If you would like to use this mod to generate config menus for your own mod, I recommend contacting me, as I may not keep this page updated as the mod updates.

NOTE: This mod does nothing by itself. It is a library for other mods.

Features:

  • Easy and quick setup
  • Easy implementation
  • Easy access to settings
  • Built-in config file generation to save settings between client restarts
  • Built-in chroma manager to sync chroma features across files
  • Supports nearly all YACL fields

Setup:

Add the mod as a dependency:

in build.gradle

repositories {
    maven { url = "https://api.modrinth.com/maven" }
    maven {
        name = "Terraformers"
        url = "https://maven.terraformersmc.com/"}
    maven {
        name 'Xander Maven'
        url 'https://maven.isxander.dev/releases'}
}

dependencies {
    modImplementation("maven.modrinth:settingsmanagerlib:${project.modmenu_version}")
    modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
    modImplementation "dev.isxander:yet-another-config-lib:${project.yacl_version}"
}

in gradle.properties

settingsmanagerlib_version=LATEST_VERSION_NUMBER (e.g. 1.0.0+1.21.11)
modmenu_version=LATEST_VERSION_NUMBER (e.g. 15.0.0)
yacl_version=LATEST_VERSION_NUMBER (e.g. 3.7.1+1.21.6-fabric)

in fabric.mod.json

"entrypoints": {
"modmenu": [ "com.example.mod.ModMenuAPI" ]
}

Then create a new class ModMenuAPI

public class ModMenuAPI implements ModMenuApi {
	 @Override
	 public ConfigScreenFactory<?> getModConfigScreenFactory() {
			return parentScreen -> ExampleModClient.settings.getConfig(parentScreen);
	 }
}

Set up the mod:

in ExampleModClient

public static Settings settings;

@Override
public void onInitializeClient() {
	 settings = new Settings().setup("Example Mod", "examplemod");
	 settings.loadFromFile();
}

To add a setting:

Note: supports Strings, Booleans, Integers, Floats, Colors, and custom Enums.

Standard Strings/Integers/Floats

in ExampleModClient

@Override
public void onInitializeClient() {
	 settings.add(String settingId, String page, String group, String/int/float defaultValue, String settingName, String description)

	 settings.add("guiName", "Visual Settings", "Overlay", "Default Gui Name", "Gui Scale", "This text will appear as a tooltip when you click on the option.");
}
Integer/Float Sliders

in ExampleModClient

@Override
public void onInitializeClient() {
	 settings.addSlider(String settingId, String page, String group, int/float defaultValue, String settingName, String description, int/float min, int/float max, int/float step)

	 settings.add("guiScale", "Visual Settings", "Overlay", 1.0f, "Gui Scale", "This text will appear as a tooltip when you click on the option.", 0.5f, 5.0f, 0.1f);
}
Booleans

in ExampleModClient

@Override
public void onInitializeClient() {
	 settings.addSlider(String settingId, String page, String group, boolean defaultValue, String settingName, String description, BooleanFormat valueFormat)

	 settings.add("doRenderGui", "Visual Settings", "Overlay", true, "Render Gui", "This text will appear as a tooltip when you click on the option.", BooleanFormat.ONOFF);
}

BooleanFormat - the displayed value of the boolean:

  • BooleanFormat.ONOFF - "On" or "Off"
  • BooleanFormat.TRUEFALSE - "True" or "False"
  • BooleanFormat.YESNO - "Yes" or "No"
  • BooleanFormat.TICKBOX - A box that is either checked or unchecked
Colors

in ExampleModClient

@Override
public void onInitializeClient() {
	 settings.addColor(String settingId, String page, String group, int defaultValue, String settingName, String description)

	 settings.addColor("guiBackgroundColor", "Visual Settings", "Overlay", net.minecraft.util.Colors.GRAY, "Gui Background Color", "This text will appear as a tooltip when you click on the option.");
}
Custom Enum Documentation coming soon. Contact for details

Note that the value of settings automatically persist after restarting the client, however, you still need to add them to the config menu, which can be accomplished by creating the config menu inside onInitializeClient()

Accessing Values:

Getting The Value of a Setting:

To get the value of a setting, use the following where typeInstance is a value with the same type as the value of the setting you are getting. Refer to the examples below for implementations. Note that the second parameter of settings.get() is irrelevant; only its type needs to be the same as the return type.

ExampleModClient.settings.get("settingId", typeInstance);

ExampleModClient.settings.get("doRenderGui", true); //to return a boolean
ExampleModClient.settings.get("guiBackgroundColor", net.minecraft.util.Colors.GRAY); //to return a color
ExampleModClient.settings.get("guiScale", 1.0f); //to return a float
ExampleModClient.settings.get("guiName", "Default Gui Name"); //to return a string
ExampleModClient.settings.get("guiSliderMin", 1); //to return an integer

Setting the Value of a Setting:

By default, the value of a setting is set to its default value, unless the user changes it. To manually set the value of a setting, use the following.

ExampleModClient.settings.set("settingId", newValue);

ExampleModClient.settings.set("doRenderGui", false); //example with a boolean

Pages/Groups:

Settings are organized by pages and groups. Refer to the image below for an example. The page is the bar at the top, and you can open one page at a time. A group is a collapsible collection of settings. You can have unlimited groups and unlimited settings on each page. Each setting must have a page, but does not require a group. To create a setting without a group as shown in the image below, set the group to "" or "none".
Example of Pages/Groups/Settings

Dependencies:

This mod requires multiple other mods in order to function.

  • YACL
  • Mod Menu
  • Fabric API

Available Versions

SettingsManagerLib-1.1.3+26.1release
MC 26.1, 26.1.1, 26.1.2fabric
March 26, 2026
SettingsManagerLib-1.1.3+1.21.11release
MC 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
February 12, 2026
SettingsManagerLib-1.1.2+1.21.11release
MC 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
February 8, 2026
SettingsManagerLib-1.1.1+1.21.11release
MC 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
January 31, 2026
SettingsManagerLib-1.1.0+1.21.11release
MC 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
January 19, 2026

How to Install SettingsManagerLib on Your Client

1

Install the Mod Loader Locally

Install fabric for your local Minecraft version.

2

Download the Matching File

Choose the SettingsManagerLib file for fabric and Minecraft 26.1.2.

3

Install Mod

Place the .jar file in your local .minecraft/mods folder and restart Minecraft. No server-side installation is required.

Compatibility

Mod Loaders

fabric

Minecraft Versions

26.1.2, 26.1.1, 26.1 (+9 more)

Server-side

Unsupported

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Does SettingsManagerLib need to be installed on the Minecraft server?

No. Modrinth marks SettingsManagerLib as unsupported on the server side. Install it only in your local Minecraft mods folder. Your server can remain unchanged unless the mod page lists an additional dependency.

Which version and loader does SettingsManagerLib require?

Use a file for fabric and your exact Minecraft version. Supported versions include 26.1.2, 26.1.1, 26.1. Files for different loaders are not interchangeable.

SettingsManagerLib is not working – what should I check?

First check the Minecraft version, loader version and required dependencies. Put the .jar file in your local .minecraft/mods folder and remove older duplicates. Because this mod is client-side, adding server RAM will not fix it.

Minecraft Server for Your Group

SettingsManagerLib stays on your client. Host a compatible world for your group.

Recommended RAM
4 GBfrom €5.2/mo
Minimum 3 GB | per 8 players
Create Server Now
Client Compatibility Guide
NVMe SSD Storage
DDoS Protection included

Details

License
GNU Lesser General Public License v3.0 only
Server-side
Unsupported

Supported Versions

26.1.226.1.126.11.21.111.21.101.21.91.21.81.21.71.21.61.21.5+2 more