{"id":137805,"date":"2026-06-08T06:36:28","date_gmt":"2026-06-08T03:36:28","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/"},"modified":"2026-06-08T06:36:28","modified_gmt":"2026-06-08T03:36:28","slug":"settingsmanagerlib","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/","title":{"rendered":"SettingsManagerLib"},"content":{"rendered":"<p>A simple settings manager library, which implements YACL to easily generate config screens for Mod Menu.<\/p>\n<p>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.<\/p>\n<p><big>**NOTE: This mod does nothing by itself. It is a library for other mods.**<\/big><\/p>\n<p># Features:<br \/>\n&#8211; Easy and quick setup<br \/>\n&#8211; Easy implementation<br \/>\n&#8211; Easy access to settings<br \/>\n&#8211; Built-in config file generation to save settings between client restarts<br \/>\n&#8211; Built-in chroma manager to sync chroma features across files<br \/>\n&#8211; Supports nearly all YACL fields<\/p>\n<p># Setup:<br \/>\n### Add the mod as a dependency:<br \/>\nin `build.gradle`<br \/>\n&#8220;`groovy<br \/>\nrepositories {<br \/>\n    maven { url = &#8220;https:\/\/api.modrinth.com\/maven&#8221; }<br \/>\n    maven {<br \/>\n        name = &#8220;Terraformers&#8221;<br \/>\n        url = &#8220;https:\/\/maven.terraformersmc.com\/&#8221;}<br \/>\n    maven {<br \/>\n        name &#8216;Xander Maven&#8217;<br \/>\n        url &#8216;https:\/\/maven.isxander.dev\/releases&#8217;}<br \/>\n}<\/p>\n<p>dependencies {<br \/>\n    modImplementation(&#8220;maven.modrinth:settingsmanagerlib:${project.modmenu_version}&#8221;)<br \/>\n    modImplementation(&#8220;com.terraformersmc:modmenu:${project.modmenu_version}&#8221;)<br \/>\n    modImplementation &#8220;dev.isxander:yet-another-config-lib:${project.yacl_version}&#8221;<br \/>\n}<br \/>\n&#8220;`<br \/>\nin `gradle.properties`<br \/>\n&#8220;`properties<br \/>\nsettingsmanagerlib_version=LATEST_VERSION_NUMBER (e.g. 1.0.0+1.21.11)<br \/>\nmodmenu_version=LATEST_VERSION_NUMBER (e.g. 15.0.0)<br \/>\nyacl_version=LATEST_VERSION_NUMBER (e.g. 3.7.1+1.21.6-fabric)<\/p>\n<p>&#8220;`<br \/>\nin `fabric.mod.json`<br \/>\n&#8220;`json<br \/>\n&#8220;entrypoints&#8221;: {<br \/>\n&#8220;modmenu&#8221;: [ &#8220;com.example.mod.ModMenuAPI&#8221; ]<br \/>\n}<br \/>\n&#8220;`<br \/>\nThen create a new class `ModMenuAPI`<br \/>\n&#8220;`java<br \/>\npublic class ModMenuAPI implements ModMenuApi {<br \/>\n\t @Override<br \/>\n\t public ConfigScreenFactory<?> getModConfigScreenFactory() {<br \/>\n\t\t\treturn parentScreen -> ExampleModClient.settings.getConfig(parentScreen);<br \/>\n\t }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Set up the mod:<br \/>\nin `ExampleModClient`<br \/>\n&#8220;`java<br \/>\npublic static Settings settings;<\/p>\n<p>@Override<br \/>\npublic void onInitializeClient() {<br \/>\n\t settings = new Settings().setup(&#8220;Example Mod&#8221;, &#8220;examplemod&#8221;);<br \/>\n\t settings.loadFromFile();<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### To add a setting:<br \/>\nNote: supports Strings, Booleans, Integers, Floats, Colors, and custom Enums.<\/p>\n<details>\n<summary>Standard Strings\/Integers\/Floats<\/summary>\n<p>in `ExampleModClient`<br \/>\n&#8220;`java<br \/>\n@Override<br \/>\npublic void onInitializeClient() {<br \/>\n\t settings.add(String settingId, String page, String group, String\/int\/float defaultValue, String settingName, String description)<\/p>\n<p>\t settings.add(&#8220;guiName&#8221;, &#8220;Visual Settings&#8221;, &#8220;Overlay&#8221;, &#8220;Default Gui Name&#8221;, &#8220;Gui Scale&#8221;, &#8220;This text will appear as a tooltip when you click on the option.&#8221;);<br \/>\n}<br \/>\n&#8220;`<br \/>\n<\/details>\n<details>\n<summary>Integer\/Float Sliders<\/summary>\n<p>in `ExampleModClient`<br \/>\n&#8220;`java<br \/>\n@Override<br \/>\npublic void onInitializeClient() {<br \/>\n\t settings.addSlider(String settingId, String page, String group, int\/float defaultValue, String settingName, String description, int\/float min, int\/float max, int\/float step)<\/p>\n<p>\t settings.add(&#8220;guiScale&#8221;, &#8220;Visual Settings&#8221;, &#8220;Overlay&#8221;, 1.0f, &#8220;Gui Scale&#8221;, &#8220;This text will appear as a tooltip when you click on the option.&#8221;, 0.5f, 5.0f, 0.1f);<br \/>\n}<br \/>\n&#8220;`<br \/>\n<\/details>\n<details>\n<summary>Booleans<\/summary>\n<p>in `ExampleModClient`<br \/>\n&#8220;`java<br \/>\n@Override<br \/>\npublic void onInitializeClient() {<br \/>\n\t settings.addSlider(String settingId, String page, String group, boolean defaultValue, String settingName, String description, BooleanFormat valueFormat)<\/p>\n<p>\t settings.add(&#8220;doRenderGui&#8221;, &#8220;Visual Settings&#8221;, &#8220;Overlay&#8221;, true, &#8220;Render Gui&#8221;, &#8220;This text will appear as a tooltip when you click on the option.&#8221;, BooleanFormat.ONOFF);<br \/>\n}<br \/>\n&#8220;`<br \/>\n`BooleanFormat` &#8211; the displayed value of the boolean:<br \/>\n&#8211; `BooleanFormat.ONOFF` &#8211; &#8220;On&#8221; or &#8220;Off&#8221;<br \/>\n&#8211; `BooleanFormat.TRUEFALSE` &#8211; &#8220;True&#8221; or &#8220;False&#8221;<br \/>\n&#8211; `BooleanFormat.YESNO` &#8211; &#8220;Yes&#8221; or &#8220;No&#8221;<br \/>\n&#8211; `BooleanFormat.TICKBOX` &#8211; A box that is either checked or unchecked<br \/>\n<\/details>\n<details>\n<summary>Colors<\/summary>\n<p>in `ExampleModClient`<br \/>\n&#8220;`java<br \/>\n@Override<br \/>\npublic void onInitializeClient() {<br \/>\n\t settings.addColor(String settingId, String page, String group, int defaultValue, String settingName, String description)<\/p>\n<p>\t settings.addColor(&#8220;guiBackgroundColor&#8221;, &#8220;Visual Settings&#8221;, &#8220;Overlay&#8221;, net.minecraft.util.Colors.GRAY, &#8220;Gui Background Color&#8221;, &#8220;This text will appear as a tooltip when you click on the option.&#8221;);<br \/>\n}<br \/>\n&#8220;`<br \/>\n<\/details>\n<details>\n<summary>Custom Enum<\/summary>\n<p>Documentation coming soon. Contact for details<br \/>\n<\/details>\n<p>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()`<\/p>\n<p># Accessing Values:<br \/>\n### Getting The Value of a Setting:<br \/>\nTo 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.<br \/>\n&#8220;`java<br \/>\nExampleModClient.settings.get(&#8220;settingId&#8221;, typeInstance);<\/p>\n<p>ExampleModClient.settings.get(&#8220;doRenderGui&#8221;, true); \/\/to return a boolean<br \/>\nExampleModClient.settings.get(&#8220;guiBackgroundColor&#8221;, net.minecraft.util.Colors.GRAY); \/\/to return a color<br \/>\nExampleModClient.settings.get(&#8220;guiScale&#8221;, 1.0f); \/\/to return a float<br \/>\nExampleModClient.settings.get(&#8220;guiName&#8221;, &#8220;Default Gui Name&#8221;); \/\/to return a string<br \/>\nExampleModClient.settings.get(&#8220;guiSliderMin&#8221;, 1); \/\/to return an integer<br \/>\n&#8220;`<\/p>\n<p>### Setting the Value of a Setting:<br \/>\nBy 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.<br \/>\n&#8220;`java<br \/>\nExampleModClient.settings.set(&#8220;settingId&#8221;, newValue);<\/p>\n<p>ExampleModClient.settings.set(&#8220;doRenderGui&#8221;, false); \/\/example with a boolean<br \/>\n&#8220;`<\/p>\n<p># Pages\/Groups:<br \/>\nSettings 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 &#8220;&#8221; or &#8220;none&#8221;.<br \/>\n![Example of Pages\/Groups\/Settings](https:\/\/cdn.modrinth.com\/data\/cached_images\/84f3c8464e32e623406364450949fd661eb2b331.png)<\/p>\n<p># Dependencies:<br \/>\nThis mod requires multiple other mods in order to function.<br \/>\n&#8211; YACL<br \/>\n&#8211; Mod Menu<br \/>\n&#8211; Fabric API<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A simple, easy-to-set-up config library using YACL and Mod Menu to create simple or complex config menus<\/p>\n","protected":false},"featured_media":137806,"template":"","meta":{"_minecraft_slug":"settingsmanagerlib","_minecraft_project_id":"1dU3bHt8","_minecraft_author":"wildbeast42","_minecraft_license":"LGPL-3.0-only","_minecraft_downloads":45556,"_minecraft_follows":4,"_minecraft_client_side":"required","_minecraft_server_side":"unsupported","_minecraft_storage_type":"zip","_minecraft_archive_name":"settingsmanagerlib.zip","_minecraft_size_bytes":594148,"_minecraft_version_count":32,"_minecraft_updated_at":"2026-05-16T10:40:32.397576Z","_minecraft_date_created":"2025-09-16T03:19:56.871281Z","_minecraft_date_modified":"2026-03-26T05:06:32.373874Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/settingsmanagerlib","_minecraft_icon_attachment_id":137806,"_minecraft_imported_at":"2026-06-08T03:36:29+00:00","_minecraft_import_hash":"c118d13b83c28786aeed01a6d61e1438","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,873,90,92],"mod_loader":[99],"minecraft_version":[40,41,74,38,78,79,80,81,82,83],"class_list":["post-137805","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-library","mod_category-optimization","mod_category-utility","mod_loader-fabric","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SettingsManagerLib - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SettingsManagerLib - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A simple, easy-to-set-up config library using YACL and Mod Menu to create simple or complex config menus\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/\",\"name\":\"SettingsManagerLib - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/settingsmanagerlib-icon-08edbe3f44caefd27172cf9c4e83663c20ffd92d.png\",\"datePublished\":\"2026-06-08T03:36:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/settingsmanagerlib-icon-08edbe3f44caefd27172cf9c4e83663c20ffd92d.png\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/settingsmanagerlib-icon-08edbe3f44caefd27172cf9c4e83663c20ffd92d.png\",\"width\":400,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/settingsmanagerlib\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SettingsManagerLib\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SettingsManagerLib - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/","og_locale":"en_US","og_type":"article","og_title":"SettingsManagerLib - Minecraft","og_description":"A simple, easy-to-set-up config library using YACL and Mod Menu to create simple or complex config menus","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/","name":"SettingsManagerLib - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/settingsmanagerlib-icon-08edbe3f44caefd27172cf9c4e83663c20ffd92d.png","datePublished":"2026-06-08T03:36:28+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/settingsmanagerlib-icon-08edbe3f44caefd27172cf9c4e83663c20ffd92d.png","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/settingsmanagerlib-icon-08edbe3f44caefd27172cf9c4e83663c20ffd92d.png","width":400,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/settingsmanagerlib\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"SettingsManagerLib"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/137805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/137806"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=137805"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=137805"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=137805"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=137805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}