Bloody Bits Fix: Stable Blood Effects Without Client Crashes

Why Bloody Bits Fix matters on Forge 1.20.1 If you run CravenCraft’s Bloody Bits v1.3.3 on Minecraft Forge 1.20.1, you might have bumped into a nasty client crash tagged as Ticking entity. It is not the kind of glitch you can ignore when blood sprays pile up during big fights: the world kee...

Download bloodybitsfix for Minecraft 1.20.1

Original name: bloodybitsfix

Minecraft: 1.20.1

Loaders: Forge

FileMCLoaderSize
bloodybitsfix-1.0.1.jar1.20.1Forge5 КБDownload

Why Bloody Bits Fix matters on Forge 1.20.1

If you run CravenCraft’s Bloody Bits v1.3.3 on Minecraft Forge 1.20.1, you might have bumped into a nasty client crash tagged as Ticking entity. It is not the kind of glitch you can ignore when blood sprays pile up during big fights: the world keeps simulating, particles fly everywhere, and then the game suddenly drops because something inside the blood-spray logic tripped over a null reference.

That is where Bloody Bits Fix comes in. Think of it as a small compatibility patch that quietly hardens the client side so the mod can stay gruesome without taking your session down.

What went wrong under heavy particle load

The original issue lives in BloodSprayEntity#setClientBloodColor. On the client, Bloody Bits tracks sprays in an internal map called CLIENT_SIDE_BLOOD_SPRAYS. When combat gets intense, splatters spawn faster, and the map can hit its practical ceiling.

Once that internal map “overflowed” in the broken build, the code still tried to recover by calling map.get(0) and working with whatever came back. If that entry was missing, you ended up with a NullPointerException, which surfaces as a ticking-entity crash while the world is updating entities and effects. In plain Minecraft terms: the client was doing its normal tick loop, the blood system pushed too hard, and one bad lookup turned a cool gore moment into a hard stop.

What this fix actually changes

Bloody Bits Fix rewrites the risky path using a Mixin overwrite so the client never walks off that cliff again. The patch focuses on making the blood-spray bookkeeping predictable when you are at or beyond the configured cap.

  • Safer synchronization for respawned sprays: When sprays respawn, the fix keeps their state aligned, including life timing, so the client representation matches what the logic expects.
  • Eviction that respects real entries: When the limit from CommonConfig.maxSpatters() is reached, the mod removes the oldest entry instead of blindly grabbing key 0, which is where the null surprises showed up.
  • Clean removal: The fix calls discard() before removal so entities do not linger in awkward half-states during the tidy-up pass.
  • No more NPE dead ends: The rewrite closes the hole that caused the NullPointerException chain, which is what was blowing up ticks in the first place.

Gameplay impact: still bloody, just more stable

This is not a total redesign of Bloody Bits; it is surgical. If you like the mod’s gory particle language on servers and in single-player, you generally get the same vibe, with fewer “why did my client just die?” moments when farms, raids, or mob grinders turn into soup.

Community tooling has gotten a lot smoother lately, too. For example, grabbing small compatibility jars without hunting through forum threads can be painless if you use a launcher that treats mods like first-class citizens. Some players streamline the whole stack by using the foxygame.net launcher, a convenient, flexible, and modern Minecraft launcher that lets you pull mods straight from the menu so compatibility extras like this patch ride along with less friction.

How to install (no fuss, Forge folder)

You do not need a maze of extra libraries beyond what Bloody Bits already expects. Installation is classic Forge modding:

  • Install Bloody Bits 1.3.3 for Forge 1.20.1.
  • Add bloodybitsfix-1.0.1.jar to your /mods/ folder alongside it.
  • Launch the same profile you already use for that Forge version and keep configs consistent.

If your modpack manager copies the mods directory for you, treat this patch like any other small compatibility file: same Minecraft version, same loader, same mod minor version.

Quick verification checklist

Because the bug loves chaos, the best test is chaos.

  • Spawn or funnel large hordes so blood sprays trigger constantly.
  • Watch for a long stretch of combat with no client crash and no Ticking entity spam tied to blood.
  • Glance at behavior around the cap: the total splatter count should settle near your maxSpatters setting instead of spiraling into instability.

Config tips and expectations

Patch behavior keeps life duration aligned with the original implementation, so you are not mysteriously getting shorter or longer sprays just because stability improved. If you still want to protect FPS on lower-end PCs, open the Bloody Bits config and lower maxSpatters; fewer active particles is the oldest Minecraft performance trick in the book, and it pairs nicely with this fix.

Dependencies and credit

Required: Bloody Bits by CravenCraft, version 1.3.3, on a matching Forge 1.20.1 setup. Bloody Bits Fix is a client-side stability layer, not a replacement for the main mod.

This community patch was developed and tested by MsMurk, aimed at keeping Forge sessions steady while Bloody Bits does what it does best. If your combat loops used to crash the client at the worst possible moment, this small jar is the kind of behind-the-scenes maintenance work that lets you focus on blocks, biomes, and the next Minecraft update cycle instead of debugging stack traces.