Перейти к содержимому
Mineforgian

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 г.

NewBedwars Banner

SpigotMC Modrinth Hangar


📖 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: true or RequireLobbyPermission: true in config.yml to restrict /bw join and /bw lobby to players with the explicit permission. Both default to false (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

  1. Download NewBedwars-2.1-beta.jar
  2. Drop it into your server's /plugins/ folder
  3. Start the server — config files generate automatically
  4. Set your lobby spawn: /bw setLobby
  5. Create your first arena: /bw arena create myArena
  6. Follow the checklist shown by /bw arena
  7. Save arena by /bw save
  8. Enable when ready: /bw arena enable myArena

Creating an arena from a schematic

  1. Save your map as a .schem file in WorldEdit's schematics folder (plugins/WorldEdit/schematics/ or plugins/FastAsyncWorldEdit/schematics/)
  2. Run: /bw arena create myArena -sche myMap
  3. 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 the Players MySQL 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() NPEcountdownTimer is now null-checked before cancellation
  • GamePhases out-of-boundsgetCurrentPhase() and start() now guard against currentPhase >= phases.size()
  • Respawn upgrade not appliedrespawnPlayer() now null-checks getTeamUpgrades() before calling applyPlayerUpgrades()
  • Win check silently discarded — the empty if (checkWin()) {} block in killPlayer() was replaced with a direct checkWin() call so game endings trigger correctly
  • getGameTime() always returned 0 — game-start timestamp is now recorded in start() and elapsed seconds are computed correctly
  • Respawn task leaked on arena shutdown — the BukkitRunnable for player respawn is now stored in GamePlayer and cancelled in both stop() and forceShutdown()
  • arena_<name>_max_players placeholder broken — the per-arena placeholder parser now matches known multi-word suffixes (longest first) instead of using lastIndexOf('_'), which was splitting max_players incorrectly

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 / .schematic file saved in the WorldEdit or FAWE schematics folder; use /bw arena create <name> -sche <schematic> (WorldEdit or FastAsyncWorldEdit soft dependency)
  • PlaceholderAPI supportNewBedwarsExpansion registers 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-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; use clear to 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 + fallback PlayerItemConsumeEvent) 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 keyPlayerDropItemEvent now cancels sword drops during an active game while still allowing players to move items into chests
  • Schematic error shows literal /name/ — the SchematicNotFound message now substitutes the actual schematic name into the /name/ placeholder before sending
  • Objective.isRegistered() compile error in NScoreboardisRegistered() does not exist in the Paper 1.17 API; replaced with plain obj != null checks
  • Arenas not cleaned up on server disable or reloadonDisable() now calls forceShutdown() 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() calls stop() (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+PlayerItemConsumeEvent now 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_ARMOR item 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 + 1 to maxHealth × 1000; armor can absorb up to 80 % of damage, so health + 1 left 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 Wool shop 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

  • Description field for shop GUI categories — each category in a GUI YAML file can now define an optional Description: key that is shown as the lore on the category button (example values added to exampleGui.yml and exampleGui2.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 (/p alias)
    • /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
  • AllowParties gamerule — 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

  • ConfigUpdater NPE on first startup when CustomItemsNames section was absent from language files on disk
  • DataManager.save() NPE in onDisable() 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.java into LobbyData utility class (config/data/LobbyData.java)
  • PartyManager refactored to use constructor injection (Plugin, Messages) — no longer depends on NewBedwars.plugin static 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 !message for team-only chat. AllowTeamChat and AllowGlobalChat gamerules 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

Комментарии

Загружаем…