Links
Tags
Creators
Details
1.1
Compatibility
Changes
⚔️ Danger Log
Combat logging protection for Minecraft Paper 1.21+ servers
📖 Overview
Danger Log is a powerful combat logging protection plugin that prevents players from escaping PvP situations by disconnecting. When a player logs out during combat, a zombie NPC spawns in their place — if the zombie dies, so does the player!
✨ Features
🎯 Combat Timer System
- Players within a configurable radius receive a combat timer in their action bar
- Timer displays as
20/20and stays at max while enemies are nearby - Timer counts down when players leave combat range
- Logging out with an active timer = combat logging
🧟 Combat Log Protection
| Mode | Description |
|---|---|
| ZOMBIE | Spawns a zombie NPC with the player's name. If killed, drops all loot. |
| INSTANT | Immediately kills the player upon combat logging. |
🤝 Ally System
- Team up with friends to avoid triggering each other's combat timers
- Clickable invite system with expiration
- Configurable max allies per player
💾 Persistence
- Zombies survive server restarts
- Player inventories are safely stored
- All data saved to files
🎮 Smart Detection
- Only affects Survival mode players
- Creative, Spectator, and Adventure players are ignored
- Bypass permission available for staff
📋 Commands
🔧 Admin Commands
Requires dangerlog.admin permission (default: OP)
| Command | Description |
|---|---|
/dangerlog on |
Enable the plugin |
/dangerlog off |
Disable the plugin |
/dangerlog reload |
Reload configuration |
👥 Ally Commands
Available to all players
| Command | Description |
|---|---|
/ally invite <player> |
Send an ally request |
/ally accept [player] |
Accept a pending invite |
/ally remove <player> |
Remove an ally |
/ally list |
View your allies |
🔑 Permissions
| Permission | Description | Default |
|---|---|---|
dangerlog.admin |
Access admin commands | OP |
dangerlog.bypass |
Bypass combat log system | false |
⚙️ Configuration
# ===========================================
# DANGER LOG CONFIGURATION
# ===========================================
# Combat detection radius (in blocks)
radius: 30
# Combat timer duration (seconds)
timer-duration: 20
# ------ DEATH TYPE ------
# ZOMBIE = Spawns NPC zombie
# INSTANT = Kills player immediately
death-type: ZOMBIE
# ------ ZOMBIE SETTINGS ------
# How long before zombie auto-expires (-1 or 0 = never)
# Minimum: 10 seconds
zombie-log-timer-max: -1
# ------ ALLY SYSTEM ------
# Enable/disable allies
allow-allies: true
# Max allies per player (-1 or 0 = unlimited)
max-allies: 6
# Ally invite duration (seconds)
invite-duration: 120
# ------ GENERAL ------
# Plugin enabled state
enabled: true
🎬 How It Works
1️⃣ Two players enter combat range (30 blocks)
↓
2️⃣ Both see combat timer: [20/20]
↓
3️⃣ Timer stays at max while in range
↓
4️⃣ Player leaves range → timer counts down
↓
5️⃣ Player logs out with active timer
↓
┌─────────────────────────────────────┐
│ ⚠️ COMBAT LOG DETECTED! │
│ Zombie spawns at logout location │
│ Chat: "Player has logged out in │
│ combat." │
└─────────────────────────────────────┘
↓
6️⃣ If zombie is killed → loot drops
↓
7️⃣ Player rejoins → DEATH SCREEN
🧟 Zombie NPC Details
| Property | Value |
|---|---|
| Name | Player's name (bold red) |
| AI | Disabled |
| Burns in Sun | No |
| Health | Same as player at logout |
| Drops | Player's full inventory |
| Despawns | Never (unless configured) |
📁 Data Files
| File | Purpose |
|---|---|
config.yml |
Plugin configuration |
allies.yml |
Stored ally relationships |
zombies.yml |
Active combat log zombies |
💡 Tips
- For SMP servers: Set
zombie-log-timer-maxto-1so zombies stay forever - For minigames: Use
INSTANTdeath-type for immediate punishment - For teams: Enable allies with a reasonable
max-allieslimit - For staff: Give
dangerlog.bypasspermission to moderators
📞 Support
Having issues? Contact the developer!
Made with ❤️ by CrystalPT
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:ZgJK10wS:BL46wYqO"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ZgJK10wS:BL46wYqO"
}

