Unnamed Common Library (UCL)
No reviews yet
A very simple, easy to use configuration library that fits right in your mod!
Centers around fantasy elements such as spells, rituals, and magical energies, often involving personal empowerment and magical automation.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Provides a framework or library for other mods to use.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Curseforge's description limitations annoy me so instead here is a link to the Modrinth's description, which is properly formatted how I want it to look
English
❔ Tell me more about it
Unnamed Common Library (UCL) 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.
🤩 Why you should like it
- Very easy to implement and use
- Optional configuration screen integrations
- JSON, TOML, and YAML support
🧑💻 For developers
Installation
Add the repository to your build.gradle(.kts):
repositories {
maven {
url = "https://maven.pkg.github.com/aurorarissime/unnamed-common-library"
}
}
And in your buildscript, add the dependency (modImplementation for Fabric, implementation for NeoForge):
dependencies {
(mod)Implementation("from.discorde:ucl:${ucl_version}+${minecraft_version}-fabric")
}
Usage
1. Create your configuration model
MyModConfig.java
import from.discorde.ucl.common.config.annotations.*;
@Configuration(
name = "mymod"
)
public class MyModConfig {
@Comment("Enable the awesome feature")
public boolean awesomeFeature = true;
@Comment("Maximum power level (0-100)")
public int maxPower = 50;
@Comment("Welcome message displayed to players")
public String welcomeMessage = "Hello!";
}
2. Load the configuration in your mod initialiser
MyMod.java
public class MyMod implements ModInitializer {
// The wrapper class is auto-generated at compile time
public static final MyModConfigWrapper CONFIG = MyModConfigWrapper.createAndLoad();
@Override
public void onInitialize() {
if (CONFIG.awesomeFeature) {
System.out.println("Awesome feature is enabled!");
}
}
}
References
Annotations
@Configuration
Add this annotation right above your config class
| Parameter | Type | Default | Description |
|---|---|---|---|
name |
String |
required | Config file or folder name |
location |
ConfigurationLocation |
SUBDIRECTORY |
Where to save the config |
format |
ConfigurationFormat |
JSON5 |
File format to use |
screen |
boolean |
true |
Generate YACL config screen |
@Comment
Add this annotation above any field to include a comment in the config file
@Comment("This comment will appear above the field in the config file")
public boolean myOption = true;
Enums
ConfigurationLocation
| Value | Description |
|---|---|
ROOT |
Save directly in the config folder as {name}.{ext} |
SUBDIRECTORY |
Save in a subfolder as {name}/configuration.{ext} |
ConfigurationFormat
| Value | Extension | Description |
|---|---|---|
JSON5 |
.json5 |
JSON with comments, trailing commas, and unquoted keys |
TOML |
.toml |
Tom's Obvious Minimal Language |
YAML |
.yaml |
YAML Ain't Markup Language |
Configuration screens integration
If screen = true (default) in your @Configuration annotation and YetAnotherConfigLib (YACL) is installed, a configuration screen will be auto-generated and accessible through Mod Menu.
To disable the config screen, just set the screen parameter to false in the @Configuration annotation.
Enjoy 🙂
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers