Simple Combat Log
1.20+26.3The 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-comba
1.20+26.3latestMinecraft 26.3 Supportlast week Minecraft 26.3 Support
- Updated the build to Paper API 26.3. - Existing gameplay behavior and configuration remain unchanged.Requirements
- Paper 26.3 - Java 25 or newer1.20Opponent Tracking, Logout Modes & WorldGuard FixesSep 25, 2026 Added
| Feature | Config | |---|---| | Logout punishment modesnone,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 intoallow-combat-entry: denyregions 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 insteadConfig
- Config version3→4, migrated automatically (backup:config.v3.bak.yml) -punishment.kill-on-logout→punishment.logout.mode(truebecomeskill) -blocked-commands→command-restrictions.commands- New keys get their comments added on migration1.19Untag on kill and config restructuringAug 5, 2026 Added
- Untag on kill: the killer is now removed from combat immediately after killing another player. Configurable viacombat-log.triggers.untag-on-kill(default:true)Changed
-explosions.set-combat-on-explosionmoved fromrestrictionstotriggersin config.yml (more accurate location) - Config version bumped to3, migration runs automatically on startupNotes
- Existing configs are migrated automatically on next server start - A backup of the previous config is saved asconfig.v2.bak.ymlin the plugin folder1.18WorldGuard Barrier Rework & Config Auto-MigrationJul 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.ymlauto-creation | File is now created on first enable if missing. | | Config auto-migration |config.ymlis 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 newview-distanceandheightkeys added automatically undercombat-log.worldguard.safe-zone-barrieron next startup. A backup of the old config is created automatically.1.17Admin Commands, WorldGuard Barriers & Config OverhaulMay 3, 2026 Changelog - CombatLog [Version 1.17]
- Subcommand system forNew Features
/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
- 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 consistencyImprovements
- Opponent-tracking simplified (no longer stored in data structures)Removed
- WorldGuard now properly treated as an optional dependency - Barriers correctly cleared on untag - Improved timer cleanup on plugin shutdownBugfixes & Cleanup
1.16PlaceholderAPI Support, Admin Bypass & Combat EffectsApr 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 thecombatlog.bypasspermission 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:opPotion 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 inconfig.ymlundercombat-log.tag-effects:
Supports any valid Bukkittag-effects: - type: GLOWING duration-seconds: 15 amplifier: 0 show-particles: falsePotionEffectType. The list in the default config includesGLOWINGas 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 correctly -PotionEffectTypelookup updated to useRegistry.EFFECTinstead of the deprecatedgetByName()method (Paper 1.20.3+) ---Dependencies
- PlaceholderAPI: optional (softdepend) - WorldGuard: optional (unchanged)1.15Cleaner package structure & state ownershipMar 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 ownscombatTimers,activeTimersandbossBarsmaps - Listeners no longer touch state directly — all changes go through the public API `PluginConfig` (new: `config` package) - Centralises everyconfig.getString / getBoolean / getIntcall - 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.1.14WorldGuard Fix & Improved Command BlockingMar 9, 2026 Fixed an issue with the WorldGuard integration where the plugin checked an unused local flag instead of the actualWorldGuardHookstatus. As a result, the region entry restriction during combat now works correctly. Additionally, blocked commands are now case-insensitive (/TPA,/Tpa,/tpaare treated the same), making the command restriction system more reliable.1.13Config ReworkFeb 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
<details> <summary><strong>Click to expand</strong></summary>
</details>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.12Enderpearl ChangesJan 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
```yml combat-log: enderpearl: set-combat-on-land: true only-if-already-in-combat: false1.11Worldguard FixDec 23, 2025 Fixed a bug that the plugin coudn't start without worldguard1.10Mending Combat RestrictionNov 20, 2025 Added: Mending Combat Restriction/Metrics
A new configuration option has been introduced: ```yaml combat-log: mending-disabled-in-combat: true1.9Anti Kill AbuseSep 6, 2025 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.
```yaml anti-kill-abuse: enabled: true remove-kill-after: 60 max-kills: 5 punish-commands: # {victim} for victim - "kick {killer} Kill-Abuse detected!"Config
1.8Display MethodsJul 15, 2025 Combat timer can now be shown in the actionbar or bossbar. New config option:combat-log.display-mode(actionbarorbossbar)1.7Blocking CommandsMay 27, 2025 Adds the option to block commands in combat1.6Kill when LogApr 7, 2025 Adds the option to kill players when they combat log1.51.5 Teleport fixApr 3, 2025 Fixed a bug where stepping on farmland, carrots, or similar blocks caused unintended teleportation, sometimes launching players out of the world.1.4Riptide Bug fixFeb 17, 2025 Fixed the bug, that you can spam riptide1.3Added wither-skulls shot by a player trigger combat logJan 23, 2025 1.2Version 1.2 disable teleportingJan 12, 2025 Added the ability to disable teleporting while in combat Should work on all game versions1.1Spigot Combat Log Dec 10, 2024 Combat Log but it supports Spigot/Bukkit
by ignoring the PlayerElytraBoostEvent wich shouldn't anyway get triggert1.0Combat LogDec 8, 2024 This should work on all game versions
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta