Installation¶
This page gets MRTBattleRoyale running on your server: what you need, which files appear on the first start, how to update safely and how to pick a language and a database.
Requirements¶
| What | Version |
|---|---|
| Server software | Paper 1.21.4 – 1.21.11 or Paper 26.1 / 26.2 |
| Java | 21 or newer |
The same jar works on both generations. On 26.x the plugin detects the new world layout (worlds stored under dimensions/) and handles it for you.
Optional plugins¶
None of these are required. Install them only if you want what they add.
| Plugin | What it adds |
|---|---|
| PlaceholderAPI | %brbattle_*% placeholders for scoreboards, tab lists, holograms... See Placeholders. |
| ProtocolLib | Teammates glow through walls, visible only to their own team (DUO/SQUAD). Without it the teammate glow is off, because a normal glow would reveal teams to enemies too. |
| Citizens | Clickable arena NPCs with /br npc. See Hub, NPCs & signs. |
| Multiverse-Core | Handy for loading your map and lobby worlds. MRTBattleRoyale loads after it, so the arena maps already exist when the plugin starts. |
TAB plugin
The plugin draws its own sidebar scoreboard but does not format the tab list. If you use the TAB plugin for that, it works fine with the %brbattle_*% placeholders. See Scoreboard and the FAQ.
Installing¶
- Stop the server.
- Put
MRTBattleRoyale-2.1.0.jarin theplugins/folder. - Start the server. The plugin creates its folder
plugins/MRTBattleRoyale/with all the default files. - Pick your language in
config.yml(see Language below). - Stand where your hub should be and run
/br setlobby. - Create your first arena: follow Your first arena.
Set the hub with /br setlobby
Until you run /br setlobby, the hub items and the hub protection are not active anywhere: teleports to the hub fall back to the main world's spawn. Don't type a world into lobby.yml by hand unless it really is your hub, otherwise everyone entering that world gets the hub items and becomes invulnerable.
When an admin joins and no arena exists yet, the plugin offers the step-by-step setup guide in chat (you can turn this off with setup-guide.announce-on-join in config.yml).
Files created on the first start¶
Everything lives in plugins/MRTBattleRoyale/:
plugins/MRTBattleRoyale/
├── config.yml core: language, chat, scoreboard, commands, statistics/database...
├── game.yml match rules: zone, loot, knockdown, deploy, airdrops, sounds...
├── gulag.yml gulag rules and kits
├── lobby.yml main hub and hub items
├── economy.yml XP, coins, reward commands
├── loot.yml loot tables (rarity tiers)
├── events.yml Battle Royale events
├── languages/
│ ├── messages_en.yml
│ └── messages_it.yml
├── arenas/
│ ├── example-spawns.yml.example
│ └── example-skydive.yml.example
└── stats.db player statistics (SQLite, created when the database starts)
The two .yml.example files in arenas/ are fully commented sample arenas. They end in .example, so they are never loaded: they are only there as documentation. Your own arenas are written in the same folder as <Name>.yml by the setup GUI.
Each file is described in Configuration files.
Updating¶
Never hot-reload the plugin
Do not update with /reload, PlugManX or similar plugin managers. Matches copy worlds, hold players and open database connections: always do a full restart.
- Stop the server.
- Optionally make a backup of
plugins/MRTBattleRoyale/. - Replace the old jar in
plugins/with the new one (delete the old file, don't keep both). - Start the server.
On start the plugin adds any new keys to your configuration and language files, without touching the values you changed. If you come from an older version that used a single big config.yml, its sections are moved into the new files automatically.
Restart vs /br reload
/br reload is for applying changes you made to the configuration files while the server runs. It is not a way to load a new jar.
Language¶
All texts (chat, GUIs, scoreboard, titles) live in languages/messages_<code>.yml, written in MiniMessage. Choose the file with language in config.yml:
- Bundled languages:
en(English) andit(Italian). - Apply the change with
/br reload. - Keys missing from the selected file fall back to English.
- Your own translation: create
languages/messages_<code>.yml(for example by copyingmessages_en.yml), translate it and setlanguage: <code>. An unknown code falls back to English with a warning in the console.
Storage: SQLite or MySQL¶
Statistics, levels, XP, coins and cosmetics are stored in a database, configured in the stats section of config.yml:
stats:
enabled: true
# SQLITE (local stats.db file, no configuration) or MYSQL.
storage: SQLITE
leaderboard-refresh-seconds: 60
# Only used if storage: MYSQL.
mysql:
host: localhost
port: 3306
database: battleroyale
user: root
password: ''
Nothing to do: the data is saved in plugins/MRTBattleRoyale/stats.db. Perfect for a single server.
- Create an empty database (for example
battleroyale) and a user that can use it. - Set
storage: MYSQLand fill inhost,port,database,userandpassword. - Restart the server.
The plugin uses the MySQL driver that ships with Paper. If the connection fails, the console shows Could not initialise stats storage: ... and statistics stay disabled until you fix it.
Note
The storage is opened when the server starts: after changing storage or the MySQL credentials, restart the server instead of using /br reload.
Statistics are global, never per arena. More in Stats, levels & shop.