What YetAnotherConfigLib is, when you should use it, and when you shouldn't.
This wiki is currently a work-in-progress and is incomplete!
Henceforth, YetAnotherConfigLib will be referred to as its acronym, YACL.
❓What is it?
Primarily, YACL is a config screen generator which covers creating a user friendly GUI in Minecraft to allow users to configure their mods easily. It also provides a separate config API to easily save and load fields for you with little to no effort.
The best way to tell you what YACL is all about is with an image. A picture speaks a thousand words!
Why does it even exist?
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!
How is YACL better?
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.
✅ When should I use it?
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.
⛔ When shouldn't I use it?
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.