๐ชถInstallation
This walks you from a clean network to a running Modern BedWars stack: Velocity proxy + lobby servers + game servers + standalone service, backed by Redis + MariaDB.
Start order is always service โ proxy โ lobby โ game โ the brain must be online before anything registers with it. Read architecture.md first.
1. Requirements
Java
25
Every node (proxy, lobby, game, service host)
Paper
1.8 or 26.1+
Lobby + game servers (game plugin is multi-version)
Velocity
3.x latest
Proxy
Redis
6.0+
Reachable by every node
MariaDB / MySQL
MariaDB 10.6+ or MySQL 8
Reachable by every node
Map-restore backend
pick one
Each game server needs one โ see below
LuckPerms
latest
Required on every game server, recommended on lobby
PlaceholderAPI
latest
Optional, lobby-side placeholders only
The
servicehost does not need a Minecraft server โ plain Java + network access to Redis + MariaDB is enough.
Map-restore backend
Each game server needs exactly one way to reset maps between matches:
SlimeWorldManager (SWM) โ legacy slime worlds (good on 1.8).
Advanced Slime Paper (ASP) โ modern slime worlds with MySQL-shared storage; preferred on 26.1+ if installed.
Classic file restorer (built-in fallback) โ copies a template world folder per match. Requires the VoidGen plugin so surroundings stay void.
2. Infrastructure
Redis
Install Redis on a host reachable by all nodes (default port
6379).(Recommended) set a password in
redis.conf:requirepass yourStrongPassword.Restart and verify:
redis-cli pingโPONG.
MariaDB
Install MariaDB 10.6+ (or MySQL 8).
Create the database and a dedicated user:
Apply the shipped schema (
database.sql):This creates tables for
bedwars_users,bedwars_stats,bedwars_leaderboard,bedwars_multipliers,bedwars_presets,bedwars_user_cosmetics,bedwars_active_cosmeticsanddisguises.
3. Install the service (start it first)
Copy
Bedwars-Service.jarto a host.Next to the jar, create
application.propertieswith your Redis and MariaDB connection details (see configuration.md).Start it:
java -jar Bedwars-Service.jar.You land in a Spring Shell prompt (
shell:>). Runlist serversโ an empty table is expected (no game servers yet).
To run it as a Linux service, use a systemd unit:
4. Install the proxy plugin
Drop
Bedwars-Velocity-1.0.jarinto the Velocityplugins/directory.Start the proxy once to generate
plugins/bedwars-proxy/withmariadb.json,redis.jsonandconfig.json.Fill in the DB/Redis credentials, and adjust
config.jsonserver-name prefixes if you use different names (see configuration.md).In
velocity.toml, register every lobby and game server; the names must match the prefixes fromconfig.json.Restart the proxy.
5. Install the lobby plugin (every lobby server)
Drop
Bedwars-Lobby-1.0.jarinto the lobby Paperplugins/folder.Start once to generate
plugins/bedwars-lobby/.Edit
config.yml: set a uniqueserver-id(e.g.bedwars_lobby_1) and the DB/Redis credentials.(Optional) install PlaceholderAPI for
bedwars_*placeholders.Restart.
The lobby plugin refuses to enable if the database password is empty. Set it.
6. Install the game plugin (every game server)
Install your chosen map-restore backend and LuckPerms first.
Drop
Bedwars-Instance-1.0.jarinto the game Paperplugins/folder.Start once to generate
plugins/bedwars/and itsdefaults/directory.Edit
config.yml. Theserver-idmust match the name you registered invelocity.tomland start with the proxy'sgamePrefix(defaultbedwars_game_).Tune
defaults/*.ymlas needed โ see configuration.md.Restart. On enable the server registers itself with the service over Redis; verify with
list serversin the service shell.
7. Verify
Connect a Minecraft client to the proxy. You should land in the lobby, see the queue GUI, and be able to start a match.
Last updated