1.0.0
Compatibility
Changes
⚰️ DeathBan
Die, and you're out — for a little while. DeathBan temporarily bans players every time they die, with the ban getting longer each time. No more death spiral of grief chat and instant respawns — every death actually costs something.
✨ Features
- Automatic death bans — die, and you're banned for a set amount of time. No staff action required.
- Scaling ban durations — each death increases the ban length, up to a configurable cap:
Death 1 → 5 minutes
Death 2 → 10 minutes
Death 3 → 15 minutes
Death 10 → 50 minutes
- Fully automatic unban — bans expire on their own. Players can just log back in once their time is up.
- Persistent death tracking — death counts and ban expiry are saved to disk and survive restarts, using clean, human-readable timestamps (
2026-08-13 14:23:45, not a wall of numbers). - Readable countdowns — "4 days 3 hours", "12 minutes", "37 seconds" — banned players (and admins) always know exactly how long is left.
- Configurable everything — starting ban, increase per death, maximum ban, death/join/broadcast messages, and full color code support.
- Admin toolkit — check any player's info, reset their record, adjust their death count, or lift a ban early.
- Exemption permission — give trusted players
deathban.exemptto skip the death ban entirely. - Built clean — modern Paper API only, no deprecated methods, async file I/O so saves never lag the server.
🛠️ Commands
| Command | Description |
|---|---|
/deathban info [player] |
Death count, current ban length, and time remaining |
/deathban reload |
Reload the config without restarting |
/deathban reset <player> |
Wipe a player's deaths and lift any active ban |
/deathban setdeaths <player> <amount> |
Manually set a player's death count |
/deathban unban <player> |
Lift an active ban without touching their death count |
🔑 Permissions
| Permission | Default | Description |
|---|---|---|
deathban.use |
true |
Check your own death/ban info |
deathban.admin |
op |
Access to all admin subcommands |
deathban.exempt |
false |
Never receive a death ban |
⚙️ Configuration
starting-ban: "5m"
increase-per-death: "5m"
maximum-ban: "7d"
death-message: "&cYou have been death banned for &e%time%&c."
join-ban-message:
- "&cYou are currently death banned."
- "&7Remaining: &e%remaining%"
broadcast-deathban: true
broadcast-message: "&c%player% has been death banned for &e%time%&c."
Time values accept s, m, h, d, w, and can even be combined (1d12h).
📋 Requirements
- Paper (or a Paper fork) 1.21.1 – 1.21.x
- Java 21
💡 Why DeathBan?
Great for hardcore-adjacent survival servers, permadeath-lite challenges, or any community that wants dying to actually sting without going full permadeath. The scaling penalty means one unlucky death is a slap on the wrist — but a careless streak gets progressively more expensive.
Found a bug or have a feature request? Open an issue on the source repository linked above!
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:ymHcWU9k:EvxjOE4D"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ymHcWU9k:EvxjOE4D"
}

