A fully automated Battle Royale plugin featuring dynamic teams, shrinking borders, and a built-in economy. Includes automatic world resets and multi-language support for a seamless competitive experience.
BattleRoyale is a lightweight, fully automated mini-game plugin designed to turn your dedicated server instance into a competitive PvP battleground. It handles the entire game lifecycle—from map generation to team assignment and the final showdown—without requiring any administrator intervention.
✨ Key Features
🌎 Automated World Generation: Every time the server starts, a fresh world (arena_world) is generated with a random seed. No two games are the same!
⚔️ Solo & Duo Teams: The plugin automatically shuffles players and assigns them to teams upon game start.
⭕ The Danger Zone: A shrinking WorldBorder forces combatants closer together. Includes custom logic to damage players caught outside the safe zone.
💰 Economy System: Built-in coin tracking. Players earn currency for kills and winning the match.
📊 Immersive UI: Features a dynamic Scoreboard, Action Bar messages, and Titles to keep players informed of the countdown, border state, and team status.
🌐 Multi-Language Support: Comes out-of-the-box with support for English, German, and Russian. Language files are fully customizable.
🔄 Auto-Reset Cycle: Once a winner is declared, the server automatically shuts down/restarts to reset the map and state for the next round.
🎮 Gameplay Loop
Lobby Phase: Players join and are teleported to a glass waiting platform high in the sky. The game waits for the minimum player count.
The Drop: Players are scattered randomly across the map and their inventories are cleared.
Preparation: A "Freeze" timer allows players to orient themselves before PvP is enabled.
Survival: Players gather resources and fight.
Sudden Death: After a configurable time, the border begins to shrink rapidly to a small area (default 50x50).
Victory: The last team standing wins the prize pool.
⚙️ Configuration
The plugin creates a config.yml where you can tweak almost every aspect of the game logic:
lang: en # switch to 'de' or 'ru'
timers:
lobby-countdown: 300
freeze-time: 30
border-shrink-start: 600 # Time in seconds before border moves
border-shrink-duration: 300
economy:
kill-reward: 10
win-reward: 100
world:
name: arena_world
lobby-size: 50
arena-size: 1000
final-size: 50
🌍 Localization
The plugin includes a langs folder. You can switch the language in the config or edit the files directly to change messages.
langs/en.yml (English)
langs/de.yml (German)
langs/ru.yml (Russian)
⚠️ Installation Note
This plugin is designed for Dedicated Game Servers.
Because the plugin automatically unloads worlds and shuts down the server to reset the game state, it should not be installed on a main Survival or Hub server. It is best used on a separate server instance connected via BungeeCord or Velocity.
# Changelog
All notable changes to this project will be documented in this file.
## [Released] - 2026-03-03
### Fixed
- Lobby spawn platform height is now dynamic based on highest terrain in the lobby area, preventing mountain intersections.
- Lobby spawn teleport now uses the computed lobby spawn location instead of a hardcoded Y-level.
- Safe-spawn validation now rejects all glass and glass pane blocks to prevent spawning on lobby glass.
- `world.safe-spawn.enabled` is now respected in spawn selection logic.
- `/br reload` now reloads language configuration through `ConfigManager.reload()`.
### Added
- New config options under `world`:
- `lobby-min-y`
- `lobby-clearance`
- `lobby-height`
- New safe-spawn option:
- `world.safe-spawn.avoid-glass`
# Battle Royale Plugin v2.3.1 - Hotfix
## 🐛 Bug Fixes
**Critical fixes - please update immediately if you're using v2.3!**
### Fixed Server Crashes:
- **Victory Animation Crash**: Server no longer crashes when a player disconnects during the victory dragon flight
- **Kit Configuration Crash**: Server no longer crashes when kit config has wrong format (like typing letters instead of numbers)
### Fixed Gameplay Issues:
- **Duplicate Items**: Players were getting items twice (2 swords, 2 bows). Now they get correct amount
- **Missing Items**: Some items weren't given to players if enchantments weren't specified. Now all items are given properly
- **Wrong Version**: Plugin now shows correct version "2.3" instead of "2.1" in server logs
## 📝 Summary
Fixed 5 bugs total:
- 2 critical bugs that crashed the server
- 2 major bugs that broke gameplay
- 1 minor cosmetic bug
## ⚠️ Who Should Update?
**Update immediately if:**
- Your server crashes during victory celebrations
- Your server crashes when players get kits
- Players are getting double items
- Some kit items are missing
## ✅ What's Included
All features from v2.3 are still here:
- Victory dragon flight animation
- Customizable kits
- Safe spawn system
- Statistics and achievements
- Killstreak rewards
- Multi-language support
## 🔄 How to Update
1. Stop your server
2. Replace the old plugin file with the new one
3. Start your server
4. Done! No config changes needed
---
**This is a stability update - highly recommended for all v2.3 users!**
# BattleRoyale Plugin Changelog
## Version 2.0.0 - 'Airdrop & WorldGen Update'
**Release Date:** 05.12.2025
This major update focuses on adding dynamic content to the game, improving performance and stability, and resolving critical errors related to resource and world management.
---
### 🚀 New Features
* **Airdrop System:**
* Added a new class **`LootManager`** to manage loot generation and chest contents.
* Implemented a new class **`AirdropTask`** that periodically drops valuable loot at a random location on the arena during the **PLAYING** phase.
* New timer parameters (`airdrop-interval`) have been added to the configuration.
* Added new messages to language files to notify players about the approaching and spawning airdrop.
* **World Pre-Generation:**
* The world pre-generation function (`startWorldPreGeneration`) has been added to `GameManager`.
* World generation now occurs during the transition from `LOBBY` to `PLAYING` to prevent lag.
* Players receive notifications about the progress of world generation (`world-gen-start`, `world-gen-progress`, `world-gen-complete`).
---
### 🛠️ Improvements and Fixes
#### Core (BattleRoyalePlugin)
* **Critical Error Fixes:** Fixed the `cannot find symbol method getLootManager()` error by adding the initialization of `LootManager` and the corresponding getter in `BattleRoyalePlugin`.
* **Version Management:** Updated the internal version number to `2.0.0`.
#### GameManager
* **Improved World Management:** Completely redesigned the logic for creating and deleting game worlds:
* The `createNewGameWorld` method now safely unloads and deletes old worlds before creating a new one.
* Added termination of all active tasks (`startingTask`, `airdropTask`, `borderDamageTask`, `generatorTask`) when creating a new world to prevent duplication.
* **Safe Game Start:** Game start is now divided into two stages: world generation (`startGame`) and teleportation/unfreeze (`continueGameStart`), ensuring a smoother transition.
* **Constant Restart:** The `endGame` method has been changed—instead of stopping the server, it now automatically restarts a new game cycle (`createNewGameWorld(true)`).
* **Zone Damage:** A new `borderDamageTask` has been added to deal damage to players outside the shrinking border.
#### Game Listener
* **PvP Protection in FROZEN:** An `onMove` handler has been added that cancels player movement (except for changing the camera angle) during the `FROZEN` phase, ensuring a fair start.
#### TeamManager
* **Team Damage:** The friendly fire check logic (`friendly-fire`) has been moved from `GameListener` to a more appropriate place using `TeamManager`.
#### Language Files (`ru.yml`, `en.yml`, `de.yml`)
* All new language keys have been added to support the Airdrop and World Pre-Generation systems.
# v1.0.0 - Initial Release
This is the first public release of the **BattleRoyale** plugin.
### 🚀 Features
* **Automated Game Loop:** Complete management of the game cycle from Lobby -> Freeze -> Fighting -> Border Shrink -> Victory -> Server Restart.
* **Dynamic World System:** Automatically generates a unique seed for the arena world on every server start and cleans up old worlds.
* **Team Manager:** Randomly assigns players to teams (Solos/Duos) at the start of the match.
* **Economy Integration:** Simple economy system tracking coins for kills and wins.
### ⚙️ Configuration & Customization
* **Configurable Timers:** You can now customize:
* Lobby Countdown
* Freeze Time
* Border Shrink Start Time & Duration
* Server Restart Delay
* **Configurable Rewards:** Set custom coin amounts for kills and victories.
### 🌍 Localization
* **Multi-Language Support:** Added a flexible language system using YAML files.
* **Included Languages:**
* 🇺🇸 English (`en.yml`)
* 🇩🇪 German (`de.yml`)
* 🇷🇺 Russian (`ru.yml`)
* All messages (chat, titles, action bars, scoreboards) are fully translatable.