Beyond configs
Networking, registration, data generation and the other systems that come along.
Fzzy Config carries several systems that exist to serve its own internals but are public API. If you already depend on the library, these are free.
Cross-loader networking
A small play-phase networking API that works the same on every loader, built on the Payload concept. It exists so the library can sync configs, but nothing stops you using it for your own packets, which saves pulling in a larger abstraction layer. Added in the 0.4.x line.
Platform utilities
PlatformApi answers the questions you would otherwise write your own abstraction for: whether a logical client exists, where the config and game directories are, and whether a given mod is loaded. Added in 0.4.4.
Registrar system
A cross-platform registration manager, comparable to a DeferredRegister, reached through PlatformApi. Introduced experimentally in 0.5.9 and marked stable in 0.7.0, so from 0.7.0 onward it follows the normal deprecation cycle.
Data generation
Annotate a config with Translatable.Name, Translatable.Desc and Translatable.Prefix, then call ConfigApi.buildTranslations from a data generator to emit the lang file. The same annotations work on registered objects, so a RegistrySupplier or Identifier can generate its own lang. Added in 0.7.0.
Events
Configs fire events at each stage of their lifecycle. You can override the matching methods on Config, register against the generic EventApi, or attach listeners directly to a piece of validation. Added in 0.5.0.
Actions
A ConfigAction is a button in a config screen that holds no state. Use it to open a documentation link, hand the player an item, or run something the config system would not otherwise reach. Added in 0.5.0.
Result providers
A way to read a config value without touching the config in code. The example that explains it best is a loot table with a configurable drop chance: a loot number provider reads from the config, so the chance follows the setting without a datapack override. Added in 0.5.3.
Context actions
The layered input-handling system behind the config GUI. It captures key input, resolves it across layers, and surfaces actions in a right-click menu where applicable. ValidatedKeybind is built on it. Added in 0.6.0.
Expressions
A math evaluation engine that parses a string into an Expression. Expressions nest and chain, and take variables as single-character placeholders such as x and y.
// 'x' and 'y' are supplied at evaluation time var formula = ValidatedExpression("2.5 * x ^ 2 - 45 * y", setOf('x', 'y'))
Need more depth on this topic? The wiki has a longer article. Read it on moddedmc.wiki.
