Tags
Creators
Details
All versions
1.3.0
Release
TheDragonLib 1.3.0 for NeoForge 26.1.22 days ago 7
Compatibility
Minecraft: Java Edition
26.1.2
Platform
NeoForge
Supported environments
Client and server
Changes
26.1.2 - 1.3.0
Rule Editor
- Added
client.config.RuleFormat— how a config line maps to the fields of aRuleType.RuleFormat.PIPEis the previous positional format; mods can now edit other syntaxes (prefixes,key=valuepairs, lines saved in an older layout) and provide their own cross-field checks and row summaries. - Added the field kinds
BLOCK,CUSTOM(a picker whose options the mod provides byField.source()),CHOICEandTOGGLE(buttons instead of text inputs). - Added
client.config.RegistrySuggestionSource— aRuleSuggestionSourcebacked byRegistryCandidates, which mods extend for theirCUSTOMfields. RuleListScreencan take anEntryPickerto add several entries at once next to the Add button.RuleListScreen.withDefaultsadds a Reset button.RuleSuggestionSource.Optioncan have an icon, shown in the suggestion list.RuleEditScreenrows now shrink on short screens so rules with many fields stay above the error line and buttons.- Long explanations under the screen titles are cut off with the full text on hover instead of running off the screen.
- Fixed a crash in
RuleType.validatewhen a min/max field pair was optional and left empty, andATTRIBUTE_VALUEfields assuming the attribute is the line's second field.
Breaking Changes
RuleSuggestionSourcenow takes theRuleType.Field(and the line's current values where they matter) instead of aKindand a context string.
26.1.2 - 1.2.1
Fixes
- Added
ConfigHelper.getOrDefault/ConfigHolder.getOrDefault— a guard that returns a fallback instead of throwingIllegalStateExceptionwhen a config value is read before its spec is loaded (e.g. datagen or other contexts where no config file is ever loaded, such as a block'sisEnabled(FeatureFlagSet)check running under the loot table provider).
26.1.2 - 1.2.0
New Utilities
- Added
util.ModCompat.isLoaded(String modId)— a one-line check for whether another mod is loaded, replacing hand-rolled per-mod loader enums. - Added
util.RomanNumeralUtil.generate(int)— converts an int to a Roman numeral string.
New Client Rendering Helpers
- Added
client.util.PoseStackHelper.translateAndScale/rotateItem— commonPoseStacktransforms for drawing anItemStackat an offset inside a block entity renderer. - Added
client.util.RenderingUtils.swing/flap/bob/walk— limb-animation math forModelParts.
New Config/GUI Helpers
- Added
client.config.RegistryCandidates— turns a built-in or datapack registry (entities, items, blocks, attributes, enchantments, biomes) into a searchable candidate list forEntryPickerScreen, including a fallback for datapack-driven registries (biomes, enchantments) when no world is loaded, e.g. editing config from the title screen. - Added a second, heavier config-list editor for pipe-delimited, multi-field config rows:
client.config.RuleType(field schema with per-field validation),RuleSuggestionSource(caller-supplied id lookups),RuleListContext(translation key prefixes),RuleListScreenandRuleEditScreen. This complements the existing append-onlyPickerListScreenfor config lists that need several validated fields per row, edited in place.
Internal Cleanup
- No breaking changes to existing public APIs.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:DXK9oAjb:hdNQADIh"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:DXK9oAjb:hdNQADIh"
}

