Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details

Adds simple blood particles.
When entities take damage, they bleed proportionally to the amount dealt. Weak hits create small, short splashes, while heavy hits result in dramatic blood bursts. Entities at low health slowly drip blood, and killing blows trigger larger death bursts.
Features
Hit Burst + Death Burst + Bloodstains
Blood in different colors
Iron Golem Debris Particles

Underwater Blood Fog
Everything's configurable
...and many more features!
Configuration
All effects are fully customizable through Mod Menu and Cloth Config API.
For Mod Developers
Simple Blood exposes a client-side API to fully control blood behaviour for your mod's entities. Call it from your client initializer. Everything you register overrides the config and defaults; every option is optional, so you only set what you want to change.
import com.bloodmod.BloodModAPI;
// Registering by the raw id string works on every loader & MC version:
BloodModAPI.registerEntityBlood("yourmod:custom_mob", new BloodModAPI.BloodSettings()
.setColor(0xFF0000) // blood colour 0xRRGGBB (or setColor(r, g, b))
.setCanBleed(true)
.setCanDripAtLowHealth(true) // continuous drip while wounded
.setTransformToStains(true)); // ground stains + underwater fog
// You can also register by EntityType:
BloodModAPI.registerEntityBlood(YourEntities.CUSTOM_MOB, new BloodModAPI.BloodSettings()
.setColor(0x8B0000));
All BloodSettings options
Colour
setColor(int rgb)/setColor(int r, int g, int b)— static blood colour.setColorProvider(Function<LivingEntity, Integer>)— dynamic colour resolved per entity instance (e.g. follow an entity's tint or state). Returnnullto fall back.
Core behaviour
setCanBleed(boolean)— whether it bleeds at all.setCanDripAtLowHealth(boolean)— setfalsefor constructs/undead.setTransformToStains(boolean)— ground stains + water fog clouds.
Water & environment
setCreatesFogUnderwater(boolean)— force the underwater-fog behaviour on its own.setParticlesDespawnInWater(boolean)— particles vanish on water contact (snow-golem style).setBleedWhenAsphyxiating(boolean)— opt back in to bleeding from drowning / suffocation / drying-out (Simple Blood suppresses those by default).
Amount, size & sound
setParticleSizeMultiplier(float)— droplet size (1.0 = default).setBurstIntensityMultiplier(float)— particles per hit/death.setDripIntensityMultiplier(float)— low-health drip amount.setBloodSound(SoundEvent)— custom blood sound.setSoundEnabled(boolean)— per-entity sound toggle.
Advanced
setBleedPredicate(BiPredicate<LivingEntity, DamageSource>)— full control over which hits bleed; returntrueto bleed. Overrides the default asphyxiation filtering.
Examples
// Dynamic colour that follows the entity:
BloodModAPI.registerEntityBlood("yourmod:rainbow_slime", new BloodModAPI.BloodSettings()
.setColorProvider(e -> ((RainbowSlime) e).getTintRGB()));
// A sap-bleeding treant: brown, no drip, no stains:
BloodModAPI.registerEntityBlood("yourmod:treant", new BloodModAPI.BloodSettings()
.setColor(0x5B3A1A)
.setCanDripAtLowHealth(false)
.setTransformToStains(false));
// A water elemental that DOES bleed when it dries out:
BloodModAPI.registerEntityBlood("yourmod:water_elemental", new BloodModAPI.BloodSettings()
.setBleedWhenAsphyxiating(true));
// A big boss that bleeds heavily, but never from fall damage:
BloodModAPI.registerEntityBlood("yourmod:colossus", new BloodModAPI.BloodSettings()
.setParticleSizeMultiplier(1.5f)
.setBurstIntensityMultiplier(2.0f)
.setBleedPredicate((entity, source) -> !source.is(DamageTypes.FALL)));
Global controls
// Stop these damage types from ever producing blood, for ANY entity:
BloodModAPI.addNonBleedingDamageType(DamageTypes.IN_FIRE);
BloodModAPI.addNonBleedingDamageType(DamageTypes.LAVA);
BloodModAPI.getRegisteredEntities(); // Set<String> of registered ids
BloodModAPI.unregisterEntityBlood("yourmod:x"); // remove one
The built-in drowning / suffocation / dry-out suppression always applies unless an
entity opts out via setBleedWhenAsphyxiating(true) or its own bleedPredicate.



