{"id":161099,"date":"2026-06-09T18:14:16","date_gmt":"2026-06-09T15:14:16","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/"},"modified":"2026-06-09T18:14:16","modified_gmt":"2026-06-09T15:14:16","slug":"ucl","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/","title":{"rendered":"Unnamed Common Library (UCL)"},"content":{"rendered":"<details open>\n<summary>English<\/summary>\n<h2>\u2754 Tell me more about it<\/h2>\n<p>\n    <strong>Unnamed Common Library (UCL)<\/strong> is my attempt at making a simple, useful, (yet to be) powerful configuration library. Its goal is to be general purpose so that no matter the mod you build or your preferences, you can always use it. This library is obviously not meant to be used on its own,if you do so it will at most serve as an example and a test for its capabilities.\n  <\/p>\n<h2>\ud83e\udd29 Why you should like it<\/h2>\n<ul>\n<li><strong>Very easy<\/strong> to implement and use<\/li>\n<li>Optional configuration screen integrations<\/li>\n<li>JSON, TOML, and YAML support<\/li>\n<\/ul>\n<h2>\ud83e\uddd1\u200d\ud83d\udcbb For developers<\/h2>\n<details open>\n<summary><strong>Installation<\/strong><\/summary>\n<p>Add the repository to your <code>build.gradle(.kts)<\/code>:<\/p>\n<pre class=\"language-groovy\">\nrepositories {\n    maven {\n        url = \"https:\/\/maven.pkg.github.com\/aurorarissime\/unnamed-common-library\"\n    }\n}\n<\/pre>\n<p>And in your buildscript, add the dependency (<code>modImplementation<\/code> for Fabric, <code>implementation<\/code> for NeoForge):<\/p>\n<pre class=\"language-groovy\">\ndependencies {\n    (mod)Implementation(\"from.discorde:ucl:${ucl_version}+${minecraft_version}-fabric\")\n}\n<\/pre>\n<\/details>\n<details>\n<summary><strong>Usage<\/strong><\/summary>\n<h3>1. Create your configuration model<\/h3>\n<h4>MyModConfig.java<\/h4>\n<pre class=\"language-java\">\nimport from.discorde.ucl.common.config.annotations.*;\n\n@Configuration(\n    name = \"mymod\"\n)\npublic class MyModConfig {\n    @Comment(\"Enable the awesome feature\")\n    public boolean awesomeFeature = true;\n\n    @Comment(\"Maximum power level (0-100)\")\n    public int maxPower = 50;\n\n    @Comment(\"Welcome message displayed to players\")\n    public String welcomeMessage = \"Hello!\";\n}\n<\/pre>\n<h3>2. Load the configuration in your mod initialiser<\/h3>\n<h4>MyMod.java<\/h4>\n<pre class=\"language-java\">\npublic class MyMod implements ModInitializer {\n    \/\/ The wrapper class is auto-generated at compile time\n    public static final MyModConfigWrapper CONFIG = MyModConfigWrapper.createAndLoad();\n\n    @Override\n    public void onInitialize() {\n        if (CONFIG.awesomeFeature) {\n            System.out.println(\"Awesome feature is enabled!\");\n        }\n    }\n}\n<\/pre>\n<\/details>\n<details>\n<summary><strong>References<\/strong><\/summary>\n<h3>Annotations<\/h3>\n<h4><code>@Configuration<\/code><\/h4>\n<p>Add this annotation right above your config class<\/p>\n<p>| Parameter  | Type                    | Default        | Description                 |<br \/>\n|&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;|<br \/>\n| `name`     | `String`                | *required*     | Config file or folder name  |<br \/>\n| `location` | `ConfigurationLocation` | `SUBDIRECTORY` | Where to save the config    |<br \/>\n| `format`   | `ConfigurationFormat`   | `JSON5`        | File format to use          |<br \/>\n| `screen`   | `boolean`               | `true`         | Generate YACL config screen |<\/p>\n<h4><code>@Comment<\/code><\/h4>\n<p>Add this annotation above any field to include a comment in the config file<\/p>\n<pre class=\"language-java\">\n@Comment(\"This comment will appear above the field in the config file\")\npublic boolean myOption = true;\n<\/pre>\n<h3>Enums<\/h3>\n<h4><code>ConfigurationLocation<\/code><\/h4>\n<p>| Value          | Description                                          |<br \/>\n|&#8212;&#8212;&#8212;&#8212;&#8212;-|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `ROOT`         | Save directly in the config folder as `{name}.{ext}` |<br \/>\n| `SUBDIRECTORY` | Save in a subfolder as `{name}\/configuration.{ext}`  |<\/p>\n<h4><code>ConfigurationFormat<\/code><\/h4>\n<p>| Value   | Extension | Description                                            |<br \/>\n|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;|<br \/>\n| `JSON5` | `.json5`  | JSON with comments, trailing commas, and unquoted keys |<br \/>\n| `TOML`  | `.toml`   | Tom&#8217;s Obvious Minimal Language                         |<br \/>\n| `YAML`  | `.yaml`   | YAML Ain&#8217;t Markup Language                             |<br \/>\n  <\/details>\n<details>\n<summary><strong>Configuration screens integration<\/strong><\/summary>\n<p>If <code>screen = true<\/code> (default) in your <code>@Configuration<\/code> annotation and YetAnotherConfigLib (YACL) is installed, a configuration screen will be auto-generated and accessible through Mod Menu.<br \/> To disable the config screen, just set the <code>screen<\/code> parameter to <code>false<\/code> in the <code>@Configuration<\/code> annotation.<\/p>\n<\/details>\n<\/details>\n<p>Enjoy \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A very simple, easy to use configuration library that fits right in your mod!<\/p>\n","protected":false},"featured_media":161100,"template":"","meta":{"_minecraft_slug":"ucl","_minecraft_project_id":"LUnnunTC","_minecraft_author":"Discorde","_minecraft_license":"CC-BY-NC-SA-4.0","_minecraft_downloads":324,"_minecraft_follows":0,"_minecraft_client_side":"required","_minecraft_server_side":"optional","_minecraft_storage_type":"zip","_minecraft_archive_name":"ucl.zip","_minecraft_size_bytes":15710740,"_minecraft_version_count":20,"_minecraft_updated_at":"2026-05-15T17:00:54.772698Z","_minecraft_date_created":"2025-12-29T22:28:04.034908Z","_minecraft_date_modified":"2026-01-09T13:54:47.644138Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/ucl","_minecraft_icon_attachment_id":161100,"_minecraft_imported_at":"2026-06-09T15:14:16+00:00","_minecraft_import_hash":"734d32407f8e5d400a6bda3368b80354","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,873,122,126,158,91,92],"mod_loader":[99,160],"minecraft_version":[37,40,41,73,82],"class_list":["post-161099","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-library","mod_category-magic","mod_category-management","mod_category-neoforge","mod_category-storage","mod_category-utility","mod_loader-fabric","mod_loader-neoforge","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Unnamed Common Library (UCL) - 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\/ucl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unnamed Common Library (UCL) - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A very simple, easy to use configuration library that fits right in your mod!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/\" \/>\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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/\",\"name\":\"Unnamed Common Library (UCL) - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ucl-icon-c26dcc68ade500a7fc720d3e1476304d83332420_96.webp\",\"datePublished\":\"2026-06-09T15:14:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ucl-icon-c26dcc68ade500a7fc720d3e1476304d83332420_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ucl-icon-c26dcc68ade500a7fc720d3e1476304d83332420_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/ucl\\\/#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\":\"Unnamed Common Library (UCL)\"}]},{\"@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":"Unnamed Common Library (UCL) - 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\/ucl\/","og_locale":"en_US","og_type":"article","og_title":"Unnamed Common Library (UCL) - Minecraft","og_description":"A very simple, easy to use configuration library that fits right in your mod!","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/","name":"Unnamed Common Library (UCL) - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/ucl-icon-c26dcc68ade500a7fc720d3e1476304d83332420_96.webp","datePublished":"2026-06-09T15:14:16+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/ucl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/ucl-icon-c26dcc68ade500a7fc720d3e1476304d83332420_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/ucl-icon-c26dcc68ade500a7fc720d3e1476304d83332420_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/ucl\/#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":"Unnamed Common Library (UCL)"}]},{"@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\/161099","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\/161100"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=161099"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=161099"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=161099"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=161099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}