YetAnotherConfigLib (YACL)
yacl · 133692910 downloads · LGPL-3.0-or-later
client: optional · server: optional (declared by the mod author)
A builder-based configuration library for Minecraft!
Description
YetAnotherConfigLib
Yet Another Config Lib, like, what were you expecting?
Why does this mod even exist?
This mod was made to fill a hole in this area of Fabric modding. The existing main config libraries don't achieve what I want from them:
- Cloth Config API: It's stale. The developer of cloth has clarified that they are likely not going to add any more features. They don't want to touch it. (citation)
- SpruceUI: It isn't designed for configuration. In this essence the design feels cluttered. Further details available in this issue.
- OwoLib: It's content focused. It does a lot of other things as well as config, adding to the size.
As you can see, there's sadly a drawback with all of them and this is where YetAnotherConfigLib comes in.
How is YACL better?
YACL has the favour of hindsight. Whilst developing this fresh library, I can make sure that it does everything right:
- Easy API. YACL takes inspiration from Sodium's internal configuration library.
- It's styled to fit in Minecraft. YACL's GUI is designed to fit right in.
Features
YACL has a ton of configuration features:
- Custom control widgets
- Create your own unique "controller" if the default set does not suit your needs
- Rich descriptions
- Clickable & hoverable text, powered by vanilla's Text component system
- WebP (including animated) image previews
- Custom rich-renderable section to replace image
- Multiple controllers for the same type:
- Sliders or fields for numbers
- Dropdowns, cyclers, or raw text fields for strings
- Tickboxes or ON/OFF text display for booleans
- ...and more!
- Fully-featured color picker
- Accessible with full compatibility for keyboard control (optimised for Controlify usage)
- High organisation with tabs (categories) and collapsable groups
- Built-in serialization/deserialization techniques so you can skip the error-prone config code
- Full alternative Kotlin DSL
Usage
The wiki contains a full documentation on how to use YACL.
Screenshots

License
This mod is under the GNU Lesser General Public License, v3.0.
Versions (60)
| Version | Minecraft | Loaders | File |
|---|---|---|---|
3.9.7+26.1-fabric |
26.1, 26.1.1, 26.1.2 | fabric | download |
3.9.7+26.2-fabric |
26.2 | fabric | download |
3.9.7+26.1-neoforge |
26.1, 26.1.1, 26.1.2 | neoforge | download |
3.9.7+26.2-neoforge |
26.2 | neoforge | download |
3.9.7+26.3-neoforge |
26.3 | neoforge | download |
3.9.7+26.3-fabric |
26.3 | fabric | download |
3.9.6+26.1-fabric |
26.1, 26.1.1, 26.1.2 | fabric | download |
3.9.6+26.2-fabric |
26.2 | fabric | download |
3.9.6+26.2-neoforge |
26.2 | neoforge | download |
3.9.6+26.3-fabric |
26.3 | fabric | download |
3.9.6+26.1-neoforge |
26.1, 26.1.1, 26.1.2 | neoforge | download |
3.9.5+26.1-fabric |
26.1, 26.1.1, 26.1.2 | fabric | download |
3.9.5+26.1-neoforge |
26.1, 26.1.1, 26.1.2 | neoforge | download |
3.9.5+26.2-neoforge |
26.2 | neoforge | download |
3.9.5+26.2-fabric |
26.2 | fabric | download |
3.9.4+26.2-neoforge |
26.2 | neoforge | download |
3.9.4+26.1-fabric |
26.1, 26.1.1, 26.1.2 | fabric | download |
3.9.4+26.1-neoforge |
26.1, 26.1.1, 26.1.2 | neoforge | download |
3.9.4+26.2-fabric |
26.2 | fabric | download |
3.9.3+26.1-neoforge |
26.1, 26.1.1, 26.1.2 | neoforge | download |
3.9.3+26.1-fabric |
26.1, 26.1.1, 26.1.2 | fabric | download |
3.9.2+26.1-neoforge |
26.1, 26.1.1, 26.1.2 | neoforge | download |
3.9.2+26.1-fabric |
26.1, 26.1.1, 26.1.2 | fabric | download |
3.9.1+26.1-fabric |
26.1 | fabric | download |
3.9.1+26.1-neoforge |
26.1 | neoforge | download |
3.9.0+26.1-fabric |
26.1 | fabric | download |
3.8.2+1.21.6-fabric |
1.21.6, 1.21.7, 1.21.8 | fabric | download |
3.8.2+1.21.5-fabric |
1.21.5 | fabric | download |
3.8.2+1.21.6-neoforge |
1.21.6, 1.21.7, 1.21.8 | neoforge | download |
3.8.2+1.21.4-neoforge |
1.21.4 | neoforge | download |
3.8.2+1.21.5-neoforge |
1.21.5 | neoforge | download |
3.8.2+1.21.4-fabric |
1.21.4 | fabric | download |
3.8.2+1.21.3-fabric |
1.21.2, 1.21.3 | fabric | download |
3.8.2+1.21.3-neoforge |
1.21.2, 1.21.3 | neoforge | download |
3.8.2+1.21.11-fabric |
1.21.11 | fabric | download |
3.8.2+1.21.11-neoforge |
1.21.11 | neoforge | download |
3.8.2+1.21.10-neoforge |
1.21.10, 1.21.9 | neoforge | download |
3.8.2+1.21.10-fabric |
1.21.10, 1.21.9 | fabric | download |
3.8.2+1.21.1-neoforge |
1.21, 1.21.1 | neoforge | download |
3.8.2+1.21.1-fabric |
1.21, 1.21.1 | fabric | download |
3.8.1+1.21.11-neoforge |
1.21.11 | neoforge | download |
3.8.1+1.21.5-fabric |
1.21.5 | fabric | download |
3.8.1+1.21.3-fabric |
1.21.2, 1.21.3 | fabric | download |
3.8.1+1.21.10-fabric |
1.21.10, 1.21.9 | fabric | download |
3.8.1+1.21.6-fabric |
1.21.6, 1.21.7, 1.21.8 | fabric | download |
3.8.1+1.21.5-neoforge |
1.21.5 | neoforge | download |
3.8.1+1.21.6-neoforge |
1.21.6, 1.21.7, 1.21.8 | neoforge | download |
3.8.1+1.21.11-fabric |
1.21.11 | fabric | download |
3.8.1+1.21.1-fabric |
1.21, 1.21.1 | fabric | download |
3.8.1+1.21.1-neoforge |
1.21, 1.21.1 | neoforge | download |
3.8.1+1.21.10-neoforge |
1.21.10, 1.21.9 | neoforge | download |
3.8.1+1.21.3-neoforge |
1.21.2, 1.21.3 | neoforge | download |
3.8.1+1.21.4-neoforge |
1.21.4 | neoforge | download |
3.8.1+1.21.4-fabric |
1.21.4 | fabric | download |
3.8.0+1.21.9-neoforge |
1.21.10, 1.21.9 | neoforge | download |
3.8.0+1.21.9-fabric |
1.21.10, 1.21.9 | fabric | download |
3.8.0+1.21.1-fabric |
1.21, 1.21.1 | fabric | download |
3.8.0+1.21.4-fabric |
1.21.4 | fabric | download |
3.8.0+1.21.3-fabric |
1.21.2, 1.21.3 | fabric | download |
3.8.0+1.21.6-neoforge |
1.21.6, 1.21.7, 1.21.8 | neoforge | download |
