
L-Bedwars
An advanced BedWars plugin with proxy support, packing multiple features into one!
- Загрузки
- 14
- Подписчики
- 0
- Обновлён
- 9 июля 2026 г.
- Лицензия
- AGPL-3.0-or-later
Опубликован 22 июня 2026 г.
L-BedWars
Advanced BedWars plugin for Folia/Paper/Spigot 1.19+. Fully configurable, multi-language, with stats tracking, cosmetics, battle pass, shop, team upgrades, and proxy support.
Features
Multi-Arena System
Supports unlimited arenas with four mode types — solo (1 player/team), duo (2), trio (3), quad (4). Each arena has its own config, shop, upgrades, generators, and region bounds.
Folia Support
Game Mechanics
- Pre-game lobby: Players join a shared waiting lobby, countdown starts when minimum players are met (configurable per mode)
- Game start: 5-second invulnerability countdown, armor is applied, items given, generators activated, shop/upgrade NPCs spawned
- Bed system: Each team has a bed breakable by enemies. Breaking a bed prevents that team from respawning
- Sudden death: When
max-game-timeis reached, all remaining beds break with particle effects (BLOCK_CRACK, STEP_SOUND), dropped bed items are cleaned up, and dragons spawn for teams with the Dragon Buff upgrade - Win condition: Last team alive wins. If all players disconnect, the game resets immediately
Generators
Four types: Iron, Gold, Diamond, Emerald with configurable spawn rates and upgrade schedules.
- Base rates: Iron (2s), Gold (8s), Diamond (30s), Emerald (60s)
- Diamond generators auto-upgrade at 300s, 600s, 900s into game
- Emerald generators auto-upgrade at 360s, 720s, 1080s into game
- Team forge upgrades (via team upgrades) improve iron/gold rates
- Each upgrade tier reduces spawn delay by a configurable amount
Shop System
Per-mode shop configuration (shop/<mode>.yml). Categories contain buyable items with:
- Cost type: Iron, Gold, Diamond, or Emerald
- Display: Custom name, lore, material
- Reward commands: Optional commands executed on purchase
- Shop is accessed via Shop NPC placed during arena setup
Team Upgrades
Per-mode upgrade trees (upgrades/<mode>.yml) purchased with diamonds via Upgrade NPC:
- Sharpened Swords — increases sword damage (multiple tiers)
- Reinforced Armor — reduces incoming damage (multiple tiers)
- Dragon Buff — spawns a dragon for your team at sudden death
- Heal Pool — regeneration zone at your base
- Forge — improves generator spawn rates
- Trap — triggers when enemies enter your base (alerts team, reveals enemies)
- Alarm Trap — alerts team when enemies are nearby
Special Items
Buyable from the shop with unique mechanics:
- Pop-Up Tower (Wool, 6 emeralds): Animated block-by-block tower placement (wool frame + ladder access). Built in the direction the player is facing. Configurable cooldown (
specials.popup-tower.cooldown). Safety checks prevent building near beds, arena boundaries, or team spawn entrances - Iron Golem (Iron Ingot, 4 emeralds): Spawns a team-protecting golem with configurable health, speed, follow range, and collidable setting. Attacks nearby enemies. Cooldown between spawns
- Bridge Egg (Egg, 2 emeralds): When thrown, creates a temporary bridge from the impact point
- Fireball (Fire Charge, 1 emerald): Explosive projectile that destroys blocks and damages entities
- TNT (TNT, 2 gold): Placeable explosive with configurable fuse and knockback mechanics for TNT jumping
Tracker Compass
Buyable compass (1 emerald) that tracks the nearest enemy player. Right-click to update target. Tracks players from different teams only. Target updates every 5 seconds automatically. Removed on death.
Spectator System
When a player dies (final kill), they enter spectator mode with:
- Compass — cycle through alive players to spectate
- Red Bed — teleport to team bed locations
- Players are invisible and can fly through blocks
- Admin spectate via
/bwa spectator
Rejoin System
If a player disconnects during a game while their bed is still alive, they can rejoin using /bw rejoin. They respawn at their team's spawn after a 5-second countdown.
Stats Tracking
Tracks per-player statistics stored in YAML, SQLite, or MySQL:
- Kills, Deaths, K/D Ratio
- Final Kills, Final Deaths, Final K/D Ratio
- Wins, Losses, W/L Ratio
- Beds Broken, Games Played
- Winstreak (persistent across sessions)
- All stats accessible via PlaceholderAPI placeholders
Level System
100 levels with XP scaling. XP formula: XP = floor(500 * 1.15^(level-1)). XP sources:
- Kill: +10 XP
- Win: +60 XP
- Final Kill: +20 XP
- Bed Break: +30 XP
- Each 5 levels grants an achievement broadcast
Battle Pass
Configurable season-based progression system:
- Tiers: Configurable number of tiers with XP requirements per tier
- Free Rewards: Available to all players (opened via
/bw battlepass) - Premium Rewards: Require a separate permission to unlock
- XP Sources: Kills, wins, final kills, bed breaks (configured in
rewards.yml) - Contribute to Battle Pass: Toggleable - when enabled, XP goes to both level and battle pass systems
- Progress resets each season via
/bwa bp reset confirm
Daily Rewards
Configurable daily reward system:
- XP Reward: Configurable amount
- Coins Reward: Configurable amount
- Money Reward: Vault economy integration (configurable amount)
- Cooldown: Configurable in hours (minimum 1)
- Claim via
/bw dailyreward - Admin management via
/bwa reward *
Cosmetics
Cosmetic items purchasable and selectable via GUI:
- Kill Effects — visual effects on kill (e.g., lightning, hearts, smoke)
- Victory Dances — effects played on game win
- Death Cries — sound played on death
- Projectile Trails — particle trails behind projectiles
- Island Toppers — decorative blocks placed at team spawn
- Victory Songs — NoteBlockAPI-powered songs played on win
- Each cosmetic has a price (coins), permission node, and unlock condition
Scoreboard
Customizable scoreboards:
- Lobby Scoreboard: Shows arena name, player count, map name, mode, waiting time, your team
- In-Game Scoreboard: Shows kills, finals, beds broken, game time (with dragon countdown if near max-game-time), team information
- All text configurable via language files
- Updates every 2 seconds
BossBar
Configurable waiting lobby indicator:
- Toggleable via
bossbar.enabled - Title with placeholders:
{arena},{seconds},{count},{max} - Countdown bar (
show-countdown): Drains the progress bar during the lobby countdown - Appears instantly when a player joins the arena lobby
- Updates in real-time as players join/leave
- Hidden when the game starts
Tab List
Customizable tab list header and footer per arena:
- Supports team color sorting
- Placeholders for arena name, player count, game state
- Configurable via language files
Ban System
In-game ban management:
- Ban duration: Supports seconds (
5s), minutes (30m), hours (10h), days (5d), permanent (perm) - Ban GUI: View all banned players with
/bwa banlist - Unban: Remove bans via
/bwa unban <player> - Bans check on arena join
Proxy Mode (BungeeCord/Velocity)
Multi-server support with companion proxy plugin:
- Server status broadcasting: Arena state, player count, map info shared via TCP
- Cross-server spectate: Teleport to and spectate players on any server
- Smart joining:
/bw join <mode>finds the best available arena across all servers - Queue system: If no arena is available, players are queued and auto-connected when one opens
- Party support: Party leader's queue state shared with members
- Server MOTD: Displays arena status and player count
- Leaderboard holograms: Placeable holograms showing top players (configurable per stat)
Command Whitelist
Limit which commands players can use during matches:
- Toggleable via
command-whitelist.enabled(default:false) - Configurable command list in
command-whitelist.commands - Silent cancellation for non-whitelisted commands
- Only active during
PLAYINGgame state
Party Integration
Support for alessiodp's Parties API:
- Party members join the same arena together
- Party leader's game mode determines which mode the party joins
- Queue system in proxy mode shares queue state with all party members
Multi-Language
YAML-based language system with built-in support for English, Turkish, and Spanish:
- Loaded from
messages_<lang>.ymlormessages.yml(custom) - All in-game messages, titles, action bars, scoreboard lines, and GUI text are configurable
- Language set via
languageinconfig.yml - Easy to add new languages by creating new message files
PlaceholderAPI
30+ placeholders under the %lbedwars_*% identifier covering stats, levels, economy, cosmetics, and real-time arena information.
Commands
/bedwars (alias: /bw) — Player Commands
Permission: bedwars.play (default: all players)
| Subcommand | Arguments | Description |
|---|---|---|
help |
— | Shows the help menu |
join |
<arena> |
Join a specific arena by name |
randomjoin |
<mode> |
Join a random available arena by mode (solo, duo, trio, quad) |
rejoin |
— | Rejoin your last game if your bed is still alive |
leave |
— | Leave the current arena |
list |
— | List all enabled arenas with player counts |
stats |
[player] |
View your stats or another player's stats (opens GUI) |
level |
— | View your level, XP, and progress to next level |
dailyreward |
— | Claim your daily reward |
cosmetics |
— | Open the cosmetics selection menu |
battlepass |
— | Open the Battle Pass menu |
Examples:
/bw help
/bw join BedWars1
/bw randomjoin solo
/bw rejoin
/bw leave
/bw list
/bw stats
/bw stats Notch
/bw level
/bw dailyreward
/bw cosmetics
/bw battlepass
/bedwarsadmin (aliases: /bwa, /bwadmin) — Admin Commands
Permission: bedwars.admin (default: op)
Arena Management
| Subcommand | Arguments | Description |
|---|---|---|
help |
— | Shows the admin help menu |
create |
<name> |
Create a new arena with the given name |
setup |
<arena> |
Enter setup mode for an arena (enables /setup commands) |
delete |
<arena> |
Delete an arena and its config |
enable |
<arena> |
Enable an arena for joining |
disable |
<arena> |
Disable an arena (prevents joining) |
setlobby |
<arena> |
Set the waiting lobby spawn at your current location |
setspectator |
<arena> |
Set the spectator spawn at your current location |
setmainlobby |
— | Set the global main lobby (post-game teleport destination) |
setmode |
<arena> <mode> |
Set arena game mode: solo, duo, trio, quad |
forcestart |
<arena> |
Force-start the game countdown immediately |
reload |
— | Reload all configurations and language files |
Team Management
| Subcommand | Arguments | Description |
|---|---|---|
addteam |
<arena> <name> <color> <max-players> |
Add a team to an arena (max-players: 1-4) |
removeteam |
<arena> <name> |
Remove a team from an arena |
Available colors: RED, BLUE, GREEN, YELLOW, AQUA, WHITE, BLACK, GOLD, GRAY, DARK_RED, DARK_BLUE, DARK_GREEN, LIGHT_PURPLE
Spectate
| Subcommand | Arguments | Description |
|---|---|---|
spectator |
<arena|player> |
Spectate an arena or teleport to and spectate a specific player |
Level Management
| Subcommand | Arguments | Description |
|---|---|---|
addxp |
<player> <amount> |
Add XP to a player |
Battle Pass Management
| Subcommand | Arguments | Description |
|---|---|---|
bp reset |
[confirm] |
Reset the Battle Pass season (must confirm within 30s) |
Daily Reward Management
| Subcommand | Arguments | Description |
|---|---|---|
reward help |
— | Show reward help menu |
reward setxp |
<amount> |
Set the XP reward amount |
reward setcoins |
<amount> |
Set the coin reward amount |
reward setmoney |
<amount> |
Set the money reward amount (requires Vault) |
reward setcooldown |
<hours> |
Set reward cooldown in hours (minimum 1) |
reward reset |
<player> |
Reset a specific player's reward cooldown |
reward info |
— | Show current reward settings |
reward toggle |
— | Enable/disable the reward system |
Ban Management
| Subcommand | Arguments | Description |
|---|---|---|
ban |
[duration] <player> <reason> |
Ban a player from BedWars. Duration formats: 5s, 30m, 10h, 5d, perm or permanent. Default: permanent |
unban |
<player> |
Unban a player |
banlist |
[page] |
Open the ban list GUI or view a specific page |
Examples:
/bwa create MyArena
/bwa setup MyArena
/bwa addteam MyArena Red RED 4
/bwa removeteam MyArena Red
/bwa delete MyArena
/bwa enable MyArena
/bwa disable MyArena
/bwa reload
/bwa setlobby MyArena
/bwa setspectator MyArena
/bwa setmainlobby
/bwa forcestart MyArena
/bwa setmode MyArena quad
/bwa spectator MyArena
/bwa spectator Notch
/bwa addxp Notch 500
/bwa bp reset
/bwa bp reset confirm
/bwa reward setxp 100
/bwa reward setcoins 50
/bwa reward setmoney 1000.0
/bwa reward setcooldown 24
/bwa reward reset Notch
/bwa reward info
/bwa reward toggle
/bwa ban 7d Notch Griefing
/bwa ban perm Notch Hacking
/bwa unban Notch
/bwa banlist
/setup — Arena Setup Commands
Permission: bedwars.setup (default: op)
Note: Must be in setup mode first using /bwa setup <arena>. In setup mode you get a blaze rod wand.
| Subcommand | Arguments | Description |
|---|---|---|
help |
— | Shows setup help menu |
setspawn |
<team> |
Set the team's spawn point at your current location |
setbed |
<team> |
Set the team's bed location (stand near the bed and look at it; sets both head and foot automatically) |
setgenerator |
<type> |
Place a generator at your location. Types: IRON, GOLD, DIAMOND, EMERALD |
setshop |
— | Place a shop NPC at your current location |
setupgrade |
— | Place an upgrade NPC at your current location |
setregion |
— | Save the arena region using the two corners selected with your blaze rod wand (left-click = corner 1, right-click = corner 2) |
done |
— | Finalize and save the arena configuration, exit setup mode |
Examples:
/bwa setup MyArena (enter setup mode)
/setup setspawn Red
/setup setbed Blue
/setup setgenerator IRON
/setup setgenerator DIAMOND
/setup setshop
/setup setupgrade
/setup setregion (select corners with wand first)
/setup done (save and exit)
Permissions
| Permission | Default | Description |
|---|---|---|
bedwars.play |
true |
Access to player commands and gameplay |
bedwars.admin |
op |
Access to admin commands |
bedwars.setup |
op |
Access to arena setup commands |
bedwars.bypass |
op |
Bypass block/game restrictions (place/break during game, join started games) |
Placeholders (PlaceholderAPI)
All placeholders use the %lbedwars_<placeholder>% format.
Stats
| Placeholder | Type | Description |
|---|---|---|
%lbedwars_kills% |
int |
Total kills |
%lbedwars_deaths% |
int |
Total deaths |
%lbedwars_kd% |
float |
Kill/death ratio (2 decimal places) |
%lbedwars_finalkills% |
int |
Final kills |
%lbedwars_finaldeaths% |
int |
Final deaths |
%lbedwars_finalkd% |
float |
Final kill/death ratio (2 decimal places) |
%lbedwars_wins% |
int |
Total wins |
%lbedwars_losses% |
int |
Total losses |
%lbedwars_wlr% |
float |
Win/loss ratio (2 decimal places) |
%lbedwars_bedsbroken% |
int |
Beds broken |
%lbedwars_gamesplayed% |
int |
Games played |
%lbedwars_winstreak% |
int |
Current win streak |
Level & XP
| Placeholder | Type | Description |
|---|---|---|
%lbedwars_level% |
int |
Current level (1–100) |
%lbedwars_xp% |
int |
Current XP amount |
%lbedwars_xp_required% |
int |
XP required to reach next level |
%lbedwars_xp_percent% |
float |
Progress to next level as percentage (0–100) |
%lbedwars_xp_progress% |
string |
Progress bar (20 segments, filled/unfilled) |
Economy
| Placeholder | Type | Description |
|---|---|---|
%lbedwars_balance% |
int |
Balance (integer, rounded down) |
%lbedwars_balance_formatted% |
string |
Balance with formatting |
Cosmetics
| Placeholder | Type | Description |
|---|---|---|
%lbedwars_active_killeffect% |
string |
Name of active kill effect |
%lbedwars_active_victorydance% |
string |
Name of active victory dance |
%lbedwars_active_trail% |
string |
Name of active projectile trail |
%lbedwars_active_victorysong% |
string |
Name of active victory song |
Arena (real-time — only shows data when player is in an arena)
| Placeholder | Type | Description |
|---|---|---|
%lbedwars_arena% |
string |
Current arena name |
%lbedwars_gamestate% |
string |
Current game state (WAITING / STARTING / PLAYING / ENDING) |
%lbedwars_gametime% |
string |
Game elapsed time in MM:SS format |
%lbedwars_isplaying% |
string |
YES if playing, NO otherwise |
%lbedwars_isspectating% |
string |
YES if spectating, NO otherwise |
%lbedwars_players% |
int |
Current player count in arena |
%lbedwars_maxplayers% |
int |
Maximum player count in arena |
%lbedwars_team% |
string |
Team name |
%lbedwars_teamcolor% |
string |
Team color code (e.g., &c) |
%lbedwars_team_colored% |
string |
Team name with color codes applied |
%lbedwars_teammates% |
int |
Total teammates in the team |
%lbedwars_teammates_alive% |
int |
Alive teammates |
%lbedwars_hasbed% |
string |
YES if bed is alive, NO otherwise |
Position Leaderboards (requires online database)
%lbedwars_position_kills%
%lbedwars_position_wins%
%lbedwars_position_final-kills%
%lbedwars_position_beds-broken%
Returns the player's ranking position (integer).
rewards.yml — Game Event Rewards
| Path | Type | Default | Description |
|---|---|---|---|
game-rewards.kill-xp |
int | 10 |
XP earned per kill |
game-rewards.win-xp |
int | 60 |
XP earned per win |
game-rewards.bed-break-xp |
int | 30 |
XP earned per bed break |
game-rewards.final-kill-xp |
int | 20 |
XP earned per final kill |
game-rewards.kill-coins |
int | 5 |
Coins earned per kill |
game-rewards.win-coins |
int | 30 |
Coins earned per win |
battlepass.yml — Battle Pass Settings
| Path | Type | Default | Description |
|---|---|---|---|
battlepass.enabled |
boolean | false |
Enable the Battle Pass system |
battlepass.contribute-to-bp |
boolean | true |
If true, XP earned in games also contributes to battle pass progress |
battlepass.tiers |
int | 50 |
Number of tiers in the pass |
battlepass.xp-per-tier |
int | 250 |
XP required per tier |
battlepass.rewards.free.<tier> |
list | — | Free reward commands per tier |
battlepass.rewards.premium.<tier> |
list | — | Premium reward commands per tier |
cosmetics.yml — Cosmetics Configuration
| Path | Type | Default | Description |
|---|---|---|---|
kill-effects.<name>.material |
string | — | Display material in GUI |
kill-effects.<name>.price |
int | — | Price in coins |
kill-effects.<name>.permission |
string | — | Required permission node |
kill-effects.<name>.effect |
string | — | Effect type (e.g., LIGHTNING, HEART, NOTE, SMOKE, FLAME, EXPLOSION, CRIT, SPELL) |
victory-dances.* |
— | — | Same structure as kill effects |
death-cries.* |
— | — | Same structure with sound name |
trails.* |
— | — | Same structure with particle type |
island-toppers.* |
— | — | Same structure with block material |
victory-songs.* |
— | — | Same structure with NBS filename |
dailyrewards.yml — Daily Reward Settings
| Path | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | true |
Enable daily rewards |
xp |
int | 50 |
XP reward amount |
coins |
int | 25 |
Coins reward amount |
money |
double | 100.0 |
Money reward amount (Vault) |
cooldown |
int | 24 |
Cooldown in hours |
shop/<mode>.yml — Shop Configuration
Structure per category:
categories:
<category_name>:
item: <material> # Display item in shop GUI
name: "<display name>" # Category display name
lore:
- "<lore line>" # Category lore
items:
- material: <material> # Item to buy
name: "<display name>" # Item display name
lore: # Item lore
- "<lore line>"
price-type: IRON|GOLD|DIAMOND|EMERALD
price: <amount> # Cost
amount: <count> # Quantity received
reward-commands: # Commands run on purchase (optional)
- "<command>"
upgrades/<mode>.yml — Upgrade Configuration
Structure per upgrade:
upgrades:
<upgrade_name>:
name: "<display name>"
item: <material>
lore:
- "<lore line>"
max-tier: <tier_count>
costs:
- <diamond_cost> # One cost per tier (list)
values:
- <value> # One value per tier (list)
Default upgrades: sharpened-swords, reinforced-armor, dragon-buff, heal-pool, forge, trap, alarm-trap.
arenas/<arena>/config.yml — Arena Definition
Auto-generated during setup. Contains:
- Mode and display name
- Team definitions: color, name, spawn location, bed location + facing direction, bed foot location
- Generator locations: iron, gold, diamond, emerald positions
- NPC locations: shop and upgrade NPC coordinates
- Region bounds: min/max X, Y, Z coordinates
- Lobby location: waiting lobby spawn point
- Spectator spawn: spectator observation location
Dependencies
Required:
- Paper 1.19+ (or Folia/Spigot with Paper API)
Soft dependencies (optional):
| Plugin | Purpose |
|---|---|
| PlaceholderAPI | Placeholder expansion for %lbedwars_*% |
| Vault | Economy integration for shop purchases |
| NoteBlockAPI | Victory song playback (.nbs files) |
| Parties (alessiodp) | Party queue system |
Proxy Module
A companion BungeeCord/Velocity plugin (L-BedWarsProxy) for multi-server networks.
Features
- Smart Joining:
/bw join <mode>finds the best available arena server and connects the player - Queue System: If all servers are full, players queue and auto-connect when a slot opens
- Party Support: Party leader's queue state is shared, all members connect together
- Server Status Broadcasting: Game servers report arena states via TCP (configurable port)
- Server MOTD: Displays current arena status and player counts on the server list
- Cross-Server Spectate: Admin spectate any player across servers
- Leaderboard Holograms: Placeable holograms showing top players per stat (kills, wins, final kills, beds broken, deaths, final deaths, losses, games played)
Proxy Commands
/bw — Join Commands (no permission required)
| Subcommand | Arguments | Description |
|---|---|---|
join |
<mode> |
Find and connect to best available arena |
rejoin |
— | Reconnect to your previous game server |
stats |
[player] |
View stats GUI |
battlepass / bp |
— | Open Battle Pass GUI |
/bwa — Admin Commands (permission: lbedwarsproxy.admin, default: op)
| Subcommand | Arguments | Description |
|---|---|---|
gui |
[filter] |
Open arena browser UI (filter: all, solo, duo, trio, quad) |
tp |
<player> |
Teleport to and spectate a player across servers |
leaderboard |
[stat] |
Open leaderboard GUI (stat: kills, wins, final_kills, beds_broken) |
hologram set |
[stat] |
Place a leaderboard hologram |
hologram remove |
[id] |
Remove a hologram by ID |
hologram list |
— | List all placed holograms |
ban |
[duration] <player> <reason> |
Proxy-wide ban |
unban |
<player> |
Proxy-wide unban |
banlist |
[page] |
View banned players |
SUPPORT
discord: squezsaz discord: https://discord.gg/W23eQgPFKM
Ченджлог
2.0.0Бета26.1.1, 26.1.2, 26.2 · 9 июля 2026 г.
Update Notes / Changelog
- Cosmetics Menu: The appearance and design of the cosmetics menu have been revamped!
(L-Bedwars) - BattlePass: BattlePass feature has been added!
(L-Bedwars, L-Bedwars Proxy) - New Cosmetic: Join Messages!
(L-Bedwars) - Ban System: Ban system has been implemented!
(L-Bedwars, L-Bedwars Proxy) - Stats Command: The
/bw statscommand has been updated; it now opens a GUI menu when used!(L-Bedwars, L-Bedwars Proxy) - BossBar: A BossBar has been added to the waiting lobby to display various information! Fully configurable via config.
(L-Bedwars) - New Items: Sponge and Pop-up Tower items have been added to the shop!
(L-Bedwars) - Dragon System: The Dragon system has been updated!
(L-Bedwars) - Command Whitelist: Command Whitelist feature has been introduced!
(L-Bedwars)
Комментарии
Загружаем…