ModsJava
PvPIndex-Battles
Official open free ELO platform with advanced battle system. Includes Sword PvP, Crystal PvP, Sumo and much more
⬇ Download on HangarOpen in MCModsHubGet it on Google Play →**PvPIndex Battles** is a competitive PvP plugin for Paper, Folia, Purpur, Spigot, BungeeCord, and Velocity servers. It adds a full **1v1 duel and ranked matchmaking system** with per-mode **ELO ratings**, persistent global leaderboards, battle replays, and a moderation suite - all synced to [pvpindex.com](https://pvpindex.com) so your players' rankings persist across the entire network.
> **Supported game modes:** Crystal PvP · Sword PvP · Pot PvP · NoDebuff · Soup PvP · Axe PvP · Mace PvP · Boxing · Sumo · UHC
---
## Features
- **10 ranked game modes** - Crystal, Sword, Pot, NoDebuff, Soup, Axe, Mace, Boxing, Sumo, UHC - each with independent ELO ladders and separate leaderboards
- **1v1 matchmaking queue** - fully configurable 54-slot GUI with per-mode ELO, countdowns, and automatic arena teleportation
- **Cross-server duels** - `/battle challenge [mode]` works standalone or routes through a Velocity or BungeeCord proxy
- **Network-wide tab completion** - proxy broadcasts all online players so `/battle challenge ` shows names from every backend server
- **Battle replay system** - frame-by-frame recording, reviewable in-game with `/pvpmod replay `
- **Arena pool** - procedural, schematic, and world-copy generation strategies; four bundled schematics included
- **Moderation suite** - player reports, local bans, federated network-wide bans, real-time spectating
- **PlaceholderAPI integration** - ELO, rank, win/loss, queue state, and active mode placeholders for scoreboards and tab lists
- **Fully configurable messages** via `messages.yml`
- **HMAC-signed payloads** - battles are cryptographically signed before submission; the API rejects anything tampered with
- **Open ELO formula** - K=32 trust-weighted implementation published under MIT at [github.com/PVP-Index/battle-validator](https://github.com/PVP-Index/battle-validator)
- **Folia compatible** - runs on Folia, Paper, Purpur, Spigot, and Bukkit (1.21+)
---
## Requirements
| Requirement | Version |
|---|---|
| Java | 21+ (25+ for Paper API 26.1.x) |
| Paper / Folia / Purpur / Spigot | 1.21.x or 1.21.4+ (API 26.1.x) |
| Velocity or BungeeCord *(optional)* | Velocity 3.x / BungeeCord 1.21+ |
| PlaceholderAPI *(optional)* | 2.11+ |
| PvPIndex API key | Free at [pvpindex.com](https://pvpindex.com) |
---
## Installation
### Paper / Folia / Purpur / Spigot
1. Drop `PvPIndexBattles-.jar` into `plugins/`.
2. Start the server, configs are generated automatically.
3. Stop the server, then add your API key to `plugins/PvPIndexBattles/config.yml`:
```yaml
api:
api_key: "your-api-key-here"
server:
id: "my-server"
```
4. Restart and run `/pvpindex` to confirm everything loaded correctly.
### Velocity / BungeeCord *(optional)*
Drop `PvPIndexBattles-velocity-.jar` into your proxy `plugins/` folder and configure `plugins/pvpindex-battles/config.properties` with the same API key and shared secret as your backend servers.
→ Full proxy setup guide: [docs.pvpindex.com/server_owner/proxy-setup](https://docs.pvpindex.com/server_owner/proxy-setup)
---
## Commands
### `/battle` Players
| Command | Description |
|---|---|
| `/battle` | Open the matchmaking mode selection GUI |
| `/battle challenge [mode]` | Send a duel challenge |
| `/battle accept ` | Accept a challenge |
| `/battle decline ` | Decline a challenge |
| `/battle leave` | Leave the queue or forfeit an active battle |
### `/pvpindex` Admins
| Command | Permission | Description |
|---|---|---|
| `/pvpindex reload` | `pvpindex.reload` | Reload plugin config |
| `/pvpindex submissions` | `pvpindex.admin` | View pending battle submissions |
| `/pvpindex sync` | `pvpindex.admin` | Retry unsubmitted battles |
| `/pvpindex retryfailed` | `pvpindex.admin` | Retry failed API submissions |
### `/pvpmod` Moderation
| Command | Permission | Description |
|---|---|---|
| `/pvpmod watch ` | `pvpindex.mod` | Spectate a live battle |
| `/pvpmod replay ` | `pvpindex.mod` | Play back a recorded battle |
| `/pvpmod report ` | `pvpindex.mod.report` | Report a player |
| `/pvpmod ban ` | `pvpindex.mod.ban` | Ban a player from battles |
| `/pvpmod unban ` | `pvpindex.mod.ban` | Unban a player |
---
## PlaceholderAPI
| Placeholder | Returns |
|---|---|
| `%pvpindex_elo%` | Overall ELO rating |
| `%pvpindex_elo_%` | ELO for a specific mode |
| `%pvpindex_rank%` | Global ladder position |
| `%pvpindex_wins%` | Session wins |
| `%pvpindex_losses%` | Session losses |
| `%pvpindex_kd%` | Win/loss ratio |
| `%pvpindex_in_battle%` | `true` / `false` |
| `%pvpindex_queued%` | `true` / `false` |
| `%pvpindex_queued_mode%` | Current queue mode or `none` |
| `%pvpindex_battle_type%` | Display name of the active mode |
---
## Configuration
```yaml
# plugins/PvPIndexBattles/config.yml
api:
api_key: ""
base_url: "https://api.pvpindex.com/api"
server:
id: "my-server"
require_signature: false # Recommended: set to true in production
debug: false
arena:
world_prefix: "pvpindex_arena"
cleanup_delay_ticks: 100
queue:
max_wait_seconds: 120
```
→ Full reference: [docs.pvpindex.com/server_owner/configuration](https://docs.pvpindex.com/server_owner/configuration)
---
## Links
- **Website & leaderboards** - [pvpindex.com](https://pvpindex.com)
- **Documentation** - [docs.pvpindex.com](https://docs.pvpindex.com)
- **Source (plugin)** - [github.com/PVP-Index/pvpindex-battles](https://github.com/PVP-Index/pvpindex-battles)
- **Source (ELO formula / anti-cheat)** - [github.com/PVP-Index/battle-validator](https://github.com/PVP-Index/battle-validator)
- **Issue tracker** - [github.com/PVP-Index/pvpindex-battles/issues](https://github.com/PVP-Index/pvpindex-battles/issues)
---
## License
The ELO validator is published under [MIT](https://github.com/PVP-Index/pvpindex-battles/blob/main/LICENSE). See [LICENSE](https://github.com/PVP-Index/pvpindex-battles/blob/main/LICENSE) for the plugin itself.
PvPIndex-Battles is a free Minecraft Java mod. Compatible with Minecraft 1.21, 1.21.1, 1.21.10, 1.21.11 and newer. Downloaded 9 times (via Hangar). Download it and open it directly in the game.
Explore more