Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

YetAnotherConfigLib

Enviroment Java 17 Discord

Modrinth CurseForge

Ko-fi

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

image preview

License

This mod is under the GNU Lesser General Public License, v3.0.


Project members

isxander

Owner

Details

Licensed LGPL-3.0-or-later
Published 2 years ago
Updated 5 days ago