promotional bannermobile promotional banner

Simple Blood

Adds simple blood particles.
Simple Blood

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.

Support me on Ko-fi

Features

Hit Burst + Death Burst + Bloodstains

Blood in Different Colors

Iron Golem Debris Particles

Underwater Blood Fog

Everything's Configurable

Configuration

All effects are fully customizable through Mod Menu.

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). Return null to fall back.

Core behaviour

  • setCanBleed(boolean) — whether it bleeds at all.
  • setCanDripAtLowHealth(boolean) — set false for 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; return true to 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.

Report an Issue or Suggest a Feature on GitHub

The Simple Blood Team

profile avatar
Owner
  • 2
    Projects
  • 5.6K
    Downloads

Making cool mods frfr

More from Lythroo

  • Falling Wind project image

    Falling Wind

    Reimagining the elytra fly sound effect. A simple mod that adds dynamic wind sounds while you're falling, using the elytra sound effect.

    • 1.1K
    • July 3, 2026
  • Falling Wind project image

    Falling Wind

    Reimagining the elytra fly sound effect. A simple mod that adds dynamic wind sounds while you're falling, using the elytra sound effect.

    • 1.1K
    • July 3, 2026