COWMODSКаталог модов

S-Lib

An easy to use config and utility library.

Автор: Stalemated292,4 тыс.2обновлён 30 сент. 2026 г.
Библиотеки

Описание

S-Lib

S-Lib is a lightweight utility and config library for Minecraft modding.


Example mod: Check out the S-Lib Test Mod repository for complete config usage examples and GUI generation using YACL.


Features

Annotation-Driven Configs

  • Register synced or local configs in a single line of code using SLibConfig.syncedBuilder() or SLibConfig.localBuilder().
  • Network @Sync Options:
    • OVERRIDE_CLIENT: server authoritative config, syncs to the client. Config broadcasts on login and updates in real time. Supports configurable permission checks (e.g., OP-only).
    • INFORM_SERVER: local config, informs server of changes
    • NONE: local config, no network sync
  • Newly added fields are automatically populated with defaults, obsolete keys are removed, and values are clamped to specified ranges when using the annotations @RangeInt, @RangeFloat, and @RangeDouble.
  • Insert comments using the @Comment annotation on top of fields, directly in your config class.
  • Backups are automatically created if file corruption or invalid syntax is detected, preserving the broken config if you accidentally make a mistake.
  • Use the @Nest annotation to allow usage of nested classes for more complex config structures.
  • Use the @Ignore annotation to ignore a field entirely.
  • Built-in type adapters compatible with serialization for AWT's Color, Minecraft's TextColor, Identifier, Pattern, and UUID classes.

Custom YACL Controllers

Custom controllers for YACL:

  • Advanced Color Controller: Supports hex codes (#RRGGBBAA), Minecraft color names, and legacy formatting codes (&a, &3).
  • Item or Tag Controller: Autocomplete dropdown for matching exact items, tags (#c:swords), namespaces (minecraft:*), and regex patterns.
  • Simple Dropdowns: Dropdown selectors for Enums and Strings.

General Utilities

  • Target Matcher Engine: Item matching via exact IDs, tags, namespaces, wildcards (*), and regex (regex:.*_sword).
  • Platform Helpers: Abstractions for loader-specific methods, both as a general utility (PlatformHelper) and for network-related features (NetworkHelper).
  • Math and Color Utils: Easing functions (lerp, ease-out, clamp), text gradient generators, color utilities, and more.

Последние версии

Все версии →
release

S-Lib 3.0.1 - Fabric 1.21.1

3.0.1+1.21.1
30 сент. 2026 г.226Minecraft: 1.21.1fabric
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.21.1/Changelog.md) ## 3.0.1+1.21.1 ### Fixes - Fixed options being saved on disk but not applied to memory when multiple fields are modified at the same time in singleplayer clients - Fixed ResolutionException due to incorrect shadowBundle declaration
release

S-Lib 3.0.1 - NeoForge 1.21.1

3.0.1+1.21.1
30 сент. 2026 г.785Minecraft: 1.21.1neoforge
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.21.1/Changelog.md) ## 3.0.1+1.21.1 ### Fixes - Fixed options being saved on disk but not applied to memory when multiple fields are modified at the same time in singleplayer clients - Fixed ResolutionException due to incorrect shadowBundle declaration
release

S-Lib 3.0.1 - Fabric 1.20.1

3.0.1+1.20.1
30 сент. 2026 г.106,9 тыс.Minecraft: 1.20.1fabric
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.20.1/Changelog.md) ## 3.0.1+1.20.1 ### Fixes - Fixed options being saved on disk but not applied to memory when multiple fields are modified at the same time in singleplayer clients - Fixed ResolutionException due to incorrect shadowBundle declaration
release

S-Lib 3.0.1 - Forge 1.20.1

3.0.1+1.20.1
30 сент. 2026 г.1,9 тыс.Minecraft: 1.20.1forge
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.20.1/Changelog.md) ## 3.0.1+1.20.1 ### Fixes - Fixed options being saved on disk but not applied to memory when multiple fields are modified at the same time in singleplayer clients - Fixed ResolutionException due to incorrect shadowBundle declaration
release

S-Lib 3.0.0 - Fabric 1.21.1

3.0.0+1.21.1
25 сент. 2026 г.29Minecraft: 1.21.1fabric
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.21.1/Changelog.md) ## 3.0.0+1.21.1 **This update adds a brand-new and easy-to-use config system!** ### New Features - Completely redesigned the config module from the ground up, making registering your configs possible in one line of code using `SLibConfig.syncedBuilder()` and `SLibConfig.localBuilder()`. - Newly added config fields are automatically inserted with default values, old/useless keys are removed. - Seven new annotations: - `@Sync`: - `OVERRIDE_CLIENT`: server authoritative config, syncs to the client. Config broadcasts on login and updates in real time. Supports configurable permission checks (e.g., OP-only). - `INFORM_SERVER`: local config, informs server of changes - `NONE`: local config, no network sync - `@RangeInt`: clamps an int config field to a specified range - `@RangeFloat`: clamps a float config field to a specified range - `@RangeDouble`: clamps a double config field to a specified range - `@Comment`: allows for comments to be added to config fields (supports text blocks) - `@Ignore`: ignores a config field entirely - `@Nest`: allows for nested classes for more complex config structures - Unmodded / Vanilla server compatibility: client instances safely fall back to default values for server authoritative options. Local options can be freely modified. - The config also supports serializing common classes like AWT's `Color`, Minecraft's `TextColor`, `Identifier`, `Pattern`, and `UUID`. ### Fixes - Fixed availability propagation in custom YACL controllers ### Testing - Created a new test mod to test the new config system [S-Lib Test Mod](https://github.com/Stalemated/s-lib_test_mod).
release

S-Lib 3.0.0 - NeoForge 1.21.1

3.0.0+1.21.1
25 сент. 2026 г.107Minecraft: 1.21.1neoforge
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.21.1/Changelog.md) ## 3.0.0+1.21.1 **This update adds a brand-new and easy-to-use config system!** ### New Features - Completely redesigned the config module from the ground up, making registering your configs possible in one line of code using `SLibConfig.syncedBuilder()` and `SLibConfig.localBuilder()`. - Newly added config fields are automatically inserted with default values, old/useless keys are removed. - Seven new annotations: - `@Sync`: - `OVERRIDE_CLIENT`: server authoritative config, syncs to the client. Config broadcasts on login and updates in real time. Supports configurable permission checks (e.g., OP-only). - `INFORM_SERVER`: local config, informs server of changes - `NONE`: local config, no network sync - `@RangeInt`: clamps an int config field to a specified range - `@RangeFloat`: clamps a float config field to a specified range - `@RangeDouble`: clamps a double config field to a specified range - `@Comment`: allows for comments to be added to config fields (supports text blocks) - `@Ignore`: ignores a config field entirely - `@Nest`: allows for nested classes for more complex config structures - Unmodded / Vanilla server compatibility: client instances safely fall back to default values for server authoritative options. Local options can be freely modified. - The config also supports serializing common classes like AWT's `Color`, Minecraft's `TextColor`, `Identifier`, `Pattern`, and `UUID`. ### Fixes - Fixed availability propagation in custom YACL controllers ### Testing - Created a new test mod to test the new config system [S-Lib Test Mod](https://github.com/Stalemated/s-lib_test_mod).
release

S-Lib 3.0.0 - Fabric 1.20.1

3.0.0+1.20.1
25 сент. 2026 г.228Minecraft: 1.20.1fabric
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.20.1/Changelog.md) ## 3.0.0+1.20.1 **This update adds a brand-new and easy-to-use config system!** ### New Features - Completely redesigned the config module from the ground up, making registering your configs possible in one line of code using `SLibConfig.syncedBuilder()` and `SLibConfig.localBuilder()`. - Newly added config fields are automatically inserted with default values, old/useless keys are removed. - Seven new annotations: - `@Sync`: - `OVERRIDE_CLIENT`: server authoritative config, syncs to the client. Config broadcasts on login and updates in real time. Supports configurable permission checks (e.g., OP-only). - `INFORM_SERVER`: local config, informs server of changes - `NONE`: local config, no network sync - `@RangeInt`: clamps an int config field to a specified range - `@RangeFloat`: clamps a float config field to a specified range - `@RangeDouble`: clamps a double config field to a specified range - `@Comment`: allows for comments to be added to config fields (supports text blocks) - `@Ignore`: ignores a config field entirely - `@Nest`: allows for nested classes for more complex config structures - Unmodded / Vanilla server compatibility: client instances safely fall back to default values for server authoritative options. Local options can be freely modified. - The config also supports serializing common classes like AWT's `Color`, Minecraft's `TextColor`, `Identifier`, `Pattern`, and `UUID`. ### Fixes - Fixed availability propagation in custom YACL controllers ### Testing - Created a new test mod to test the new config system [S-Lib Test Mod](https://github.com/Stalemated/s-lib_test_mod).
release

S-Lib 3.0.0 - Forge 1.20.1

3.0.0+1.20.1
25 сент. 2026 г.160Minecraft: 1.20.1forge
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.20.1/Changelog.md) ## 3.0.0+1.20.1 **This update adds a brand-new and easy-to-use config system!** ### New Features - Completely redesigned the config module from the ground up, making registering your configs possible in one line of code using `SLibConfig.syncedBuilder()` and `SLibConfig.localBuilder()`. - Newly added config fields are automatically inserted with default values, old/useless keys are removed. - Seven new annotations: - `@Sync`: - `OVERRIDE_CLIENT`: server authoritative config, syncs to the client. Config broadcasts on login and updates in real time. Supports configurable permission checks (e.g., OP-only). - `INFORM_SERVER`: local config, informs server of changes - `NONE`: local config, no network sync - `@RangeInt`: clamps an int config field to a specified range - `@RangeFloat`: clamps a float config field to a specified range - `@RangeDouble`: clamps a double config field to a specified range - `@Comment`: allows for comments to be added to config fields (supports text blocks) - `@Ignore`: ignores a config field entirely - `@Nest`: allows for nested classes for more complex config structures - Unmodded / Vanilla server compatibility: client instances safely fall back to default values for server authoritative options. Local options can be freely modified. - The config also supports serializing common classes like AWT's `Color`, Minecraft's `TextColor`, `Identifier`, `Pattern`, and `UUID`. ### Fixes - Fixed availability propagation in custom YACL controllers ### Testing - Created a new test mod to test the new config system [S-Lib Test Mod](https://github.com/Stalemated/s-lib_test_mod).
release

S-Lib 2.1.1 - NeoForge 1.21.1

2.1.1+1.21.1
9 сент. 2026 г.436Minecraft: 1.21.1neoforge
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.21.1/Changelog.md) ## 2.1.1+1.21.1 ### Fix - Fixed NeoForge version not letting the user login to servers if the mod is not installed server-side - New behavior should allow the client to join as usual
release

S-Lib 2.1.1 - Fabric 1.21.1

2.1.1+1.21.1
9 сент. 2026 г.84Minecraft: 1.21.1fabric
Скачать
Что нового
### [Full Changelog](https://github.com/Stalemated/s-lib/blob/1.21.1/Changelog.md) ## 2.1.1+1.21.1 **This release DOES NOT affect the Fabric version. It was only uploaded for version parity** ### Fix - Fixed NeoForge version not letting the user login to servers if the mod is not installed server-side - New behavior should allow the client to join as usual