A standalone patch‑only Forge 1.20.1 and Neoforge 1.21.1 mod containing three categories of fixes:
Startup crash caused by multiple [Let's Do] mods (Meadow, BloomingNature, Vinery, etc.) writing concurrently to vanilla FireBlock flammable block tables during the parallel‑phase FMLCommonSetupEvent: java.lang.ArrayIndexOutOfBoundsException: Index 1024 out of bounds for length 513
Create's Schematicannon crashes when loading schematics containing [Let's Do] block entities (such as StorageBlockEntity): java.lang.ClassCastException: SchematicLevel cannot be cast to ServerLevel
Farmer's Delight Rich Soil Farmland fails to recognize the Farm & Charm Water Sprinkler as a water source. As a result, rich soil cannot stay moist near sprinklers and degrades back into ordinary dirt.
Note: Neoforge 1.21.1 has official fixes for issues #1 and #3 above
Vanilla FireBlock stores block flammability chances inside two non‑thread‑safe fastutil hash tables. Multiple Let's Do mods independently call FireBlock.registerFlammable (SRG name m_53444_) concurrently from their own FlammableBlockRegistry.init(). When both tables are rehashed and modified at the same time, their key‑value array lengths fall out‑of‑sync and trigger an out‑of‑bounds crash.
Vinery’s StorageBlockEntity.setChanged() forcibly casts its level to ServerLevel. Create’s blueprint system uses a dummy SchematicLevel fake world; this hard cast throws an exception and prevents blueprint loading.
Farmer's Delight’s RichSoilFarmlandBlock.isNearWater() only checks for vanilla water blocks. The Farm & Charm water_sprinkler block should count as a valid water source but is ignored, causing nearby rich soil to degrade.
This mod applies vanilla‑targeted Mixins to:
Object2IntMap.put calls inside FireBlock.m_53444_ behind a global lock, serializing all flammability registration writes;setChanged() for a total of 13 block‑entity classes from Vinery / Meadow / BloomingNature / Brewery / Farm & Charm / Bakery / doapi whenever the entity resides inside a fake world that is not a ServerLevel;Farmer's Delight's RichSoilFarmlandBlock.isNearWater(), so the Farm & Charm water_sprinkler block is treated as valid water.No files from original mods are modified, and no game save data is altered.
Place dist/letsdo‑crashfix‑1.0.3‑mc1.20.1‑forge.jar into your mods folder (no additional dependency mods required).
The patch is active once you see this line in your startup log: [Let's Do] Crash Fix: flammable registration is now serialized via FireBlock mixin.