⚔ Ahxer Studios · Room-based PvP/PvE arenas

Every player builds
their own arena

AhxerVersus is the most complete room-based PvP/PvE arena plugin for Paper 1.21+. Players pick a map, kit and template from a polished menu, invite friends with a room code, and fight in fully isolated arenas that build and clean themselves automatically.

v1.6.0 Paper 1.21+ Java 21 PlaceholderAPI optional WorldEdit optional

Integrates with

{ }PlaceholderAPIOptional · statistics
WEWorldEdit / FAWEOptional · .schem maps
GyGeyserBedrock menus
NxNxMenuTitle-based packs
Features

A whole arena system,
menu by menu

Everything is menu-driven and editable. Real in-game screenshots below, plus GUIs rendered straight from the plugin's menus and config.

Main menu

One command opens everything

/versus opens a clean hub: create a room, browse public rooms, join with a code, or check your stats. If you are already in a room, it opens your room menu instead.

The /versus main menu: Create room, Public rooms, Join with code and Your stats.
The /versus main menu: Create room, Public rooms, Join with code and Your stats.
“Create room” — start a new PvP/PvE room and configure its rules.
“Create room” — start a new PvP/PvE room and configure its rules.
“Public rooms” — browse open rooms and join with one click.
“Public rooms” — browse open rooms and join with one click.
“Join with code” — enter the code of a private room.
“Join with code” — enter the code of a private room.
“Your stats” — games, wins and the server leaderboard.
“Your stats” — games, wins and the server leaderboard.
Create a room

Pick a map, kit and mode

Choose the map (Random by default), visibility, inventory mode and equipment, then go with ready-made Templates or full Custom rules. Options marked “creation only” lock once the room exists.

The Create-room menu: map, visibility, inventory, equipment, dimensions and mode.
The Create-room menu: map, visibility, inventory, equipment, dimensions and mode.
Templates

Eight ready-to-play presets

No two templates play the same: 1v1 Duel, Free-for-all, Bow PvP, Trident PvP, Crystal PvP, Netherite PvP, and Mobs Medium / Hard. Templates set the kit and extras — the map is always the player's choice.

Versus | Templates
Predefined templatesReady-to-play setups.Click to pick one.
1v1 DuelKit: DiamanteExtras: notch apples, rodMax 2 players
Free-for-allKit: DiamanteNotch apples, rodUp to 8 players
🏹Bow PvPKit: ArqueroExtras: fishing rod
🔱Trident PvPKit: TridenteExtras: fishing rod
Crystal PvPKit: NetheriteG-apples, potions, 16 pearls,64 crystals + obsidian
Netherite PvPKit: NetheriteLike Crystal, withoutcrystals + obsidian
🧟Mobs · MediumZombies / skeletonsNight vision on
Mobs · HardWither skeletons / blazes /endermen / creepers

Rendered from the plugin's templates — hover an item for its tooltip.

Kits

Distinct, non-overlapping loadouts

Kits are defined entirely in the config with a content preview. Ships with Diamante, Arquero, Tridente and Netherite (each with a fishing rod and XP bottles) plus the originals — or pick Your equipment to enter with what you're wearing. Inventories are snapshotted and restored, never lost.

Versus | Choose kit
EquipmentChoose the kit you spawnwith during the game.
🧍Your equipmentEnter with the gear you wear.Saved and returned — never lost.
DiamanteDiamond armor (Prot II), Sharp IIsword, Power II bow, rod, XP
🏹ArqueroChainmail, Power III/Punch/Flamebow, 64 arrows, rod, XP
🔱TridenteDiamond armor, Loyalty/Impalingtrident, rod, XP
NetheriteNetherite Prot III, Sharp IIIsword, bow, rod, XP
ClassicFull diamond, Sharp II sword,16 g-apples, 16 pearls
🛡TankDiamond Prot II, axe, shield,4 g-apples, totem
Back
Advanced rules & extras

Configure every detail by hand

Custom mode exposes every match rule — PvP/PvE, revives, fall damage, regen, hunger, spawn protection, time and dimensions — plus extra functions: golden & notch apples, healing potions, ender pearls, end crystals + obsidian, experience bottles, Always Critical and No Regeneration.

The Advanced configuration menu: rules, kit, extras and effects in one place.
The Advanced configuration menu: rules, kit, extras and effects in one place.
Versus | Extra functions
Extra functionsLeft click: toggle.Right click: change amount.
🍎Golden applesoff → 1 → 4 → 8 → 16 → 32 → 64
🍏Notch applesEnchanted golden apple (notch).
🧪Healing potionsoff → 1 → 2 → 4 → 8 → 16 → 24
🎣Fishing rodHandy to pull opponents in.
🫙Experience bottlesoff → 32 → 64 → 96 → 128 → 160 → 192
Ender Pearlsoff → 1 → 2 → 4 → 8 → 16
Crystals + Obsidianoff → 1 → 4 → 8 → 16 → 32 → 64Only break blocks you place
Always CriticalEvery hit is a critical (×1.5).
🚫No RegenerationNo natural health regen.
PvE mobs

Wave-based mob rooms

Enable mobs, set the spawn interval and mode, and pick from a curated type list. Creepers and withers never damage the map, drowned spawn with a trident, and a hard cap of 15 mobs keeps every room smooth.

Room | Mob config
Mob configurationEnable enemies, frequency,mode and types.
Mobs: ONClick to toggle
Interval: 5sClick: 1, 2, 3, 5, 10s
Mode: One at a timeOne at a time or all at once.
🧟Zombie (on)
🟩Creeper (off)
💀Skeleton (off)
🟦Warden (off)
🔳Wither (off)
🧜Drowned (off)
Wither Skeleton (off)
Active types: 1Max 15 mobs at onceper room (fixed).
Back
Statistics & leaderboard

Track every match and win

Matches played and wins are stored per player and shown in a personal stats menu and a centered top-5 leaderboard (configurable up to 7). Winner rewards are configurable console commands with %winner%.

Personal statistics: games played, wins, losses and win rate.
Personal statistics: games played, wins, losses and win rate.
The server leaderboard menu, ranking players by wins.
The server leaderboard menu, ranking players by wins.
Sound feedback

Every action has a sound

Menu clicks, denied actions, kit and template picks, room join/leave, deaths, the countdown, the GO!, the winner fanfare and the end-of-match bell. A master switch mutes the plugin, and each of the 12 events can be changed or disabled — invalid names are reported once and simply stay silent.

config.yml — sounds
sounds:
  enabled: true
  click: { enabled: true, sound: UI_BUTTON_CLICK,             volume: 0.6, pitch: 1.0 }
  deny: { enabled: true, sound: BLOCK_NOTE_BLOCK_BASS,       volume: 0.9, pitch: 0.6 }
  select: { enabled: true, sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 0.7, pitch: 1.3 }
  win: { enabled: true, sound: UI_TOAST_CHALLENGE_COMPLETE, volume: 1.0, pitch: 1.0 }
  countdown: { enabled: true, sound: BLOCK_NOTE_BLOCK_PLING,      volume: 1.0, pitch: 1.0 }
  go: { enabled: true, sound: ENTITY_PLAYER_LEVELUP,       volume: 1.0, pitch: 1.4 }
Self-cleaning arenas

Isolated worlds that reset themselves

Every arena is built in its own world, 512 blocks apart by default, wrapped in an invisible impassable barrier. After each match it wipes placed blocks, leftover crystals, dropped items, projectiles and XP orbs. Import your own .schem builds and configure spawns entirely in game — a shape-friendly barrier only replaces passable blocks, so your build keeps its exact shape.

What's included

One plugin, the full arena toolkit

Everything below ships in a single JAR — no add-ons, no upsells.

FeatureAhxerVersus
Menu-driven room creation (also full commands)
Public & private rooms with shareable codes
8 ready-to-play templates, no two alike
Config-defined kits with content preview
“Your equipment” mode — enter with your own gear
Custom match rules (PvP/PvE, revives, regen, hunger…)
Extra functions (pearls, crystals, criticals, no-regen…)
19 self-clearing potion effects + Night Vision toggle
Wave-based PvE mobs with a 15-mob cap
Isolated, self-cleaning arenas (512-block spacing)
Schematic maps from .schem, configured in game
Inventory snapshot & restore (crash-safe)
Command blocking inside rooms (with whitelist)
Statistics, top-5 leaderboard & winner rewards
Full sound feedback — 12 configurable events
English & Spanish, every text & menu title editable
Auto file migration with .bak backups on update
PlaceholderAPI

Live statistics, anywhere

With PlaceholderAPI installed, the plugin exposes non-clashing placeholders under the ahxerversus identifier.

%ahxerversus_played%Matches played
%ahxerversus_wins%Total wins
%ahxerversus_losses%Total losses
%ahxerversus_winrate%Win rate value
%ahxerversus_winrate_formatted%Win rate, formatted
%ahxerversus_in_room%Whether the player is in a room
%ahxerversus_room_code%Current room code
partidas · victorias · derrotas · porcentajeSpanish aliases also work
Config

Readable YAML for everything

Behaviour lives in config.yml; every text and menu title lives in messages/<lang>.yml. A few real sections:

config.yml — kits
kits:
  presets:
    diamante:
      display: "&b&lDiamante"
      icon: DIAMOND_CHESTPLATE
      armor:
        chestplate: "DIAMOND_CHESTPLATE;PROTECTION:2"
      items:
        - "DIAMOND_SWORD;SHARPNESS:2"
        - "BOW;POWER:2"
        - FISHING_ROD
        - "EXPERIENCE_BOTTLE:32"
config.yml — room defaults
room-defaults:
  max-players: 2 # cycles 1..10 (creation only)
  combat: PVP # PVP | PVE
  respawn-max: 10 # revive cycles 0..10
  start-countdown: 5 # 0, 3, 5, 10
  spawn-protection: 3 # seconds

world:
  name: versus
  cell-spacing: 512 # blocks between arena cells
config.yml — commands in a room
commands:
  block-in-room: true
  allowed-in-room:         # only these work inside a room
    - msg
    - w
config.yml — sounds
sounds:
  enabled: true
  click: { enabled: true, sound: UI_BUTTON_CLICK,             volume: 0.6, pitch: 1.0 }
  deny: { enabled: true, sound: BLOCK_NOTE_BLOCK_BASS,       volume: 0.9, pitch: 0.6 }
  select: { enabled: true, sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 0.7, pitch: 1.3 }
  win: { enabled: true, sound: UI_TOAST_CHALLENGE_COMPLETE, volume: 1.0, pitch: 1.0 }
  countdown: { enabled: true, sound: BLOCK_NOTE_BLOCK_PLING,      volume: 1.0, pitch: 1.0 }
  go: { enabled: true, sound: ENTITY_PLAYER_LEVELUP,       volume: 1.0, pitch: 1.4 }
Commands & permissions

Players play; admins control

One command with subcommands and a full admin toolset. Aliases: /vs, /arena.

CommandDescriptionPermission
/versusOpen the main menu (or your room menu)ahxerversus.use
/versus leaveLeave your room and restore your stateahxerversus.leave
/versus startStart the match (room owner only)ahxerversus.use
/versus stats / listOpen your statistics or the public rooms listahxerversus.use
/versus <player>Open the menu for another playerahxerversus.others
/versus reloadReload config, messages and schematicsahxerversus.admin
/versus admin <list|info|end|close|tp|kick|cleanup>Admin toolset for active roomsahxerversus.admin
/versus schematic <…>Manage .schem maps (sync, edit, area, active…)ahxerversus.schematic*
/versus helpShow the command listahxerversus.use
PermissionDefaultGrants
ahxerversus.useEveryoneUse /versus and open menus
ahxerversus.create / .join / .leaveEveryoneCreate, join and leave rooms
ahxerversus.adminOPReload and the admin toolset
ahxerversus.othersOPOpen the menu for other players
ahxerversus.schematicOPManage schematics (if required in config)
ahxerversus.bypass.maxroomsOPIgnore the max-rooms limit
ahxerversus.map.<name>variesPer-map access (only if that map requires it)

*Schematic management needs no permission by default; set map.schematic.manage-requires-permission: true to require it. Inside a room every command is blocked except /versus and a whitelist (default /msg, /w); staff bypass this.

FAQ

Common questions

What server and Java does it need?
Paper (or a fork) 1.21+ on Java 21. Folia is not supported, and pure Spigot without Paper is untested.
Do I need WorldEdit or PlaceholderAPI?
Both are optional. WorldEdit / FastAsyncWorldEdit is only needed to import your own .schem maps; PlaceholderAPI exposes the statistics placeholders. The built-in maps and everything else work without them.
Do arenas interfere with each other?
No. Every room is built in its own world, 512 blocks apart by default, inside an invisible impassable barrier — matches never see or affect one another.
What happens to a player's items?
Inventories are snapshotted to disk the moment someone joins a room and restored when they leave — even after a crash. Items given inside a room never leak out of it.
Can I customise the sounds?
Yes. All 12 sound events are set in config.yml under sounds: — change the Bukkit sound, volume and pitch, disable any event, or flip the master switch to mute everything. Invalid names are reported once and stay silent.
Will updates reset my config?
No. Updates migrate your files automatically: new options are added while every value, kit and map you changed is preserved, and a .bak backup is written first. Player data is never touched.
Get AhxerVersus

Hand every player
their own arena

Drop in the JAR and restart — the world, config, language files and self-checks set themselves up. Then let your players create rooms, pick templates and fight in clean, isolated arenas.

$12.99One-time purchase · AhxerVersus v1.6.0
Buy Now — $12.99