justCombat
1.3.2Combat tagging, combat-log NPCs, safe zone walls and PvP control for Paper and Folia.
1.3.2latestjustCombat 1.3.22 days ago [1] Fixed items existing twice when a combat-log NPC was killed and the logger stayed offline until the next server restart. The death is now saved the moment the NPC dies and applied on the next join, also after /stop, a scheduled restart, /reload or a crash. The inventory is cleared even when the death itself is prevented (god mode, a totem, creative mode, a plugin that cancels the death or keeps items, keepInventory switched on after the logout), and the player cannot use, drop or move items until the death is applied. [2] On networks the death waits until the player is back on the server where they logged out, because inventories belong to that server. Networks that sync inventories between servers can set npc.shared_pending_deaths: true with a shared MySQL or MariaDB database; the death is then applied once on whichever server the player joins next. With HuskSync, JustCombat waits until HuskSync has loaded the player's data and then saves the emptied inventory to HuskSync, so a slow Redis cannot bring the items back. [3] Fixed combat NPCs burning to death in daylight. A zombie NPC without a helmet died in the sun after about 20 seconds, which counted as a kill, so the logger lost their items although nobody fought the NPC. [4] Explosions now count as PvP. End crystals, TNT, respawn anchors and beds are traced back to the player who set them off, so both players get tagged and newbie protection, /pvp off, safe zones and exclusive combat protect against them. Before, crystal and TNT kills did not tag anyone and went through every protection. [5] Hits cancelled by another plugin, for example a team plugin with team PvP off, no longer put players in combat. [6] Spamming chat until the server kicks you no longer avoids the combat-log punishment. Staff kicks, restarts, plugin kicks, whitelist and bans are still exempt (staff_protection.exempt_kick_causes). Spam, timeout, duplicate login and movement kicks count as combat logging, and staff_protection.punished_kick_reasons lets you catch anticheat kicks by their message. [7] A combat-tagged player can no longer switch PvP off, operators included. The new permission justcombat.bypass.pvptoggle (not given to operators) is the only way around it. [8] Added warzones: in pvp.forced_worlds and pvp.forced_regions PvP is always on and /pvp is locked, and players with PvP off are told when they walk in. pvp.toggle_locked_worlds and pvp.toggle_locked_regions only lock /pvp. [9] Added /untagall (also /jc untagall) to remove every combat tag at once. [10] Messages accept old color codes like &c, &l and &#FF5500, and messages.show_prefix: false removes the prefix everywhere. Fixed %prefix% showing up as text when the prefix was empty. [11] Fixed the Lunge spear not hitting at all in combat on Paper 1.21.11. The jab now hits and only the Lunge boost is stopped, like on newer versions. The Lunge of the jab that starts a fight is no longer blocked either; with advanced_pvp.spear.disable_lunge_in_combat on, only the lunges after it are. [12] The trident melee cooldown is now called advanced_pvp.trident.melee_cooldown so it is no longer mixed up with the spear Lunge. Your old values and a changed message text are moved over automatically. [13] Updating keeps your config: your values and your own comments stay, and new settings are added with their explanation. [14] Fixed a warning about duplicate entries in messages.yml and the Turkish language file on Paper 26.2 and newer. The message texts are unchanged; the unused copies are removed on the first start and the previous files are kept in the backups folder. config.yml is updated to version 33 and messages.yml to version 20 automatically. justCombat needs Paper or Folia; it does not run on Spigot.v1.3.12 weeks ago [1] Added the cooldown, combat time and newbie protection placeholders listed in the documentation. They were documented but returned nothing:combat_time,combat_time_formatted,combat_status,newbie_protected,newbie_time,newbie_time_formatted,pearl_cooldown,trident_cooldown,riptide_cooldown,lunge_cooldown,gapple_cooldownandegapple_cooldown. [2] Added%justcombat_cooldown_<item>%for every item initem_cooldowns, for example%justcombat_cooldown_wind_charge%, and%justcombat_spear_lunge_cooldown%for the spear Lunge cooldown. [3] The toggle placeholders from the documentation, such as%justcombat_toggle_fastcrystal%, now work and showonoroff. [4] Fixed%justcombat_time_remaining_formatted%always showing0.0s. [5] The text of%justcombat_combat_status%can be changed in messages.yml underplaceholders.combat_status, colours included. [6] Fixed the update notice recommending older versions. It now only appears when a newer version is available. Cooldown placeholders show whole seconds and are0when no cooldown is running. The placeholder page in the documentation now lists exactly what each placeholder returns. messages.yml is updated to version 19 automatically. # JustCombat 1.3.0 [1] Item cooldowns now have settings per item: seconds, combat only, hotbar overlay and an optional custom message. Golden apples, enchanted golden apples, ender pearls, chorus fruit, wind charges, totems of undying, tridents, spears, firework rockets, bows and crossbows are supported. Each cooldown starts when the item is really used: eaten, thrown, fired, or when a totem saves you. [2] Golden apple cooldowns moved fromhealingtoitem_cooldowns. Existing values are moved automatically on the first start and keep applying in and out of combat. [3] Fixed golden apple cooldowns starting when another plugin cancelled the eating, and not resetting on death. Keeping cooldowns after death is nowitem_cooldowns.persist_after_death. [4] Item cooldowns now also block right-clicks in the air, apply to both hands, survive relogging and restore the hotbar overlay after joining and respawning. [5] Fixed the safe-zone wall staying in the world when a combat-tagged player logged out next to it. [6] The safe-zone wall, entry blocking and safe-zone PvP protection now follow WorldGuard region groups. With-g nonmembers pvp deny, region members are no longer walled out. [7] Fixed combat-log NPCs not spawning in WorldGuard regions with mob-spawning deny, and disappearing at once on peaceful worlds. New optionsnpc.force_spawnandnpc.peaceful_entity_type. If an NPC still cannot spawn, the normal logout punishment is applied instead of letting the player leave without one. [8] Fixed an ender pearl being duplicated when a combat-tagged player threw it inside a PvP-deny region. [9]/jc barrier debugnow shows how WorldGuard resolves PvP where you stand, with every region, its priority and PvP flag, plus the entry-blocking settings and your bypass status. [10] The console and/jc validatenow warn about a misnamedworldguard_barriersection, old golden apple keys, and items that have a cooldown in two places. The configuration is updated to version 32 automatically. Ifitem_cooldownswas turned off before, entries you already had (for exampleBOW: 3) stay in the list but are turned off, so nothing new starts applying. Golden apple cooldown messages now userestrictions.item_cooldownin the action bar.v1.1.8Aug 23, 2026 [1] Fixed /jc and /pvp showing "Unknown or incomplete command" for players while console worked. /jc reload also re-registers the commands now, so no restart needed if it ever comes back. [2] (!)Wind charge cooldowns: add WIND_CHARGE under item_cooldowns.items, or hold one and use Add Held Item in /jc gui. [3] Fixed JustTeams not being detected even though both plugins are installed. No config changesv1.1.7Aug 17, 2026 [1] Updated the bundled PacketEvents to 2.13.0. The old copy didn't know the newest server builds, so on servers like Leaf it refused to start and the totem and explosion toggles died. The PacketEvents plugin version on your server doesn't matter, JustCombat only uses its own copy. If it ever fails again, the log now says why. [2] Safe zone detection now uses WorldGuard's own resolution. Wherever the server blocks PvP, the barrier shows. Priorities, overlapping regions and __global__ flags all behave like they do in game, and FAWE is fine. An arena inside spawn needs a higher priority than spawn, which WorldGuard wants anyway. [3] Fixed the barrier wall spawning invisible on some Folia forks. Panels are shown again a tick after spawning. [4] Fixed H2 not starting because of a relative path in the JDBC URL. The fallback banner also only blames a missing driver when that's actually the problem. [5] Added /jc barrier debug. It shows exactly why a barrier is or isn't showing at your position. [6] Fixed a console error on combat log when a command list had a blank line in it. Blank lines are skipped now. [7] Added item cooldowns. Give bows, crossbows or any other item a delay between uses so nobody spams them. Set under item_cooldowns in the config, off by default, combat only by default. Bows and crossbows only pay when the shot actually fires, so drawing without shooting costs nothing. Bypass: justcombat.bypass.itemcooldown. [8] Added /jc gui, a settings menu. Every feature switch, all combat restrictions and the item cooldowns can be changed in game now. The cooldown editor even adds whatever item you're holding with one click. Changes save to the config and apply right away. No changes needed to update. Drop the jar in and restart, the config updates itself. Item cooldowns are off until you turn them on.v1.1.6Jul 23, 2026 [1] Fixed safe zones being disabled by an overlapping pvp allow region. Region priorities were ignored, so a warzone with pvp allow sitting under a spawn with pvp deny at higher priority left the whole spawn unprotected: no barrier, no entry blocking, no safezone PvP block, even though WorldGuard itself keeps PvP off there. Overlapping regions now resolve the way WorldGuard resolves them. The highest priority wins, and allow only wins a tie, so a pvp arena inside spawn still works at default priorities.v1.1.5Jul 18, 2026 [1] Kill streaks, assists and kill rewards can be switched off by WorldGuard region now, not just by world. Every disabled_worlds list has a disabled_regions partner (killstreak, assists, kill_rewards), so duel arenas that live inside a normal PvP world stop feeding streaks, assist credit and reward commands. Kills and deaths still count toward totals. The new lists are added to existing configs automatically. [2] Fixed the "You are no longer in combat" line repeating in chat when a tag ran out. It sends once now. [3] The safe zone barrier is an animated wall now instead of fake glass blocks. It is built from display entities only the tagged player sees, and it reveals itself around you: panels close to you stand at full size, panels further along the edge shrink away, and the wall follows you as you move along the border. Panels anchor to the ground under them and reach down over water, and every pvp-deny region within the scan radius gets its own wall at the same time, including a pvp-allow arena inside a bigger safe region. Needs 1.19.4+; older servers keep the block wall. The default scan radius went from 3 to 8 (worldguard_barriers.radius), and the reveal reach is tunable with display.reveal_distance. [4] Fifteen wall styles under worldguard_barriers.display.style: PULSING (default), GLOWING_GLASS, BARRIER_ICON, HEARTBEAT, SCANNER, BREATHING, STROBE, PARTICLE_VEIL, ELECTRIC, INFERNO, WARNING_HOLO, RAINBOW, WATERFALL, CHECKER and LOW_WALL. Icons face the outside of their own wall segment and the item is configurable (display.icon). display.color recolors the wall in one line: a dye name changes glass, glow and particles together, a hex code tints glow and particles and keeps your block. WARNING_HOLO reads its text from display.holo_text. Styles, modes and the display toggle can be switched live with /jc barrier. Particles go only to the tagged player, and one animation task per player drives every style. [5] The barrier actually blocks entry. Walking over the border stops you at the wall with the camera left free, ender pearls and chorus fruit into the zone are cancelled, and a tagged player who ends up inside a safe zone is pushed back out in every mode. Leaving a safe zone is always allowed. Modes via /jc barrier mode: push (bounce off), wall (hard stop), visual (looks only). [6] justcombat.bypass.safezone defaults to false now. It defaulted to op, so every operator walked straight through the barrier. Grant it explicitly if staff should pass. [7] Barrier chat is quiet: the approach warning shows once per fight, entry and push messages share one throttle, and the entry line can be turned off with worldguard_barriers.entry_message. [8] Fixed blocked commands printing "Unknown command" on top of the plugin's own message on some servers. Only the JustCombat line shows now. [9] Safe zones set with /rg flag __global__ pvp deny work now. Only pvp flags on regions covering the exact spot were checked, so whole-world safe zones got no barrier and no protection at all. Explicit region flags still win the same way as before, so arenas inside spawn keep working. [10] The "You killed X" and "You were killed by X" messages send now. killstreak.kill and killstreak.death sat in messages.yml but nothing ever sent them; blank either key to turn it off.v1.1.4Jul 14, 2026 [1] Added safe zone push-out so people can't camp the edge. There was an exploit where someone stands just inside a spawn or safe zone and swings at players outside while staying protected themselves. Now anyone in combat who's sitting inside a safe zone gets shoved back out, and an attacker who pokes out from inside gets pushed the moment they swing. The hit was already blocked before, this takes away the safe spot they were doing it from. It works out which way is out and shoves them that way, throttled so nobody gets flung. It's worldguard_barriers.push_out with the shove strength and lift you can tune, on by default, needs WorldGuard, and justcombat.bypass.safezone skips it. [2] You can disable fishing rods in combat now. People were using rods to yank players around in KOTH circles, so there's a switch to stop rods from being cast while you're tagged. Casting is blocked and hooking another player is blocked too, so a rod thrown right before a fight can't reel someone in either. It's restrictions.fishing_rods.enabled, on by default, and justcombat.bypass.fishing skips it. [3] Kill streaks, assists and kill rewards can be switched off by WorldGuard region now, not just by world. 1.1.3 added the per-world switch, but plenty of duel setups run their arenas as regions inside a normal PvP world, where a world list can't tell a duel apart from a real fight. Every disabled_worlds list has a disabled_regions partner now — killstreak.disabled_regions and assists.disabled_regions — and kill rewards got the whole set too, with kill_rewards.disabled_worlds and kill_rewards.disabled_regions. Fight in a listed world or region and streaks, assists and kill-reward commands all sit out, while kills and deaths still count toward totals like before. The region side needs WorldGuard; the world lists work without it. If you're not sure whether your duels are a separate world or an arena region, stand in the arena and run /rg info to check. [4] Fixed the "You are no longer in combat" line spamming chat. When your tag ran out that message could repeat instead of showing once. It fires a single time now, the moment your tag actually ends.v1.1.3Jul 5, 2026 [1] You can switch kill streaks and assists off per world now. Drop your duel or arena world into killstreak.disabled_worlds and assists.disabled_worlds, and fights there stop building streaks or handing out assists. Kills and deaths still count toward totals, it's only the streak side that's off, so a /duel match doesn't mess with anyone's real streak, and dying in the arena won't reset the streak they built out in the world. [2] Fixed a console error on disconnect. If a player logged out while combat-tagged with no specific attacker, which is what happens when a KOTH plugin tags everyone as an event kicks off (or after an admin /jc tag), the quit handler threw a "UUID cannot be null" error. Logging out in that state is clean now. [3] Added UltimateKOTH support. Turn on koth.enabled and JustCombat hooks straight into UltimateKoth (you'll see "Hooked into UltimateKoth" in the console on start). It combat-tags players contesting a KOTH so they can't safely log out on the hill, keeps KOTH kills from building streaks or firing the bounty, kill rewards or assists so the event doesn't mess with people's real stats, and can run reward commands for whoever captures the KOTH. Every piece has its own toggle under koth, and if UltimateKoth isn't installed none of it does anything. It's all done over the API so there's no hard dependency. [4] The ender pearl cooldown only counts while you're in combat now. Out of combat you can pearl around normally with no wait, and the second a fight starts the cooldown kicks in like before. If you'd rather keep the old always-on cooldown there's a switch for it at advanced_pvp.ender_pearl.cooldown.combat_only. [5] Tridents and riptide are shut off during combat. While you're tagged you can't throw a trident and you can't riptide away in water or rain, so nobody uses one to bail out of a fight. Riptide can't be cancelled the normal way, so instead the launch just gets killed and you stay put. It's advanced_pvp.trident.disable_in_combat, on by default, and justcombat.bypass.trident.cooldown skips it. The regular throw, riptide and lunge cooldowns are all still there for out of combat. [6] You can't open containers while you're in combat. No ducking into a chest, ender chest, shulker box, barrel, hopper, dispenser, furnace or brewing stand mid-fight to stash loot or swap gear. Your own inventory is untouched, and crafting tables, anvils and enchanting tables still open fine, it's only storage that's blocked. That's restrictions.containers.enabled, on by default, with justcombat.bypass.containers for anyone who should get around it. [7] Fixed the lunge spear cooldown. It was firing on every trident melee hit, including hitting mobs, so a trident felt useless for normal fighting. Now it only counts when you actually hit another player, and by default it only applies while you're in combat, so using a trident on mobs or out in the world isn't throttled anymore. Toggle at advanced_pvp.trident.lunge.cooldown.combat_only. [8] Fixed the newbie protection message showing the raw text "<player>" instead of the protected player's name. When you tried to hit someone under newbie protection it now names them properly.v1.1.2Jun 29, 2026 [1] There's a combat-log NPC now. If someone logs out in the middle of a fight, instead of just dropping dead on the spot the plugin leaves a stand-in where they were standing, wearing their gear with their name floating above its head. Kill it before the timer runs out and the logger loses their stuff and dies the next time they log in. Nobody kills it in time and they got away clean. Log back in while it's still alive and you get put straight back into combat, so relogging isn't a free escape. It doesn't need Citizens or anything else, it's a normal mob under the hood (a zombie by default, swap it with npc.entity_type), and it cleans itself up if the server crashes mid-fight. Off by default, flip npc.enabled to true to use it. [2] The NPC plays nice with keepInventory. If the world it dies in has the keepInventory gamerule on, the logger keeps their items and XP, nothing drops off the NPC and nothing gets wiped when they come back, the same as a normal death there. That's npc.respect_keep_inventory, on by default. There's also npc.disabled_worlds if you'd rather the NPC (and any logout punishment) just never happen in certain worlds, which is separate from your combat-tag world list. [3] 1v1 mode got fixed. There was a nasty bug where the person you hit first couldn't hit you back, you were basically protected, and people were abusing it to deal free damage. Both fighters can hit each other reliably now, both ways, every time. On top of that, a player who's locked in a 1v1 can't peel off to swing at someone else, which was the thing that let the lock desync and cause that protection bug in the first place. [4] You can turn 1v1 off per world. Drop a world into combat.exclusive_combat.disabled_worlds and the lock won't apply there. Combat still works, it just isn't locked to two people. Handy if you only want duels in an arena world and a free-for-all everywhere else. [5] Teammates can jump into a 1v1 to help now. Clans were using the lock the wrong way, getting immunity from everyone else while also not being able to help a member who was getting jumped. Turn on combat.exclusive_combat.allow_team_intervention and anyone on the same team as a fighter can step in, so a 1v1 can't hand out immunity from the fighters' own allies. It reads JustTeams directly, so your teams just work, and it falls back to vanilla /team if you're ever running without JustTeams. The two original fighters still always hit each other, this only adds the teammate help on top. [6] You can't camp a safe zone and poke people outside it anymore. WorldGuard only checks where the person getting hit is standing, so players were sitting inside spawn and hitting people out in the open with zero risk. Now the hit gets stopped if either player is in a safe zone. That's combat.block_safezone_pvp, and justcombat.bypass.safezone for staff who should ignore it. [7] Elytra is blocked in combat. No more popping an elytra and gliding off to dodge a fight. While you're tagged you can't start a glide, and if you get hit while you're already in the air you drop out of it. Since you can't glide, you can't rocket-boost away either. restrictions.elytra.enabled to toggle it, justcombat.bypass.elytra for anyone who should keep their wings. [8] Golden apple cooldowns actually work now. If you ever tested this as an OP and saw no cooldown, here's why: the bypass permission was handed to OPs by default, so every admin testing it skipped the cooldown and figured it was broken. It's off by default now. Give justcombat.bypass.gapple to whoever you actually want to skip the wait, and everyone else gets the cooldown like they should. [9] Your message edits show up now. Things like the kill streak counter and the streak-ended broadcast were being read from an old copied en_US.yml that never updated itself, so anything you changed or any newly added message got ignored. English reads straight from messages.yml now, so what you write is what players see. [10] The console isn't getting spammed anymore. It used to print a debug line every single time anything hit a mob, which buried the rest of your log. That only fires for real player-versus-player fights now, and only when you've actually turned debug on. Fresh installs ship with debug off. [11] The plugin no longer needs WorldGuard to start. WorldGuard was meant to be optional, but the plugin would actually refuse to enable without it. That's sorted, the WorldGuard side only loads when WorldGuard is installed. No WorldGuard just means no safe zones, everything else runs like normal. [12] Servers stopped freezing on startup. The plugin was downloading the MySQL and MariaDB database drivers (and protobuf) on every single boot, even on servers that only use SQLite, and if your host had a slow connection to the download server the whole startup would just hang. Only SQLite and H2 download now. MySQL and MariaDB still work if their driver is on the server, and if it isn't, the plugin quietly falls back to SQLite instead of throwing errors at you. [13] Runs on Paper 1.21.11 and the new 26.1.x, plus Folia and Spigot, same as always. It's built so the one jar works on both the Java 21 that 1.21.11 uses and the Java 25 that 26.1 needs, so there's no separate build to worry about. [14] Kill streaks come with a bounty now. If a player is on a streak and gets killed, whoever ended it can be rewarded. You set the minimum streak it kicks in at and the commands that run for the killer, so money, items, a broadcast, whatever you want. It's off by default under killstreak.bounty, and the placeholders are %killer%, %victim% and %streak%. [15] Assists are tracked now. If you damaged someone and somebody else finished them off, you get credit for the assist, a message and optional reward commands of your own. You decide how long ago your hit has to have landed to still count, ten seconds by default, and whether assists pay out commands. The killer doesn't get counted as their own assister, and offline players are skipped. Off by default under the new assists section. The reward placeholders are %assister%, %victim% and %killer%. [16] Elytra can be taken off completely in combat now, not just blocked. The old behavior stopped you gliding, but some people were jump-spamming to sneak a glide in. Turn on restrictions.elytra.unequip and the moment you're tagged, or the moment you try to glide, the elytra comes off your chest and into your inventory, or drops at your feet if your inventory is full. The plain glide block is still there and still the default, this is just the stricter option on top.v1.1.1Jun 11, 2026 [1] Plugin doesn't crash on servers without WorldGuard anymore. WorldGuard is optional, but the safezone code needed it just to start up, so without it the whole plugin shut itself down. That part only loads when WorldGuard is actually installed now. No WorldGuard just means no safezone handling, everything else runs fine. [2] Server stopped freezing on startup. It was downloading the MySQL and MariaDB database drivers on every boot even though most servers run SQLite, and on a slow connection that hung the whole startup. Only SQLite and H2 load now. MySQL and MariaDB still work if their driver is there, otherwise it quietly uses SQLite. [3] No more wall of red "DataSource is not initialized" errors. Those were left over from the plugin shutting down in the middle of starting up. It stops cleanly now. [4] Elytra is blocked in combat. No gliding or firework-boosting away to escape a fight, and you get dropped out of glide if you're hit mid air. Turn it off withrestrictions.elytra.enabled, bypass withjustcombat.bypass.elytra. [5] The combat-log NPC respects keepInventory now. If you log out in a keepInventory world you keep your items and XP, nothing drops and nothing gets wiped on reconnect. You can also turn the NPC off per world withnpc.disabled_worlds. [6] The jar is about half the size now, roughly 4.5MB down from 9.6MB. It was bundling netty and a couple of other things the server already has. (Older but forgot to mention) [7] Works on Paper 1.21.11 and 26.1.2, plus Folia and Spigot.v1.1.0Jun 2, 2026 [1] You can't stand inside a safezone and hit players outside it anymore. It used to only check where the victim was, not the attacker. [2] Golden and notch apple cooldowns work now. The bypass permission was set to OP by default, so admins never saw a cooldown and figured it was broken. It's off by default now, so give it to staff manually if you want them exempt. [3] Safezone barrier blocks don't get stuck on your screen after a fight ends anymore. [4] Killstreak messages like your streak counter and "streak ended" weren't showing right. They were reading from an old language file that never updated. Fixed now. [5] Console doesn't get spammed with a debug line every time something hits a mob. That only logs for real player fights now, and only when debug is on. [6] Combat log NPC now works. Log out in the middle of a fight and it leaves a killable copy of you with your gear, instead of just killing you on the spot. It's off by default. [7] Essentials can't take over /pvp and /combat anymore. [8] You can hide the extra command names and keep just /combat if you want it cleaner. [9] Flight bypass and the apple bypass are separate permissions now. Your config updates itself on the first start and keeps anything you changed. [10] Works on Paper 1.21.11, 26.1.x, Folia and Spigot.v1.0.9May 11, 2026 CRITICAL FIXES
[1] Big one: blocked commands actually stay blocked now./fly,/pvp,/homeand the rest aren't slipping through anymore, and yes, that includes the sneaky/minecraft:fly,/cmi:fly,/fstyle variants people were using [2] OPs no longer bypass combat command restrictions just for being OP. If you want staff to be exempt, you need to give themjustcombat.bypass.commandsdirectly. Sorry, this was a footgun [3] You can't toggle/pvpwhile in combat anymore, even if some other plugin tries to handle it before us [4] ThoseDataSource is not initialized or has been closedwalls of red on shutdown? Gone. Stats now finish saving before the pool gets closed [5] If your console was getting absolutely hammered with debug lines on every mob hit, that's becauseperformance.debugdefaulted totrue. New installs default tofalsenow. Set it tofalsein your existing config if you haven't already [6] Boss bar timer was only ticking once a second and looked stuck. It refreshes 4x per second now, much smoother [7]streak_endedand a few other broadcasts were silently disappearing when the prefix string was missing. Fixed [8] Broadcasts (like killstreak announcements) ignored language files and always pulled frommessages.yml. They respect the active language now [9]your_streakwas defined in messages.yml but never actually sent to the killer. It is now [10] Damage debug stopped firing on every arrow that hits a skeleton. Only player-vs-player combat triggers it now ### IMPROVEMENTS [11]/pvpand/justcombatget force-registered via Bukkit's CommandMap so Essentials (and similar) can't steal them anymore [12] Added/combatas an alias for/justcombat### NEW FEATURES [13] Flight gets cut the second you enter combat. Creative and Spectator are skipped. Switch off withcombat.disable_fly_on_combat: falseor grantjustcombat.bypass.flyto whoever should keep their wings [14] Riptide tridents finally have a cooldown. The old trident cooldown only fired on actual throws, so anyone in water or rain could spam riptide and dodge it. New section:advanced_pvp.trident.riptide.cooldown[15] Same idea for melee trident hits. Some people were just bonking with the spear instead of throwing it to bypass the cooldown. New section:advanced_pvp.trident.lunge.cooldown### CONFIG [16] Addedcombat.disable_fly_on_combat(defaulttrue) [17] Addedadvanced_pvp.trident.riptide.cooldown(10s by default) [18] Addedadvanced_pvp.trident.lunge.cooldown(2s by default) [19] Addedvisual.boss_bar.update_interval_ticks(default5) [20]performance.debugnow defaults tofalsefor new installs. Your existing config isn't touched [21] Configs migrate automatically on first start. Anything you've customised stays the way you set it ### PERMISSIONS [22] Addedjustcombat.bypass.fly(defaultfalse) [23]justcombat.bypass.trident.cooldowncovers throw, riptide, and lunge now (one perm, all three) ### COMPATIBILITY [24] Tested on Paper 1.21.11, Paper 26.1.2, Folia, and Spigot. ### FOR SERVER ADMINS If your staff used to bypass combat restrictions just by being OP, you need to hand themjustcombat.bypass.commandsfrom your perms plugin now. That's the main thing that might bite you on upgrade. Console too noisy after upgrading?performance.debug: falsein your existing config. Don't like that flight gets killed on combat?combat.disable_fly_on_combat: false, or just give the relevant rankjustcombat.bypass.fly.v1.0.8Apr 17, 2026 [0] FIXED: Ender pearl cooldown activating but player not teleporting on Paper 1.21+. Pearl item was consumed and the throw was cancelled server-side but the item was never refunded. Also improved interact event handling to reliably block pearl usage when on cooldown [1] FIXED: Golden apple and enchanted golden apple cooldowns not working on Paper 1.21+.. Hotbar cooldown overlay also now appears after eating [2] FIXED: Editing the prefix or any message in en_US.yml had no effect in-game even after a full restart. Language files are now always read first regardless of whether multi-language is enabled in config [3] FIXED: OP players automatically bypassed all combat restrictions (pearls, safe zones, commands, healing).v1.0.7Apr 1, 2026 [1] Added PvP toggle status placeholders for scoreboard display (pvp_status, pvp_enabled, pvp_enabled_boolean) [2] Fixed console spam from debug logging triggering on all player interactions instead of only ender pearl usagev1.0.6Mar 12, 2026 [1] Fixed command blocking while in combat not working when other plugins cancel commands first [2] Small improvements & fixesv1.0.5Feb 19, 2026 [1] Added per-player toggle system with unified /jc toggle command (fast crystal, totem particles, explosion particles, explosion sounds, chainmail kit) [2] Implemented invisibility chat hide feature to block/filter messages from invisible players [3] Fixed empty action bar spam by sending empty message only once when clearing [4] Added proper PacketEvents-based packet interception for totem and explosion effects [5] Fixed fast crystal toggle double-toggle sync bug by centralizing state management [6] Added configurable chainmail kit on respawn with toggle supportv1.0.4Feb 11, 2026 [1] Fixed Action Bar not appearing during combat for OPs due to bypass permission auto-granting [2] Added Fast Crystal PvP feature with instant placement and invulnerability removal [3] Improved configuration system with automatic migration and version trackingv1.0.3Jan 31, 2026 [1] Fixed a issue with 1.21.11v1.0.2Jan 22, 2026 [1] Fixed Action Bar not appearing due to missing default configuration values [2] Resolved issue where Kill Rewards were not executing upon player death [3] Improved Combat Logout punishment to ensure items drop reliably before player deathv1.0.1Dec 26, 2025 [1] Added Exclusive 1v1 duel setting (config.yml) [2] Fixed being always out of Combat when killed [3] More Fixes/adjustments1.0.0Nov 29, 2025
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta