promotional bannermobile promotional banner

Let-s-do-bugs-fix

Fixes bugs for the Let's Do series of mods on Forge 1.20.1 and Neoforge 1.21.1

[Let's Do] Crash Fix

A standalone patch‑only Forge 1.20.1 mod containing three categories of fixes:

  1. 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

  2. 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

  3. 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.

Mechanism

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:

  • Wrap both Object2IntMap.put calls inside FireBlock.m_53444_ behind a global lock, serializing all flammability registration writes;
  • Skip execution of 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;
  • Inject an extra water‑source check into 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.

Usage

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.

The Let-s-do-bugs-fix Team

profile avatar
  • 5
    Projects
  • 439
    Downloads

More from DreamdawnView all