All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Simple Combat Log

Simple Combat Log

by NikeyV1 • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

⚔ CombatLog

A effective and highly configurable Paper plugin that prevents combat logging and related PvP abuse. Built for competitive servers that need strict and predictable combat behavior.


Core Features

⏱ Combat Timer

  • Starts when a player deals or receives damage
  • Supports ActionBar or BossBar display
  • Fully configurable duration

🚫 Combat Restrictions

While in combat, you can disable:

  • Elytra usage (including boost)
  • Teleporting
  • Mending
  • Riptide
  • Explosion-based combat abuse (End Crystals / Respawn Anchors)

All restrictions are optional and configurable.

⚠️ Testing? Use a non-OP account! OPs get combatlog.bypass by default and are never tagged, so the plugin looks like it does nothing. Test with a normal player, or remove the permission from OPs


Smart Combat Triggers

  • Player vs Player damage
  • Projectile damage (Arrow, Trident, Wither Skull)
  • Explosion-based tagging
  • Ender Pearl land detection
  • Optional combat zone with radius detection

Anti Kill Abuse System

Prevents farming the same victim repeatedly.

  • Configurable kill limit
  • Configurable time window
  • Custom punish commands
  • Fully automated

WorldGuard Integration

If WorldGuard is installed:

  • Registers custom flag: allow-combat-entry
  • Blocks region entry while in combat
  • Fully optional integration

No hard dependency required.


💡 Feature Requests

Have an idea for a feature that you think would be useful for many servers and players, not just your own setup?

Feel free to suggest it!

  • 💬 Discord: Contact me directly
  • 🐙 GitHub: Open an issue with your idea, use case, and any relevant details

Please keep feature requests focused on things that could benefit the wider CombatLog community. This helps prioritize features that are useful for more than just a single server.

github modrinth

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x 1.21.x
Paper Purpur
1d ago 1
26.2 26.1.x 1.21.x
Paper Purpur
1d ago 1
26.2 26.1.x 1.21.x
Paper Purpur
1d ago 1
26.2 26.1.x 1.21.x
Paper Purpur
1d ago 1
26.1.x 1.21.x
Paper Purpur
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.x
Paper Purpur
1d ago 1
1.21.x 1.20.x
Paper
1d ago 1
1.21.x 1.20.x
Paper
1d ago 1
1.21.x 1.20.x
Paper
1d ago 1
1.21.x 1.20.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.4
Paper
1d ago 1
1.21.x 1.20.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.x
Paper
1d ago 1
1.21.x 1.20.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.x
Bukkit Paper Spigot
1d ago 1
1.21.x 1.20.x 1.19.x
Paper
1d ago 1
1.21.x 1.20.x 1.19.x
Paper
1d ago 1
## Added
| Feature | Config |
|---|---|
| Logout punishment modes none, kill, commands | punishment.logout.mode, punishment.logout.commands |
| Command whitelist mode | command-restrictions.mode: whitelist |
| Allow Ender Pearls while teleporting is disabled | restrictions.teleporting.allow-enderpearl |
| Choose who gets tagged on a hit: both, attacker or victim | triggers.tag-mode |
| Only start combat below a set health | triggers.start-below-health |

## Fixed
  • Untag on kill now only removes the killer's tag if no other opponent is still active
  • Dead players are now untagged on death
  • Combat players could clip into allow-combat-entry: deny regions by placing blocks at the barrier
  • Combat players could enter protected regions via teleports or Ender Pearls
  • Players who still end up inside a protected region during combat are pushed back out
  • Namespaced commands (/plugin:command) bypassed the command blacklist
  • Tag effects no longer flicker on every hit, they get refreshed instead
## Config
  • Config version 3 → 4, migrated automatically (backup: config.v3.bak.yml)
  • punishment.kill-on-logout → punishment.logout.mode (true becomes kill)
  • blocked-commands → command-restrictions.commands
  • New keys get their comments added on migration
### Added
  • Untag on kill: the killer is now removed from combat immediately after killing another player. Configurable via combat-log.triggers.untag-on-kill (default: true)

### Changed
  • explosions.set-combat-on-explosion moved from restrictions to triggers in config.yml (more accurate location)
  • Config version bumped to 3, migration runs automatically on startup

### Notes
  • Existing configs are migrated automatically on next server start
  • A backup of the previous config is saved as config.v2.bak.yml in the plugin folder
## v1.18

### WorldGuard Safe-Zone Barrier
| Change | Details |
|---|---|
| Rework | Barrier now scans block-by-block against the actual region shape instead of a fixed radius around the last movement point. Aligns exactly with the region edge. |
| Live updates | Barrier is recalculated continuously while in combat (every move, throttled to 250ms), not just once after a rejected move. It now shows on approach instead of only after being pushed back. |
| Break/interact protection | Barrier blocks can no longer be broken or interacted with. |
| New config: view-distance | Controls how far from the border the barrier stays visible. Default: 8. |
| New config: height | Controls how many blocks above the player the barrier scan checks. Default: 3. |

### Config System
| Change | Details |
|---|---|
| messages.yml auto-creation | File is now created on first enable if missing. |
| Config auto-migration | config.yml is now automatically backed up and migrated when the config version changes, instead of requiring a manual reset. |
| New accessors | getCombatManager(), getPluginConfig(), reloadPluginSettings() exposed for cleaner internal access. |

### Config Migration Notes
Existing installs will get the new view-distance and height keys added automatically under combat-log.worldguard.safe-zone-barrier on next startup. A backup of the old config is created automatically.
## **Changelog - CombatLog [Version 1.17]**

### ✨ **New Features**
  • Subcommand system** for /combatlog: reload, status, untag – better plugin management through commands
  • Visual WorldGuard safe-zone barrier** with fake blocks – players see a clear visual barrier around safe zones

### 🔧 **Improvements**
  • Separate messages.yml** introduced with full colorization support – easier message customization
  • Simplified CombatManager** – cleaner, more maintainable code without unnecessary complexity
  • Optimized PlaceholderAPI integration**
  • Tab-completion** for all subcommands
  • Messages now use Adventure Components for better consistency

### ⚠️ **Removed**
  • Opponent-tracking simplified (no longer stored in data structures)

### 🐛 **Bugfixes & Cleanup**
  • WorldGuard now properly treated as an optional dependency
  • Barriers correctly cleared on untag
  • Improved timer cleanup on plugin shutdown

## New Features

  • PlaceholderAPI Integration**
CombatLog now supports PlaceholderAPI. Use these placeholders in any compatible plugin (scoreboards, TAB, HUDs, etc.):
  • %combatlog_in_combat% — true / false
  • %combatlog_time_left% — remaining combat seconds
  • %combatlog_opponent_name% — name of the current opponent
  • %combatlog_opponent_health% — opponent's current HP (00.00 format)

PlaceholderAPI is optional — the plugin loads cleanly without it.

  • Permission Bypass (combatlog.bypass)**
Players or groups with the combatlog.bypass permission are fully exempt from CombatLog:
  • Will not be tagged into combat
  • Are not subject to any in-combat restrictions (elytra, teleport, commands, etc.)
  • Disconnecting while in combat produces no broadcast and no punishment
  • Default: op

  • Potion Effects on Combat Tag**
You can now configure potion effects that are automatically applied when a player enters combat and removed when combat ends. Effects are only applied if the player does not already have that effect active.

Configure in config.yml under combat-log.tag-effects:
``yaml
tag-effects:
  • type: GLOWING
duration-seconds: 15
amplifier: 0
show-particles: false
`
Supports any valid Bukkit
PotionEffectType. The list in the default config includes GLOWING as an example — remove or comment it out if you don't want any effects.


# Improvements
  • CombatManager now tracks the current opponent per player, enabling opponent-related placeholders to work correctly
  • PotionEffectType lookup updated to use Registry.EFFECT instead of the deprecated getByName() method (Paper 1.20.3+)


## Dependencies
  • PlaceholderAPI: optional (softdepend`)
  • WorldGuard: optional (unchanged)
## Refactor — no functional changes

This release is a pure code refactor. Gameplay behaviour is **identical** to the previous version.


### Package structure

Packages have been renamed to follow Java conventions (lowercase):

| Before | After |
|---|---|
| ...Utils | ...util |
| ...Combat | ...combat |
| ...Config | ...config |
| ...Listener | ...listener |


### What changed

  • CombatManager (new: combat package)**
  • Now fully owns combatTimers, activeTimers and bossBars maps
  • Listeners no longer touch state directly — all changes go through the public API

  • PluginConfig (new: config package)**
  • Centralises every config.getString / getBoolean / getInt call
  • Single instance passed to all listeners on startup

  • Listener split**
  • CombatTagListener — damage, projectile, explosion and enderpearl tagging
  • CombatRestrictionListener — elytra, teleport, command block, mending, riptide
  • CombatZoneListener — proximity tagging on join
  • CombatLogoutListener — disconnect handling
  • AntiKillAbuse — kill-farming detection
  • WorldGuardListener — region entry guard (registered only when WorldGuard is present)

  • CombatLog (main class)**
  • Reduced to wiring only: config → manager → listeners
  • registerListeners() is the single place to see which listeners are active


### Migration

No config changes. No permission changes. No command changes.
Simply replace the old jar with the new one and restart.
Fixed an issue with the WorldGuard integration where the plugin checked an unused local flag instead of the actual WorldGuardHook status. As a result, the **region entry restriction during combat now works correctly**.

Additionally, blocked commands are now **case-insensitive** (/TPA, /Tpa, /tpa are treated the same), making the command restriction system more reliable.
[1.13] Config Rework by NikeyV1 on Oct 12, 2026
Download
This update introduces a cleaner and fully restructured configuration.

All settings are now logically grouped (timer, restrictions, punishment, triggers, etc.), making the plugin easier to configure and extend.
The Anti-Kill-Abuse system has also been adapted to the new structure.

> ⚠️ Old configs are **not compatible**. Please replace your existing config.


## New Configuration

<details>
<summary><strong>Click to expand</strong></summary>

``yml
combat-log:
timer:
duration-seconds: 15
display: actionbar

restrictions:
elytra:
disabled-in-combat: true
teleporting:
disabled-in-combat: false
mending:
disabled-in-combat: true
riptide:
stop: false
cooldown: 10000
explosions:
set-combat-on-explosion: true

punishment:
damage: 5.0
kill-on-logout: false

triggers:
enderpearl:
set-combat-on-land: true
only-if-already-in-combat: false

ignored-worlds:
  • "ffa"

blocked-commands:
  • "tpa"

combat-zone:
enabled: true
radius: 10

messages:
combat-log: "&c{player} has combat logged!"
elytra-use-denied: "&dYou can't use elytra in combat"
teleporting-denied: "&dYou can't teleport in combat"
blocked-command: "&cYou can't use this command in combat"
region-entry-denied: "&cYou can't enter this region in combat"

timer:
actionbar: "&c{timeLeft}/{maxTime}"
bossbar-title: "&cIn Combat: {timeLeft}s"

anti-kill-abuse:
enabled: true
limits:
max-kills: 5
remove-kill-after-seconds: 60
punish-commands:
  • "kick {killer} Kill-Abuse detected!"
  • "ban {killer}"
``

</details>

[1.12] Enderpearl Changes by NikeyV1 on Oct 12, 2026
Download
## Changelog

### Added
  • New configuration options to control combat logging when an Ender Pearl lands.
  • Players can now be set into combat when landing an Ender Pearl.
  • Option to choose whether this should always happen or only if the player is already in combat.

### Config
```yml
combat-log:
enderpearl:
set-combat-on-land: true
only-if-already-in-combat: false

[1.11] Worldguard Fix by NikeyV1 on Oct 12, 2026
Download
Fixed a bug that the plugin coudn't start without worldguard
### Added: Mending Combat Restriction/Metrics
A new configuration option has been introduced:

```yaml
combat-log:
mending-disabled-in-combat: true
[1.9] Anti Kill Abuse by NikeyV1 on Oct 12, 2026
Download
### New Feature
  • Prevents **kill farming / griefing** by tracking repeated kills on the same player.
  • If a player kills the same victim more than **5 times in 30s**, punishment commands are executed.

### ⚙️ Config
```yaml
anti-kill-abuse:
enabled: true
remove-kill-after: 60
max-kills: 5
punish-commands: # {victim} for victim
  • "kick {killer} Kill-Abuse detected!"

[1.8] Display Methods by NikeyV1 on Oct 12, 2026
Download
Combat timer can now be shown in the actionbar or bossbar.

New config option: combat-log.display-mode (actionbar or bossbar)
[1.7] Blocking Commands by NikeyV1 on Oct 12, 2026
Download
Adds the option to block commands in combat
[1.6] Kill when Log by NikeyV1 on Oct 12, 2026
Download
Adds the option to kill players when they combat log
[1.5] 1.5 Teleport fix by NikeyV1 on Oct 12, 2026
Download
Fixed a bug where stepping on farmland, carrots, or similar blocks caused unintended teleportation, sometimes launching players out of the world.
## New Features

### Combat Zone System
  • Added a configurable zone where players are automatically put into combat.
  • The range of the combat zone can be adjusted.
  • The combat zone can be enabled or disabled as needed.

### Punishment System
  • Players can receive damage as a penalty for breaking the rules.
  • The amount of damage can be adjusted in the configuration.
[1.4] Riptide Bug fix by NikeyV1 on Oct 12, 2026
Download
Fixed the bug, that you can spam riptide
[1.4] Disable Riptide by NikeyV1 on Oct 12, 2026
Download
Added the orption to disable riptiding in combat and set a timer to riptiding
Added the ability to disable teleporting while in combat

Should work on all game versions
[1.1] Spigot Combat Log by NikeyV1 on Oct 12, 2026
Download
## Combat Log but it supports Spigot/Bukkit
by ignoring the PlayerElytraBoostEvent wich shouldn't anyway get triggert
Hitting a player now automaticly sets them out of gliding
[1.0] Combat Log by NikeyV1 on Oct 12, 2026
Download
This should work on all game versions
Simple Combat Log Icon
Download Simple Combat Log
Select game version
Select platform