AtlasPractice
A feature-rich Minecraft practice plugin built for competitive 1.8 PvP servers. Unlimited arenas, advanced replay, full party support, ranked/unranked queues, SlimeWorldManager integration, cosmetics, and much more — all open-source.
Overview
AtlasPractice is an open-source Minecraft practice plugin designed for competitive servers. It provides a complete out-of-the-box practice experience with no artificial limits — no arena caps, no kit caps, no edition tiers.
Installation
Requirements
| Component | Version | Notes |
|---|---|---|
| Java | 17+ | Required by the plugin |
| Server Software | PaperSpigot 1.8.8 / PandaSpigot | PandaSpigot recommended for best performance |
| SlimeWorldManager | Latest | Required. Powers all arena worlds |
| Citizens | Latest | Required. Used for Bot Practice NPCs |
Optional Dependencies
| Plugin | Purpose |
|---|---|
| PlaceholderAPI | Exposes stats to scoreboards, TAB, holograms |
| AtlasReplay | Enables match replay recording and playback |
| AtlasMore | Adds additional lobby features for players |
Installation Steps
Install Dependencies
Place SlimeWorldManager and Citizens into your plugins/ folder. Optionally add PlaceholderAPI and AtlasReplay.
Add AtlasPractice
Drop the AtlasPractice.jar into your plugins/ folder.
Start the Server
Start your server. AtlasPractice will generate config.yml, kits.yml, arenas.yml, scoreboard.yml, ranked.yml, and other config files automatically.
Set the Lobby Spawn
Stand at your desired lobby spawn point and run /setlobbyspawn.
Create Your First Kit
Run /kit create <name>, then /kit edit <name> to set the items. Or use /toolazytocreatekits to generate from built-in presets instantly.
Create Your First Arena
Follow the Arena System section below to create an arena and link it to a kit.
First Setup Checklist
| Task | Command / Action |
|---|---|
| Set lobby spawn | /setlobbyspawn |
| Create a kit | /kit create <name> then /kit edit <name> |
| Or use preset kits | /toolazytocreatekits |
| Create a SWM arena world | /swm create <worldname> file |
| Create an arena | /arena create <arenaName> <runtimeWorld> [slimeWorldName] |
| Set arena spawns | /arena setspawnred <arena> and /arena setspawnblue <arena> |
| Link arena to kit | /kit addarena <arena> <kit> |
| Enable the arena | /arena enable <arena> |
| Verify | Queue into the kit from the lobby hotbar |
Arena System
AtlasPractice supports unlimited arenas with no cap. Arenas are linked to kits — a single kit can have multiple arenas, and the system picks one automatically when a match starts.
Arena Modes
| Type | Description | Reset Method |
|---|---|---|
NORMAL |
Standard 1v1 arena. Multiple concurrent matches per arena are allowed. | No terrain change, no reset needed |
SHARED |
Multiple matches share the same physical space. Block changes tracked and reverted between rounds. | Tracked-block rollback |
BRIDGE |
Bridge (first to score wins). Requires goal blocks set via /arena goalwand. |
SWM clone reset |
BEDFIGHT |
Destroy the opponent's bed. Requires bed positions. | SWM clone reset |
FIREBALLFIGHT |
Traditional Fireball Fight. | Standard reset |
Arena Commands
| Command | Description |
|---|---|
/arena list | List all arenas with their current state and linked kit. |
/arena create <name> <world> [slimeWorldName] | Create a new arena. Pass a SWM slime world name for runtime arenas. |
/arena delete <name> | Remove an arena permanently. |
/arena setpos1 <name> | Set first boundary corner. |
/arena setpos2 <name> | Set second boundary corner. |
/arena setspawnred <name> | Set the red team spawn point. |
/arena setspawnblue <name> | Set the blue team spawn point. |
/arena setbedred <name> | Set the red bed location (BF/FBF). |
/arena setbedblue <name> | Set the blue bed location (BF/FBF). |
/arena goalwand | Receive a goal-wand to mark Bridge/BattleRush goal blocks. |
/arena autobridgeblocks <name> | Set auto-bridge block palette for a Bridge arena. |
/arena save <name> | Save arena configuration to disk. |
/arena enable <name> | Enable the arena so it enters the matchmaking pool. |
/arena disable <name> | Disable the arena (keeps it saved, removes from matchmaking). |
/arena useshared [name] | Configure an arena as a Shared Arena via GUI. |
SlimeWorldManager Integration
AtlasPractice is built around SlimeWorldManager (SWM) for arena world management. SWM stores worlds in a compact slime format, enabling instant world loading, cloning, and deletion at runtime — eliminating the traditional Minecraft world folder bottleneck.
Creating a SWM Arena World
# Step 1 — Create a new SWM world
/swm create <worldname> file
# Step 2 — Teleport into it and build or paste your arena
/swm goto <worldname>
# Step 3 — When done, unload it to save
/swm unload <worldname>
# Step 4 — Register it in AtlasPractice
/arena create <arenaName> <runtimeWorldName> <slimeWorldName>
/arena create is the name Bukkit uses for the live copy of your
arena world during a match. The slimeWorldName is your saved SWM template.
AtlasPractice clones the template into the runtime name every time a match starts,
so each match always gets a fresh copy.
How Runtime Cloning Works
- A match is created and needs an arena.
- AtlasPractice clones the SWM template world into a new runtime world name.
- Players are teleported into the cloned world.
- After the match ends, the runtime world is deleted.
- The template is never touched — it is always clean and ready for the next clone.
This means you can have dozens of simultaneous matches all running in independent worlds derived from the same single template.
Auto Arena Setup
The Auto Arena Setup wizard scans an existing arena structure and automatically
detects and configures spawn points, boundary regions, and mode-specific settings —
saving you from running every /arena set* command manually.
Requirements
Before running Auto Setup, your arena must meet the following requirements:
- Exactly 2 Beds must exist in the arena.
- Exactly 1 Red Wool block must exist.
- Exactly 1 Blue Wool block must exist.
- No additional beds or red/blue wool blocks should be placed anywhere in the arena.
- The arena should already be created using
/arena create.
Auto Setup relies on these blocks to identify team locations. If there are more or fewer than 2 Beds, 1 Red Wool, and 1 Blue Wool, the scan may fail or produce incorrect results.
When to Use It
Use Auto Setup after you have built or pasted an arena and registered it with
/arena create. The scanner works best when your arena follows a symmetric layout
with clearly distinguishable team bases.
Running Auto Setup
# Start Auto Setup
/arenaautosetup <arenaName> yes
# Cancel
/arenaautosetup <arenaName> no
After Auto Setup completes, verify the detected locations by teleporting around the arena and checking that all spawn points, regions, and team assignments are correct before making the arena available to players.
Special Arena Types — Setup Guide
Most arenas only need red/blue spawns. The following modes require additional setup steps.
Bridge
Players race to score goals in the enemy's portal/goal zone. First team to reach the score limit wins.
- Create the arena with
/arena create. - Set both team spawns.
- Run
/arena goalwandto receive a goal-marking wand. - Right-click the goal blocks for each team to register them.
- Optionally configure auto-bridge blocks:
/arena autobridgeblocks <name>. - Save and enable.
BattleRush
Team-based mode. Uses goal blocks similar to Bridge.
- Set both team spawns.
- Use
/arena goalwandto mark goal zones. - Save and enable.
BedFight
Destroy the opponent's bed to eliminate their respawns, then eliminate the opponent.
- Set both team spawns.
- Stand at each bed and run
/arena setbedred <name>and/arena setbedblue <name>. - Save and enable.
Fireball Fight
Players fight using clutching with fireballs & Tnts, Uses standard arena setup — Click [BF/FBF] button for arena creation.
Pearl Fight
Ender-pearl-focused combat. Standard two-spawn setup.
Boxing
Unarmed combat tracked by hit count. Standard two-spawn setup. No special configuration required.
BuildUHC
Players can place blocks during the match — terrain-altering.
- Create the SWM template world.
- Create the arena:
/arena create <name> <runtimeWorld> <slimeWorldName>. - The system will automatically create a fresh clone per match.
Kit System
Kits define what gear players receive when a match starts. Each kit can have multiple arenas linked to it. Kits are fully customizable — items, enchantments, potions, and player-editable layout slots.
Kit Commands
| Command | Description | Permission |
|---|---|---|
/toolazytocreatekits | List of Predefined kits. | atlaspractice.admin |
/kit create <name> | Create a new kit. | atlaspractice.admin |
/kit edit <name> | Open the kit editor (put items in inventory). | atlaspractice.admin |
/kit save <name> | Save the current inventory as the kit template. | atlaspractice.admin |
/kit delete <name> | Delete a kit. | atlaspractice.admin |
/kit list | List all registered kits and their linked arenas. | atlaspractice.admin |
/kit addarena <arena> <kit> | Link an arena to a kit. | atlaspractice.admin |
/kit removearena <arena> <kit> | Unlink an arena from a kit. | atlaspractice.admin |
/kitlayout | Open the personal kit layout editor (players). | — |
/resetlayout <kitName> | Reset your personal kit layout to the admin default. | — |
/allowedrankedkits | Open the GUI to enable/disable kits for Ranked. | atlaspractice.admin |
/kitlayout.
Their layout is saved per-player and persists between sessions. And can reset it with /resetlayout <kitName>.
Built-in Kit Presets
AtlasPractice ships with 22 built-in kit presets. Instead of building every kit manually from scratch,
run /toolazytocreatekits to open a GUI and generate any preset kit instantly.
/toolazytocreatekits as a staff member to open the preset generator GUI.
Click any preset to create it. The kit is saved immediately and ready to be linked to an arena.
Queue System
Players join queues from the lobby hotbar. AtlasPractice runs periodic matchmaking and pairs players automatically when two players are in the same queue.
Unranked Queue
No ELO change. Good for casual practice or learning a kit.
Ranked Queue
ELO-based matchmaking. Only kits explicitly enabled for ranked via /allowedrankedkits appear here.
Random Queue
Drops you into a random unranked kit queue. Fast way to get into a match. Use /rq.
Lobby Hotbar
| Slot | Item | Action |
|---|---|---|
| 0 | Iron Sword — Unranked Queue | Right-click to open unranked kit selector |
| 1 | Diamond Sword — Ranked Queue | Right-click to open ranked kit selector |
| 3 | Nether Star — Party Menu | Right-click to open party menu |
| 4 | Book — Kit Editor | Right-click to open kit layout editor |
| 7 | Chest — Cosmetics | Right-click to open cosmetics menu |
| 8 | Redstone Comparator — Settings | Right-click to open settings menu |
Ranked System
The ranked queue uses an ELO rating system. Each kit tracks ELO independently,
and there is also a global ELO that aggregates all kit performance.
Only kits configured as ranked-eligible (via /allowedrankedkits) appear in the ranked queue menu.
%atlaspractice_elo_nodebuff% returns a player's ELO
for the nodebuff kit. %atlaspractice_global_elo% returns a combined rating.
Party System
The party system allows groups of players to play together — either in private matches against each other, in a split 1v1, or in FFA within the party.
Party Commands
| Command | Description |
|---|---|
/party create | Create a new party. You become the leader. |
/party invite <player> | Invite a player to your party. Leader only. |
/party accept <leader> | Accept an incoming party invitation. |
/party deny <leader> | Decline an incoming party invitation. |
/party leave | Leave your current party. |
/party kick <player> | Remove a member from your party. Leader only. |
/party promote <player> | Transfer party leadership to another member. |
/party disband | Disband the entire party. Leader only. |
/party duel <leader> | Challenge another party to a match. Opens kit selector. |
/party split | Split the party into two even teams for a match. |
/party info | View current party members and leader. |
/party chat <message> | Send a message only to party members. |
Party Match Types
Party PvP
Two party leaders challenge each other. Each player in one party fights a corresponding player from the other.
Party FFA
All party members fight each other in a free-for-all match.
Party Split
Party is automatically divided into two teams for a team match.
Party Bridge / BattleRush
Team-based party matches for Bridge and BattleRush modes.
/party chat <message> to communicate with party members only, without broadcasting to the server.
Duels
Challenge any player in the lobby to a private 1v1 match on a specific kit and arena.
/duel <playerName>
The challenged player receives an invite. They can accept with /accept <yourName> or decline with /deny. Duels do not affect ELO.
Cosmetics
AtlasPractice includes a full cosmetics system. Players can equip cosmetics from the lobby
by right-clicking the Chest item (slot 7) or running /cosmetics.
Cosmetic Categories
Auras
Particle effects that orbit around the player in the lobby.
Kill Effects
Particle/sound effects triggered when a player gets a kill in a match.
Kill Messages
Custom death messages shown in chat when a player eliminates an opponent.
Chat Colors
Custom color applied to the player's chat messages.
Projectile Trails
Particle effects trailing behind projectiles (arrows, snowballs) during matches.
Cosmetics Command
/cosmetics
Player Settings
Players can configure personal preferences via the Settings menu (Redstone Comparator in slot 8) or via /settings command.
Progression System
Players earn XP and Coins by playing matches. XP accumulates into Levels, which can unlock cosmetics and display as colored level tags via PlaceholderAPI.
Admin Commands
| Command | Description |
|---|---|
/xp give <player> <amount> | Grant XP to a player. |
/xp set <player> <amount> | Set a player's XP directly. |
/coins give <player> <amount> | Grant coins to a player. |
/coins set <player> <amount> | Set a player's coin balance. |
Level Colors
Level color ranges are configured in level-colors.yml. Each level range can have a distinct color prefix displayed in scoreboards and holograms via the %atlaspractice_level% placeholder.
Replay System
AtlasPractice integrates with AtlasReplay (optional) to record and play back matches. When AtlasReplay is installed, matches are automatically recorded in the background with no player action required.
Viewing Replays
/replays
Use /replays to open a menu containing all available replays.
You can browse through old and recent matches, select a replay, and view its details before playing it.
Each replay shows information such as the players involved and the match duration.
Searching for a Replay
/replay search <player1> <player2>
You can search for an exact replay by entering the players who were in the match. This makes it easier to find a specific match without having to browse through the entire replay list.
Viewing a Replay
/atlasreplayview <replayId>
After a match ends, players receive a clickable button in chat to watch their replay directly.
Replays can also be selected from the /replays menu or accessed by admins using the command above with a known replay ID.
Replay Details
- View the players who participated in the match.
- See how long the match lasted.
- Browse both recent and older replays.
- Select a replay directly from the menu to watch it.
- Search for specific matches using the player names.
Benefits
- Review your own movement, combos, and mistakes.
- Watch from any angle — not just first-person.
- Useful for catch/evidence gathering.
- No performance impact on players during the match.
Spectating
Staff and players with appropriate permissions can silently spectate any live match.
/spec <playerName>
/spectate <playerName>
Spectators are invisible to match participants and cannot interact with the world. Use /spawn to return to the lobby.
Leaderboards
AtlasPractice maintains cached leaderboard rankings for Kills, Deaths, Wins, Level, XP, and Coins. Leaderboard data refreshes periodically and is exposed via PlaceholderAPI for use in holograms or scoreboards.
Leaderboard Command
/atlasleaderboard
/lb
/leaderboards
This command is admin-only and is used to manage packet holograms that display leaderboard data.
PlaceholderAPI Leaderboard Placeholders
| Placeholder | Returns |
|---|---|
%atlaspractice_top_wins_1_name% | Name of #1 player by wins |
%atlaspractice_top_wins_1_value% | Win count of #1 player |
%atlaspractice_top_kills_3_name% | Name of #3 player by kills |
%atlaspractice_top_kills_3_value% | Kill count of #3 player |
%atlaspractice_top_deaths_1_name% | Name of #1 player by deaths |
%atlaspractice_top_level_1_name% | Name of #1 player by level |
Pattern: %atlaspractice_top_<category>_<position>_<name|value>%
Categories: wins, kills, deaths, level, xp, coins
Custom Leaderboard Holograms
AtlasPractice also supports custom leaderboard holograms that can be placed anywhere in the server.
These leaderboards are managed by admins and are saved automatically in lb.yml.
Quick Setup
The easiest way to create leaderboards is:
/atlaslb fastsetup
The setup menu lets you add or remove global and per-kit leaderboards without having to type every command manually.
Available Leaderboards
| Leaderboard | Global | Per Kit |
|---|---|---|
| Wins | Yes | Yes |
| Kills | Yes | Yes |
| Deaths | Yes | Yes |
| Win Streak | Yes | Yes |
| ELO | No | Yes |
Leaderboard Configuration
Each leaderboard is stored in lb.yml. The file contains the leaderboard name,
location, stat type, kit and display style.
holograms:
lb_wins_global:
world: world
x: 0.0
y: 80.0
z: 0.0
type: WINS
kit: NONE
style: default
lb_winstreak_nodebuff:
world: world
x: 5.0
y: 80.0
z: 0.0
type: WINSTREAK
kit: NODEBUFF
style: default
Leaderboard Styles
The appearance of leaderboard holograms can be changed from config.yml.
This includes the title, kit line, player entries, empty entries, footer and number of
displayed players.
leaderboards:
styles:
default:
max-entries: 10
title: "&b&lTop {stat}"
kit-line: "&7{kit}"
entry: "&e#{position} &f{player} &7- &b{value}"
empty: "&e#{position} &8N/A"
footer: ""
Style Placeholders
| Placeholder | Description |
|---|---|
{stat} |
Leaderboard stat name |
{type} |
Leaderboard type |
{kit} |
Kit name |
{position} |
Player position |
{player} |
Player name |
{value} |
Player's value for that leaderboard |
Managing Leaderboards
/atlaslb
/atlaslb fastsetup
Use /atlaslb reload after changing leaderboard configuration files manually.
Commands Reference
Player Commands
| Command | Aliases | Description |
|---|---|---|
/spawn | — | Teleport to the lobby spawn. |
/leave | — | |
/duel <player> | — | Challenge a player to a duel match. |
/accept <player> | — | Accept a duel or party invite. |
/deny | — | Decline an active invite or challenge. |
/party | — | Party Options (see Party section). |
/stats [player] | — | View your own or another player's stats. |
/spec <player> | /spectate | Spectate a player's match. |
/kitlayout | — | Open the personal kit layout editor. |
/resetlayout <kit> | — | Reset your kit layout to default. |
/cosmetics | — | Open the cosmetics menu. |
/randomqueue | /rq, /random | Join a random unranked kit queue. |
/atlasreplayview <id> | — | Watch a recorded match replay. |
/practice | — | AtlasPractice player utilities menu. |
/replays | — | Open the replay menu to browse and watch recorded matches. |
/replay search <player1> <player2> | Search for a specific replay by the players who played in it. |
Admin Commands
| Command | Aliases | Description |
|---|---|---|
/practiceadmin reload | /pa reload | Reload kits and arenas from disk without restart. |
/practiceadmin status | /pa status | View live match count and profile cache size. |
/setlobbyspawn | — | Set the lobby spawn to your current position. |
/allowedrankedkits | — | GUI to toggle which kits appear in ranked queue. |
/xp give|set <player> <amount> | — | Manage player XP. |
/coins give|set <player> <amount> | — | Manage player coins. |
/toolazytocreatekits | — | Open the preset kit generator GUI. |
/presetkitcreate | — | Internal command used by the preset GUI. |
/arenaautosetup <arena> <yes|no> | — | Run the Auto Arena Setup wizard. |
/atlasleaderboard | /lb | Manage leaderboard holograms. |
PlaceholderAPI
When PlaceholderAPI is installed, AtlasPractice registers a atlaspractice expansion
automatically on startup. These placeholders work in any plugin that supports PAPI
(TAB, HolographicDisplays, CMI, FeatherBoard, etc.).
| Placeholder | Returns |
|---|---|
%atlaspractice_level% | Player's current level |
%atlaspractice_xp% | Player's total XP |
%atlaspractice_xp_current% | XP earned into the current level |
%atlaspractice_xp_needed% | XP required to reach next level |
%atlaspractice_coins% | Player's coin balance |
%atlaspractice_kills% | Total kills |
%atlaspractice_deaths% | Total deaths |
%atlaspractice_wins% | Total wins |
%atlaspractice_kdr% | Kill/death ratio (2 decimal places) |
%atlaspractice_global_elo% | Global ELO rating |
%atlaspractice_elo_<kitId>% | ELO for a specific kit (e.g. %atlaspractice_elo_nodebuff%) |
%atlaspractice_state% | Current player state (LOBBY, IN_MATCH, etc.) |
%atlaspractice_top_wins_1_name% | Leaderboard: name of #1 player by wins |
%atlaspractice_top_kills_1_value% | Leaderboard: kill count of #1 player |
<kitId> with the internal kit ID (lowercase, no spaces). For example, for a kit
created as nodebuff, use %atlaspractice_elo_nodebuff%.
Bot Practice
/bot command exists in the plugin but the feature is not currently functional.
Do not configure or advertise Bot Practice to players at this time.
Permissions
| Permission | Default | Description |
|---|---|---|
atlaspractice.admin | OP | Full admin access (kit/arena management, practiceadmin, etc.) |
atlaspractice.admin.arena | OP | Arena management commands only |
atlaspractice.admin.progression | OP | XP and coin admin commands |
atlaspractice.build.bypass | OP | Bypass block-breaking restrictions in arena worlds |
atlas.admin | OP | Auto setup and preset kit internal commands |
atlaspractice.bot | OP | Access to the /bot command (currently non-functional) |
Updates
Open Source
AtlasPractice is fully open source. There are no editions, no license keys, and no feature paywalls. The entire codebase is available for everyone.
Fork It
Fork the repository and build your own custom version for your network.
Modify It
Add custom kits, modes, or integrations specific to your server.
Learn From It
Study the architecture — arena cloning, queue systems, party management, and replay integration.
Contribute
Submit pull requests, bug reports, or feature suggestions on GitHub.
Create Addons
Use the AtlasPracticeAPI to build external addons that integrate with the plugin.
FAQ
How do I install AtlasPractice?
Install SlimeWorldManager and Citizens first (required), then drop the AtlasPractice jar into your plugins/ folder and start the server. See the Installation section for the full step-by-step guide.
How many arenas can I create?
Unlimited. There is no arena cap. Create as many as your server hardware supports.
How do runtime arenas work?
When a match starts, AtlasPractice clones your SWM template world into a fresh runtime world in memory. Each match gets its own isolated world. When the match ends, the runtime world is deleted. The template is never modified.
Can I use PlaceholderAPI?
Yes. Install PlaceholderAPI and AtlasPractice will hook into it automatically on startup. See the PlaceholderAPI section for all available placeholders.
Does Replay require ProtocolLib?
No. Replay is powered by AtlasReplay, which is a separate optional dependency. ProtocolLib is not required by AtlasPractice.
Why is Bot Practice disabled?
Bot Practice is being completely rewritten using Citizens NPCs for better AI, pathfinding, and difficulty options. The feature will return in a future update. The /bot command is registered but currently non-functional.
How do I migrate arenas from another practice plugin?
You will need to recreate arenas manually. Build or paste your existing arena in a new SWM world, then register it with /arena create. Use the Auto Arena Setup wizard to detect spawn points automatically.
What happens to arena worlds when the server restarts?
Runtime worlds (active match clones) are automatically cleaned up when the plugin disables. Your SWM template worlds are preserved — they are stored by SlimeWorldManager and are not affected by restarts.
Can I run multiple matches on the same arena simultaneously?
Yes, for arenas configured as NORMAL or SHARED type. For terrain-altering modes (BuildUHC, Bridge, BedFight), each match clones its own separate world.
How do I enable a kit for ranked play?
Run /allowedrankedkits as an admin to open the GUI. Click a kit to toggle whether it appears in the ranked queue.