Additions
- Search field now has a tooltip and shows "Search" when the search query is empty
- Search also now has several modes, described in the tooltip. Search setting descriptions, negate searches, and more.
Changes
ValidatedEnumpopups now center the enum buttons on popups with very long enum names- Many internal refactors to further move away from referencing version specific MC code outside util classes
- Further implement Custom widgets and remove more vanilla widget references
Fixes
- Fixed number widgets sometimes freezing if their allowable range was low (<1.0)
- Fixed integer type slider left/right button incrementing on ranges <10 min to max
- Fixed search bar and done button moving strangely on resize
- Fixed setting entry tooltips appearing for entries "tucked" under the header or footer when hovered over
Additions
- Port to 24w40a
- Added a decimal format to
ValidatedFloatandDouble; the values within will now be formatted like#.##, instead of showing the entire fractional part. - Added exception if a
ValidatedNumberis provided with a min >= max. - Added
Item,Block,EntityType, andFluidas types that can be automatically wrapped with validation without having to specify it yourself.
Changes
- Using
@Translationat the config-level will add the option to use the prefix itself as a lang key for the config title.
Fixes
- Fixed tooltip alert for the
RELOAD_RESOURCESaction on config-level alerts - Fixed
@Translationnot working for config sections - Inherited config classes fully work again
- Fixed mapped values not instancing themselves properly; which was breaking mapped lists, maps, and other collection views in the GUI.
- Restore config ordering from alphabetical to declared-order in the TOML outputs. Superclasses will appear after the direct class fields.
Additions
- Added a decimal format to
ValidatedFloatandDouble; the values within will now be formatted like#.##, instead of showing the entire fractional part. - Added exception if a
ValidatedNumberis provided with a min >= max. - Added
Item,Block,EntityType, andFluidas types that can be automatically wrapped with validation without having to specify it yourself.
Changes
- Using
@Translationat the config-level will add the option to use the prefix itself as a lang key for the config title.
Fixes
- Fixed tooltip alert for the
RELOAD_RESOURCESaction on config-level alerts - Fixed
@Translationnot working for config sections - Inherited config classes fully work again
- Fixed mapped values not instancing themselves properly; which was breaking mapped lists, maps, and other collection views in the GUI.
- Restore config ordering from alphabetical to declared-order in the TOML outputs. Superclasses will appear after the direct class fields.
Additions
- Added a decimal format to
ValidatedFloatandDouble; the values within will now be formatted like#.##, instead of showing the entire fractional part. - Added exception if a
ValidatedNumberis provided with a min >= max. - Added
Item,Block,EntityType, andFluidas types that can be automatically wrapped with validation without having to specify it yourself.
Changes
- Using
@Translationat the config-level will add the option to use the prefix itself as a lang key for the config title.
Fixes
- Fixed tooltip alert for the
RELOAD_RESOURCESaction on config-level alerts - Fixed
@Translationnot working for config sections - Inherited config classes fully work again
- Fixed mapped values not instancing themselves properly; which was breaking mapped lists, maps, and other collection views in the GUI.
- Restore config ordering from alphabetical to declared-order in the TOML outputs. Superclasses will appear after the direct class fields.
- Fix client kick on trying to update a config in-game
Additions
- Added a decimal format to
ValidatedFloatandDouble; the values within will now be formatted like#.##, instead of showing the entire fractional part. - Added exception if a
ValidatedNumberis provided with a min >= max. - Added
Item,Block,EntityType, andFluidas types that can be automatically wrapped with validation without having to specify it yourself.
Changes
- Using
@Translationat the config-level will add the option to use the prefix itself as a lang key for the config title.
Fixes
- Fixed tooltip alert for the
RELOAD_RESOURCESaction on config-level alerts - Fixed
@Translationnot working for config sections - Inherited config classes fully work again
- Fixed mapped values not instancing themselves properly; which was breaking mapped lists, maps, and other collection views in the GUI.
- Restore config ordering from alphabetical to declared-order in the TOML outputs. Superclasses will appear after the direct class fields.
Additions
- Added
ValidatedFieldmapping. Validation can be mapped to validation of any other convertible type with the newmapmethods.- New helper class
ValidatedRegistryTypemapsValidatedIdentifierto registry objects, allowing for easy direct implmentation of setting based on registry objects (Items, Blocks, etc) without having to later map the identifiers yourself.
- New helper class
ValidatedFieldnow has a helpercodecmethod for generating a Codec of the underlying type.ValidatedFieldnow has a listener system that triggers on anysetof the field. This listener is aConsumer<ValidatedField<T>>and is added withwithListener- Added
EventApiand corresponding direct implementations in theConfigclass- like other sub-apis, access this Api through the
ConfigApi onSyncClient- fires when a config is synced to a clientonUpdateClient- fires when a config is updated in-game on the client sideonUpdateServer- fires when a config is updated in-game on the server side
- like other sub-apis, access this Api through the
- Added
ConfigAction, which can be used to add arbitrary on-click buttons in the Config GUI. Use them to link to your wiki, open a patchouli guide book, give the player an item, etc. - Added extremely basic
PlatformApifor simple cross-loader tasks like checking if the game state is client-sided or not.
Changes
- Specialized widgets no longer internally extend
PressableWidgetorButtonWidget, which was causing issues with Visual Overhaul or any other mod that leaks the constructor of the widget. It is recommended to use theCustomvariants of those classes for any custom validation implementation.
Fixes
ValidatedIdentifiercan now bind to dynamic registries using theofRegistryKeyinitializer methods.- Fix syncing on login not working.
- Fixed updates on client-only configs sometimes blasting the log with the full config contents.


