Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Fzzy Config

Fzzy Config

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

4.96M
566
Game Mechanics
Library

Compatibility

Minecraft: Java Edition

24w34a
1.21.x
1.20.4–1.20.6
1.20.1

Platforms

Fabric
Forge
NeoForge
Quilt

Supported environments

Client and server

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source Visit wiki Join Discord server
Donate on Ko-fi

Creators

fzzyhmstrs
fzzyhmstrs Member

Details

Licensed TDL M
Published last year
Updated 6 days ago
DescriptionGalleryChangelogVersions

Show all versions

1
2
3
13

fzzy_config-0.6.9+1.20.1+forge

by fzzyhmstrs on Apr 9, 2025
Download

Reminder of breaking changes in 0.6.x

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0
  • As of 0.6.3, ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0
  • As of 0.6.3, TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
  • Possibly more, I didn't take great notes

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • Improved average config load time by approx. 10%.

Changes

  • ValidatedKeybind now stores the keycode in the output file based on a string key, rather than the raw int; but it will still accept the raw int for up-conversion purposes or if the key falls outside the typical set of GLFW keys.
    • The format for the key is the same as the minecraft one with the key.[type] prefix removed (except for mouse buttons, those start with mouse.)
    • For example, page down is page.down versus the minecraft key.keyboard.page.down
    • And right click is mouse.right versus key.mouse.right
  • ValidatedTriState will now accept boolean inputs from the file, if a user accidentally uses true or false instead of the intended enum form "true" or "false"
  • "Excess" fields (fields that used to exist in a config but no longer do, for example) are now reported as deserialization errors and removed from the read file.

Fixes

  • Integer-type text-box number validation no longer accepts decimal inputs, and the text-box in general no longer accepts any characters except numbers, the minus sign, and decimal if it is a floating-point number.
  • Fixed the search passing text not dynamically updating based on current pass-fail state of the input test.
  • Validated Any now properly translates basic settings (again, don't know when this broke)
  • Fixed servers not properly parsing updates sent from the client, introduced in 0.6.7
  • Config screen managers are now properly invalidated on joining a new world (with potentially new config values to care about)
  • Narration of the search bar and search bar option buttons works better, and can recover better from being "interrupted"
  • Deserialization fixes:
    • Basic validation (plain fields) now properly report their errors, leading to a correction of the config file as needed.
    • ValidatedAny is now robust against changing the number of fields in the wrapped object. Previously adding fields and then trying to read the pre-existing config file would result in total failure for the object, reverting to defaults.

fzzy_config-0.6.8+1.21.5+neoforge

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.21.5

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.21.3

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.21

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.20.1

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.21.3+neoforge

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.21+neoforge

by fzzyhmstrs on Mar 29, 2025
Download

fzzy_config-0.6.8+1.20.1+forge

by fzzyhmstrs on Mar 29, 2025
Download

Reminder of breaking changes in 0.6.x

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0
  • As of 0.6.3, ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0
  • As of 0.6.3, TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
  • Possibly more, I didn't take great notes

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • Updated to 1.21.5
  • Searches now propagate through sub-menus and other "children" results that aren't themselves valid but contain sub-entries that are valid will show a dashed outline and the tooltip will list the valid sub-entries
    • Searches can now be automatically passed to sub-menus. By default, alt-click will pass the search
    • The main search bar now has some buttons! A menu button which opens the new search config menu, and a clear button to quickly clear the search bar.
  • Added new SaveType method in Config
    • OVERWRITE - Client configs will be overwritten when receiving a sync from a server. Default and previous behavior
    • SEPARATE - Client configs will not be saved locally when updated from a server. Actions that modify gamestate before sync can't be included in these config type (Action.RESTART and Action.RELOG), as they won't be able to properly sync up this game state if they can't overwrite the local file.
  • New Translatable.ResultProvider super-class for more nuanced and efficient storage of translation results. Currently, half-wired-in until 0.7.0.
    • Scope-based Result can be cached with the new Translatable.createScopedResult
  • New function utilities for suppliers, functions, and predicates that always return the same value

Changes

  • Translatable.Result now implements Searcher.SearchContent directly, and is now deprecated in favor of the new ResultProvider
    • In 0.7.0, all Result constructors will be made internal in favor of using Translatable.createResult/Translatable.createScopedResult
  • ConfigEntry can now process searches using the ContentBuilder.searchResult method. This presents valid "child" search results when the parent list is searched.
  • ValidatedAny now has its own search bar
  • ConfigScreenManager passes Config and entry Content misc. context to entry creators

Fixes

  • Fixed unnecessary re-saving of configs on single player configuration
  • Fix a variety of edge cases and niche issues involving searching
  • Popups for settings that are translated with @Translation (or the entire class is marked with @Translation) will now properly render the translated name in the popup header
  • Search filtering now properly resets when a screen is returned to. The search bar menu has a setting to enable caching behavior where the search will be maintained when the screen is re-opened from a child.
  • Fixed accidental niche API break of ConfigGroup involving kotlin constructors.

fzzy_config-0.6.7+1.21.3

by fzzyhmstrs on Mar 21, 2025
Download

fzzy_config-0.6.7+1.21

by fzzyhmstrs on Mar 21, 2025
Download

fzzy_config-0.6.7+1.20.1

by fzzyhmstrs on Mar 21, 2025
Download

fzzy_config-0.6.7+1.21.3+neoforge

by fzzyhmstrs on Mar 21, 2025
Download

fzzy_config-0.6.7+1.21+neoforge

by fzzyhmstrs on Mar 21, 2025
Download

fzzy_config-0.6.7+1.20.1+forge

by fzzyhmstrs on Mar 21, 2025
Download

Reminder of breaking changes in 0.6.x

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0
  • As of 0.6.3, ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0
  • As of 0.6.3, TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
  • Possibly more, I didn't take great notes

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • Configs now support different save file formats beyond just TOML. Current offerings are TOML, JSON, JSON5, JSONC. Select your desired format by overriding fileType in the config class.
    • JSON5 and JSONC will automatically carry over comments made with @Comment or @TomlComment

Changes

  • Broke out PopupController from PopupParentElement, allowing for smoother implementation of popups into existing screens.

Fixes

  • Fixed unnecessary re-saving of configs on single player configuration.

fzzy_config-0.6.6+1.21.3

by fzzyhmstrs on Mar 16, 2025
Download

fzzy_config-0.6.6+1.21

by fzzyhmstrs on Mar 16, 2025
Download

Reminder of breaking changes in 0.6.x

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0
  • As of 0.6.3, ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0
  • As of 0.6.3, TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
  • Possibly more, I didn't take great notes

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • @RootConfig annotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.
  • Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
  • New ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.
  • DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.
  • ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.
  • New EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.

Changes

  • The networking api methods registerLenient[side] are now ported to all versions for usage parity.
  • If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
  • ValidatedColor popups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.

Fixes

  • GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
  • ConfigGroup now has an optional constructor parameter to start the config collapsed.
  • Ingredients and Colors now work as keys/values in validated collections.
    • Ingredients can no longer be interacted with outside of worlds.
  • The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
  • ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.
  • Popups for ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.
  • Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
  • Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)

fzzy_config-0.6.6+1.20.1

by fzzyhmstrs on Mar 16, 2025
Download

Reminder of breaking changes in 0.6.x

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0
  • As of 0.6.3, ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0
  • As of 0.6.3, TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
  • Possibly more, I didn't take great notes

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • @RootConfig annotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.
  • Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
  • New ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.
  • DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.
  • ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.
  • New EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.

Changes

  • The networking api methods registerLenient[side] are now ported to all versions for usage parity.
  • If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
  • ValidatedColor popups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.

Fixes

  • GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
  • ConfigGroup now has an optional constructor parameter to start the config collapsed.
  • Ingredients and Colors now work as keys/values in validated collections.
    • Ingredients can no longer be interacted with outside of worlds.
  • The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
  • ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.
  • Popups for ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.
  • Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
  • Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)
  • Fixed sliders not capturing the change made if the mouse is released off of the slider itself.

fzzy_config-0.6.6+1.21.3+neoforge

by fzzyhmstrs on Mar 16, 2025
Download

fzzy_config-0.6.6+1.21+neoforge

by fzzyhmstrs on Mar 16, 2025
Download

Reminder of breaking changes in 0.6.x

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts. Deprecations scheduled for removal 0.7.0
  • As of 0.6.3, ActiveButtonWidget is unused and deprecated, marked for removal by 0.7.0
  • As of 0.6.3, TextlessActionWidget is unused and deprecated, marked for removal by 0.7.0
  • Possibly more, I didn't take great notes

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • @RootConfig annotation for marking a config as a "root" config. The settings will appear "inline" with the landing page config buttons, instead of in its own sub-GUI. All other aspects of the config interaction remain unchanged; loading, saving, calling from, etc. so an existing config can be marked as root with no breakage.
  • Added a greyed-out placeholder button for configs that aren't yet loaded but have been promised via the fabric.mod.json or mods.toml.
  • New ConfigApi.isScreenOpen/ConfigApiJava.isSceenOpen methods for checking if a Config GUI is currently open.
  • DynamicListWidget has a new scrollToEntry method for scrolling directly to a list element.
  • ConfigApi.openScreen now supports passing in scope args for scrolling to them and opening them as applicable. If you have a config my_mod:config with a Object setting coolObject, passing my_mod.config.coolObject to openScreen will open the config GUI, scroll to the object setting, and open the object editing popup.
  • New EntryOpener interface for entries that have something to open on request. This is typically used for validation that has a popup edit menu.

Changes

  • The networking api methods registerLenient[side] are now ported to all versions for usage parity.
  • If a config is loaded after screens for a mod have been initialized, the manager will be invalidated and rebuilt (as needed) with the new total loaded config set considered.
  • ValidatedColor popups now have a submit button for the hex string textbox, and the alpha edit box will be completely missing if the color doesn't support transparency.

Fixes

  • GUI keys are no longer pressable "past" an open popup, and multiple of the same popup can no longer be opened with keybinds.
  • ConfigGroup now has an optional constructor parameter to start the config collapsed.
  • Ingredients and Colors now work as keys/values in validated collections.
    • Ingredients can no longer be interacted with outside of worlds.
  • The screen manager now locks while constructing a requested screen to prevent recursive screen building if the construction process somehow calls for opening the same screen.
  • ValidatedColor properly shows and accepts only 6-digit hex when it doesn't support transparency.
  • Popups for ValidatedIdentifier and ValidatedTagKey properly focus their textboxes on open again, and their textboxes are aligned properly again.
  • Fixed Go-to menu scroll bar disappearing if you were dragging it and moved the mouse off of the menu. The scrollbar disappearing when the menu isn't hovered is intended behavior.
  • Right click menus properly pass clicks "past" themselves, allowing actions to be taken when "clicking off" of them (including "moving" the menu to the newly clicked spot.)
1
2
3
13

Modrinth is open source.

main@bf16d36

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.