Minigame Servers and Networks

From an empty server to launch day: choosing maintained minigame plugins, a full BedWars arena setup, map resets, a lobby with NPCs and queues, stats in MySQL, permissions, anti-cheat, performance and scaling

Minecraft Game Modes

26 min readAdvancedLast updated Oct 31, 2026

Minigame servers run short rounds of BedWars, SkyWars, Murder Mystery, Build Battle, TNT Run, Parkour and similar games. They work very differently from survival: worlds reset after every round, nothing players build is meant to last, every player is packed into a small arena doing a lot at once, and a lobby sends players into games.

This guide takes you from an empty server to a working minigame setup. You'll choose a layout and plugins, import an arena map, set up a complete BedWars arena command by command, store stats in MySQL, connect it to a lobby, and then run it long-term: permissions, anti-cheat, performance, backups, updates and scaling to more game servers.

Time needed: 2–3 hours for the first BedWars arena on one server, then about 30 minutes per extra arena once you have maps. A full network with a lobby takes an extra evening.

Before you start you need:

  • A Paper server (Purpur works the same) on the newest Minecraft version all your minigame plugins support, pinned on Startup. Paper setup
  • Memory: 2–3 GB for one server running a few arenas; 1–2 GB per game server and 1.5–2 GB for the lobby in a network.
  • One MySQL database for stats (and one for LuckPerms if you run a network). Databases
  • Arena maps, built by you or downloaded/bought. Each map is a world folder.
  • For a network: a Velocity server and a lobby set up as in Run several game modes as one network.
1

Choose the layout

Layout How it works Good for Limits
A. Everything on one server One Paper server holds the lobby world and several arenas. Players join games with signs, NPCs or /bw join. Starting out, up to about 30 players at once. All games share one main thread: a busy round lags every other round and the lobby.
B. Lobby + game servers behind Velocity A lobby server plus one or more game servers, each with one or a few arenas. The lobby sends players to a game server, and the game server sends them back afterwards. Busy servers and several different games. More servers to update and back up.

Start with layout A. Move to B when /spark tps shows MSPT regularly above 40 during games, or when you add a second kind of game. Everything you build in layout A (maps, arena configs, stats database) carries over to B.

Layout B:
                                  ┌──► BedWars-1   (Paper, 2-4 arenas)
Players ──► Velocity ──► Lobby ───┼──► BedWars-2   (Paper, 2-4 arenas)
                                  └──► Murder      (Paper, Murder Mystery)
             shared: MySQL for stats and LuckPerms
2

Choose your game plugins

Minigame plugins often fall behind new Minecraft versions, and many popular old ones are abandoned. Before choosing, open each plugin's page and check two things: the newest Minecraft version it lists, and the date of its last update. Anything not updated in the last year is a risk.

Game Plugin Price Notes
BedWars Screaming BedWars (ScreamingSandals) Free, open source Supports a very wide range of versions up to the newest releases; good docs; built-in arena rebuild, MySQL stats, proxy ("bungee") mode. Used in this guide.
BedWars BedWars2023 (community fork of BedWars1058) Free Uses a separate proxy companion plugin on the lobby for networks. Check its releases for your version.
BedWars BedWars1058 Free The original; its listed versions stop well behind the newest releases. Prefer one of the above for new servers.
BedWars MBedwars Paid Commercial, actively developed.
Murder Mystery Murder Mystery (Plugily Projects) Free Recent releases list the newest versions. Needs the MiniGamesBox library plugin from the same authors.
Build Battle Build Battle / Guess The Build (Plugily Projects) Free Same author and library as Murder Mystery, so menus and setup work the same way.
TNT Run TNTRun_reloaded Free Check its page for the newest supported version.
SkyWars Several (SkyWarsReloaded and newer projects, free and paid) Varies Support for the newest versions varies a lot; check each carefully before choosing.
Parkour Parkour (A5H73Y) Free Courses, checkpoints, leaderboards. A great lobby activity.
KOTH, Duels, KitPvP See PvP servers Varies

Tips for choosing:

  • Prefer one author's suite for several games (Plugily's games share the same setup style and library), so players see consistent menus and you learn one system.
  • Check proxy support if you plan layout B: the plugin should have a "bungee" or proxy mode that sends players back to the lobby after a game.
  • Check MySQL support for stats, so stats are shared between game servers and survive map resets.
  • Read reviews for "lag" and "reset": a plugin that resets arenas slowly will lag your server every round.
3

Prepare the game server

3.1 Version and first start

  1. Startup → set Minecraft Version to the exact version your plugins support.
  2. Start once, accept the EULA, Stop. First start

3.2 server.properties

Setting Value Why
view-distance 6 Arenas are small; players never need far chunks.
simulation-distance 4 Only the arena needs ticking.
spawn-protection 0 The minigame plugin and WorldGuard handle protection.
allow-nether false Minigames don't use the Nether.
allow-flight true Knockback from fireballs, TNT and launch pads can look like flying and get players kicked. Your anti-cheat handles real fly hacks.
max-players arenas × players per arena + 10 Room for everyone plus spectators.
enable-status true Queues and player-count placeholders ping the server.

For a game server in layout B, also apply the back-end settings from the network guide: online-mode=false, network-compression-threshold=-1 and the Velocity secret in config/paper-global.yml.

3.3 Paper settings

In config/paper-world-defaults.yml:

Setting Value Why
environment.optimize-explosions true BedWars uses lots of TNT and fireballs; this makes explosions much cheaper.
collisions.max-entity-collisions 2 Crowded spawn islands and shops cost less.
chunks.entity-per-chunk-save-limit arrow: 16, experience_orb: 16, snowball: 8 Stops loose entities piling up in arena chunks.

Leave unsupported-settings alone. Paper settings

3.4 Core plugins

Install from Minecraft Plugins and restart:

Plugin Why
LuckPerms Permissions for players, VIPs and staff (step 11).
Multiverse-Core Loads each arena map as its own world.
Screaming BedWars The BedWars game.
PlaceholderAPI Stats and player counts in scoreboards, holograms and menus.
WorldEdit + WorldGuard Protecting the lobby world (layout A).
CoreProtect Logs in the lobby world, so you can undo grief there.

Check with plugins in the console: everything should be green.

4

Import an arena map

Each arena is a world. A typical BedWars map has 4–8 team islands with beds, a middle island, and generators.

4.1 Upload the map

  1. Get the map as a folder containing level.dat and a region folder. If it's a .zip, unzip it on your computer first and check the folder structure.
  2. Give it a short, lowercase name with no spaces, e.g. bw_lighthouse.
  3. Upload the folder to the root of your server (next to world, not inside it). Use Files → Upload for small maps, or SFTP for anything big. Upload a world
  4. If the map came with a uid.dat file, delete it, so the server doesn't think it's a duplicate of another world.

4.2 Load it with Multiverse

In the console or in game:

mv import bw_lighthouse normal
mv tp bw_lighthouse

normal is the environment (Overworld). Multiverse remembers the world and loads it on every start. Check it worked: mv list shows bw_lighthouse, and you're standing in the map.

4.3 Calm the world down

While standing in the arena world, as an op:

  • Stop mobs spawning in it with WorldGuard: /rg flag __global__ -w bw_lighthouse mob-spawning deny. Don't add build or break flags here: the game plugin must let players build.
  • Time and weather are set per arena by the BedWars plugin (step 5.7), so you don't need game rules for them. Vanilla game rule names have changed between Minecraft versions; if you do set one, type /gamerule and press Tab to see the names your version uses.
5

Set up a BedWars arena, step by step

This uses Screaming BedWars. All commands start with /bw admin <arena>, where <arena> is the arena's name. We'll call it lighthouse. You need the bw.admin permission (ops have it).

5.1 Create the arena

Stand anywhere inside the bw_lighthouse world and run:

/bw admin lighthouse add

The arena is now open for editing.

5.2 Set the arena bounds

The bounds are a box around the whole playable map, including the highest and lowest point players can build. Anything outside isn't part of the arena or its reset.

  1. Fly to one corner of the map, below the lowest island (players build bridges down): /bw admin lighthouse pos1
  2. Fly to the opposite corner, above the highest build point: /bw admin lighthouse pos2

5.3 Set the waiting lobby and spectator point

Players wait in the arena's lobby until the game starts. Many maps have a waiting platform above the middle; otherwise build a small one.

/bw admin lighthouse lobby
/bw admin lighthouse spec

Run each while standing where players should appear: lobby on the waiting platform, spec somewhere above the map with a good view.

If the waiting platform is inside the arena, also mark its corners with lobbypos1 and lobbypos2 (same idea as pos1/pos2), so the plugin can remove it when the game starts.

5.4 Add the teams

/bw admin lighthouse team add Red RED 2
/bw admin lighthouse team add Blue BLUE 2
/bw admin lighthouse team add Green GREEN 2
/bw admin lighthouse team add Yellow YELLOW 2

The format is team add <name> <colour> <players per team>. Colours available: BLACK, BLUE, GREEN, RED, MAGENTA, ORANGE, LIGHT_GRAY, GRAY, LIGHT_BLUE, LIME, CYAN, PINK, YELLOW, WHITE, BROWN. You need at least two teams. Use 2 for doubles, 1 for solo, 4 for squads.

5.5 Set each team's spawn and bed

For each team:

  1. Stand on the team's spawn point, facing the way players should face, and run /bw admin lighthouse team spawn Red.
  2. Look at the head of the team's bed (the pillow end) and run /bw admin lighthouse team bed Red.

Repeat for Blue, Green and Yellow.

5.6 Add generators and shops

Generators (the plugin calls them spawners). Stand exactly where items should drop:

/bw admin lighthouse spawner add iron true
/bw admin lighthouse spawner add gold true

The resource types available out of the box are bronze, iron and gold; true shows a hologram above it. Each team island usually gets iron and gold. For diamond and emerald generators on the middle and outer islands, first add them to the plugin's config (step 6.2), restart, then add them the same way:

/bw admin lighthouse spawner add diamond true
/bw admin lighthouse spawner add emerald true

Made a mistake? Stand on it and run /bw admin lighthouse spawner remove.

Shops. Stand where each shopkeeper should stand, facing the island, and run:

/bw admin lighthouse store add &aItem Shop

That uses the default shop (shop.yml). To use a different shop file for upgrades, add the file name after the name: /bw admin lighthouse store add &bUpgrades upgradeShop.yml. To change the shopkeeper's look: /bw admin lighthouse store type Villager.

5.7 Game settings

/bw admin lighthouse minplayers 4
/bw admin lighthouse pausecountdown 30
/bw admin lighthouse time 1800
/bw admin lighthouse arenatime DAY
/bw admin lighthouse arenaweather CLEAR
Command Meaning
minplayers 4 The countdown starts once 4 players are waiting.
pausecountdown 30 Seconds of waiting-lobby countdown before the game starts.
time 1800 Maximum game length in seconds (30 minutes).
arenatime / arenaweather Fixed time and weather for this arena. Use Tab to see the accepted values.

5.8 Save and test

/bw admin lighthouse save

The arena is now playable. Check it worked:

  1. /bw list shows lighthouse.
  2. From a normal (non-op) account, plus a friend or a second account, run /bw join lighthouse. Temporarily set minplayers 2 for testing if you're alone with one friend.
  3. Play a whole round: break a bed, buy from the shop, check every generator drops items, and let the game end.
  4. After the round, walk the map: blocks players placed should be gone and beds back.
  5. /bw admin lighthouse info lists everything the arena has, to spot a missing spawn or bed.

To change a saved arena later: /bw admin lighthouse edit, make your changes, then save again.

5.9 Join signs and team selectors (layout A)

  • Join sign: place a sign with [BedWars] on line 1 and lighthouse on line 2. Players right-click it to join. A sign with leave on line 2 leaves the game.
  • Team selector: in the waiting lobby, place an armor stand, put the arena in edit mode, run /bw admin lighthouse jointeam Red and right-click the armor stand. It gets red armour and players click it to pick Red. Save again afterwards.
6

Configure the game

Edit plugins/BedWars/config.yml with the server stopped (or use /bw reload after editing, between rounds).

6.1 Things to decide

Browse the file once; the settings are grouped and commented. Decide at least: what happens to players who leave mid-game, whether spectators can chat, whether players drop items on death, team chat, and the end-of-game rewards. The full list with explanations is on the plugin's Configuration docs page.

6.2 Add diamond and emerald generators

Under resources:, add:

resources:
  diamond:
    material: DIAMOND
    color: BLUE
    name: Diamond
    interval: 30
    translate: resource_diamond
    spread: 1.0
  emerald:
    material: EMERALD
    color: GREEN
    name: Emerald
    interval: 60
    translate: resource_emerald
    spread: 1.0

Keep the existing bronze, iron and gold entries. interval is seconds between drops. Restart, then add the generators to each arena as in step 5.6.

6.3 Shops

Shop items and prices are in shop.yml (and any other shop files you create) in the plugin folder. Make prices match your resources: if you don't use bronze, replace bronze prices with iron. Change a few prices at a time and play a round between changes.

7

Store stats in MySQL

Stats in files (statistics.type: yaml, the default) work on one server, but can't be shared between game servers. Use MySQL from the start.

  1. On the game server: Databases → Create Database, name bedwars. Open the eye for the details. Databases

  2. Stop the server and edit plugins/BedWars/config.yml:

    database:
      host: 10.11.30.202
      port: 3306
      db: s22_bedwars
      user: u22_AbCdEfGhIj
      password: 'your-database-password'
      table-prefix: bw_
      type: mysql
    
    statistics:
      enabled: true
      type: database
    
  3. Start. The console should show no database errors. Play a round, then /bw stats: your kills and wins should appear.

In layout B, give every BedWars game server the same database settings, so a player's stats follow them whichever server they play on.

Leaderboard holograms: stand where you want one and run /bw addholo leaderboard (or /bw addholo stats for the player's own stats). Remove one with /bw removeholo while looking at it.

8

Connect game servers to a lobby (layout B)

8.1 Bungee mode on the game server

In plugins/BedWars/config.yml on each BedWars game server:

bungee:
  enabled: true
  serverRestart: false
  serverStop: false
  server: lobby
  auto-game-connect: true
  kick-when-proxy-too-slow: true
  random-game-selection:
    enabled: true
    preselect-games: false
Key Value Why
enabled true Proxy mode: the server exists only for games.
server lobby The lobby's name in velocity.toml. Players go there after a game.
auto-game-connect true A player arriving from the lobby is put straight into a waiting arena.
random-game-selection.enabled true With several arenas on the server, it picks one for each player.
serverRestart / serverStop false Keep these off on our panel. They make the server shut down after a game, expecting a script to start it again. In the panel a stopped server stays stopped until someone starts it. The plugin's own arena rebuild resets the map without a restart.

Velocity must have bungee-plugin-message-channel = true for the plugin to send players back to the lobby. Velocity settings

8.2 Lobby NPCs

On the lobby, use FancyNpcs' send-to-server action. Never use an NPC command action that runs /server: that's a Velocity command the lobby doesn't have.

/npc create bedwars
/npc displayname bedwars <red><bold>BEDWARS</bold></red>
/npc skin bedwars Notch
/npc action bedwars ANY_CLICK add send_to_server bedwars1

bedwars1 is the game server's name in velocity.toml. Add a hologram above it with the player count (%bungee_bedwars1% from PlaceholderAPI's Bungee expansion). The full lobby build is in the network guide.

8.3 Queues for busy servers

When a game server is full, a direct send fails. A queue on Velocity makes players wait in line instead.

  • ajQueue (free; ajQueuePlus is paid and adds priority and express queues) runs on Velocity and creates a queue for every server automatically. Players join with /queue bedwars1.
  • An NPC or menu on the lobby can run queue bedwars1 as the player only if the same ajQueue jar is also installed on the lobby, which forwards the command to Velocity. Without it, players see "Unknown command".
  • To stop players skipping the queue with /server, deny it: lp group default permission set velocity.command.server false.
  • enable-status=true must be set on the game server, or ajQueue thinks it's offline.

8.4 Parties

Groups of friends want to land in the same game.

  • Screaming BedWars has a party section in its config that works with the Parties plugin: set party.enabled: true and autojoin-members: true so a party leader joining pulls the whole party in. Party members are warped with /bw party warp.
  • For a network, the party plugin must be installed in its proxy mode so parties survive server switches. Check the party plugin's page supports your Velocity and Minecraft versions before relying on it.
9

Map resets

Every game must start on a clean map. There are three ways, from simplest to fastest:

Method How Speed Use when
The plugin's own reset Screaming BedWars rebuilds the arena after each game, restoring broken blocks and removing placed ones inside the arena bounds. Plugily games and most others have their own reset too. Fast for normal maps Almost always. Start here.
A template copy Some plugins unload the world, copy a saved template over it and reload it. Slower; can cause a lag spike on big maps When the plugin works this way. Keep templates small.
Advanced Slime Paper A Paper fork from Infernal Suite that stores worlds in compact "slime" files and loads them in memory, so cloning a fresh arena is near-instant. Fastest Many arenas per server, or very frequent games. It replaces the server jar, so ask us to set it up, and check your minigame plugin supports loading worlds through it.

Rules that apply to all of them:

  • Set the bounds big enough. With Screaming BedWars, anything built outside pos1/pos2 isn't reset. Players will bridge outside a too-tight box.
  • Edit maps only in edit mode, or the next reset will undo or keep your changes unpredictably.
  • Keep a master copy of every map in a locked backup and on your own computer, so a broken reset never costs you the map.
  • Don't run CoreProtect logging in arena worlds if you can avoid it: millions of placed blocks per day fill the database for no benefit. Check CoreProtect's config for per-world settings.
10

Add more games

Murder Mystery and Build Battle (Plugily Projects)

  1. Install the MiniGamesBox library plugin and the game plugin from their pages (the plugin page links the right MiniGamesBox version), restart.
  2. Import the map with Multiverse as in step 4.
  3. Create and configure the arena with the plugin's setup command and in-game setup menu. The exact steps are on the plugin's Setup page in the Plugily wiki. Maps from Plugily's map pages come with arena settings to paste into arenas.yml; if you import several, merge the arena sections by hand rather than overwriting the file.
  4. Test a full round from non-op accounts, then set its stats to MySQL the same way as BedWars (the plugin's config has a database section).

Each Plugily game also has a proxy mode for layout B; turn it on in that game's config the same way.

Parkour in the lobby

Parkour (A5H73Y) gives waiting players something to do. Build a course in the lobby, then use the plugin's commands to create the course, set checkpoints and the finish, and show leaderboards. Its wiki lists every command. Keep the course inside your WorldGuard-protected lobby.

One game per server in layout B

Put each kind of game on its own server: BedWars on bedwars1, Murder Mystery on murder1. Different plugins on one server compete for the same main thread and often conflict over scoreboards and inventories.

11

Permissions plan

Create groups with LuckPerms. On a network, use one shared database so ranks apply everywhere. Shared LuckPerms

lp creategroup vip
lp creategroup helper
lp creategroup mod
lp creategroup admin

lp group vip parent add default
lp group helper parent add vip
lp group mod parent add helper
lp group admin parent add mod

lp group vip meta setprefix 10 "&a[VIP] "
lp group helper meta setprefix 20 "&b[Helper] "
lp group mod meta setprefix 30 "&2[Mod] "
lp group admin meta setprefix 40 "&c[Admin] "

Then grant the BedWars nodes:

Group Permission Command Effect
default bw.cmd.join, bw.cmd.leave, bw.cmd.list, bw.cmd.stats, bw.cmd.rejoin, bw.cmd.autojoin, bw.cmd.leaderboard (granted by default) Players can play. Nothing to do.
vip bw.vip.forcejoin lp group vip permission set bw.vip.forcejoin true Join a full game.
vip bw.vip.startitem lp group vip permission set bw.vip.startitem true Start the countdown early with the start item.
helper bw.otherstats lp group helper permission set bw.otherstats true View other players' stats.
admin bw.admin lp group admin permission set bw.admin true Create and edit arenas, /bw reload.

Give arena builders bw.admin only on the server where they build, with a context: lp group builder permission set bw.admin true server=bedwars1.

Moderation nodes (if you use EssentialsX and CoreProtect on that server):

lp group helper permission set coreprotect.inspect true
lp group mod permission set essentials.kick true
lp group mod permission set essentials.mute true
lp group mod permission set essentials.tempban true
lp group mod permission set coreprotect.rollback true

Assign people with lp user <name> parent add mod. Check with lp user <name> permission check bw.admin. Only the owner should be op.

12

Fair play and moderation

Anti-cheat

PvP minigames attract cheaters (reach, kill aura, fly, scaffold). Install an anti-cheat on every game server, not on Velocity.

  • Grim is a popular free, open-source anti-cheat. Check its page lists your Minecraft version.
  • Test it in real games before launch: knockback from fireballs and TNT jumps can cause false flags. Tune the checks that misfire in its config rather than turning the whole anti-cheat off.
  • Keep allow-flight=true so Paper's own fly check doesn't kick players the anti-cheat already handles.

Bans and chat

  • On a network, ban on Velocity with a proxy punishment plugin, so a cheater is off every server. Bans across the network
  • Mute and chat filtering: block advertising (other server addresses) and spam in the lobby, where every player passes through.
  • Give helpers /bw stats <player> (bw.otherstats) to spot suspicious win rates.

Old-style combat

Many BedWars and PvP players prefer pre-1.9 combat (no attack cooldown). OldCombatMechanics sets it per world, so arena worlds can use old combat and the lobby modern. PvP servers

13

Performance tuning

Measure first

During a busy round, run /spark tps (TPS should be 20, MSPT under 50) and /spark profiler start, play for 3–5 minutes, then /spark profiler stop and open the link. Fix lag

Typical causes and fixes

What spark shows Cause Fix
Spikes when a game starts or ends Arena reset or world loading on the main thread. Smaller arena bounds, fewer arenas resetting at once, or Advanced Slime Paper.
Explosions high in the profile TNT and fireballs. optimize-explosions: true (step 3.3).
Entity ticking high Dropped items, arrows, generator items piling up. Reasonable generator intervals; entity save limits.
One plugin high all the time A scoreboard, hologram or placeholder updating every tick. Raise its update interval in its config.
MSPT high with all arenas full The server's main thread is full. Move some arenas to another game server (layout B).

Arenas per server

As a starting point, 2–4 BedWars arenas per game server, depending on team size. Add arenas until busy-hour MSPT reaches about 35, then add a new game server instead.

14

Backups and updates

Backups

Minigame worlds reset every round, so they don't need frequent backups, but configs, arena setups and maps do.

What How often How
Game servers Daily, and before any change Schedules → a daily schedule with Create Backup (times are UTC), e.g. 0 8 * * *.
Lobby Weekly, and before changes Same, 0 8 * * 1.
Arena maps (master copies) Once per map, then whenever edited Make a manual backup and Lock it; download a copy.
Stats database Weekly Not in panel backups. Use the plugin's export if it has one, or ask us for a database dump.

Backup schedules

Add a daily restart at a quiet time with a warning, a few minutes after the backup. A restart during a round ends that game, so pick the quietest hour and give a 5-minute warning. Schedules

Updates

  1. Lock a backup first.
  2. Update one plugin at a time using the plugins/update/ folder and a restart. Updating plugins safely
  3. After each update, play a full round on a test arena: join, buy, break a bed, finish, and check the reset.
  4. Before changing the Minecraft version on Startup, check every minigame plugin, its library (MiniGamesBox) and your anti-cheat list the new version.
  5. On a network, update one game server, test it, then the rest.
15

Scaling up

When one game server isn't enough:

  1. Ask us for another Paper server and set it up exactly like the first (steps 3, 7 and 8). Easiest: download the first server's backup and upload its plugins folder and arena worlds to the new one, then change anything that must be unique.
  2. Add it to velocity.toml as bedwars2, then velocity reload on Velocity.
  3. Point the lobby at both: a second NPC, or a menu that lists each server with its player count. A queue plugin can also spread players over servers; check its docs for grouping servers.
  4. Keep the same stats database on all BedWars servers, so stats follow players.
  5. Stagger backups and restarts so not every game server restarts at once.

Common problems

Problem Cause Fix
Blocks from last game are still there Built outside the arena bounds, or the arena edited outside edit mode. edit, set bigger pos1/pos2, save. Restore the map from your master copy if needed.
/bw join says the arena isn't ready A required part is missing (fewer than two teams, no spawn or bed for a team, no lobby). /bw admin <arena> info shows what's set; add the missing part and save.
Diamond or emerald generators can't be added They're not defined in resources: in the config. Add them (step 6.2), restart, try again.
Countdown never starts Fewer waiting players than minplayers. Lower minplayers while testing.
Bed break doesn't count The bed was set while looking at the foot, not the head. edit, team bed <team> while looking at the pillow end, save.
Players kicked for flying Knockback looks like flight. allow-flight=true; let the anti-cheat handle real fly.
Players stuck on the game server after a round bungee.server doesn't match the lobby's name, or bungee-plugin-message-channel is off. Match the name in velocity.toml; set the Velocity option and velocity reload.
Game server went offline after a game serverRestart or serverStop enabled. Set both to false; start the server again.
NPC says "Unknown command" It runs /server or /queue on the lobby. Use send_to_server; for ajQueue, install the same jar on the lobby too.
Queue says the server is offline enable-status=false on the game server, or a plugin blocking pings. Set enable-status=true and restart.
Stats reset or differ between servers File stats, or different databases per server. statistics.type: database with the same database on every game server.
Lag spike when games start Arena loading or reset on the main thread. Smaller bounds, fewer arenas per server, or Advanced Slime Paper.
Plugin red in plugins after an update Doesn't support the new Minecraft version, or the library (MiniGamesBox) is missing or outdated. Read the console error; roll back from your locked backup.
Anti-cheat bans legitimate players False flags from game knockback. Tune or disable the specific check; test with real rounds.

Launch checklist

  • [ ] Layout chosen (one server, or lobby + game servers) and Minecraft version pinned on Startup to a version every plugin supports.
  • [ ] server.properties: view-distance=6, simulation-distance=4, allow-flight=true, enable-status=true (plus back-end settings in layout B).
  • [ ] optimize-explosions: true in paper-world-defaults.yml.
  • [ ] Every arena imported with Multiverse, mob spawning denied, and a locked master backup of each map.
  • [ ] Every arena saved and played through a full round by non-op accounts: beds, shops, generators, reset afterwards.
  • [ ] Diamond and emerald resources added and generators placed.
  • [ ] Stats stored in MySQL; /bw stats works; leaderboard holograms placed.
  • [ ] Layout B: bungee mode on, serverRestart/serverStop off, server: lobby matches velocity.toml, NPCs tested.
  • [ ] Queue and parties tested with a group of friends, if you use them.
  • [ ] LuckPerms groups made; bw.admin only for admins and builders; only the owner is op.
  • [ ] Anti-cheat installed on every game server and tested against real games.
  • [ ] Proxy-wide bans and a chat filter in the lobby.
  • [ ] Backup and restart schedules on every server, with a backup visible the next day.
  • [ ] /spark tps checked during the first busy hour of real games.