Tags
Creators
Details
2.1.0
Compatibility
Changes
MRTSimpleBleed 2.1.0
This release fixes a crash that affects every server running 1.21.4 or newer. If you are on 1.0.0, updating is strongly recommended.
Critical fix: crash on 1.21.4+
In Spigot 1.21 org.bukkit.Sound is an enum. From 1.21.4 onward it is an interface,
and it stays one through 26.2. Version 1.0.0 resolved sounds with Sound.valueOf(...), which
compiles against 1.21 but throws NoSuchMethodError / IncompatibleClassChangeError at
runtime on newer servers — on every bleed tick.
Every sound is now resolved through Registry.SOUNDS, which exists in 1.21 and still works on
26.2. One jar covers the whole range, with no reflection and no version-specific builds.
Now supports Minecraft 1.21 → 26.2
Verified against the 1.21 and 26.2 APIs. Also runs on Folia: every scheduled task is bound to the player's region, so it works on threaded servers without any configuration.
Other fixes
- Memory leak on disconnect. Sessions were only cleaned up on the next tick and boss bars were never removed, so quitting mid-bleed and rejoining could leave an orphaned bar on screen. Quit, kick and death are now handled explicitly, and the repeating task no longer holds a reference to the player.
- Console spam with
duration-seconds: 0. Caused a division by zero producingNaN, which made the boss bar throwIllegalArgumentExceptionon every tick. All numeric options are now clamped. - Bleed damage was partly absorbed by invulnerability frames, so intervals below 10 ticks silently dealt no damage. The frames are now bypassed and restored, so bleeding never leaves a player extra-vulnerable to other attackers.
particles.type: DUSTcrashed the plugin even though the shipped config suggested it. Particle data is now built from the config for every particle family (block, item, dust, dust transition).- Recursion guard rewritten. The old check relied on
DamageCause.CUSTOMand also wrongly ignored legitimate custom damage from other plugins.
New features
- Bandages — right-click a configurable item to treat your wound. Cast time, cooldown, item consumption, interruption on movement or damage, and an action-bar progress indicator. Optionally cures one intensity level at a time instead of the whole wound.
- Intensity levels — repeated hits deepen the wound instead of being ignored. Damage and particles scale with the level, shown in the boss bar as Roman numerals.
- Per-cause and per-weapon chances — swords cause bleeding, falling does not. Set any cause
to
0.0to disable it. Per-world blacklist included. - Potion effects while bleeding — optional, off by default. Choose the effects, the amplifier, the minimum level that triggers them, and whether they scale with intensity.
- Blood trail — a bleeding player leaves drops behind as they move. Configurable sampling rate, minimum distance, ground-only mode, colour and particle type.
- PlaceholderAPI support — nine placeholders for scoreboards, tab lists and holograms.
/bleed reload— reload the config without/reload. Plus/bleed infoand/bleed bandageto hand out bandages.
Automatic config updates
Updating the jar no longer means rebuilding your config by hand. New options are merged into
your existing config.yml with their explanatory comments and in the right place, keeping:
- your customised values
- your own comments
- your lists exactly as you left them — an entry you deleted stays deleted
- any keys you added yourself, such as extra weapons under
chances.weapons
A backup is written before any version change, and the console lists exactly what was added.
Renamed to MRTSimpleBleed
- Your configuration is migrated automatically on first start from
plugins/SimpleBleed/. The old folder is kept as a backup. - Permissions changed from
simplebleed.*tomrtsimplebleed.*. This is not automatic: update your LuckPerms (or equivalent) groups. A newmrtsimplebleed.adminnode grants everything at once. - The command is still
/bleed, with/mrtbleedand/bleedingas aliases.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:AJ8mvABr:TvXdAisi"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:AJ8mvABr:TvXdAisi"
}

