Overview
What YetAnotherConfigLib is, when you should use it, and when you shouldn't.
Last updated
What YetAnotherConfigLib is, when you should use it, and when you shouldn't.
Last updated
This wiki is currently a work-in-progress and is incomplete!
Henceforth, YetAnotherConfigLib will be referred to as its acronym, YACL.
Primarily, YACL is a config screen generator that helps developers create a user friendly GUI in Minecraft to allow users to configure their mods easily. YACL's functionality has also grew to also include an API to help developers save and load their config from a file.
This mod was made to fill a hole in this area of FabricMC modding. The already-existing config libraries don't achieve what I, as the developer, want from them.
Cloth Config is 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)
Spruce UI isn't designed for configuration. In this essence, the design feels cluttered.
MidnightLib has cosmetics built-in. It may not be large in size, but players (including me) may not want bundled cosmetics.
OwO Lib contains a lot of other utilities. It isn't focused on config, however, is recommended if you are building a content mod.
As you can see, there's sadly a drawback with every one of them. This is where YACL comes in!
YACL has the benefit of hindsight. It can see what everyone else has done, and combine the best parts to make this a great contender. Here are a few points that may convince you:
Easy-to-use API: YACL takes inspiration from Sodium's internal configuration library.
Minecraft styled: YACL is designed to fit right in vanilla Minecraft so it doesn't look out of place.
YACL is was designed with client mods in mind (mods that do not support loading on the server) so they can quickly produce a great UI for users, so these types of mods are recommended.
Additionally, mods that are required on both environments to function are also supported with its config API available, so the server so administrators can configure with a file, whilst the client can configure with a GUI. However, no server-client syncing functionality is available for use which may limit functionality of your mod. If you need server-client syncing, use OwO Lib.
On server only mods, depending on only YACL's config API is not recommended. This is because you are requiring the user to download YACL that will frequently update functionality never to be utilised by your mod, not to mention the waste of storage space.