Update the loot tables to the 26.3 format - #1743
Merged
Merged
Conversation
26.3 replaced the "functions"/"conditions" lists on tables, pools and entries with a single "modifier"/"condition" holder, and the inline "function"/"condition" type keys with "type". The old format parses without any error and is then ignored, so every loot function and condition in these tables had silently become a no-op: block entity data was no longer copied onto drops, and survives_explosion, match_tool and match_wrench never applied. Converting them surfaced two more renames that were hidden until now: block_state_property became match_block, and number providers need an explicit type instead of a bare min/max pair. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
This was referenced Sep 20, 2026
This was referenced Sep 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1738. The 26.3 port compiled and all game tests passed, but the loot tables were left in the pre-26.3 format, which 26.3 accepts without complaint and then ignores.
26.3 replaced the
"functions"/"conditions"lists on tables, pools and entries with a single"modifier"/"condition"holder, and renamed the inline"function"/"condition"type keys to"type". Unknown keys are dropped silently, so every loot function and condition in these 16 tables had become a no-op: proxy ids, energy battery contents and machine tanks were no longer copied onto drops, andsurvives_explosion,match_toolandmatch_wrenchnever applied.The symptom is visible on the current
master-26: running the game test server logsThe conditions were dropped, so the first entry became unconditional and the alternatives behind it unreachable. Both warnings are gone after this change.
Converting the tables also surfaced two renames that had been hidden behind the silent skip, and that now fail to parse:
minecraft:block_state_propertyisminecraft:match_block, withblock/propertiesrenamed toblocks/state(the 6 slab and door tables).{"min": x, "max": y}has to sayminecraft:uniform.I found this while porting EvilCraft, where the same problem made a Dark Tank drop lose its 144000 capacity. Other repos are affected too and will get their own follow-ups.
Validation
./gradlew buildpasses../gradlew runGameTestServer: all 1001 required tests pass, and the twoUnreachable entry!warnings are gone.proxy_id=4242, where before the change it came out empty. Exactly one drop is produced, so theinvertedwrench condition on the second pool correctly suppresses it.🤖 Generated with Claude Code
https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Generated by Claude Code