Fzzy Config

Fzzy Config

Config API with automatic GUIs, powerful validation options, server-client sync, and more!

19.0M downloads
Created Apr 9, 2026
by fzzyhmstrs

About

Main Banner

Fzzy Config is a powerful multi-loader configuration engine for Minecraft Mods that meets you where you want to be. Quick and dirty or detailed and featureful, Fzzy Config will work with you. It provides a wide array of features above and beyond what you can find in other libraries.

The Basics

  • Automatic serialization to TOML.
  • Minimal API with lightweight integration requirements

GUIs

  • Automatic GUI generation based on the layout and content of your config files.
  • Screens are fully keyboard-navigable and narratable out of the box.
    • Fully vetted and tested by a visually impaired member of the modding community.
  • No need for screen builders or registration.
  • ModMenu and Catalogue automatically integrated.

Synchronization

  • Automatic server-client sync.
  • Push live updates to a server from a client.
  • Forward client settings to other users who want your setup.

Validation

  • Validation and Correction built into everything, beyond just primitive types.
  • Tightly control what values a player can choose from and how they choose them.
  • Automatic suggestions for settings like tags and identifiers.

Updates

  • Versioned updates supported with one simple method implementation.
  • Scrape previous configs to easily update from another config library.

Flexibility

  • Implement a config with as little or much effort as you want.
  • Plain java/kotlin object, or Minecraft GameOptions-like carefully crafted settings.
  • Seamless multi-loader support. Use the same API on Fabric and Forge; including a lightweight mutli-loader Networking API!
<p><span style="font-size:14px;display:table"> <span> <a href="https://discord.gg/Fnw2UbE72x" rel="nofollow"><img style="display:inline;margin-left:auto;margin-right:auto" src="https://i.imgur.com/iXATO6K.png" width="265" height="122"></a> </span> <span> <a href="https://tilt.fyi/O9GtemcqMI" rel="nofollow"><img style="display:inline;margin-left:auto;margin-right:auto" src="https://cdn.modrinth.com/data/cached_images/cf27a9e31c423f6b3d0d02a644a395f05508f678.png" width="288" height="108"></a> </span> </span> </p>

Bisect Hosting Banner

Versions

v0.7.6+1.21.11Latest
1.21.11fabric, quiltFeb 3, 2026

## Breaking changes in 0.7.x * `ValidatedEnumMap` is removed * Removed all methods and properties marked as Deprecated and for removal 0.7.0 * `SmallSpriteDecoration#<init>` * `SpriteDecorated#textureSet` & `textures` is now a required override * `SpriteDecoration#<init>` * `CustomButtonWidget#<init>` & builder is now only non-override method for adding custom button * Removed `ActiveButtonWidget` * Removed `TextlessActionWidget` * `DynamicListWidget.EntryPos` and implementations made `internal` * `PopupWidget` position elements; `LayoutWidget` no longer inherits from the PopupWidget variant * Removed deprecated overrides of `PopupController` from `PopupParentElement` * `SuggestionWindowListener` and `SuggestionWindowProvider` moved out of `internal` sub-package * Removed `ImmutableRelPos` * `RenderUtil#renderBlur` * Throughout FzzyConfig `Translatable.Result` has been replaced with `Translatable.ResultProvider`. This affects `EntrySearcher` as well as `Searcher.SearchContent` ------------------------------------- ### Additions * Various documentation updates for the Provider systems, including a wiki update ### Changes * `ValidatedField.translationProvider`, `ValidatedField.descriptionProvider`, `ValidatedField.attachProvider`, and the associated `Provider` types are now static (as well as instance methods) so java users won't have to call `.Companion.` anymore (but can) ### Fixes * Deprecated settings are properly read in from file for handling. They are still ignored in network traffic. * The options in `ValidatedChoiceList` and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip

Download
v0.7.6+1.21.9
1.21.9, 1.21.10fabric, quiltFeb 3, 2026

## Breaking changes in 0.7.x * `ValidatedEnumMap` is removed * Removed all methods and properties marked as Deprecated and for removal 0.7.0 * `SmallSpriteDecoration#<init>` * `SpriteDecorated#textureSet` & `textures` is now a required override * `SpriteDecoration#<init>` * `CustomButtonWidget#<init>` & builder is now only non-override method for adding custom button * Removed `ActiveButtonWidget` * Removed `TextlessActionWidget` * `DynamicListWidget.EntryPos` and implementations made `internal` * `PopupWidget` position elements; `LayoutWidget` no longer inherits from the PopupWidget variant * Removed deprecated overrides of `PopupController` from `PopupParentElement` * `SuggestionWindowListener` and `SuggestionWindowProvider` moved out of `internal` sub-package * Removed `ImmutableRelPos` * `RenderUtil#renderBlur` * Throughout FzzyConfig `Translatable.Result` has been replaced with `Translatable.ResultProvider`. This affects `EntrySearcher` as well as `Searcher.SearchContent` ------------------------------------- ### Additions * Various documentation updates for the Provider systems, including a wiki update ### Changes * `ValidatedField.translationProvider`, `ValidatedField.descriptionProvider`, `ValidatedField.attachProvider`, and the associated `Provider` types are now static (as well as instance methods) so java users won't have to call `.Companion.` anymore (but can) ### Fixes * Deprecated settings are properly read in from file for handling. They are still ignored in network traffic. * The options in `ValidatedChoiceList` and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip

Download
v0.7.6+1.21.6
1.21.6, 1.21.7, 1.21.8fabric, quiltFeb 3, 2026

## Breaking changes in 0.7.x * `ValidatedEnumMap` is removed * Removed all methods and properties marked as Deprecated and for removal 0.7.0 * `SmallSpriteDecoration#<init>` * `SpriteDecorated#textureSet` & `textures` is now a required override * `SpriteDecoration#<init>` * `CustomButtonWidget#<init>` & builder is now only non-override method for adding custom button * Removed `ActiveButtonWidget` * Removed `TextlessActionWidget` * `DynamicListWidget.EntryPos` and implementations made `internal` * `PopupWidget` position elements; `LayoutWidget` no longer inherits from the PopupWidget variant * Removed deprecated overrides of `PopupController` from `PopupParentElement` * `SuggestionWindowListener` and `SuggestionWindowProvider` moved out of `internal` sub-package * Removed `ImmutableRelPos` * `RenderUtil#renderBlur` * Throughout FzzyConfig `Translatable.Result` has been replaced with `Translatable.ResultProvider`. This affects `EntrySearcher` as well as `Searcher.SearchContent` ------------------------------------- ### Additions * Various documentation updates for the Provider systems, including a wiki update ### Changes * `ValidatedField.translationProvider`, `ValidatedField.descriptionProvider`, `ValidatedField.attachProvider`, and the associated `Provider` types are now static (as well as instance methods) so java users won't have to call `.Companion.` anymore (but can) ### Fixes * Deprecated settings are properly read in from file for handling. They are still ignored in network traffic. * The options in `ValidatedChoiceList` and similar settings with an "inline" widget layout now properly show the tooltip for the individual options as well as the settings overall tooltip

Download

Download

Download v0.7.6+1.21.11

Minecraft: 1.21.11

Loaders: fabric, quilt

Tags

fabricforgeneoforgequilt1.21.71.21.81.21.91.21.101.21.11