
New Bedwars
A modern, feature-rich Bedwars plugin for Paper servers with multi-arena support, custom shops & upgrades, configurable game phases, and multi-language scoreboards.
- Загрузки
- 98
- Подписчики
- 0
- Обновлён
- 25 июня 2026 г.
- Лицензия
- GPL-3.0-only
Опубликован 8 июня 2026 г.
📖 Overview
NewBedwars is a modern, fully configurable Bedwars plugin built from the ground up for Paper 1.17+. It delivers the classic Bedwars experience with a powerful in-game setup system, YAML-driven GUIs, multi-arena support, and deep gamerule control - all without requiring any additional plugin dependencies.
Whether you're running a small survival server looking to add a Bedwars minigame, or building a dedicated Bedwars network, NewBedwars gives you the tools to create polished, production-ready arenas with minimal configuration effort.
⚠️ This is a beta release. Core gameplay is stable and feature-complete. Please report any issues via the GitHub issue tracker.
✨ Key Features
⚔️ Gameplay
| Feature | Description |
|---|---|
| Multi-Arena | Run unlimited simultaneous arenas, each with its own world |
| Team System | Configurable team count, colors, player limits |
| Quick Void | Instant death below a configurable Y level |
| Build Protection | Per-team zones where players cannot place blocks |
| Rejoin System | Players can reconnect within a configurable time window |
| Party System | Group up with friends via /party; invite with clickable chat buttons; party admin leads the whole group into an arena together |
💬 Chat & Visibility
| Feature | Description |
|---|---|
| Arena Chat Isolation | Each arena has its own chat — lobby players and other arenas are completely isolated |
| Team Chat | Type !message to send a team-only message, controlled per arena via gamerule |
| Global Arena Chat | Optional arena-wide chat channel, toggle per arena via gamerule |
| Tab List Isolation | Each arena gets its own tab list — lobby players are hidden from arena players and vice versa |
🎭 Display & HUD
| Feature | Description |
|---|---|
| Bossbar | YAML templates for waiting, playing, and ending states |
| Scoreboard | Per-player scoreboards with full placeholder support |
| Spectator Mode | Fly around the arena; compass teleports to live players |
| Multi-Language | English, Polish, German, Spanish, French, and Russian — missing keys fall back to English automatically |
| Per-Arena Resource Pack | Force a custom resource pack for each arena; automatically sent on join and cleared on leave |
🔌 Integrations
| Feature | Description |
|---|---|
| PlaceholderAPI | 14 placeholders under %newbedwars_*% for scoreboards, chat formatters, and external plugins (soft dependency — plugin loads without it) |
| WorldEdit / FAWE | Create arenas directly from .schem / .schematic files saved in the WorldEdit schematics folder (soft dependency — manual setup still works without it) |
💻 Commands
Player Commands
/bw join [arena] — Open arena selector or join a specific arena
/bw rejoin — Rejoin your previous arena
/bw lobby — Leave the arena and return to the main lobby
/bw spectate [arena] — Join a running arena as spectator
/bw lang <en|pl|de|es|fr|ru> — Change your display language
/bw help — Show all available commands
/bw stats [player] - Show players stats
/bw profile [player] - Show players stats
/bw leaderboard [wins|kills|beds|fk] - Show top 10 players by a stat.
/lobby — Shortcut: teleport to lobby
/lang <en|pl|de|es|fr|ru> — Shortcut: change language
Party Commands
/party invite <player> — Invite a player to your party
/party accept — Accept a pending invite (clickable in chat)
/party deny — Deny a pending invite (clickable in chat)
/party leave — Leave your current party
/party list — List all party members
/party kick <player> — Kick a member from your party (admin only)
/party admin <player> — Transfer the admin role (admin only)
/p — Alias for /party
Admin Commands
/bw arena create <name> [-sche <schematic>] [-n] — Create a new arena (optionally from a WorldEdit schematic)
/bw arena list — List all arenas and their current status
/bw arena delete <name> — Permanently delete an arena
/bw arena enable <name> — Enable a fully configured arena
/bw arena disable <name> — Disable a running arena
/bw arena setup <name> — Enter setup mode for an arena
/bw setLobby — Set the global lobby spawn point
/bw setupGuis — Open the GUI configuration tool
/bw manageGame — In-game admin management panel (phase skip, force-start, stop)
/bw reload — Save arenas, kick all players, and reload the configuration
🔑 Permissions
Admin Permissions
| Permission | Default | Description |
|---|---|---|
newbedwars.bw.admin |
op | Full admin access — grants all sub-permissions below |
newbedwars.bw.arena |
op | Manage arenas (grants the 5 sub-permissions below) |
newbedwars.bw.arena.create |
op | Create arenas |
newbedwars.bw.arena.delete |
op | Delete arenas |
newbedwars.bw.arena.enable |
op | Enable arenas |
newbedwars.bw.arena.disable |
op | Disable arenas |
newbedwars.bw.arena.setup |
op | Enter arena setup mode |
newbedwars.bw.setlobby |
op | Set the lobby location |
newbedwars.bw.setupguis |
op | Open the GUI editor |
newbedwars.bw.managegame |
op | Manage running games |
newbedwars.bw.bypass |
op | Bypass setup-mode restrictions |
Player Permissions
| Permission | Default | Description |
|---|---|---|
newbedwars.bw.player |
true | Bundle — grants all player permissions below |
newbedwars.bw.join |
true | Join arenas |
newbedwars.bw.lobby |
true | Teleport to the lobby |
newbedwars.bw.rejoin |
true | Rejoin after disconnect |
newbedwars.bw.spectate |
true | Spectate arenas |
newbedwars.bw.lang |
true | Change language |
newbedwars.bw.help |
true | View help menu |
newbedwars.party |
true | Use all /party commands |
Config: Set
RequireJoinPermission: trueorRequireLobbyPermission: trueinconfig.ymlto restrict/bw joinand/bw lobbyto players with the explicit permission. Both default tofalse(open to everyone).
📦 Requirements
- Server: Paper 1.17 – 26.2 (Spigot likely compatible but untested — Paper recommended)
- Java: 16 or higher
Soft Dependencies (optional)
| Plugin | Purpose |
|---|---|
| PlaceholderAPI | Enables %newbedwars_*% placeholders for scoreboards, chat formatters, etc. |
| WorldEdit or FastAsyncWorldEdit | Required only for schematic-based arena creation (-sche flag) |
🚀 Installation
- Download NewBedwars-2.1-beta.jar
- Drop it into your server's
/plugins/folder - Start the server — config files generate automatically
- Set your lobby spawn:
/bw setLobby - Create your first arena:
/bw arena create myArena - Follow the checklist shown by
/bw arena - Save arena by
/bw save - Enable when ready:
/bw arena enable myArena
Creating an arena from a schematic
- Save your map as a
.schemfile in WorldEdit's schematics folder (plugins/WorldEdit/schematics/orplugins/FastAsyncWorldEdit/schematics/) - Run:
/bw arena create myArena -sche myMap - The map is pasted automatically at world origin; continue with normal setup
🐛 Support & Bug Reports
Found a bug or have a suggestion? Please open an issue on GitHub or use the platform's discussion section.
Most problems can be resolved quickly with a bug report.
PlaceholderAPI Placeholders
All placeholders use the prefix %newbedwars_<placeholder>%.
In-Game (per-player)
| Placeholder | Description |
|---|---|
%newbedwars_arena% |
Arena name the player is in, or "" |
%newbedwars_status% |
Game status: waiting / starting / playing / ending / restarting, or lobby |
%newbedwars_team% |
Team name, or "" |
%newbedwars_team_color% |
Team ChatColor code, or "" |
%newbedwars_kills% |
Kills in the current game |
%newbedwars_deaths% |
Deaths in the current game |
%newbedwars_final_kills% |
Final kills in the current game |
%newbedwars_beds_broken% |
Beds broken in the current game |
%newbedwars_players% |
Current player count in the arena |
%newbedwars_max_players% |
Max players in the arena |
%newbedwars_is_spectator% |
true / false |
%newbedwars_phase% |
Current phase name, or "" |
%newbedwars_game_time% |
Seconds elapsed since game start, or 0 |
Lifetime Stats (per-player)
| Placeholder | Description |
|---|---|
%newbedwars_stat_wins% |
Total wins |
%newbedwars_stat_losses% |
Total losses |
%newbedwars_stat_kills% |
Total kills |
%newbedwars_stat_deaths% |
Total deaths |
%newbedwars_stat_final_kills% |
Total final kills |
%newbedwars_stat_beds% |
Total beds broken |
%newbedwars_stat_games% |
Total games played |
%newbedwars_stat_kd% |
Kill/death ratio (1 decimal, e.g. 2.3) |
%newbedwars_stat_wl% |
Win/loss ratio (1 decimal) |
Per-Arena
| Placeholder | Description |
|---|---|
%newbedwars_arena_<name>_status% |
Game status of the named arena |
%newbedwars_arena_<name>_players% |
Current player count |
%newbedwars_arena_<name>_max_players% |
Max players |
%newbedwars_arena_<name>_phase% |
Current phase name |
🗺️ Roadmap
Beta exit: NewBedwars will leave beta once stable operation is verified across all supported server versions (Paper 1.17 – 26.1.2).
- Party support
- PlaceholderAPI support
- WorldEdit / FAWE schematic-based arena creation
- Per-arena resource pack forcing
- More languages (DE, ES, FR, RU) (partial support)
- More custom items (Iron Golem, Silverfish, etc.)
- Arena statistics and leaderboards
- Player profile GUI with stats history
- In-game map voting system
- Network / BungeeCord / Velocity mode
📸 Screenshots
Joining & Waiting
![]() Arena selector GUI |
![]() Waiting lobby with bossbar & scoreboard |
In-Game HUD & Events
![]() In-game HUD — scoreboard, phase info, NPC labels |
![]() Respawn countdown |
![]() Bed destroyed announcement |
![]() Trap alarm |
![]() End game — spectator view with bossbar |
Shop & Upgrades
![]() Shop GUI |
![]() Bridge Egg — shop tooltip (cost: 4 Gold) |
![]() Team Upgrades shop |
Resource Generators
![]() Emerald Generator — hologram |
![]() Diamond Generator — hologram |
Arena Setup
![]() Help command output |
![]() Arena setup checklist (NORMAL_SETUP) |
![]() Team configuration checklist — missing fields highlighted |
Map & Environment
![]() Arena map — aerial overview |
![]() Live gameplay — combat near a bed 1 |
![]() Live gameplay — bed protection |
![]() Live gameplay — building bridge |
![]() Live gameplay — combat near a bed 2 |
NewBedwars v2.1-beta — Made with ❤️ by l299l — Paper 1.17 – 26.2
Ченджлог
2.1-betaБета26.1.1, 26.1.2, 26.2 · 25 июня 2026 г.
[2.1-beta] — 2026-06-25
Added
- Arena statistics & leaderboards — wins, losses, kills, deaths, final kills, beds broken, and games played are now persisted to
data/playerStats.json(or thePlayersMySQL table) and updated at the end of every game;/bw leaderboard [wins|kills|beds|fk]shows the top 10 in chat - Player profile GUI —
/bw stats [player]//bw profile [player]opens a profile GUI showing all lifetime stats; K/D and W/L ratios are displayed alongside raw counts - Fast-buy slot customization — players can rearrange the home-page fast-buy slots in the shop via the "Customize Fast-Buy" button in their profile GUI; preferences are saved per-player and persist across sessions
- Iron Golem custom item — spawns a iron golem that attacks enemies
- Silverfish custom item — releases a swarm of 5 silverfish from the buyer's feet that automatically despawn after 30 seconds
- Portable Tower custom item — instantly constructs a team-colored wool tower with a ladder
- Expanded PlaceholderAPI support — new placeholders:
%newbedwars_deaths%,%newbedwars_team_color%,%newbedwars_game_time%; full lifetime stats via%newbedwars_stat_wins%,stat_losses,stat_kills,stat_deaths,stat_final_kills,stat_beds,stat_games,stat_kd,stat_wl
Fixed
cancelStart()NPE —countdownTimeris now null-checked before cancellationGamePhasesout-of-bounds —getCurrentPhase()andstart()now guard againstcurrentPhase >= phases.size()- Respawn upgrade not applied —
respawnPlayer()now null-checksgetTeamUpgrades()before callingapplyPlayerUpgrades() - Win check silently discarded — the empty
if (checkWin()) {}block inkillPlayer()was replaced with a directcheckWin()call so game endings trigger correctly getGameTime()always returned 0 — game-start timestamp is now recorded instart()and elapsed seconds are computed correctly- Respawn task leaked on arena shutdown — the
BukkitRunnablefor player respawn is now stored inGamePlayerand cancelled in bothstop()andforceShutdown() arena_<name>_max_playersplaceholder broken — the per-arena placeholder parser now matches known multi-word suffixes (longest first) instead of usinglastIndexOf('_'), which was splittingmax_playersincorrectly
Changed
- Shop prices rebalanced
- Team-generator rebalanced
TODO
- Fix portable tower direction
- Add fast-buy slot reset
- Add language support for newest features
- Add missing permissions
2.0-betaБета26.1.1, 26.1.2, 26.2 · 22 июня 2026 г.
[2.0-beta] — 2026-06-22
Added
- WorldEdit / FAWE schematic support — arenas can now be created from a
.schem/.schematicfile saved in the WorldEdit or FAWE schematics folder; use/bw arena create <name> -sche <schematic>(WorldEdit or FastAsyncWorldEdit soft dependency) - PlaceholderAPI support —
NewBedwarsExpansionregisters 14 placeholders under%newbedwars_*%; PlaceholderAPI is a soft dependency so the plugin loads normally without it- Per-player:
%newbedwars_arena%,%newbedwars_status%,%newbedwars_team%,%newbedwars_kills%,%newbedwars_final_kills%,%newbedwars_beds_broken%,%newbedwars_players%,%newbedwars_max_players%,%newbedwars_is_spectator%,%newbedwars_phase% - Per-arena:
%newbedwars_arena_<name>_status%,%newbedwars_arena_<name>_players%,%newbedwars_arena_<name>_max_players%,%newbedwars_arena_<name>_phase%
- Per-player:
- Per-arena resource pack forcing —
/bw setResourcePack <url|clear> [sha1hash]sets a resource pack that is sent to every player who joins the arena; SHA-1 hash optional; useclearto remove /bw gamerule <name> <true|false>— set any per-arena gamerule from within setup mode without editing files; tab-completes both gamerule names and boolean values- More languages — German (
de), Spanish (es), French (fr), and Russian (ru) language files added; missing keys automatically fall back to English so partial translations still work fully
Fixed
- Sharpness not applied on sword purchase — buying a sword from the shop now immediately applies the team's current Sharpness upgrade level; previously the enchant was only present after death/respawn
- Potion effects broken on Paper 1.20.1 — right-clicking a custom potion now reliably applies the effect on all supported server versions; a two-layer approach (cancel in
PlayerInteractEvent+ fallbackPlayerItemConsumeEvent) with next-tick scheduling ensures exactly one effect application regardless of how a specific Paper build handles the drinking animation - Blast-proof glass not protecting blocks below — explosion handler now also removes from the explosion list any placed block that has blast-proof glass directly above it (one Y-level up)
- Player can drop sword with Q key —
PlayerDropItemEventnow cancels sword drops during an active game while still allowing players to move items into chests - Schematic error shows literal
/name/— theSchematicNotFoundmessage now substitutes the actual schematic name into the/name/placeholder before sending Objective.isRegistered()compile error inNScoreboard—isRegistered()does not exist in the Paper 1.17 API; replaced with plainobj != nullchecks- Arenas not cleaned up on server disable or reload —
onDisable()now callsforceShutdown()on every arena (cancels all tasks, teleports players to lobby, clears scoreboards and boss bars, removes ender dragons — skips world rollback which is unsafe during JVM shutdown);reloadAll()callsstop()(full rollback) on arenas with active players before clearing the arena maps, so worlds are cleanly reset and reloaded correctly - Schematic lookup only searched plugin folder — schematic resolution now checks the WorldEdit / FAWE schematics directory as a fallback when the file is not found in the plugin's own folder
- 26.2 support
1.0.3-betaБета26.1, 26.1.1, 26.1.2 · 15 июня 2026 г.
[1.0.3-beta] — 2026-06-14
Fixed
- Potion items not working on 1.21+ —
PlayerItemConsumeEventnow applies the configured potion effect and removes the item manually; previously the event was cancelled with no effect applied, leaving the potion permanently in inventory on newer server versions - Armor can be bought multiple times — purchasing a
GIVE_ARMORitem is now blocked when the player's current armor tier is equal to or higher than the item being bought (prevents wasting currency on redundant purchases) - Sharpness and Haste lost on death — upgrade effects are now re-applied on respawn after potion effects are cleared; previously only armor protection was restored
- QuickVoid not killing armored players — void kill damage changed from
health + 1tomaxHealth × 1000; armor can absorb up to 80 % of damage, sohealth + 1left heavily-armored players alive - Broken placed wool drops vanilla item — breaking a placed wool block now suppresses the default drop and gives back one unit of the custom team-colored
Woolshop item instead of a plain named block (e.g.Red Wool) - Wool block break returned 16 items — the wool refund was accidentally using the shop stack size (16); now correctly gives back 1 wool per broken block
- GUI category icons showed item cost and description — category buttons in the shop GUI now show only the category name and an optional configurable description; the underlying item's price/amount lore is no longer inherited
Added
Descriptionfield for shop GUI categories — each category in a GUI YAML file can now define an optionalDescription:key that is shown as the lore on the category button (example values added toexampleGui.ymlandexampleGui2.yml)
1.0.2-betaБета26.1, 26.1.1, 26.1.2 · 13 июня 2026 г.
[1.0.2-beta] — 2026-06-13
Added
- Party system — group up with friends via
/party(/palias)/party invite <player>sends a clickable[Accept]/[Deny]chat component (Adventure API, compatible with all supported server versions)- Invites expire automatically after 60 seconds
- Party admin is the only member who can initiate a
/bw join; all online members enter together /party leave,/party kick,/party admin(transfer),/party list
AllowPartiesgamerule — per-arena toggle to permit or block party joins (configurable via/bw setupGuis)- Party-aware arena selector GUI — joining through the GUI now enforces party admin/member roles and checks party size against
maxInTeam
Fixed
ConfigUpdaterNPE on first startup whenCustomItemsNamessection was absent from language files on diskDataManager.save()NPE inonDisable()when startup had failed mid-way (dataManager was null)- Party members could bypass the party-admin join restriction by clicking an arena in the selector GUI
Internal
- Lobby location persistence extracted from
NewBedwars.javaintoLobbyDatautility class (config/data/LobbyData.java) PartyManagerrefactored to use constructor injection (Plugin,Messages) — no longer depends onNewBedwars.pluginstatic reference- Added JUnit 5 + Mockito test suite: 54 tests across
PartyTest,PartyManagerTest,LangMessagesTest,LobbyDataTest,JoinCommandTest,PartyCommandTest
1.0.1-betaБета26.1, 26.1.1, 26.1.2 · 11 июня 2026 г.
Changelog
v1.0.1-beta — Small bug fixes
1.0.0-betaБета26.1, 26.1.1, 26.1.2 · 9 июня 2026 г.
v1.0.0-beta — Initial Release
Added
- Multi-arena support — unlimited simultaneous arenas, each in its own world
- Team system — configurable team count, colors, and player limits
- YAML-driven shop & upgrade GUIs — fully configurable without code changes
- Resource generators — Iron, Gold, Diamond, Emerald with phase-based level upgrades
- Game phase system — define custom phases with durations and triggered actions (generator upgrades, bed destruction, dragon spawn, game end)
- Ender Dragon event — per-team dragons spawn and attack enemies; strength scales with Dragon Buff upgrade level
- Team upgrades — Forge, Protection, Sharpness, Haste, Heal Pool, Alarm/Blind/Mining Fatigue Traps, Dragon Buff
- Custom shop items — Bridge Egg, Fireball, Speed/Jump/Invisibility potions, Blast Protection Glass
- Build protection zones — per-team areas where players cannot place blocks
- Base zones — define team base areas for traps and Heal Pool
- Quick void — instant kill below a configurable Y level
- Rejoin system — players can reconnect within a configurable time window
- Traps — triggered when an enemy enters a team's base
- Spectator mode — fly, compass player-teleport GUI, effects GUI; available to both eliminated players and external viewers via
/bw spectate - Arena chat isolation — each arena has its own chat channel; lobby players and other arenas are completely isolated. Use
!messagefor team-only chat.AllowTeamChatandAllowGlobalChatgamerules control per-arena chat behaviour - Tab list isolation — each arena has its own tab list; lobby players are hidden from arena players and vice versa
- Bossbar — YAML-configurable templates for waiting, in-game, and ending states
- Scoreboard — per-player scoreboards with full template support
- In-game setup system — configure arenas entirely in-game with Normal, Advanced, and Automatic setup modes
- Per-arena gamerules — random teams, spectators, team/global chat, team damage, permanent swords, and more
- JSON arena persistence — arenas save automatically and survive restarts
- Party system — players can group up and join arenas together
- Multi-language — English and Polish included; fully translatable YAML language files with auto-update on plugin reload
Комментарии
Загружаем…



















