Smootheez Config Lib

Config library mod for all of my mods

52,42k

Smootheez Config Lib

📦 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`: ```groovy repositories { maven { url "https://jitpack.io" } } ```

---

📦 Step 2 – Add Dependency

Using version from `gradle.properties`:

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

Or use the version directly:

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

---

💡 Example Usage

🧱 Step 1 – Create a Config Class

```java @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`:

```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

* 🔗 Modrinth * 🔗 CurseForge * 📦 JitPack Releases

---

🐞 Issue Tracker

Found a bug or have a feature suggestion?<br> Submit an issue here: **GitHub Issues**

---

⚠️ Important Notes

* ✅ Compatible with Minecraft MIT License * 📜 Licensed under the MIT License

---

☕ Support Me

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

ADS