1.1.2-bungeecordlatestPvPIndex Battles 1.1.2 (BungeeCord)Jul 26, 2026 Added
- Configurableapi.max_api_payload_byteslimit (default 5 MB) guarding outgoing battle submissions; oversized payloads are automatically trimmed before submission via the newBattlePayloadSizeGuard. - Battle submissions to the PvPIndex API are now gzip-compressed (Content-Encoding: gzip), reducing bandwidth for large replay payloads. - Oversized submissions rejected by the API with HTTP 413 are automatically retried with replay frames stripped, instead of failing outright. - New message keyqueue.arena_teleport_failedshown when a match cannot start because the arena world was not ready.Changed
- Split the monolithicBattleServiceinto focused collaborators (BattleStartHandler,BattleEndHandler,BattleSubmissionFlow,BattleSubmissionRetryHandler,BattlePayloadBuilder,BattleStartSetupStore) for clearer separation of concerns and easier testing. - Extracted API request/compression helpers (ApiRequestBuilder,CompressionService) shared by the Paper API client.Fixed
- Arena teleport failures no longer strand players in survival with their kit.BattleQueueServicenow checks the result of the arena teleport; on failure the match is aborted, both players' pre-battle state is restored, and queued players are automatically re-queued instead of being left in the arena template world wearing battle gear. - Arena world save race on cleanup: arena worlds now have autosave disabled immediately after creation, and their folders are deleted a few ticks after unload (with retries) instead of synchronously, preventingNoSuchFileExceptiononraids.dat/level.datunder Multiverse and similar world-management plugins. ---1.1.2-velocityPvPIndex Battles 1.1.2 (Velocity)Jul 26, 2026 Added
- Configurableapi.max_api_payload_byteslimit (default 5 MB) guarding outgoing battle submissions; oversized payloads are automatically trimmed before submission via the newBattlePayloadSizeGuard. - Battle submissions to the PvPIndex API are now gzip-compressed (Content-Encoding: gzip), reducing bandwidth for large replay payloads. - Oversized submissions rejected by the API with HTTP 413 are automatically retried with replay frames stripped, instead of failing outright. - New message keyqueue.arena_teleport_failedshown when a match cannot start because the arena world was not ready.Changed
- Split the monolithicBattleServiceinto focused collaborators (BattleStartHandler,BattleEndHandler,BattleSubmissionFlow,BattleSubmissionRetryHandler,BattlePayloadBuilder,BattleStartSetupStore) for clearer separation of concerns and easier testing. - Extracted API request/compression helpers (ApiRequestBuilder,CompressionService) shared by the Paper API client.Fixed
- Arena teleport failures no longer strand players in survival with their kit.BattleQueueServicenow checks the result of the arena teleport; on failure the match is aborted, both players' pre-battle state is restored, and queued players are automatically re-queued instead of being left in the arena template world wearing battle gear. - Arena world save race on cleanup: arena worlds now have autosave disabled immediately after creation, and their folders are deleted a few ticks after unload (with retries) instead of synchronously, preventingNoSuchFileExceptiononraids.dat/level.datunder Multiverse and similar world-management plugins. ---1.1.2-paperPvPIndex Battles 1.1.2 (Paper)Jul 26, 2026 Added
- Configurableapi.max_api_payload_byteslimit (default 5 MB) guarding outgoing battle submissions; oversized payloads are automatically trimmed before submission via the newBattlePayloadSizeGuard. - Battle submissions to the PvPIndex API are now gzip-compressed (Content-Encoding: gzip), reducing bandwidth for large replay payloads. - Oversized submissions rejected by the API with HTTP 413 are automatically retried with replay frames stripped, instead of failing outright. - New message keyqueue.arena_teleport_failedshown when a match cannot start because the arena world was not ready.Changed
- Split the monolithicBattleServiceinto focused collaborators (BattleStartHandler,BattleEndHandler,BattleSubmissionFlow,BattleSubmissionRetryHandler,BattlePayloadBuilder,BattleStartSetupStore) for clearer separation of concerns and easier testing. - Extracted API request/compression helpers (ApiRequestBuilder,CompressionService) shared by the Paper API client.Fixed
- Arena teleport failures no longer strand players in survival with their kit.BattleQueueServicenow checks the result of the arena teleport; on failure the match is aborted, both players' pre-battle state is restored, and queued players are automatically re-queued instead of being left in the arena template world wearing battle gear. - Arena world save race on cleanup: arena worlds now have autosave disabled immediately after creation, and their folders are deleted a few ticks after unload (with retries) instead of synchronously, preventingNoSuchFileExceptiononraids.dat/level.datunder Multiverse and similar world-management plugins. ---1.1.1-bungeecordPvPIndex Battles 1.1.1 (BungeeCord)Jul 16, 2026 Added
- Kit item support for per-itempotion_effectsingamemodes.yml. Potion items can now define explicit effects usingTYPE:durationTicks:amplifier(for example,INSTANT_HEALTH:1:1). - New PlaceholderAPI placeholder%pvpindex_battle_short_id%returning the current game mode plus the first segment of the active battle UUID (e.g.mace-550e8400). - New PlaceholderAPI placeholders%pvpindex_battle_id%(full battle UUID) and%pvpindex_short_battle_id%(first segment only). - Configurable double-teleport to prevent/backcommands from teleporting to the arena after battle end. Whenbattle_commands.prevent_back_commandis enabled (default), players are teleported twice to their restored location so/backpoints to a safe post-battle location instead of the arena.Fixed
- Ender pearls, chorus fruit, bows, crossbows, fire charges, and wind charges can no longer be used during the pre-battle countdown, preventing players from moving or attacking before the battle has officially started. - AddedBattleSessionCachefor O(1) player-to-active-battle lookups, replacing linear scans in event handlers. - SplitBattleEventListenerinto focused listener classes undercom.pvpindex.battles.listener.battle(one@EventHandlerper class) and a thin backward-compatible facade. - Pot PvP and NoDebuff starter kits no longer give empty splash potions. The defaultSPLASH_POTIONentries ingamemodes.ymlnow include explicit potion effects (Healing II, Strength II, Speed II, and Regeneration II where applicable). - Kit item display names and lore now translate legacy&colour codes when applied, so potion names like&aHealing IIrender with colours in-game instead of raw ampersand codes. - Tipped arrows in kits now apply their configured potion effect on hit.KitApplierderives a basePotionTypefrom the first item effect so the game recognises the arrow payload. - Network node timeout boundary handling is now inclusive, fixingproxyNodeTimeoutDetectionforisTimedOut(0)and preventing zero-second timeout edge-case mismatches. - README build output examples now reference1.1.1JAR filenames to match the current Maven project version. ---1.1.1-velocityPvPIndex Battles 1.1.1 (Velocity)Jul 16, 2026 Added
- Kit item support for per-itempotion_effectsingamemodes.yml. Potion items can now define explicit effects usingTYPE:durationTicks:amplifier(for example,INSTANT_HEALTH:1:1). - New PlaceholderAPI placeholder%pvpindex_battle_short_id%returning the current game mode plus the first segment of the active battle UUID (e.g.mace-550e8400). - New PlaceholderAPI placeholders%pvpindex_battle_id%(full battle UUID) and%pvpindex_short_battle_id%(first segment only). - Configurable double-teleport to prevent/backcommands from teleporting to the arena after battle end. Whenbattle_commands.prevent_back_commandis enabled (default), players are teleported twice to their restored location so/backpoints to a safe post-battle location instead of the arena.Fixed
- Ender pearls, chorus fruit, bows, crossbows, fire charges, and wind charges can no longer be used during the pre-battle countdown, preventing players from moving or attacking before the battle has officially started. - AddedBattleSessionCachefor O(1) player-to-active-battle lookups, replacing linear scans in event handlers. - SplitBattleEventListenerinto focused listener classes undercom.pvpindex.battles.listener.battle(one@EventHandlerper class) and a thin backward-compatible facade. - Pot PvP and NoDebuff starter kits no longer give empty splash potions. The defaultSPLASH_POTIONentries ingamemodes.ymlnow include explicit potion effects (Healing II, Strength II, Speed II, and Regeneration II where applicable). - Kit item display names and lore now translate legacy&colour codes when applied, so potion names like&aHealing IIrender with colours in-game instead of raw ampersand codes. - Tipped arrows in kits now apply their configured potion effect on hit.KitApplierderives a basePotionTypefrom the first item effect so the game recognises the arrow payload. - Network node timeout boundary handling is now inclusive, fixingproxyNodeTimeoutDetectionforisTimedOut(0)and preventing zero-second timeout edge-case mismatches. - README build output examples now reference1.1.1JAR filenames to match the current Maven project version. ---1.1.1-paperPvPIndex Battles 1.1.1 (Paper)Jul 16, 2026 Added
- Kit item support for per-itempotion_effectsingamemodes.yml. Potion items can now define explicit effects usingTYPE:durationTicks:amplifier(for example,INSTANT_HEALTH:1:1). - New PlaceholderAPI placeholder%pvpindex_battle_short_id%returning the current game mode plus the first segment of the active battle UUID (e.g.mace-550e8400). - New PlaceholderAPI placeholders%pvpindex_battle_id%(full battle UUID) and%pvpindex_short_battle_id%(first segment only). - Configurable double-teleport to prevent/backcommands from teleporting to the arena after battle end. Whenbattle_commands.prevent_back_commandis enabled (default), players are teleported twice to their restored location so/backpoints to a safe post-battle location instead of the arena.Fixed
- Ender pearls, chorus fruit, bows, crossbows, fire charges, and wind charges can no longer be used during the pre-battle countdown, preventing players from moving or attacking before the battle has officially started. - AddedBattleSessionCachefor O(1) player-to-active-battle lookups, replacing linear scans in event handlers. - SplitBattleEventListenerinto focused listener classes undercom.pvpindex.battles.listener.battle(one@EventHandlerper class) and a thin backward-compatible facade. - Pot PvP and NoDebuff starter kits no longer give empty splash potions. The defaultSPLASH_POTIONentries ingamemodes.ymlnow include explicit potion effects (Healing II, Strength II, Speed II, and Regeneration II where applicable). - Kit item display names and lore now translate legacy&colour codes when applied, so potion names like&aHealing IIrender with colours in-game instead of raw ampersand codes. - Tipped arrows in kits now apply their configured potion effect on hit.KitApplierderives a basePotionTypefrom the first item effect so the game recognises the arrow payload. - Network node timeout boundary handling is now inclusive, fixingproxyNodeTimeoutDetectionforisTimedOut(0)and preventing zero-second timeout edge-case mismatches. - README build output examples now reference1.1.1JAR filenames to match the current Maven project version. ---1.1.0PvPIndex Battles 1.1.0Jul 1, 2026 What's Changed
Added
- Vault economy rewards ([#15](https://github.com/PVP-Index/pvpindex-battles/issues/15)): battle winners now receive configurable currency payouts via the Vault API. Fully configured throughvault-rewards.ymlwith per-game-mode base amounts and an optional win streak multiplier. Vault is a soft dependency: if not installed, rewards are silently disabled. Closes [#15](https://github.com/PVP-Index/pvpindex-battles/issues/15). - Newvault-rewards.ymlconfiguration file. All settings live under a top-leveleconomy:key withenabled,rewards(per-mode amounts), andstreak_multiplier(enabled, increment, max, min_streak) sections. The bundled default ships witheconomy.enabled: falseso a fresh install does not pay out until opted in. - NewVaultRewardServiceinplatform-paperthat hooks into Vault, listens forPvPIndexBattleFinishEvent, and deposits rewards. - NewVaultRewardConfigrecord for parsing and validating reward configuration from theeconomysection. - New PlaceholderAPI placeholders:%pvpindex_reward_last%(last reward received) and%pvpindex_streak%(current win streak). - New lang keysreward.receivedandreward.received_streakin all 6 bundled locale files (en, de, nl, es, pl, zh). - Vault status line in the startup summary showing whether economy rewards are active.Changed
- Console banner redesign: startup banner now displays a large ASCII art "PVP INDEX" with a Green-Yellow-Red gradient. Info line shows version, platform, and author (PVP Index). - Shutdown message: updated to display "PVP INDEX has been disabled. Goodbye!" in red/grey styling. - Paper 26.1.x adapter build: thepaper.26.1.xversion module now compiles against the stable Paper API26.1.2.build.57-stableusing the Java 25 toolchain, so the adapter builds cleanly across the supported 1.21.x to 26.1.x range. - Upgradedmaven-shade-pluginto3.6.2(bundles ASM 9.8+) so the relocated bStats and Jackson dependencies shade correctly against Java 25 bytecode.Fixed
- Cross-server challenges from a lobby: challenging a player who was on a backend server (or behind another proxy) from a lobby silently timed out. Lobby servers relied on a player-location cache that went stale once a player moved to a non-lobby backend, so the challenge was routed to a node where the target was not present. The lobby now only uses the direct lobby-to-lobby Redis path when the cache confirms the target is on a live lobby node; otherwise it broadcasts the challenge over Redis to the proxies, which authoritatively resolve the target's current server and forward it. Challenges now work from any server to any server. - Proxy challenge routing over Redis: Velocity proxies now handle inboundCHALLENGE_SENDmessages over Redis (not only plugin messaging), resolving the target across all connected backends and forwarding the challenge. This removes the dependency on plugin messaging channels, which could break after a backend restarted independently of the proxy. - SMP challenge confirmation: accepting an SMP-mode challenge through the risk-confirmation dialog did nothing because closing the inventory cleared the pending GUI state before it was read. The mode and challenge target are now captured before the inventory closes. - Return-to-origin after a cross-server battle: players transferred to another server for a battle were left waiting on the host server for two seconds before being returned, which looked like a double teleport. They are now sent straight back to the server they came from once the battle ends. --- ---Downloads
| JAR | Target | |-----|--------| |PvPIndexBattles-1.1.0.jar| Paper 1.21.x / 1.21.4+ | |PvPIndexBattles-velocity-1.1.0.jar| Velocity 3.x | |PvPIndexBattles-bungeecord-1.1.0.jar| BungeeCord / Waterfall | Full documentation: https://docs.pvpindex.com
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
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta
EssentialsX
The essential plugin suite for Paper and Spigot servers.
832.5KSueta
Grim Anticheat
Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.21 anticheat
820.3KSueta
Orbital Strike Cannon
This datapack/mod/plugin adds an Orbital Strike Cannon like wemmbu!
791KSueta