Marcely's Bedwars | EST 2015 v5.5.7

No. 1 Bedwars - 350+ configs - 0 lag - endless arenas - designed for all use cases
5.5.7.png

Added feature:
  • Holograms now get displayed as text and block displays for 1.19.4+
Added support:
  • Minecraft 26.1
  • Added migration system for SWM to ASP
    • In case you upgrade from 1.8.8-1.12 to a modern version
    • Is done automatically, fixes errors that would previously occur
  • It is now possible to use both legacy and MiniMessages together in scoreboards
  • Added MiniMessage support to item lores
Improved support:
  • Relational placeholders within PlaceholderAPI
    • Mainly for TAB
    • Allows you to have per-player languages for e.g. stats etc.
  • Bedwars1058 migration:
    • Fallback to 0 instead of failing if parsing a spawn direction had (likely human-caused) errors
Config changes:
  • Added to config.yml
    • regeneration-disable-autosave-modern-paper
      • Performance optimization that we would previously always apply is now disabled by default on modern paper for cloned region arenas
      • Reason are memory leaks, that we try to patch
      • You may enable that optimization, which disables auto-save for cloned worlds. Please send us heapdumps in case you notice memory leaks
  • Added to shop-layout-properties.yml
    • For HyPixelV2 shop
      • gui-height
      • quickbuy-empty-icon
    • For HyPixelV2 upgrade shop
      • gui-offset-top
      • gui-height
      • seperator-material
    • For global upgrade shop
      • unqueued-trap-icon
  • It's now possible to use PAPI placeholders within item strings for icons of shop items and pages, and within item products
  • It is now possible to forcefully overwrite a shop page's item name using NBT/components (makes it possible to have a different GUI title)
Performance improvements:
  • Improved general performance by indexing by char and not string where applicable
  • Improved efficiency and accuracy of the language identification system
  • Reduced performance impact on arenas GUIs caused by updates (especially when an arena ends) by enqueuing arenas for a certain amount of ticks (basically delaying redraws)
  • Improved general performance throughout the plugin by reducing ItemMeta clones
  • Improved general arenas GUIs performance for paper 1.16.5+
  • Reduce TPS-drops caused by "Parties" hook by attempting db calls async
  • Improved efficiency of "Parties" hook by utilizing caches and reducing db calls
  • Greatly improved efficiency of special block updating
  • Improved efficiency by using more efficient String-modification algorithms
  • Improved general performance by utilizing FastUtil wherever feasible (supported for all paper versions, spigot only 1.18+)
  • Improved efficiency of item NBT parsing by avoiding useless computations
  • Arenas GUI rendering is now happening async (improves micro-freezes on main thread)
  • Improved general performance for 1.20+ and 1.8.8 by avoiding complete copies of NBT and instead mirroring them
  • Slightly improved SQL performance when saving player data
Miscellaneous:
  • Added custom mode name to /bw arena info
  • Added warnings if spectate teleport failed
API changes:
  • Added event
    • AsyncPlayerRejoinPullArenaEvent
  • Added classes
    • ItemBuilder
    • SpectateRemotePlayerInfo
    • RejoinRemotePlayerInfo
    • DynamicItemStack
    • BasicItemShopProduct
    • BasicItemShopPrice
    • SpecialItemUseSession#isStoppedWithPlayerQuit()
  • Added methods
    • PlayerDeathInventoryDropEvent#addHandlerAfter(handlerToAdd, handlerToFind)
    • PlayerDeathInventoryDropEvent#addHandlerBefore(handlerToAdd, handlerToFind)
    • LazyReference#isCached()
    • WorldStorage#getBlocks(BlockType)
    • Helper#split(String, char)
    • Helper#remove(String, char)
    • MigrationProcess#isModifyingPlayerData()
    • MigrationProcessRunEvent#addHaltLatch(CountDownLatch)
    • MigrationProcessRunEventgetHaltLatches()
    • Helper#isWorldLoaded(Location)
    • QuitPlayerMemory.constructMidgame(RemotePlayer, Team)
    • RemoteArena#setQuitPlayerMemory(QuitPlayerMemory)
    • RemoteArena#rejoinPlayer(RemotePlayer, Consumer)
    • RemoteArena#rejoinPlayer(RemotePlayer)
    • RemoteArena#rejoinPlayer(RejoinRemotePlayerInfo, Consumer)
    • RemoteArena#addSpectator(SpectateRemotePlayerInfo, Consumer)
    • PlayerCustomKnockbackEvent#getBukkitEvent()
    • ShopItem#getDynamicIcon()
    • ShopPage#getDynamicIcon()
    • ShopItem#setDynamicIcon(icon)
    • ShopPage#setDynamicIcon(icon)
    • ItemShopProduct#getItemStacks(Player)
  • Breaking changes
    • Attempting to spawn a holographic entity with HologramSkinType#VILLAGER will now fail hard (deprecated). Use #LIVING instead
    • "ItemShopProduct", the variant that only drops regular items, has been split of to "BasicItemShopProduct" to avoid complexity, as spawner and special item products also inherited from ItemShopProduct
    • ^ the same counts for "ItemShopPrice"
  • Deprecated
    • NMSHelper#hideAttributes(ItemStack)
    • NMSHelper#setGlowEffect(ItemStack, boolean)
    • Helper#setUnbreakable(ItemStack, boolean)
    • Helper#setUnbreakable(ItemMeta, boolean)
    • Helper#dye(ItemStack, DyeColor)
    • RemoteArena#teleportHere(player, sendMessage)
    • RemoteArena#addSpectator(player, reason)
    • RemoteArena#addSpectator(player, reason, ignoreArenaStatus)
    • RemoteArena#addSpectator(player, reason, callback)
    • RemoteArena#addPlayer(player, team)
    • RemoteArena#addPlayer(player, team, callback)
    • RemoteAPI#teleportPlayerToArena(player, arena, sendMessage, callback)
    • RemoteAPI#addSpectatorToArena(player, arena, reason, ignoreArenaState, callback)
    • RemoteAPI#addPlayerToArena(info, arena, callback)
    • RemoteArena#addSpectator(player, ignoreArenaStatus)
    • ItemShopProduct#getItemStacks()
    • ItemShopPrice#getItemStacks()
Fixed bugs:
  • Fixed BootstrapMethodError when trying to look up an invalid sound on 1.21.11
  • Fixed "argument type mismatch" for versions 1.11 - 1.16.5
  • Fixed InnovocationException caused by a bug within PandaSpigot
  • Fixed MigrationProcessRunEvent not being called
  • Fixed rare CME error related to holograms
  • Fixed being able to pickup items while being teleported to the hub (paper only)
  • Fixed not starting on certain server configurations for 1.14 and older
  • Fixed MiniMessages not working on scoreboard's title
  • Fixed abuse: Being able to tp to enemies during death spectate
  • Fixed "Player is not in the arena" error
  • Fixed memory leak when auto cloning region arenas
  • Fixed "Tried to access invalid game rule" error for 1.21.11
  • Fixed hologram memory leak caused by arena cloning
  • Fixed error when attempting to migrate players from BW1058 db when MySQL is used
  • Fixed memory leak with region arenas on paper with chunk system rewrite (1.19.4+)
  • Fixed insta-break blocks disappearing when broken for clients on 1.8.8 - 1.15
  • Fixed being able to break your own bed using explosive by quitting
  • Trap (placed ones) now also get fired if the placer leaves/gets killed
  • Fix being able to damage team mates etc by throwing explosive and then quitting immediately
  • Fixed being able to stay within the arena as a spectator on paper by running against the border
  • Fixed deadlocks with SQL
  • Fixed certain special items stopping unnecessarily when player (who used it) leaves: Guard Dog/Iron Golem, Rescue Platform, TNT Sheep
  • Fixed "team-balance" (both false and true) not being entirely random
Added support:
  • 1.21.9, 1.21.10, and 1.21.11 (Thanks to MetallicGoat )
  • ItemJoin
    • To prevent possible compatibility issues due to misconfiguration
  • Latest AdvancedSlimePaper
  • ViaRewind (1.19R2+)
    • Hotfix as NPCs didn't get removed from TAB
Added features:
  • It is now possible to use MiniMessage components in scoreboards (paper 1.20.1+ only)
  • Added new team: Magenta
    • It is generally hidden in the team selection UI
    • It is only visible once you enable the other 15 teams
  • Add-ons may now declare custom modes using API
    • New "custom_mode" condition variable to provide a singleton solution for all addons
    • Spectator "next round" item now enforces an equal custom mode
Config changes:
  • Added:
    • lobby-printmapinfo-time
    • logs-strippable
  • Removed "lobby-countdowntitle-arena"
    • Got merged with "lobby-countdowntitles"
  • "max-nearby-items" (spawns.yml) may now be an expression
  • "interacting" config has been split (Thanks to MetallicGoat )
    • "interacting-gui" false by default
    • "interacting_physical" true by default
General improvements:
  • If party leader joins: Prefer teams that already include team members
  • PaF Bungee: Reduce time it takes to fetch party info (in case player just joined)
  • Now returning infinity symbol if "timer-enabled" is set to false for {countdown} in scoreboards and the countdown PAPI placeholder
  • Spawner multiplier upgrade now also considers team spawn (besides just bed) as a radius
  • Auto-color (& to §) results from PAPI placeholders
  • Players no longer are able to strip any log (previosly they could strip player-placed blocks)
  • Added new error message if no arena has been found that matches a given picker (Thanks to MetallicGoat )
Performance improvements:
  • Greatly reduced GC overhead by reducing usage of regex
  • Improved efficiency throughout the plugin by implementing a more efficient placeholder replacement system
  • Improved PaF bungee efficiency by reducing amount of attempted proxy requests
  • Slightly improved performance for paper hard-forked versions (starting with 1.21.4) by avoiding reflection for their feature-set
  • Improved general performance by making it easier for JIT optimizations in cross-version handling
  • Added support for paper's AsyncPlayerSpawnLocationEvent (improves performance and stability)
API changes:
  • Added:
    • PlayerCustomKnockbackEvent
    • Helper#replaceFirst(str, target, replacement)
    • Helper#replaceLast(str, target, replacement
    • GameAPI#registerSpecialItem(type, plugin, name, item)
    • GameAPI#isProcessingRejoin(Player)
    • GameAPI#isCrossServerRejoining(UUID)
    • Helper#getPlayerSkin(Player)
    • NPCHologramSkin#getSkin()
    • NPCHologramSkin#setSkin(Skin)
    • Skin class
    • NPCHologramSkin#setPlayerSpecificSkinSupplier(supplier)
    • NPCHologramSkin#hasPlayerSpecificSkinSupplier()
    • NPCHologramSkin#updatePlayerSpecificSkins()
    • NPCHologramSkin#updatePlayerSpecificSkin(Player)
    • NPCHologramSkin#getPlayerSpecificSkinSupplier()
    • NPCHologramSkin#setSelfSkinSupplier()
    • NPCHologramSkin#getInternalType()
    • ArenaOutOfTimeEvent#setEndlessTime()
    • Arena#setIngameTimeDisabled()
    • PlayerBuyUpgradeEvent#getUpgradeState()
    • NMSHelper#useFireworkBoost(Player, ItemStack)
    • Helper#takeItems(Player, Predicate<ItemStack>, amount)
    • Helper#isTransparent(Material)
    • GameAPI#getHubLocation()
    • GameAPI#setHubLocation(Location)
    • Team#DARK_BLUE
    • Team#isHidden()
    • QuitPlayerMemory#constructMidgame(Player, Team)
  • Changes:
    • GameAPI#unregisterSpecialItem(SpecialItem): It is no longer possible to unregister built-in types. Use the new register method if you want to replace it
    • It is now possible to enable the ingame timer (if it was previously turned off) using Arena#setIngameTimeRemaining(timeInSeconds)
  • Deprecated:
    • Helper#getPlayerSkinData(Player)
    • NPCHologramSkin#setSkin(texture, signature)
    • NPCHologramSkin#getSkinTexture()
    • NPCHologramSkin#getSkinSignature()
  • Changes due to "max-nearby-items" now being optionally an expressions:
    • Deprecated DropType#getMaxNearbyItems()
    • Added DropType#getMaxNearbyItems(Arena)
    • Added DropType#getMaxNearbyItemsExpression()
    • Added DropType#setMaxNearbyItemsExpression(String)
    • Breaking Spawner#set/getMaxNearbyItems by resetting that value now with every match start
  • New custom mode feature adds:
    • CustomMode and CustomModeType class
    • Arena#hasCustomMode()
    • Arena#getCustomMode()
    • RemoteArena#hasCustomMode()
    • RemoteArena#getCustomModeName()
    • GameAPI#getCustomModes()
    • GameAPI#getCustomMode(CustomModeType)
    • GameAPI#registerCustomMode(CustomMode)
    • GameAPI#unregisterCustomMode(CustomMode)
    • ArenaPropertyChangeEvent.Property.CUSTOM_MODE
    • RemoteArenaPropertiesChangeEvent.Property.CUSTOM_MODE
    • ArenaConditionVariableType.CUSTOM_MODE
Fixed bugs:
  • Fixed "spawn-at-start" in spawners.yml not counting items for "max-nearby-items"
  • Fixed NPE related to item lore in upgrade shop
  • Fixed being able to interact with iron golem / guard dog to e.g. heal him with iron
  • Fixed fireball jiggering on 1.21+ with fireball-fly-speed-constant enabled
  • Fixed XReplay not working as intended
  • Fixed ArrayIndexOutOfBoundsException if more than 7 spawner types exist when opening the spawners GUI in setup tool
  • Fixed sending messages with prefixes if they were configured to be empty
  • Fixed feather fall upgrade being applied to all armor parts
  • Fixed potential error when saving corrupted tile entities in region arenas for 1.21.6+
  • Fixed light blocks breaking safe-respawn location identifier and fireball double jumping
  • Fixed NPE caused by async world loading on modern paper versions
  • Fixed being able to spectate players during respawn, even if "spectator-permit-other-player-view" is disabled
  • Fixed rare glitchy behavior if attempting to spectate a player with "spectator-permit-other-player-view" disabled (fix only available for paper 1.13+)
  • Fixed potential "must be Methodref constant" error on 1.12+
Added support:
  • Added support for 1.21.8
Added feature:
  • It is now possible to leave a team during lobby phase by clicking on it again
Added sound:
  • LOBBY_SELECTTEAM_UNDO
Improvements:
  • Improved handling of real player names getting confused with their nick names in various places
API changes:
  • Added
    • Helper#getPlayerByName()
    • Arena#leaveTeamDuringLobby(player)
  • RemotePlayer#getName() now returns Helper#getNickedPlayerRealName(player) instead of Player#getName()
  • NicknamingHook#getRealName(player) should now return null in case it'd return Player#getName()
Fixed bugs:
  • Fixed not running on 21R5
  • Fixed rare cases of not being able to join an arena if moving too fast (with kick-outofarena active)
  • Fixed team-balance turned off only prefering teams with >= 2 players than >= 1
  • Fixed MongoQueryException when looking up a player's rank
Support:
  • Added
    • 1.21.6 + 1.21.7 (Thanks to MetallicGoat )
    • Spigot-Party-API-PAF (allows you to use the free version instead of the payed extended one)
    • EssentialsX: Warning if interference is detected
  • Improved
    • TAB and FeatherBoard now avoid interference with scoreboards
    • Updated CloudNetV4 support to RC12
Added feature:
  • Configurable respawn protection, where a respawned player won't receive damage from enemies for x seconds, unless he attempts to punch them himself
Added config:
  • respawn-protection
Performance improvements:
  • Config files (that use the YamlConfigurationDescriptor API) now save more efficiently
  • Avoid quit players consuming more memory than needed due to strong reference to their Player class in private inventory
Improvements:
  • Players now receive their items immediately after respawning (without a 2 tick delay)
  • Punch to Deposit is now included with the "HyPixel" template
API changes:
  • Added
    • PlayerUseSpecialItemEvent#addSessionListener(callback)
    • PlayerUseSpecialItemEvent#getSessionListeners()
    • PlayerStopSpecialItemEvent
    • Arena#getSpecialItemSessions()
    • GameAPI#getLastTeleporterSpecialItemUse(Player)
    • PlayerQuitArenaEvent#hasLeaveMessage()
    • PlayerQuitArenaEvent#setHasLeaveMessage(boolean)
    • RemoteAPI#getReservationsCount(Arena)
    • RemoteAPI#hasReservation(UUID, Arena)
    • PlayerIngameRespawnEvent#getSpawnLocation()
    • PlayerIngameRespawnEvent#setSpawnLocation(Location)
    • PlayerIngamePostRespawnEvent
  • Breaking
    • PlayerIngameRespawnEvent, in the past, could have been called either after (usually) a player respawned or before (rarely). It now consistently gets called before a player respawns. Use the new PlayerIngamePostRespawnEvent if you want to handle after a respawn
Fixed bugs:
  • Fixed bw1058 migration not working for swm worlds
  • Fixed magnetic shoes not working at all
  • Reverted check custom team upgrades that would prevent non-vanilla enchants to be applicable
  • Fixed being able to tigger traps in endlobby
  • Fixed memory leak if player leaves while (and not through) the leave item delay was active
  • Fixed not being able to buy items in shop layouts with villager UIs
  • Hotfix for mem-leak within PaF extended API
  • Fixed potential "Cannot measure distance between world" error with tracker and TNT sheep
  • Fixed interact error if a spectator item only has commands without an handler
  • Fixed error when migrating from bw1058 with it using SQLite that hasn't been initialized yet
  • Fixed anvil GUI not opening on 1.21.5+
Added support:
Added configs:
  • mongodb-authdb
  • hologram-title-vertical-spacings (Thanks to MetallicGoat )
  • actionbar-ingame-text (Thanks to MetallicGoat )
  • auto-cloning-lobby-arenas-exclude-full
Performance improvement:
Improvements:
  • In arena's region file: Now also storing the key of entity types (1.14+) to improve cross-version support and to prepare for data-based entities
  • Scoreboards now get displayed immediately after join, even if stats aren't loaded yet (Thanks to MetallicGoat )
  • "performance" config now also effects frequency of trap updates. Default "normal" level increases frequency from 20ticks to 15ticks to improve the gameplay experience
  • Unified enum parsing by name in configs (now more gracious with subtle mistakes in naming)
API changes:
  • Added
    • PlayerUseSpecialItemEvent#getInventorySlot()
    • GameAPI#isSpectator(Player)
    • RemoteServer#getPlayers()
    • RemoteArena#isCloned()
    • RemoteArena#getCloneParent()
    • RemoteArena#getClones()
    • PlayerDataAPI#registerAchievementType(id, plugin, name, description)
    • NMSHelper#setFireballDirection(fireball, direction, speed)
    • ArenaSaveBlocksStopEvent
    • Arena#getDataFolder()
    • Arena#getDataRegenFile()
    • Arena#isPlaying(Player)
    • Arena#isSpectating(Player)
    • Upgrade#isApplicable(Arena)
    • PlayerTriggerUpgradeEvent#isAPICall()
    • PlayerTriggerUpgradeEvent#hasPlayer()
  • Change
    • UpgradeState#doUpgrade(level, player): Player param may now be null
  • Breaking
    • PlayerTriggerUpgradeEvent no longer inherits from PlayerEvent
    • PlayerTriggerUpgradeEvent#getPlayer() my be null now (if an upgrade is done using the API)
Fixed bugs:
  • Hotfix tracker not working for 1.21.4 (caused by a Minecraft client-side bug)
  • Improved auto-upgrade for REGION files from older version for 1.20R4+ (fixes breaking player heads etc)
  • Fixed being able to glitch the teleporter item by swapping the main hand while it counts down
  • "drops-killer-auto-pickup" config: Killer no longer receives the items if he dies before the player he killed (e.g. via arrow)
  • Fixed kill_with_half_heart achievement not working
  • Fixed potential NPE related to action bars (Thanks to MetallicGoat )
  • Fixed {countdown} and {running-time} not properly getting updated on the scoreboard if not used in the title (Thanks to MetallicGoat )
  • Fixed rare possibilities of "drops-killer-auto-pickup" still dropping something
  • Fixed holo min visibility radius breaking if set greater than sqrt(2^32-1) (caused by int overflow)
Improvements:
  • Players now get teleported to the main world's spawn instead of a random location if no hub position was set
Performance improvements:
  • Slightly improved efficiency by avoiding code execution in certain events early
  • Improved client-side caching for custom skull textures
API changes:
  • It is now possible to create custom TeamEnchantment targets
    • Added Constructor TeamEnchantment(Predicate<ItemStack>, String targetId, Enchantment, int lvl)
    • Added TeamEnchantment#isApplicable(ItemStack)
    • Added TeamEnchantment#getTargetId()
    • Added TeamEnchantment.Target#CUSTOM
    • Deprecated TeamEnchantment.Target#byMaterial(Material) is now deprecated for removal
  • Added
    • Helper#takeItems(player, is, amount)
    • Helper#giveItems(player, is, dropOverflow)
    • RejoinPlayerIssue.ALREADY_INSIDE
Fixed bugs:
  • Fixed NPE when starting the plugin for the first time
  • Fixed race-condition if player gets teleported to the lobby after the match started. This only happened on paper and was related to async tp
  • Fixed accidentally obfuscating base.json fields, whereby the hubPosition would get reset with every update
  • Fixed being able to participate in two arenas at the same time by attempting a rejoin while already joining another one
  • Fixed bugs (potentially only for ProxySync + paper 1.21.4) where players would turn into a buggy state when leaving as a spectator
  • Fixed being able to swap offhand items in lobby phase
  • Fixed steve skulls when applying (legacy) NBT on custom skulls for 1.20.5+
We released a new and free addon! Check it out: Level Shop

Added features:
  • Bypass blocked-commands using new permission "mbedwars.bypassblockedcommands"
  • Added ability to make spawners drop a given amount of items at the start of the match
  • Added feather fall upgrade
  • Traps may now be removed by the original buyer of the trap
Added support:
  • GeyserMC without Floodgate (prior we only supported Floodgate, now both)
Config changes:
  • Config "floor-foliage-simplified-destruction" will now also function in non-build areas
  • Config "interacting" set to false now also prevents flower pot interaction
  • Added config to spawners.yml: "spawn-at-start"
  • Changes for "drops-killer-auto-pickup":
    • Nothing will drop at all if there is no responsible killer
    • It now also works for exp besides items
  • For upgrade-shop.yml:
    • Configured levels config must now start with 1 and increment one-by-one
    • Any upgrades with a different schema will be ignored
    • This change shouldn't break anything for anyone
  • For upgrade-shop.yml:
    • The order of configured upgrades is now being respected and properly displayed in the GUI
Performance improvements:
  • Slightly improved efficiency of spawner dropping items
  • Improved efficiency of logic that checks whether a block is interactable
  • Slightly improved efficiency of messaging system
  • Slightly improved efficiency of metadata storage
  • Reduced memory footprint of our NBT system
  • Improved efficiency of getting arenas by their name
  • Improved efficiency of hook manager
  • Improved efficiency of upgrade state handling
  • Improved efficiency of actionbar text + it's now async
  • Improved efficiency (both RAM and CPU) of hologram logic
Improvements:
  • Now using related player (and not receiving) for papi placeholders when somebody joins or leaves
  • Reworked endlobby rejoin (spectators turning into players)
    • Prior, we would use the regular “player joining arena” logic. However, that caused a wide array of unexpected problems, whereby we are now adapting on the regular rejoin system.
  • Improved system that lookups for legacy block types when using a match-blocks file for REGION arenas from older spigot versions
  • Reverted change where all spawners would drop an item at the start of the round
  • BEST arena picker selector now fallbacks to a random arena if any is full instead of none (useful for spectating arenas)
  • "HyPixelV2" Upgrade shop layout: Now displaying next roman tier in the name
  • Updated default "HyPixel" template
API changes:
  • Changed the meaning of QuitPlayerMemory
    • Previously, it would only exist if the player was able to rejoin (e.g. his team was not eliminated)
    • This would be problematic, as that would prevent losses from being counted
    • Now, QuitPlayerMemory always get constructed when the player leaves, unless the match hasn’t started yet (status != LOBBY)
    • All memories get cleared once the status changes to RESETTING.
    • Added QuitPlayerMemory#isRejoinPermitted()
    • Added QuitPlayerMemory#setRejoinPermitted(boolean)
    • Added RejoinPlayerIssue.NOT_PERMITTED
  • Added:
    • enum RejoinPlayerCause
    • PlayerRejoinArenaEvent#getCause()
    • Permissions.BYPASS_BLOCKED_COMANDS
    • KickReason#isRageQuit()
    • PlayerOpenArenaChestEvent.ChestType enum
    • PlayerOpenArenaChestEvent.OpenPurpose enum
    • PlayerOpenArenaChestEvent#getChestType()
    • PlayerOpenArenaChestEvent#getPurpose()
    • Arena#getChestType(Block)
    • Arena#getChestInventory(Block, Player)
    • Upgrade#getMinLevel()
    • UpgradeState#setCurrentUpgradeLevel(UpgradeLevel)
    • UpgradeState#clearUpgrade(Upgrade)
    • UpgradeTriggerHandlerType.FEATHER_FALL
    • QueuedTrap class
    • PlayerRemoveTrapEvent class
    • UpgradeState#removeTrap(QueuedTrap, Player)
    • HologramEntity#setPerPlayerVisibility(Predicate<Player>)
    • HologramEntity#getPerPlayerVisibility()
    • HologramEntity#updatePerPlayerVisibility()
    • Helper#isInteractableBlock(Material)
    • DropType#getSpawnAtStart()
    • DropType#setSpawnAtStart(int)
  • Deprecated:
    • AddPlayerCause#END_LOBBY
    • Helper#parseSNBTAsJson(String)
    • Helper#composeJsonAsSNBT(JsonObject)
    • PlayerOpenArenaChestEvent#isTeamChest()
    • PlayerOpenArenaChestEvent#isPrivateChest()
  • Breaking:
    • Upgrade#getLevels() now returns a List instead of a Set
    • UpgradeState#getNextUpgradeLevel(Upgrade) may now return null if max was reached
    • UpgradeState#getActiveUpgrades() new returns Collection instead of List
    • UpgradeState#getQueuedTraps() now returns Queue<QueuedTrap> instead of List<UpgradeLevel>
    • UpgradeState#queueTrap(UpgradeLevel, boolean) now expects a QueuedTrap parameter instead of the UpgradeLevel
    • PlayerOpenArenaChestEvent now also gets called for vanilla chests (e.g. shulker boxes, but excluding furnaces etc)
    • Fixed PlayerTriggerUpgradeEvent's cancellation not being respected
Fixed bugs:
  • Fixed error when migrating from MongoDB
  • Fixed that MongoDB storage would look for users in the configured db and not the "admin" db
  • Fixed broken TNT sheep&QuickBuy for 1.21 - 1.21.2
  • Fixed spectators not becoming visible if "endlobby-tptolobby" was enabled
  • Fixed losses not being counted for players not-rejoinable players
  • Fixed "blocked-commands" may as well block "allowcommand-stats" and "hubcommands"
  • Fixed dropped items potentially not stacking in the inventory for 1.20.4 and older
  • Fixed not properly saving & clearing 1.17+ entities folder in vanilla worlds for arenas of type WORLD. As a result, dropped spawners, iron golems etc. would remain for the next match
  • Fixed error when running /bw backup list
  • Fixed odd warnings when trying to join a full arena while in party
  • Fixed bedrock players getting stuck on respawn screen (1.15+)
  • Fixed being able to pickup items when leaving as spectator with ProxySync addon
  • Fixed various rare CME related to the registry
  • Fixed that leaving a server (without /leave command) wasn't considered as a rage quit
  • Fixed not properly displaying upgrade amounts for 1.20R4 for "HyPixelV2" Upgrade shop layout
  • Fixed not respecting WorldUnloadEvent's cancellation, and thus potentially causing unexpected behavior
https://www.spigotmc.org/resources/23202/
5.5.png
Added support:
Improved support:
  • SWM: Support was added for its async world generation. It must be enabled in its configs - ASWM doesn't have that
Added feature:
  • Added double jumping to fireballs (disabled by default)
  • Added per-arena weather and time properties (found in arenas GUI, thanks to MetallicGoat )
  • Backported enderpearl tp sound from 1.20.3 to older versions
  • Similar (~) comparator to arena pickers
Config changes:
  • Added:
    • "custom-handler-config" to spawners
      • Custom spawner handlers added using the API may now also hold custom configs
    • customchatmessage-message-lobby
    • fireball-air-jump
    • fireball-air-jump-ticks
    • fireball-multiplier-knockback-enemy
    • fireball-multiplier-damage-enemies
    • explosion-destroys-items
    • redye-blocks-onpickup (Thanks to MetallicGoat )
  • "auto-clone-mode-types" now allows more concrete definition for modes per arena type instead of enforcing the same ones for all arenas (Thanks to MetallicGoat )
    • Note that existing configuration for that one will be overridden
    • Use '[ ]' as the key if you want to retain it as before
Performance improvements:
  • SQL storage: Improved efficiency by when fetching leaderboard entries
  • Greatly improved performance of spawner's nearby items lookup logic
  • Spawners with merging disabled: Reduced max dropped count from 50 to 20, until merging kicks in. Improves FPS while looking similar stacked
Improvements:
  • In case it is not possible to unload a world, it is now tried to identify which plugin is causing it
  • It is no longer possible to set hub positions inside arenas
  • Added new arena issue in case the match world is not loaded, which replaces the old confusing "missing world" warning for this scenario
  • Better handle regeneration attempts in case the match worlds have been unloaded
  • Setup gui: GUI title now contains arena name
  • Added various sounds to setup tool
  • Reduced amount of garbage that gets stored within database
  • Explosives no longer destroy dropped items
  • Removed delay until holograms (dealers etc) appear
  • 1.20.5: Show (max/min) player info beyond 16 (max stack size) and up to 99 in arena configuration gui
  • HypixelV2 shop item names now green when purchasable (Thanks to MetallicGoat )
  • Spawners now drop once on round start (Thanks to MetallicGoat )
  • Removed ranking.cfg and moved it to the new world holo system
  • Added warning with solution if "regeneration-region-efficient" is active, yet the match format has a problem whereby certain chunks wouldn't get properly generated
  • lobbybreak-enabled is no longer a requirement for movement of lobbys for cloned arenas
API changes:
  • Breaking changes:
    • Removed various API that were marked as deprecated
    • RemotePlayer#getLoginTime() now returns Instant instead of long
    • ConfigsLoadEvent#getTime() now returns Duration instead of long
    • Replaced PlayerDamageInfo#MAX_AGE_MS (long) with PlayerDamageInfo#MAX_AGE (Duration)
    • Replaced duration parameters of MigrationProcess.Callback methods with Duration instead of long
    • Marked certain methods as deprecated that might break when Spigot releases their ItemType and BlockType API
  • Added Javadoc for all packages (Thanks to MetallicGoat )
  • Added:
    • ArenaWinningDetermineEvent (Thanks to MetallicGoat )
    • SpectatorKickReason#SERVER_DISCONNECT (Thanks to MetallicGoat )
    • KickReason#SERVER_DISCONNECT (Thanks to MetallicGoat )
    • KickReason#TELEPORT (Thanks to MetallicGoat )
    • KickReason#isRejoinPermitted() (Thanks to MetallicGoat )
    • ThrowingBiConsumer class
    • ExecutionChain class
    • PlayerStats#setReadOnly(boolean)
    • PlayerAchievements#setReadOnly(boolean)
    • PlayerProperties#setReadOnly(boolean)
    • PlayerDataAPI#getUUIDByName(username, callback)
    • LazyReference.of(Supplier)
    • LazyReference#clear()
    • Spawner#getDroppedItems()
    • PlayerUseSpecialItemFireballEvent#getAutoIgnitionTicks()
    • PlayerUseSpecialItemFireballEvent#setAutoIgnitionTicks(ticks)
    • TeamSelectorController
    • ArenasGUIController
    • RankingStatueController
    • HologramControllerType.RANKING_STATUE
  • LazyReference now implements Supplier
  • Fixed various bugs related to buying with custom drop types
Fixed bugs:
  • Fixed broken anvil GUI on 1.21.2 and 1.21.3 (Thanks to MetallicGoat )
  • Fixed memory leak related to new player meta system
  • Fixed potential error when stopping server while in arena editor GUI (Thanks to MetallicGoat )
  • Fixed Setup hotbar not being reset to normal after server restart or reload (Thanks to MetallicGoat )
  • Fixed amount of missing materials in message being broken when buying items
  • Fixed very rare "PROCEDURE * already exists error", when starting multiple servers at the exact same time that use SQL
  • Fixed shop items with custom id's break on reload. Also fixes duplicate shop items stored in memory on reload (Thanks to MetallicGoat )
  • BW1058 migration: Don't freeze thread if it fails to sync stats/props of a player for 15 seconds
  • Fixed saving a world arena in the main world show "FAILED_WORLDPLAYERS" instead of "FAILED_IS_MAIN_WORLD" as the error
  • Fixed world potentially not unloading correctly as players are not getting teleported away accordingly
  • Fixed world regenerating warning about players in world and thereby not working, in case the hub chunks didn't get loaded in time
  • Fixed exact casing of arena being expected within /bw join
  • Fixed cancelling lobby countdown at exact min players amount and not one below
  • Fixed not being possible to migrate from bw1058 to sql/mongodb
  • Fixed console error when setup gui was open while stopping the server
  • Fixed guard dog damage multiplier config being broken (Thanks to MetallicGoat )
  • Fixed rare error when player gets teleported immediately after he joins the server on paper (Thanks to MetallicGoat )
  • Fixed errors with TNT sheep and mini shop on 1.21.3+
  • Fixed player items getting deleted when entering end-lobby as a spectator (Thanks to MetallicGoat )
  • Fixed interference with plugins causing spawn packets reordering using ProtocolLib, whereby NPCs wouldn't spawn at all
  • SQL storage: Fixed potentially not loading stats properly of last entry in leaderboard
  • Fixed potential error if an arena was removed while ArenasGUI was open
  • Fixed /bw tools playerdata stats <modify> not working for all players in the network
  • Fixed modifying knockback&explosive damage even if not inside a match
  • Fixed escaping errors if % was used in custom chat format
  • Fixed guard dog target not cleared after player death
  • Fixed breaking various "unusual items" items with "unusual-blockdrops-handling" causing IllegalArgumentExeption (Thanks to MetallicGoat )
  • Fixed spigot bug that would cause spectators to pick up items when leaving the server
  • Fixed spectators not seeing rejoining players with tab-removeplayers enabled
  • Fixed splash potion material not being usable for 1.8.8
  • Fixed no sound being played when buying item if no message has been configured for the given situation (Thanks to MetallicGoat )
Buy a license now
$22.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
Lifetime
Share and earn
Refer this resource and earn a 10% commission.
22,133 Views
151 Purchases
165 Downloads
Jan 31, 2021 Published
Apr 12, 2026 Updated
5.00 star(s)
Average rating (12)
4.5 MB File size
Open source
  1. No
DRM-free
  1. No
Unobfuscated
  1. No
Game mode
  1. Minigame
  1. Bedwars
Type
  1. Gameplay
  1. Monetization
  1. Minigame
Game mode
  1. Minigame
  1. Bedwars
Game mode (legacy)
  1. Minigame
  1. Bedwars
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Bungee
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
  1. 1.19
  1. 1.18
  1. 1.17
  1. 1.16
  1. 1.15
  1. 1.14
  1. 1.13
  1. 1.12
  1. 1.11
  1. 1.10
  1. 1.9
  1. 1.8
Supported languages
  1. English
  1. Spanish
  1. Russian
  1. German
  1. French
  1. Portugese
  1. Polish
  1. Turkish
  1. Chinese
  1. Italian
  1. Vietnamese
  1. Dutch
  1. Czech
  1. Hungarian
  1. Arabic
  1. Ukrainian
  1. Romanian
Includes DRM
Yes
Source access (legacy)
Closed source & obfuscated
Creator
Owner
Recommended for you
A EULA-solution for your players to spend money in cosmetics that can be used during matches.
5.00 star(s) 2 ratings
74 purchases
The ultimate solution for any network. Join and manage your arenas from any server.
5.00 star(s) 1 ratings
52 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,174 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,101 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 45 ratings
3,039 purchases
Share and earn
Refer this resource and earn a 10% commission.
22,133 Views
151 Purchases
165 Downloads
Jan 31, 2021 Published
Apr 12, 2026 Updated
5.00 star(s)
Average rating (12)
4.5 MB File size
Open source
  1. No
DRM-free
  1. No
Unobfuscated
  1. No
Game mode
  1. Minigame
  1. Bedwars
Type
  1. Gameplay
  1. Monetization
  1. Minigame
Game mode
  1. Minigame
  1. Bedwars
Game mode (legacy)
  1. Minigame
  1. Bedwars
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Bungee
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
  1. 1.19
  1. 1.18
  1. 1.17
  1. 1.16
  1. 1.15
  1. 1.14
  1. 1.13
  1. 1.12
  1. 1.11
  1. 1.10
  1. 1.9
  1. 1.8
Supported languages
  1. English
  1. Spanish
  1. Russian
  1. German
  1. French
  1. Portugese
  1. Polish
  1. Turkish
  1. Chinese
  1. Italian
  1. Vietnamese
  1. Dutch
  1. Czech
  1. Hungarian
  1. Arabic
  1. Ukrainian
  1. Romanian
Includes DRM
Yes
Source access (legacy)
Closed source & obfuscated
Creator
Owner
Recommended for you
A EULA-solution for your players to spend money in cosmetics that can be used during matches.
5.00 star(s) 2 ratings
74 purchases
The ultimate solution for any network. Join and manage your arenas from any server.
5.00 star(s) 1 ratings
52 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,174 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,101 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 45 ratings
3,039 purchases
Top