Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
ServerWar
A production-ready competitive in-game PvP war system for Paper 1.21.x servers.
ServerWar lets players challenge each other to wars with in-game Vault money stakes, secure prize escrow, kill-based scoring, objectives, leaderboards, team wars, statistics, and full admin control.
Important: ServerWar uses only the server's existing in-game Minecraft economy (Vault). It never involves real money, cryptocurrency, or payments. All stakes and rewards are strictly in-game Vault money.
Features
- 1v1 Wars —
/war challenge Ahmed 500000 - Team vs Team Wars —
/war team challenge Blue 500000 - In-game money stakes via Vault (BigDecimal, no floating point)
- Secure prize escrow with idempotent, transaction-ID-protected payouts
- Anti-kill farming (cooldown, diminishing returns, team-kill & suicide/void protection)
- Combat logging detection
- Objectives (kill players, mine blocks, kill mobs, obtain items, bow/sword kills)
- War statistics & leaderboards
- War history
- Configurable GUI management
- SQLite (default) and MySQL/MariaDB with HikariCP pooling
- PlaceholderAPI expansion
- Admin controls with granular permissions
- Server restart recovery — never resets an active war
Requirements
- Paper 1.21.x (or compatible forks)
- Java 21
- Vault + an economy plugin (EssentialsX, CMI, etc.)
- PlaceholderAPI (optional)
Installation
- Place
ServerWar.jarinto your server'splugins/folder. - Start the server. The plugin creates
plugins/ServerWar/config.yml,messages.yml, and (for SQLite)serverwar.db. - Install Vault and an economy plugin so money features work.
- (Optional) Install PlaceholderAPI.
- Restart the server (or run
/waradmin reload).
Commands
Player: /war, /war challenge <player> <stake>, /war accept <player>, /war decline <player>, /war surrender [confirm], /war stats [player], /war history, /war top, /war team ...
Admin: /waradmin reload, stats, wars, war <id>, cancel <id>, force-start <id>, force-end <id>, refund <id>, sponsor <id> <amount>, reset-stats <player>, blacklist <player>, unblacklist <player>
Database
By default ServerWar uses SQLite with zero setup. For MySQL/MariaDB, edit config.yml. All monetary values are BigDecimal and stored as TEXT (SQLite) / DECIMAL(20,2) (MySQL). If MySQL is unreachable at startup, ServerWar falls back to SQLite.
PlaceholderAPI
%serverwar_active_wars%, %serverwar_player_wins%, %serverwar_player_losses%, %serverwar_player_kills%, %serverwar_player_deaths%, %serverwar_player_points%, %serverwar_player_winrate%, %serverwar_player_streak%, %serverwar_player_winnings%, %serverwar_top_player%, %serverwar_top_player_<rank>%, %serverwar_top_player_<category>_<rank>%
Restart Recovery
On startup: ACTIVE/STARTING/PAUSED wars are fully restored (scores, objectives, participants, remaining duration). Unaccepted PENDING challenges are refunded and cancelled — money is never lost. Rewards/refunds are idempotent, so a crash mid-payout can never double-pay.
License
MIT

