Repository navigation
Open
Labels
bugSomething isn't workingSomething isn't working
Description
When experimenting with Reshape's new tagging feature for version 0.4, I tested tagging vanilla blocks like oak_log, oak_leaves, note_block, gravel, as well as aspen_log and aspen_leaves from Oh The Biomes We've Gone to see if it would work. Unfortunately, it didn't, and I suspect the same can be said for all vanilla blocks (as well as similar modded blocks) that currently aren't automatically marked as base blocks by default.
Given some of these blocks didn't have variants in previous versions, I get the impression this is already a known issue with the rebuilder.
Mods:
- Fabric API v0.92.7
- Cloth Config v11.1.136
- reshaped v0.4
- Oh The Biomes We've Gone v1.7.5
The following warning/error appears in the logs when you try to tag an oak_log:
[22:01:44]` [Server thread/WARN]: [MatrixRebuilder] rebuild: variant processing FAILED for base minecraft:oak_log (This registry can't create intrusive holders)
java.lang.IllegalStateException: This registry can't create intrusive holders
at net.minecraft.registry.SimpleRegistry.createEntry(SimpleRegistry.java:374) ~[client-intermediary.jar:?]
at net.minecraft.block.Block.<init>(Block.java:71) ~[client-intermediary.jar:?]
at net.minecraft.block.SlabBlock.<init>(SlabBlock.java:34) ~[client-intermediary.jar:?]
at net.f3rr3.reshaped.block.Slab.ReshapedSlabBlock.<init>(ReshapedSlabBlock.java:7) ~[reshaped-0.4-alpha.jar:?]
at net.f3rr3.reshaped.registry.VariantCompleter.completeVariant(VariantCompleter.java:65) ~[reshaped-0.4-alpha.jar:?]
at net.f3rr3.reshaped.util.MatrixRebuilder.rebuild(MatrixRebuilder.java:204) ~[reshaped-0.4-alpha.jar:?]
at net.f3rr3.reshaped.util.BlockRegistryScanner.lambda$init$2(BlockRegistryScanner.java:31) ~[reshaped-0.4-alpha.jar:?]
at net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents.lambda$static$12(ServerLifecycleEvents.java:106) ~[fabric-lifecycle-events-v1-2.2.23+1802ada577-1839a3f067e5633.jar:?]
at net.minecraft.server.MinecraftServer.mdb849ca$fabric-lifecycle-events-v1$lambda$endResourceReload$0$0(MinecraftServer.java:4389) ~[client-intermediary.jar:?]
at java.util.concurrent.CompletableFuture.uniHandle(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) ~[?:?]
at net.minecraft.server.ServerTask.run(ServerTask.java:18) ~[client-intermediary.jar:?]
at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:156) ~[client-intermediary.jar:?]
at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:782) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:164) ~[client-intermediary.jar:?]
at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:130) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.runOneTask(MinecraftServer.java:764) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.runTask(MinecraftServer.java:758) ~[client-intermediary.jar:?]
at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:115) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.runTasksTillTickEnd(MinecraftServer.java:742) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:675) ~[client-intermediary.jar:?]
at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[client-intermediary.jar:?]
at java.lang.Thread.run(Unknown Source) ~[?:?]
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
F-3-R-R-3 commentedon Mar 16, 2026
Thanks for reporting this bug!
It is a known issue that the mod crashes when you force it to generate variants for logs. Logs have a
facingproperty, which currently causes the block variant generator to crash. However, I was not aware thatoak_leaves,note_block, andgravelcould also cause crashes.Possible explanations:
logs: logs have afacingproperty, which currently causes the block variant generator to crash.leaves: these blocks have apersistentproperty, which might cause the block filter to skip them.note_block: has a hard coded rule that forces it to be ignored by the mod. However, it should have been skipped when a tag is applied.gravel: may have been skipped because it has special behavior related to falling blocks.The causes of these problems are probably the same for both vanilla and modded blocks.
A lot of the code responsible for these issues is located here:
https://github.com/F-3-R-R-3/reshaped-1.20.1/blob/262d89d1f3f2a1d3d8d608ce2643cb9fc3382e2d/src/main/java/net/f3rr3/reshaped/matrix/BaseBlockFilter.java
I will not be fixing blocks with a
facingproperty soon, because I have plans to implement proper support for them. The idea is to add a system that allows blocks to be rotated before placement while also rotating their textures independently. This will require significant changes, so it will take time to implement.However, the other blocks such as
gravel,note_block, andleavesshould be easier to address, and I will look into those.If anyone wants to try and fix this, please do.
F-3-R-R-3 commentedon Mar 18, 2026
After investigating this further, I won’t be fixing this issue for now.
The root cause is that tag-based base blocks are only resolved during the data pack reload phase, which happens after the block registry has already been frozen. At that point, Minecraft no longer allows creating new
Blockinstances (such as slabs, stairs, etc.), which is why the game crashes with the “intrusive holders” error.Because of how Minecraft’s lifecycle works, this is not something that can be easily worked around:
Fixing this properly would require a significant redesign of how and when variants are generated.
For now, I will leave the tag-based allow system as-is. The deny system does work correctly and can be used as an alternative.
If anyone has ideas or wants to experiment with a solution, contributions are definitely welcome.
F-3-R-R-3 commentedon Mar 18, 2026
What I can do for now is improve configurability around which blocks get variants:
oak_leavesorgravel) so they can have variants by default@scrin445-maker what do you think?
scrin445-maker commentedon Mar 18, 2026
Removing the hardcoded filters will be appreciated, if it can be done without issue. As for the server config, I'm not a modder but isn't that already how the tagging system works as datapacks are server-sided?
Either way, no real complaints here.
F-3-R-R-3 commentedon Mar 20, 2026
Datapacks, block tags, and server configs are quite different.
Datapacks are built into vanilla and are very easy to implement. However, they have the downside that you can only access them after the game’s
registryhas closed, which prevents the mod from registering any blocks, because the information from theallow tagsis available too late.Server configs can be accessed whenever needed, since you have to implement them yourself. This comes at the cost of requiring significantly more code and effort to set up.