promotional bannermobile promotional banner
premium banner
Config library for all of my mods

Description

πŸ“¦ Smootheez Config Lib (SCL)

A utility mod designed to simplify configuration handling for Minecraft modding.
Primarily developed for my own mods, but freely available for public use.


❓ What is SCL?

Smootheez Config Lib (SCL) provides an easier and cleaner way to manage configurations for Minecraft mods.
It removes boilerplate and offers a simple interface for:

  • βœ… Config file management
  • πŸ› οΈ Automatic config screen generation
  • βš™οΈ Automatic config file generation

πŸ–ΌοΈ In-Game Previews

πŸ”§ Standard Config Screen

Config Preview

πŸ“ Config Screen with Descriptions

With Description

πŸ—‚οΈ Edit Value in OptionList

Edit List

βž• Add Value to OptionList

Add Value

❗ Confirmation Screen

Confirmation


πŸš€ Getting Started

πŸ—οΈ Step 1 – Add Repository

In your build.gradle:

repositories {
    maven {
        url "https://jitpack.io"
    }
}

πŸ“¦ Step 2 – Add Dependency

Using version from gradle.properties:

dependencies {
    modImplementation "com.github.smootheez:scl:${project.scl_version}"
}

Or use the version directly:

dependencies {
    modImplementation "com.github.smootheez:scl:[version]"
}

πŸ’‘ Example Usage

🧱 Step 1 – Create a Config Class

@Config(name = "example_config", gui = true)
public class ExampleConfig {
    public static final ConfigOption<Integer> INT_TEXT = ConfigOption.create("intText", 0, -5, 100);
    public static final ConfigOption<Double> DOUBLE_TEXT = ConfigOption.create("doubleText", 0.0, 0.0, 2.0);
    public static final ConfigOption<Integer> INT_SLIDER = ConfigOption.create("intSlider", 0, -5, 100).asSlider();
    public static final ConfigOption<Double> DOUBLE_SLIDER = ConfigOption.create("doubleSlider", 0.0, 0.0, 2.0).asSlider();
    public static final ConfigOption<Double> DOUBLE_SLIDER_PERCENTAGE = ConfigOption.create("doubleSliderPercentage", 0.0, 0.0, 2.0).asSliderPercentage();
    public static final ConfigOption<Boolean> BOOLEAN = ConfigOption.create("boolean", false);
    public static final ConfigOption<OptionList> LIST = ConfigOption.create("list", "example_value_1", "example_value_2", "example_value_3");
    public static final ConfigOption<ExampleEnum> ENUM = ConfigOption.create("enum", ExampleEnum.EXAMPLE_VALUE_1);
}

🧩 Step 2 – Register the Config

In your fabric.mod.json:

"entrypoints": {
    // ...existing entrypoints
    "scl": [
        "dev.smootheez.scl.example.ExampleConfig"
    ]
}

βœ… That's it! SCL will automatically generate:

  • The config file
  • The config screen (requires ModMenu)

πŸ“Œ Note: The config screen will only be generated if:

  • gui = true is set
  • The config name matches your mod ID

πŸ“₯ Download


🐞 Issue Tracker

Found a bug or have a feature suggestion?
Submit an issue here: GitHub Issues


⚠️ Important Notes

  • βœ… Compatible with Minecraft 1.20.1+
  • πŸ“œ Licensed under the MIT License

β˜• Support Me

If you find this project helpful and want to support my work, consider donating:

ko-fi paypal