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.
- MidnightLib: It has cosmetics among other utilities. It may not be large but some players (including me) wouldn't want cosmetics out of nowhere.
- 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.