
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()orSLibConfig.localBuilder(). - Network
@SyncOptions: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 changesNONE: 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
@Commentannotation 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
@Nestannotation to allow usage of nested classes for more complex config structures. - Use the
@Ignoreannotation to ignore a field entirely. - Built-in type adapters compatible with serialization for AWT's
Color, Minecraft'sTextColor,Identifier,Pattern, andUUIDclasses.
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.130 сент. 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.130 сент. 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.130 сент. 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.130 сент. 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.125 сент. 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.125 сент. 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.125 сент. 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.125 сент. 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.19 сент. 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.19 сент. 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