
Simple Combat Log
The Simple-Combat-Log plugin prevents players from logging out during combat by setting a combat timer, disabling actions like Elytra use, and broadcasting a message if they leave the server mid-combat.
- Загрузки
- 73K
- Подписчики
- 42
- Обновлён
- 5 августа 2026 г.
- Лицензия
- GPL-3.0-or-later
Опубликован 8 декабря 2024 г.
⚔ 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.
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.
Ченджлог
1.19Релиз26.1.1, 26.1.2, 26.2 · 5 августа 2026 г.
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-explosionmoved fromrestrictionstotriggersin 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.ymlin the plugin folder
1.18Релиз26.1.1, 26.1.2, 26.2 · 23 июля 2026 г.
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.
1.17Релиз26.1.1, 26.1.2, 26.2 · 3 мая 2026 г.
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.ymlintroduced 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
1.16Релиз26.1, 26.1.1, 26.1.2 · 20 апреля 2026 г.
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.00format)
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:
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
CombatManagernow tracks the current opponent per player, enabling opponent-related placeholders to work correctlyPotionEffectTypelookup updated to useRegistry.EFFECTinstead of the deprecatedgetByName()method (Paper 1.20.3+)
Dependencies
- PlaceholderAPI: optional (
softdepend) - WorldGuard: optional (unchanged)
1.15Релиз1.21.9, 1.21.10, 1.21.11 · 15 марта 2026 г.
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,activeTimersandbossBarsmaps - Listeners no longer touch state directly — all changes go through the public API
PluginConfig (new: config package)
- Centralises every
config.getString / getBoolean / getIntcall - Single instance passed to all listeners on startup
Listener split
CombatTagListener— damage, projectile, explosion and enderpearl taggingCombatRestrictionListener— elytra, teleport, command block, mending, riptideCombatZoneListener— proximity tagging on joinCombatLogoutListener— disconnect handlingAntiKillAbuse— kill-farming detectionWorldGuardListener— 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.
1.14Бета1.21.9, 1.21.10, 1.21.11 · 9 марта 2026 г.
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Релиз1.21.9, 1.21.10, 1.21.11 · 22 февраля 2026 г.
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
Click to expand
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}"
1.12Релиз1.21.9, 1.21.10, 1.21.11 · 5 января 2026 г.
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
combat-log:
enderpearl:
set-combat-on-land: true
only-if-already-in-combat: false
Комментарии
Загружаем…