diff --git a/0.2.x/api/index.html b/0.2.x/api/index.html index 51653ec58..48b0d11e0 100644 --- a/0.2.x/api/index.html +++ b/0.2.x/api/index.html @@ -622,7 +622,7 @@

Hooking into the APIBedwarsAPI api = BedwarsAPI.getInstance(); ... -

Javadoc: https://jd.screamingsandals.org/sbw-0-2-x/BedWars-API/

+

Javadoc: https://docs.screamingsandals.org/BedWars/javadoc/0.2.36/

diff --git a/0.2.x/arena/index.html b/0.2.x/arena/index.html index 90e7c4f1b..02ec78d5f 100644 --- a/0.2.x/arena/index.html +++ b/0.2.x/arena/index.html @@ -666,7 +666,7 @@

Setting the arena positions

Adding teams

Now it's time to add the teams. To add a team, do /bw admin <arena> team add <team name> <team colour> <team size>.

-

For the colors, you can use this TeamColor enum: RED, BLUE, GREEN, YELLOW, MAGENTA, PINK, LIME, BLACK, WHITE, ORANGE, LIGHT_GRAY, GRAY, LIGHT_BLUE, CYAN and BROWN.

+

For the colors, you can use this TeamColor enum: RED, BLUE, GREEN, YELLOW, MAGENTA, PINK, LIME, BLACK, WHITE, ORANGE, LIGHT_GRAY, GRAY, LIGHT_BLUE, CYAN and BROWN.

Warning

You must create at least 2 teams.

diff --git a/0.2.x/search/search_index.json b/0.2.x/search/search_index.json index 6e04c799c..470ef2036 100644 --- a/0.2.x/search/search_index.json +++ b/0.2.x/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"ScreamingBedWars","text":"

Flexible BedWars plugin, formerly coded as a replacement for BedwarsRel. Supported versions: [1.8.8 - 1.21.3], recommended versions: [1.21.1].

"},{"location":"#support","title":"Support","text":"

If you need any help, you can contact us on Discord. Make sure to read this documentation, the servers' rules and the FAQ's before asking for support.

If you find any bugs, feel free to report it into GitHub issues, we will look into it.

"},{"location":"#features","title":"Features","text":""},{"location":"api/","title":"Using BedWars API","text":"

Warning

Note that API is going to be changed in future versions (0.3.0+)

"},{"location":"api/#maven","title":"Maven","text":"
<repositories>\n  <repository>\n    <id>screaming-repo</id>\n    <url>https://repo.screamingsandals.org/public/</url>\n  </repository>\n</repositories>\n\n<dependencies>\n  <dependency>\n    <groupId>org.screamingsandals.bedwars</groupId>\n    <artifactId>BedWars-API</artifactId>\n    <version>0.2.36</version>\n    <scope>provided</scope>\n  </dependency>\n</dependencies>\n
"},{"location":"api/#gradle","title":"Gradle","text":"
repositories {\n    maven { url 'https://repo.screamingsandals.org/public/' }\n}\n\ndependencies {\n    compileOnly 'org.screamingsandals.bedwars:BedWars-API:0.2.36'\n}\n
"},{"location":"api/#hooking-into-the-api","title":"Hooking into the API","text":"
import org.screamingsandals.bedwars.api.BedwarsAPI;\n\n...\nBedwarsAPI api = BedwarsAPI.getInstance();\n...\n

Javadoc: https://jd.screamingsandals.org/sbw-0-2-x/BedWars-API/

"},{"location":"arena/","title":"Making an arena","text":"

World

This tutorial presumes that you already have a world with your desired BedWars map, loaded with a plugin like Multiverse or SlimeWorldManager and that you already are in the world with your BedWars map.

"},{"location":"arena/#creating-the-arena","title":"Creating the arena","text":"

Create the arena by executing this command: /bw admin <arena name> add.

"},{"location":"arena/#setting-the-arena-positions","title":"Setting the arena positions","text":"

To set the first position, go into the first corner of your map and execute this command: /bw admin <arena name> pos1. To set the second position, go into the second corner of your map and execute this command: /bw admin <arena name> pos2.

Positions

pos1 is one corner of the arena and pos2 is the corner of the arena, that is opposing to pos1!

"},{"location":"arena/#adding-teams","title":"Adding teams","text":"

Now it's time to add the teams. To add a team, do /bw admin <arena> team add <team name> <team colour> <team size>.

For the colors, you can use this TeamColor enum: RED, BLUE, GREEN, YELLOW, MAGENTA, PINK, LIME, BLACK, WHITE, ORANGE, LIGHT_GRAY, GRAY, LIGHT_BLUE, CYAN and BROWN.

Warning

You must create at least 2 teams.

"},{"location":"arena/#setting-team-spawns","title":"Setting team spawns","text":"

Stand where you would like to have the team spawn, and look in the direction that you want your players to be oriented when they spawn, as the yaw will also be taken into account. Set the team's spawn with this command: /bw admin <arena> team spawn <team> and repeat until all teams have a spawn.

"},{"location":"arena/#setting-the-team-bed","title":"Setting the team bed","text":"

Stand on top of the bed, look down on the head of the bed and execute this command to set the bed location: /bw admin <arena name> team bed <team name>. Repeat until all teams have a bed.

Target blocks

The team's target block isn't limited to a bed, in fact BedWars has support for any block (the Dragon Egg, cakes and the Respawn Anchor have special support to allow BedWars to operate as EggWars, AnchorWars or CakeWars out of the box).

"},{"location":"arena/#adding-resource-generators","title":"Adding resource generators","text":"

Stand at the block where you want the generator to be and execute this command: /bw admin <arena name> spawner add <resource> <true/false>.

Valid default resources: bronze, iron and gold (diamond and emerald is not included out of the box, you will have to add it yourself in the configuration).

The true/false part of the command means if there should be a hologram (true) or if there should be no hologram (false).

"},{"location":"arena/#adding-merchants","title":"Adding merchants","text":"

Now it's time to add the shops. Stand where you would like your shop entity to be, look forward and execute this command: /bw admin <arena> store add <name of villager entity> [file with shop] [use main shop] (last two command parts can be omitted).

Example: /bw admin <arena> store add &aStore shop.yml false, /bw admin <arena> store add &aStore

Store entity types

If you would like to have a different entity as the store, do the following: /bw admin <arena> store type <living entity>. This sets entity type of store (Villager, Horse, Cow, etc.). If you would like to have a player with a skin as the shop keeper, use this command: /bw admin <arena> store type Player:skinname.

"},{"location":"arena/#final-steps","title":"Final steps","text":"

Add the lobby location for the arena by executing this command: /bw admin <arena> lobby.

Add the spectator location for the arena by executing this command: /bw admin <arena> spec.

Last but not least, remember to save the arena with /bw admin <arena> save.

"},{"location":"arena/#join-signs","title":"Join signs","text":"

You can use signs to join the arena. Follow these steps to create such sign.

Alternatively, you can create a leave sign by writing word leave instead of arena name.

"},{"location":"arena/#team-entities","title":"Team entities","text":"

These entities allow players to select their team by right clicking at them. There are two ways how these entities can be created.

"},{"location":"arena/#creation-by-jointeam-command","title":"Creation by jointeam command","text":""},{"location":"arena/#manual-creation","title":"Manual creation","text":"

Create any living entity with custom name same as team name and place it in your lobby. The plugin will use the name to determine the team.

"},{"location":"bungee/","title":"BungeeCord mode","text":"

Screaming BedWars supports a BungeeCord mode, which allows for single-arena servers with arena autojoin. This document provides instructions on how to configure this mode.

Velocity Support

This mode is also compatible with Velocity. Ensure bungee-plugin-message-channel is enabled in the velocity.toml file on your proxy.

"},{"location":"bungee/#configuring-game-servers","title":"Configuring Game Servers","text":"

To enable BungeeCord mode, locate the bungee section in config.yml and set enabled to true. Then, configure each option according to your requirements:

The configuration section might look like this:

bungee:\n  enabled: false\n  serverRestart: true\n  serverStop: false\n  server: hub\n  auto-game-connect: false\n  kick-when-proxy-too-slow: true\n  random-game-selection:\n    enabled: true\n    preselect-games: false\n  motd:\n    enabled: false\n    waiting: '%name%: Waiting for players [%current%/%max%]'\n    waiting_full: '%name%: Game is full [%current%/%max%]'\n    running: '%name%: Game is running [%current%/%max%]'\n    rebuilding: '%name%: Rebuilding...'\n    disabled: '%name%: Game is disabled'\n
"},{"location":"bungee/#configuring-hub-servers","title":"Configuring Hub Servers","text":"

While there is no lobby plugin for Screaming BedWars, any server selection plugin can be used, such as BungeeSigns. Plugins that can read MOTD are preferred as they can relay the game state to your hub server.

If you prefer to use inventory-based GUIs instead of signs and wish to display information from the server's MOTD, you can utilize any inventory plugin compatible with PlaceholderAPI, such as DeluxeMenus. The Pinger expansion is recommended, as it provides the necessary placeholders for this purpose. To create a server selector using DeluxeMenus, you may refer to this guide and review this example.

Synchronizing Statistics

For BungeeCord networks, it is common to synchronize statistics to a database. Configure the database section as described here. Ensure all servers are connected to the same database.

To access statistics in the lobby, the simplest option is to install Screaming BedWars on your hub server as well. Ensure this instance is NOT in BungeeCord mode. Alternatively, you can create an addon to retrieve statistics. The database structure is detailed at the end of the database configuration section.

"},{"location":"commands/","title":"Commands and Permissions","text":""},{"location":"commands/#permissions","title":"Permissions","text":"

Every permission can be prefixed with misat11.. Note that this egoism is deprecated and will be removed in a future release.

All permissions starting with bw.cmd. are allowed by default even if the permission is not explicitly given. This can be changed in config.yml in section default-permissions

default-permissions:\n  join: true\n  leave: true\n  stats: true\n  list: true\n  rejoin: true\n  autojoin: true\n  leaderboard: true\n
"},{"location":"commands/#commands","title":"Commands","text":"

Every command has its own specified permission in brackets.

<argument> is required argument. [argument] is optional argument, and the command can be executed if this argument is not specified. However, every optional argument before this optional argument must be specified in order to be able to use this argument.

"},{"location":"commands/#player-commands","title":"Player commands","text":""},{"location":"commands/#admin-commands","title":"Admin Commands","text":"

All these commands require bw.admin permission if not specified.

"},{"location":"commands/#arena-editing","title":"Arena editing","text":""},{"location":"commands/#cheat-commands","title":"Cheat commands","text":"

These command have to be enabled manually using the config option enable-cheat-command-for-admins. The admin must be in the game (running or in waiting lobby) in order to execute cheat.

Additionaly to /bw cheat command, there is the /bw cheatIn <game> <cheat> [params...] command. This command allows the admin to execute cheat in a game they are not joined to, or from console. Currently supports the following cheats: give, kill, destroybed ad destroyallbeds.

"},{"location":"commands/#misc","title":"Misc","text":""},{"location":"config/","title":"Configuration","text":"
# the language of the plugin's messages\nlocale: en\n# enables debug messages, may help with resolving certain problems\ndebug: false\n# is crafting in the arenas allowed?\nallow-crafting: false\n# should items be kept when the player dies in the arena?\nkeep-inventory-on-death: false\n# should player's armor be colored after choosing their team in the lobby?\nin-lobby-colored-leather-by-team: true\n# should the entity for joining teams have a visible name?\njointeam-entity-show-name: true\n# are teammates allowed to damage themselves?\nfriendlyfire: false\n# do items drop from players when killed in the arena?\nplayer-drops: true\n# should the players be joined to a random team after the lobby waiting time passes?\n# if false, the game won't start until everyone chooses a team\njoin-randomly-after-lobby-timeout: false\n# should BedWars prevent players from killing the merchants?\nprevent-killing-villagers: true\n# should the compass for choosing teams be available in the lobby?\ncompass-enabled: true\n# should BedWars join the player to a random team when he joins the lobby?\njoin-randomly-on-lobby-join: false\nadd-wool-to-inventory-on-join: true\nprevent-spawning-mobs: true\nspawner-holograms: true\nspawner-disable-merge: true\nprevent-lobby-spawn-mobs-in-radius: 16\nspawner-holo-height: 0.25\nspawner-holograms-countdown: true\ndamage-when-player-is-not-in-arena: false\nremove-unused-target-blocks: true\nallow-block-falling: true\ngame-start-items: false\nplayer-respawn-items: false\n# When game-start-items is enabled, the player is going to get all items listed in the following list.\n# Example:\n# gived-game-start-items:\n# - wooden_sword\n# - leather_helmet\n# - leather_boots\n# - leather_leggings\n# - leather_chestplate\ngived-game-start-items: []\ngived-player-respawn-items: []\ndisable-hunger: false\nautomatic-coloring-in-shop: true\nsell-max-64-per-click-in-shop: true\nenable-cheat-command-for-admins: false\nshopkeepers-are-silent: true\ndestroy-placed-blocks-by-explosion-except: []\ndestroy-placed-blocks-by-explosion: true\nholo-above-bed: true\nallow-spectator-join: false\ndisable-server-message:\n  player-join: false\n  player-leave: false\ndisable-flight: true\nrespawn-cooldown:\n  enabled: true\n  time: 5\nstop-team-spawners-on-die: false\nallow-fake-death: false\n# Whether or not should 1.19.4 display entities be used or not. Does work only on 1.19.4+\nprefer-1-19-4-display-entities: true\nremember-what-scoreboards-players-had-before: false\nuse-chunk-tickets-if-available: true\nreset-full-spawner-countdown-after-picking: true\nplayers-can-win-game-only-after-seconds: 0\nkick-players-upon-final-death:\n  enabled: false\n  delay: 5\nallowed-commands: []\nchange-allowed-commands-to-blacklist: false\nbungee:\n  enabled: false\n  serverRestart: true\n  serverStop: false\n  server: hub\n  auto-game-connect: false\n  kick-when-proxy-too-slow: true\n  random-game-selection:\n    enabled: true\n    preselect-games: false\n  motd:\n    enabled: false\n    waiting: '%name%: Waiting for players [%current%/%max%]'\n    waiting_full: '%name%: Game is full [%current%/%max%]'\n    running: '%name%: Game is running [%current%/%max%]'\n    rebuilding: '%name%: Rebuilding...'\n    disabled: '%name%: Game is disabled'\nfarmBlocks:\n  enable: false\n  blocks: []\nscoreboard:\n  enable: true\n  title: '&a%game%&r - %time%'\n  bedLost: '&c\u2718'\n  anchorEmpty: '&e\u2718'\n  bedExists: '&a\u2714'\n  teamTitle: '%bed%%color%%team%'\ntitle:\n  enabled: true\n  fadeIn: 0\n  stay: 20\n  fadeOut: 0\nshop:\n  rows: 4\n  render-actual-rows: 6\n  render-offset: 9\n  render-header-start: 0\n  render-footer-start: 45\n  items-on-row: 9\n  show-page-numbers: true\n  inventory-type: CHEST\n  citizens-enabled: false\n  allow-execution-of-console-commands: true\nitems:\n  jointeam: COMPASS\n  leavegame: SLIME_BALL\n  startgame: DIAMOND\n  shopback: BARRIER\n  shopcosmetic: GRAY_STAINED_GLASS_PANE\n  pageback: ARROW\n  pageforward: ARROW\n  team-select: WHITE_WOOL\nvault:\n  enable: true\n  reward:\n    kill: 5\n    win: 20\n    final-kill: 5\n    bed-destroy: 0\nresources:\n  gold:\n    material: GOLD_INGOT\n    color: GOLD\n    name: Gold\n    interval: 20\n    translate: resource_gold\n    spread: 1.0\n  iron:\n    material: IRON_INGOT\n    color: GRAY\n    name: Iron\n    interval: 10\n    translate: resource_iron\n    spread: 1.0\n  bronze:\n    material: BRICK\n    color: DARK_RED\n    name: Bronze\n    interval: 1\n    translate: resource_bronze\n    spread: 1.0\nrespawn:\n  protection-enabled: true\n  protection-time: 10\n  show-messages: true\nspecials:\n  action-bar-messages: true\n  dont-show-success-messages: false\n  rescue-platform:\n    is-breakable: false\n    delay: 0\n    break-time: 10\n    distance: 1\n    material: GLASS\n  protection-wall:\n    is-breakable: false\n    delay: 20\n    break-time: 0\n    width: 5\n    height: 3\n    distance: 2\n    material: CUT_SANDSTONE\n  tnt-sheep:\n    speed: 0.25\n    follow-range: 10.0\n    max-target-distance: 32\n    explosion-time: 8\n  arrow-blocker:\n    protection-time: 10\n    delay: 5\n  warp-powder:\n    teleport-time: 6\n    delay: 0\n  magnet-shoes:\n    probability: 75\n  golem:\n    speed: 0.25\n    follow-range: 10\n    health: 20\n    name-format: '%teamcolor%%team% Golem'\n    show-name: true\n    delay: 0\n    collidable: false\n  teamchest:\n    turn-all-enderchests-to-teamchests: true\n  throwable-fireball:\n    damage: 3.0\n    incendiary: true\n    damage-thrower: true\n  auto-igniteable-tnt:\n    explosion-time: 8\n    damage-placer: true\n    damage: 4.0\nsounds:\n  bed_destroyed:\n    sound: ENTITY_ENDER_DRAGON_GROWL\n    volume: 1\n    pitch: 1\n  my_bed_destroyed:\n    sound: ENTITY_ENDER_DRAGON_GROWL\n    volume: 1\n    pitch: 1\n  countdown:\n    sound: UI_BUTTON_CLICK\n    volume: 1\n    pitch: 1\n  game_start:\n    sound: ENTITY_PLAYER_LEVELUP\n    volume: 1\n    pitch: 1\n  team_kill:\n    sound: ENTITY_PLAYER_LEVELUP\n    volume: 1\n    pitch: 1\n  player_kill:\n    sound: ENTITY_PLAYER_BIG_FALL\n    volume: 1\n    pitch: 1\n  item_buy:\n    sound: ENTITY_ITEM_PICKUP\n    volume: 1\n    pitch: 1\n  upgrade_buy:\n    sound: ENTITY_EXPERIENCE_ORB_PICKUP\n    volume: 1\n    pitch: 1\n  respawn_cooldown_wait:\n    sound: UI_BUTTON_CLICK\n    volume: 1\n    pitch: 1\n  respawn_cooldown_done:\n    sound: ENTITY_PLAYER_LEVELUP\n    volume: 1\n    pitch: 1\ngame-effects:\n  end:\n    effects:\n    - ==: Firework\n      flicker: false\n      trail: false\n      colors:\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      fade-colors:\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      type: BALL\n    power: 1\n    type: Firework\n  start: {}\n  kill: {}\n  teamkill: {}\n  lobbyjoin: {}\n  lobbyleave: {}\n  respawn: {}\n  beddestroy: {}\n  warppowdertick: {}\nlobby-scoreboard:\n  enabled: true\n  title: '&eBEDWARS'\n  content:\n  - ' '\n  - '&fMap: &2%arena%'\n  - '&fPlayers: &2%players%&f/&2%maxplayers%'\n  - ' '\n  - '&fWaiting ...'\n  - ' '\nstatistics:\n  enabled: true\n  type: yaml\n  show-on-game-end: false\n  bed-destroyed-kills: false\n  scores:\n    kill: 10\n    final-kill: 0\n    die: 0\n    win: 50\n    bed-destroy: 25\n    lose: 0\n    record: 100\ndatabase:\n  host: localhost\n  port: 3306\n  db: database\n  user: root\n  password: secret\n  table-prefix: bw_\n  type: mysql\n  driver: default\n  params:\n    useSSL: false\n    serverTimezone: Europe/Prague\n    autoReconnect: true\n    cachePrepStmts: true\n    prepStmtCacheSize: 250\n    prepStmtCacheSqlLimit: 2048\nbossbar:\n  use-xp-bar: false\n  lobby:\n    enable: true\n    color: YELLOW\n    style: SEGMENTED_20\n  game:\n    enable: true\n    color: GREEN\n    style: SEGMENTED_20\n  # The backend-entity field is present only if the server is running on 1.8.8. Allowed values: wither, dragon\n  backend-entity: dragon\nholograms:\n  enabled: true\n  headline: Your &eBEDWARS&f stats\n  leaderboard:\n    headline: '&6Bedwars Leaderboard'\n    format: '&l%order%. &7%name% - &a%score%'\n    size: 10\nchat:\n  override: true\n  format: '<%teamcolor%%name%&r> '\n  separate-chat:\n    lobby: false\n    game: false\n  send-death-messages-just-in-game: true\n  send-custom-death-messages: true\n  default-team-chat-while-running: true\n  all-chat-prefix: '@a'\n  team-chat-prefix: '@t'\n  all-chat: '[ALL] '\n  team-chat: '[TEAM] '\n  death-chat: '[DEATH] '\n  disable-all-chat-for-spectators: false\nrewards:\n  enabled: false\n  player-win:\n  - /example {player} 200\n  player-win-run-immediately:\n  - /example {player} 200\n  player-end-game:\n  - /example {player} {score}\n  player-destroy-bed:\n  - /example {player} {score}\n  player-kill:\n  - /example {player} 10\n  player-final-kill:\n  - /example {player} 10\n  player-game-start:\n  - /example {player} 10\n  player-early-leave:\n  - /example {player} {death} 10\n  team-win:\n  - /example {team} 10\n  player-team-win:\n  - /example {team} {death} 10\n  game-start:\n  - /example Hello World!\nlore:\n  generate-automatically: true\n  text:\n  - '&7Price:'\n  - '&7%price% %resource%'\n  - '&7Amount:'\n  - '&7%amount%'\nsign:\n  lines:\n  - '&c&l[BedWars]'\n  - '%arena%'\n  - '%status%'\n  - '%players%'\n  block-behind:\n    enabled: false\n    waiting: ORANGE_STAINED_GLASS\n    rebuilding: BROWN_STAINED_GLASS\n    in-game: GREEN_STAINED_GLASS\n    game-disabled: RED_STAINED_GLASS\nhotbar:\n  selector: 0\n  color: 1\n  start: 2\n  leave: 8\nbreakable:\n  enabled: false\n  asblacklist: false\n  explosions: false\n  blocks: []\nleaveshortcuts:\n  enabled: false\n  list:\n  - leave\nmainlobby:\n  enabled: false\n  location: ''\n  world: ''\nturnOnExperimentalGroovyShop: false\npreventSpectatorFlyingAway: false\nremovePurchaseMessages: false\nremovePurchaseFailedMessages: false\nremoveUpgradeMessages: false\ndisableCakeEating: true\ndisableDragonEggTeleport: true\npreventArenaFromGriefing: true\nupdate-checker:\n  zero:\n    console: true\n    admins: true\n  one:\n    console: true\n    admins: true\ntarget-block:\n  allow-destroying-with-explosions: false\n  respawn-anchor:\n    fill-on-start: true\n    enable-decrease: true\n    sound:\n      charge: BLOCK_RESPAWN_ANCHOR_CHARGE\n      used: BLOCK_GLASS_BREAK\n      deplete: BLOCK_RESPAWN_ANCHOR_DEPLETE\n  cake:\n    destroy-by-eating: true\nevent-hacks:\n  damage: false\n  destroy: false\n  place: false\ntab:\n  enable: false\n  header:\n    enabled: true\n    contents:\n    - '&aMy awesome BedWars server'\n    - '&bMap: %map%'\n    - '&cPlayers: %respawnable%/%max%'\n  footer:\n    enabled: true\n    contents:\n    - '&eexample.com'\n    - '&fWow!!'\n    - '&a%spectators% are watching this match'\n  hide-spectators: true\n  hide-foreign-players: false\ndefault-permissions:\n  join: true\n  leave: true\n  stats: true\n  list: true\n  rejoin: true\n  autojoin: true\n  leaderboard: true\n  party: true\n# The following sections requires Parties plugin to be installed\nparty:\n  enabled: false\n  autojoin-members: false\n  notify-when-warped: true\n
"},{"location":"config/#custom-resources","title":"Custom resources","text":"

Tip

If you want to switch to emerald, diamond, iron and gold specifically, you may want to have another Hypixel features on your server, like upgrades. In that case, we would recommend you checking out SBA.

Open the config (plugins/BedWars/config.yml) and scroll down, until you find a section called resources. Using Ctrl+F helps you to search for it.

Here is an example on how to add emerald, diamond, iron and gold.

resources:\n  emerald: # resource name\n    material: EMERALD # resource material (https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)\n    color: GREEN # resource color (https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ChatColor.html)\n    name: Emerald # resource in-game name\n    interval: 60 # resource spawn time in seconds\n    translate: resource_emerald # resource translation key\n    spread: 1.0 # resource spread radius\n  diamond:\n    material: DIAMOND\n    color: BLUE\n    name: Diamond\n    interval: 30\n    translate: resource_diamond\n    spread: 1.0\n  iron:\n    material: IRON_INGOT\n    color: WHITE\n    name: Iron\n    interval: 2\n    translate: resource_iron\n    spread: 1.0\n  gold:\n    material: GOLD_INGOT\n    color: GOLD\n    name: Gold\n    interval: 8\n    translate: resource_gold\n    spread: 1.0\n
"},{"location":"config/#database-connection","title":"Database connection","text":"

In config.yml you can find a section called database. Under this section, you can configure the database connection. Currently only MySQL and MariaDB are officially supported, yet the configuration allows you to provide a custom driver for a newer version of the database system or a driver for a different SQL-like database system like PostgreSQL. Pull requests fixing support with different database systems are welcome :)

To enable the database connection, you have to set something to be saved in database. Currently only statistics can be saved to the database. To enable that, locate the statistics section and switch type from yaml to database.

There are following fields in the database section:

Driver version

If you use an ancient Minecraft version like 1.8.8, but you have new version of MySQL/MariaDB, the driver bundled in Spigot 1.8.8 may be incompatible. Get a new version of MySQL Connector J here: select Platform Independent, download the archive and extract the mysql-connector-j-8.x.x.jar file from it (other files from the archive are not relevant). Put the JAR file in plugins/BedWars folder, and change driver from default to the name of the file, eg. mysql-connector-j-8.4.0.jar.

stats_players table structure

In specific cases, the automatic creation of the database table may fail. In that case you may need to create it manually, using the following code or its variation.

CREATE TABLE IF NOT EXISTS `bw_stats_players` (\n  `kills` int(11) NOT NULL DEFAULT '0',\n  `wins` int(11) NOT NULL DEFAULT '0',\n  `score` int(11) NOT NULL DEFAULT '0',\n  `loses` int(11) NOT NULL DEFAULT '0',\n  `name` varchar(255) NOT NULL,\n  `destroyedBeds` int(11) NOT NULL DEFAULT '0',\n  `uuid` varchar(255) NOT NULL,\n  `deaths` int(11) NOT NULL DEFAULT '0',\n  PRIMARY KEY (`uuid`)\n);\n
"},{"location":"config/#game-effects","title":"Game effects","text":"

In config.yml you can find a section called game-effects. Here you can set some visual effects that will enhance your game experiences.

"},{"location":"config/#events","title":"Events","text":""},{"location":"config/#effect-types","title":"Effect types","text":""},{"location":"config/#particle","title":"Particle","text":"
game-effects:\n  start:\n    type: Particle\n    value: LAVA # uppercase key from the list\n    # options below are optional\n    count: 2 # how many particles will be spawned (default - 1)\n    offsetX: 1 # offset from the event location (default - 0 for each coordinate)\n    offsetY: 1\n    offsetZ: 1\n    extra: 1 # extra data, depends on each particle (default - 1)\n
"},{"location":"config/#effect","title":"Effect","text":"
game-effects:\n  start:\n    type: Effect\n    value: DOOR_CLOSE # uppercase key from the list\n
"},{"location":"config/#firework","title":"Firework","text":"

Firework effect types are listed here

game-effects:\n  end:\n    type: Firework\n    power: 1 # power of the firework\n    effects: # list of firework effects\n    - ==: Firework\n      flicker: false\n      trail: false\n      colors: # list of colors\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      fade-colors:\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      type: BALL # effect type\n

"},{"location":"config/#list","title":"List","text":"
game-effects:\n  end:\n    type: List\n    list: # list of effects\n    - type: Particle\n      value: LAVA\n      count: 2\n      extra: 1\n    - type: Effect\n      value: DOOR_CLOSE # uppercase key from the list\n    - type: Firework\n      power: 1 # power of the firework\n      effects: # list of firework effects\n      - ==: Firework\n        flicker: false\n        trail: false\n        colors: # list of colors\n        - ==: Color\n          RED: 255\n          BLUE: 255\n          GREEN: 255\n        fade-colors:\n        - ==: Color\n          RED: 255\n          BLUE: 255\n          GREEN: 255\n        type: BALL # effect type\n
"},{"location":"config/#custom-language","title":"Custom language","text":"

And that's it, you have your own language!

"},{"location":"placeholderapi/","title":"PlaceholderAPI","text":"

This plugin registers placeholders to PlaceholderAPI.

These placeholders are intended for use in other plugins and may not function if used in the BedWars configuration. However, they can be utilized in shop.yml and other shop-related files if PlaceholderAPI is installed. Use the slightly modified syntax: %papi.<placeholder_name>% (e.g., %papi.bedwars_all_games_players%).

"},{"location":"placeholderapi/#global-placeholders","title":"Global placeholders","text":""},{"location":"placeholderapi/#current-information-about-players","title":"Current information about players","text":"

The placeholders in this section are specific to a player, based on the context in which they are used, most commonly the viewer of a message, hologram, etc.

"},{"location":"placeholderapi/#information-about-the-current-game","title":"Information about the current game","text":"

Some of these placeholders contain a parameter <team_name>. Replace it with the name of the team. For example, if the team name is red, you would use %bedwars_current_game_team_red_bed%.

"},{"location":"placeholderapi/#information-about-the-players-team","title":"Information about the player's team","text":""},{"location":"placeholderapi/#game-information-placeholders","title":"Game information placeholders","text":"

When using these placeholders, replace <game> with the specific game identifier and <team_name> with the name of the team. For example, if the game identifier is game1 and the team name is red, you would use %bedwars_game_game1_team_red_colored%.

"},{"location":"placeholderapi/#statistics-placeholders","title":"Statistics placeholders","text":""},{"location":"placeholderapi/#player-stats-placeholders","title":"Player stats placeholders","text":"

Custom leaderboards

You can create custom leaderboards using placeholders to display player statistics in various ways. To achieve this, consider using the ajLeaderboards plugin with the placeholders listed below. This allows for greater flexibility beyond what the BedWars plugin offers.

The placeholders in this section are specific to a player, based on the context in which they are used, most commonly the viewer of a message, hologram, etc.

"},{"location":"placeholderapi/#any-player-stats-placeholders","title":"Any player stats placeholders","text":"

When using these placeholders, replace <player> with the specific player's name. For example, if the player's name is Misat11, you would use %bedwars_otherstats_Misat11_deaths%.

"},{"location":"shop/","title":"Shop","text":"

Screaming BedWars plugin uses our own lib called SimpleInventories to create and render inventory-based guis, and therefore shops. This article will show you some basics of this format. Check this wiki for more advanced variables.

"},{"location":"shop/#creating-a-new-item","title":"Creating a new item","text":"

To create a new item, first you need to know internal item's name. You can use Minecraft Wiki to get the specific resource name. The name usually starts with minecraft:, this part can be omitted from the final name.

You can also use modern names in legacy environments (1.8.8-1.12.2). If the modern name does not work, check this page for old names. Old names are deprecated and they may not be supported in future releases of BedWars.

There are two supported formats of items. We call them short stack and long stack.

"},{"location":"shop/#using-short-stack","title":"Using short stack","text":"

This format can describe only material name, amount, display name and lore. Except for material name, every part is optional. Each part is divided using semicolon.

items:\n- stone\n- dirt;2\n- diamond_pickaxe;;Super Sword\n- tnt;3;Trinitrotoluene;Does explode\n

To specify price and make the item buyable, suffix this format with for <amount> <resource>:

items:\n- stone for 1 bronze\n- dirt;2 for 3 iron\n- diamond_pickaxe;;Super Sword for 5 gold\n- tnt;3;Trinitrotoluene;Does explode for 9 iron\n

In order to be able to specify other attributes (for example properties), we have to convert this from string to map. This is done by splitting the string into variables stack and price:

items:\n- stack: stone\n  price: 1 bronze\n- stack: dirt;2\n  price: 3 iron\n- stack: diamond_pickaxe;;Super Pickaxe\n  price: 5 gold\n- stack: tnt;3;Trinitrotoluene;Does explode\n  price: 9 iron\n
"},{"location":"shop/#using-long-stack","title":"Using long stack","text":"

Long stack allows you to create items with enchantments and other attributes. Let's see the previous example rewritten in this format:

items:\n- stack: \n    type: stone\n  price: 1 bronze\n- stack: \n    type: dirt\n    amount: 2\n  price: 3 iron\n- stack: \n    type: diamond_pickaxe\n    display-name: Super Pickaxe\n  price: 5 gold\n- stack: \n    type: tnt\n    amount: 3\n    display-name: Trinitrotoluene\n    lore:\n    - Does explode\n  price: 9 iron\n

As we can see, the stack attribute is now a map, which allows more attributes to be present. For example, we can enchant our Super Pickaxe with Fortune III.

- stack: \n    type: diamond_pickaxe\n    display-name: Super Pickaxe\n    enchants:\n      fortune: 3\n  price: 5 gold\n

The enchantment names can be found here.

For list of all available options visit this page.

"},{"location":"shop/#using-item-as-a-category","title":"Using item as a category","text":"

You can use any item as a category (even if the item is in another category). Players can then click on that item to open the category. The format is very similar, the only thing you have to specify is a list called items, where you put items of that specific category. Format of items in items is same as format in the base data list.

- stack: \n    type: diamond_pickaxe\n    display-name: Super Pickaxes\n    lore:\n     - You will never mine with anything else!\n  items:\n    - wooden_pickaxe for 10 gold\n    - golden_pickaxe for 20 gold\n
"},{"location":"specials/","title":"Specials","text":"

Special items can be sold in the shop and have unique behaviors when used. For example, they can spawn entities, reduce knockback, gives potion effects, etc.

Addons can also introduce new special items.

Every special item in the shop is configured using properties.

"},{"location":"specials/#arrow-blocker","title":"Arrow Blocker","text":"

The Arrow Blocker is an item that allows you to block arrows for a certain period of time when used.

There are two configurable options for an Arrow Blocker:

Here is an example of the Arrow Blocker configured in the shop:

- price: 5 of gold\n  properties:\n  - name: \"ArrowBlocker\"\n    protection-time: 10\n    delay: 5\n  stack:\n    type: ender_eye\n    display-name: \"Arrow Blocker\"\n    lore:\n      - \"Block arrows that are coming\"\n      - \"for you with black magic.\"\n      - \"I mean, with this item.\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  arrow-blocker:\n    protection-time: 10\n    delay: 5\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 5 of gold\n  properties: \"ArrowBlocker\"\n  stack:\n    type: ender_eye\n    display-name: \"Arrow Blocker\"\n    lore:\n      - \"Block arrows that are coming\"\n      - \"for you with black magic.\"\n      - \"I mean, with this item.\"\n
"},{"location":"specials/#auto-ignitable-tnt","title":"Auto Ignitable TNT","text":"

The Auto Ignitable TNT is a special item that spawns ignited TNT when placed.

There are three configurable options for the Auto Ignitable TNT:

TNT jumping

Addons like SBA provide additional customization to this item related to jumping. Please refer to their documentation for more details.

Here is an example of the Auto Ignitable TNT configured in the shop:

- price: 3 of iron\n  properties:\n  - name: \"AutoIgniteableTnt\"\n    explosion-time: 5\n    damage-placer: false\n    damage: 4.0\n  stack:\n    type: tnt\n    display-name: \"Autoigniteable TNT\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  auto-igniteable-tnt:\n    explosion-time: 5\n    damage-placer: false\n    damage: 4.0\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 3 of iron\n  properties: \"AutoIgniteableTnt\"\n  stack:\n    type: tnt\n    display-name: \"Autoigniteable TNT\"\n
"},{"location":"specials/#golem","title":"Golem","text":"

The Golem is a special item that spawns a golem to attack enemy teams.

There are multiple configurable options for this special item:

Here is an example of the Golem configured in the shop:

- price: 24 of iron\n  properties:\n  - name: \"Golem\"\n    speed: 0.25\n    follow-range: 16.0\n    health: 20\n    show-name: true\n    delay: 0\n    collidable: true\n    name-format: \"%teamcolor%%team% Golem\"\n  stack:\n    type: ghast_spawn_egg\n    display-name: \"Golem\"\n    lore:\n      - \"An iron golem that will protect\"\n      - \"your team from the enemies.\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  golem:\n    speed: 0.25\n    follow-range: 16.0\n    health: 20\n    show-name: true\n    delay: 0\n    collidable: true\n    name-format: \"%teamcolor%%team% Golem\"\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 24 of iron\n  properties: \"Golem\"\n  stack:\n    type: ghast_spawn_egg\n    display-name: \"Golem\"\n    lore:\n      - \"An iron golem that will protect\"\n      - \"your team from the enemies.\"\n
"},{"location":"specials/#lucky-block","title":"Lucky Block","text":"

The Lucky Block is a special item inspired by the LuckyBlock Addon for BedWarsRel. This block can be placed anywhere, and when broken, a random configured event will occur. Lucky Blocks are not available in the shop by default; therefore, you must add them to the shop manually.

Like other special items, Lucky Blocks use properties for their configuration. The property for these blocks is called LuckyBlock and includes a data section. This section is a list of events that may occur.

There are 5 event types:

Below is an example of a fully configured Lucky Block with all these events included. Additionally, each event can have a variable message. This message will be sent to the player who broke the block.

- price: 7 of iron\n  properties:\n  - name: \"LuckyBlock\"\n    data:\n    - type: tnt\n    - type: nothing\n    - type: teleport\n      height: 50\n    - type: item\n      stack: dirt\n      message: \"This sends you message. You can add it to any event type.\"\n    - type: potion\n      effect:\n        effect: blindness\n        amplifier: 2\n        duration: 100\n        ambient: true\n        particles: true\n        icon: true\n  stack:\n    type: sponge\n    amount: 1\n    display-name: \"Lucky Block\"\n

Unlike other special items, there is no global configuration for Lucky Blocks.

"},{"location":"specials/#magnet-shoes","title":"Magnet Shoes","text":"

Wearing this special item randomly absorbs all received knockback, giving you an advantage in PvP.

There is a single configurable option for this special item:

Here is an example of Magnet Shoes configured in the shop:

- price: 6 of iron\n  properties:\n  - name: \"MagnetShoes\"\n    probability: 75\n  stack:\n    type: iron_boots\n    display-name: \"Magnet-Shoes\"\n    lore:\n      - \"Wear those shoes and have a 75%\"\n      - \"chance of getting no knockback!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  magnet-shoes:\n    probability: 75\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 6 of iron\n  properties: \"MagnetShoes\"\n  stack:\n    type: iron_boots\n    display-name: \"Magnet-Shoes\"\n    lore:\n      - \"Wear those shoes and have a 75%\"\n      - \"chance of getting no knockback!\"\n
"},{"location":"specials/#protection-wall","title":"Protection Wall","text":"

The Protection Wall is a special item that builds a wall when used.

There are several configurable options for this item:

Here is an example of a Protection Wall configured in the shop:

- price: 64 of bronze\n  properties:\n  - name: \"protectionwall\"\n    is-breakable: false\n    delay: 20\n    break-time: 0\n    width: 5\n    height: 3\n    distance: 2\n    material: cut_sandstone\n  stack:\n    type: bricks\n    display-name: \"Protection Wall\"\n    lore:\n      - \"Instantly builds a wall that\"\n      - \"can save your life!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  protection-wall:\n    is-breakable: false\n    delay: 20\n    break-time: 0\n    width: 5\n    height: 3\n    distance: 2\n    material: cut_sandstone\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 64 of bronze\n  properties: \"protectionwall\"\n  stack:\n    type: bricks\n    display-name: \"Protection Wall\"\n    lore:\n      - \"Instantly builds a wall that\"\n      - \"can save your life!\"\n
"},{"location":"specials/#rescue-platform","title":"Rescue Platform","text":"

The Rescue Platform is similar to the Protection Wall, but instead of wall it builds a platform that the player can use when falling to prevent fall damage or falling off the map.

There are several configurable options for this item:

Here is an example of a Rescue Platform configured in the shop:

- price: 64 of bronze\n  properties:\n  - name: \"rescueplatform\"\n    is-breakable: false\n    delay: 0\n    break-time: 10\n    distance: 1\n    material: glass\n  stack:\n    type: blaze_rod\n    display-name: \"Rescue Platform\"\n    lore:\n      - \"Protect yourself from falling into\"\n      - \"the void with a Rescue Platform.\"\n      - \"This is your last hope!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  rescue-platform:\n    is-breakable: false\n    delay: 0\n    break-time: 10\n    distance: 1\n    material: glass\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 64 of bronze\n  properties: \"rescueplatform\"\n  stack:\n    type: blaze_rod\n    display-name: \"Rescue Platform\"\n    lore:\n      - \"Protect yourself from falling into\"\n      - \"void with a Rescue Platform.\"\n      - \"This is your last hope!\"\n
"},{"location":"specials/#team-chest","title":"Team Chest","text":"

Placing this item creates a chest accessible only by the placing team. All of these chests share the same inventory, similarly to an ender chest.

For legacy reasons, any ender chest in the shop is turned into a team chest regardless of the given properties. To disable this behavior, you have to set specials.teamchest.turn-all-enderchests-to-teamchests to false in config.yml.

Explicitly created team chests in the shop look like this:

- price: 1 of gold\n  properties: \"teamchest\"\n  stack: ender_chest\n

Warning

The type needs to be ender_chest for the item to work!

"},{"location":"specials/#throwable-fireball","title":"Throwable Fireball","text":"

The Throwable Fireball represents a fireball that can be thrown from the hand of a player.

There are several configurable options for this item:

Fireball jumping

Addons like SBA provide additional customization to this item related to jumping. Please refer to their documentation for more details.

Here is an example of a Throwable Fireball configured in the shop:

- price: 40 of iron\n  properties:\n  - name: \"ThrowableFireball\"\n    damage: 3.0\n    incendiary: true\n    damage-thrower: true\n  stack:\n    type: fire_charge\n    display-name: \"Fireball\"\n    lore:\n      - \"Is it a bird? Is it a plane?\"\n      - \"By the time you know\"\n      - \"you are dead!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  throwable-fireball:\n    damage: 3.0\n    incendiary: true\n    damage-thrower: true\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 40 of iron\n  properties: \"ThrowableFireball\"\n  stack:\n    type: fire_charge\n    display-name: \"Fireball\"\n    lore:\n      - \"Is it a bird? Is it a plane?\"\n      - \"By the time you know\"\n      - \"you are dead!\"\n
"},{"location":"specials/#tnt-sheep","title":"TNT Sheep","text":"

The TNT Sheep is a special item that summons an explosive sheep, following enemy players. Upon summoning, it targets the closest enemy.

There are several configurable options for this special item:

Here is an example of the TNT Sheep configured in the shop:

- price: 10 of gold\n  properties:\n  - name: \"TNTSheep\"\n    speed: 0.25\n    follow-range: 10.0\n    max-target-distance: 32\n    explosion-time: 8\n  stack:\n    type: sheep_spawn_egg\n    display-name: \"TNT Sheep\"\n    lore:\n      - \"Use the TNT-Sheep! It will\"\n      - \"walk towards your closest enemy\"\n      - \"and explode within 8 seconds!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  tnt-sheep:\n    speed: 0.25\n    follow-range: 10.0\n    max-target-distance: 32\n    explosion-time: 8\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 10 of gold\n  properties: \"TNTSheep\"\n  stack:\n    type: sheep_spawn_egg\n    display-name: \"TNT Sheep\"\n    lore:\n      - \"Use the TNT-Sheep! It will\"\n      - \"walk towards your closest enemy\"\n      - \"and explode within 8 seconds!\"\n
"},{"location":"specials/#tracker","title":"Tracker","text":"

The Tracker is a simple special item that displays the distance and direction of the nearest enemy. It is recommended for the Tracker to be a compass since the item sets the compass target of its user. Unlike other special items, this item is permanent, and you can use it repeatedly.

Here is an example of the Tracker configured in the shop:

- price: 5 of iron\n  properties: \"Tracker\"\n  stack:\n    type: compass\n    display-name: \"Tracker\"\n    lore:\n      - \"Wanna know where your closest target is?\"\n      - \"Let's try this out!\"\n
"},{"location":"specials/#trap","title":"Trap","text":"

A Trap is a placeable special item. When an enemy steps on a trap, all configured events will occur. Additionally, the team will be notified that someone has triggered their trap.

Unlike other special items, there is no global configuration for traps. The only option here is data, which is a list containing all the events.

There are 3 event types:

Here is an example of a fully configured trap:

- price: 3 of iron\n  properties:\n   - name: \"Trap\"\n     data:\n      - damage: 2.0\n      - sound: ENTITY_SHEEP_AMBIENT\n      - effect:\n          effect: blindness\n          amplifier: 2\n          duration: 100\n          ambient: true\n          particles: true\n          icon: true\n      - effect:\n          effect: weakness\n          amplifier: 2\n          duration: 100\n          ambient: true\n          particles: true\n          icon: true\n      - effect:\n          effect: slowness\n          amplifier: 2\n          duration: 100\n          ambient: true\n          particles: true\n          icon: true\n  stack:\n    type: string\n    display-name: \"Trap\"\n    lore:\n      - \"Get informed if an enemy steps on your trap\"\n      - \"and your enemy won't be able to move properly.\"\n
"},{"location":"specials/#warp-powder","title":"Warp Powder","text":"

The Warp Powder is a special item that teleports you to the team spawn when used. However, you must wait a few seconds without moving, otherwise, the teleportation will be canceled.

There are two configurable options for Warp Powder:

Here is an example of Warp Powder configured in the shop:

- price: 7 of iron\n  properties:\n  - name: \"WarpPowder\"\n    teleport-time: 6\n    delay: 0\n  stack:\n    type: gunpowder\n    display-name: \"Warp Powder\"\n    lore:\n      - \"When using this powder you'll get\"\n      - \"teleported to you spawn point within 6 seconds\"\n      - \"Warning: Any movement will stop the process\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  warp-powder:\n    teleport-time: 6\n    delay: 0\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 7 of iron\n  properties: \"WarpPowder\"\n  stack:\n    type: gunpowder\n    display-name: \"Warp Powder\"\n    lore:\n      - \"When using this powder you'll get\"\n      - \"teleported to you spawn point within 6 seconds\"\n      - \"Warning: Any movement will stop the process\"\n
"},{"location":"troubleshooting/","title":"Troubleshooting and FAQ","text":""},{"location":"troubleshooting/#non-op-players-cannot-use-signs","title":"Non-OP players cannot use signs","text":"

Move the sign out of vanilla spawn protection (for example, if you have the spawn protection in server.properties set to 16, move 34 blocks away from spawn location) or change spawn protection to zero. Non-OP players can't do some things in spawn protection.

"},{"location":"troubleshooting/#position-1-and-position-2","title":"Position 1 and Position 2","text":"

These two positions serve to designate an area to be considered an arena. (such as axe in WorldEdit)

See the Arena

"},{"location":"troubleshooting/#bed-cannot-be-destroyed","title":"Bed cannot be destroyed","text":"

BedWars allows you to use any block as the target block, so you won't see any error when you set it to, for example, floor. So check it, and make you sure you're looking at the bed head when setting the team target block.

"},{"location":"troubleshooting/#adding-a-sign","title":"Adding a sign","text":"

Place a sign and write [BedWars] or [BWGame] (case-sensitive) as the first line, and the name of your arena as the second line. Make sure that your sign is not in range of vanilla's spawn protection.

"},{"location":"troubleshooting/#automatically-coloring-a-shop-item","title":"Automatically coloring a shop item","text":"

Use the applycolorbyteam property, for example:

- price: 1\n  price-type: bronze\n  properties:\n    - name: \"applycolorbyteam\"\n  stack:\n    type: white_wool\n    amount: 2\n

"},{"location":"troubleshooting/#upgrades","title":"Upgrades","text":"

See the Upgrades article.

"},{"location":"troubleshooting/#language-file","title":"Language file","text":"

See the Configuration article.

"},{"location":"troubleshooting/#placeholderapi-placeholders","title":"PlaceholderAPI placeholders","text":"

See the Placeholder API article.

"},{"location":"troubleshooting/#changing-the-message-prefix","title":"Changing the message prefix","text":"

Prefix is changeable globally in the language file or per arena with this command: /bw admin <arena> customprefix &6My Awesome Prefix.

"},{"location":"troubleshooting/#editing-resources","title":"Editing resources","text":"

See the Configuration article.

"},{"location":"troubleshooting/#broken-shop","title":"Broken shop","text":"

Make sure your shop is YAML valid with yamlchecker, has proper materials and format.

"},{"location":"troubleshooting/#compass-teleports-the-player","title":"Compass teleports the player","text":"

Well, you probably have WorldEdit or FastAsyncWorldEdit. The compass is used to teleport through walls. However it works only for people with permission or with OP. You can disable this tool or bound it to another item in WorldEdit configuration. You can also change the team selection item to another one in BedWars configuration.

"},{"location":"troubleshooting/#permissions","title":"Permissions","text":"

See the Commands and Permissions page.

"},{"location":"troubleshooting/#adding-start-and-respawn-items","title":"Adding start and respawn items","text":"

You can by doing the following

"},{"location":"troubleshooting/#start-game","title":"Start game","text":"
game-start-items: true\ngived-game-start-items:\n- leather_helmet\n- leather_boots\n- leather_leggings\n- leather_chestplate\n- wooden_sword\n
"},{"location":"troubleshooting/#respawn","title":"Respawn","text":"
player-respawn-items: true\ngived-player-respawn-items: \n- leather_helmet\n- leather_boots\n- leather_leggings\n- leather_chestplate\n- wooden_sword\n
"},{"location":"troubleshooting/#villagers-do-not-spawn","title":"Villagers do not spawn","text":"

Here is some info on how to troubleshoot this error:

"},{"location":"troubleshooting/#are-there-any-visualparticle-effects","title":"Are there any visual/particle effects?","text":"

Yes, there are. Check out this page

"},{"location":"troubleshooting/#changing-damage-or-explosion-power-of-fireball","title":"Changing damage or explosion power of Fireball","text":"

Go in your config.yml and there are settings for the Fireball. It is located under specials, it is not that hard to find \ud83d\ude1b

Same goes for basically any other special item. \ud83d\ude42

"},{"location":"troubleshooting/#setting-up-the-plugin-with-bungeecord","title":"Setting up the plugin with Bungeecord","text":"

The plugin has a single-arena bungeecord mode. Check out this page.

"},{"location":"troubleshooting/#pvp-does-not-work","title":"PvP does not work","text":"

Make sure:

Keep in mind that BedWars does not moderate PvP. If PvP does not work for you, it is caused by a misconfiguration or another plugin. If tips above did not help you, please contact us on our Discord server.

If you have WorldGuard installed, you can also use a command to check which plugin blocks PvP. The command is /wg debug testdamage -t <player_name> and you need a second player to test this out. Click here to read more about this command.

"},{"location":"troubleshooting/#players-regenerate-too-quicklyswords-deal-very-little-damage","title":"Players regenerate too quickly/swords deal very little damage","text":"

That is not a BedWars issue, increase your server's game difficulty (from easy to normal for example).

"},{"location":"troubleshooting/#changing-arena-name","title":"Changing arena name","text":"

First, we will provide no support if you mess this up somehow, arena files are not supposed to be edited by people.

  1. Go to your BedWars folder and then to arenas folder. The path should be plugins/BedWars/arenas
  2. Open the file you want to change the name
  3. First filled is name, enter your new one. The name cannot look like this test arena and always needs to be one string, that means test-arena. The name also must be unique, that means you cannot have two arenas with the same name.
  4. Save the file
  5. Restart or reload the server
"},{"location":"troubleshooting/#class-version-errors","title":"Class version errors","text":"

SomeClass has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class SomeClass)

This means you are using Java 8 (52.0), but the plugin requires at least Java 11 (55.0), if you want to know how to update, visit this page (It tells you about updating to Java 17 which can run software for Java 11; similar methods can be used for Java 11)

Currently BedWars 0.2.36 does not require Java 11, however the most famous addon SBA requires at least Java 11. New version of BedWars (0.3.0+) will require at least Java 11.

"},{"location":"troubleshooting/#using-no-norwegian-language","title":"Using no (Norwegian) language","text":"

Well, Yaml specification says that literal no means false. To use no as no, you need to cast it to string locale: \"no\"

"},{"location":"troubleshooting/#players-get-disconnected-from-the-bedwars-game-when-they-die-or-players-respawn-in-the-arena-after-reconnecting","title":"Players get disconnected from the bedwars game when they die or players respawn in the arena after reconnecting","text":"

A plugin is overriding player spawns on your server, those might include (but not limited to) EssentialsSpawn, WorldGuard, etc. Remove those plugins or disable them in bedwars worlds.

"},{"location":"upgrades/","title":"Upgrades","text":""},{"location":"upgrades/#spawner-resource-quantity-upgrade","title":"Spawner resource quantity upgrade","text":"

This is how it should look in you shop.yml file:

- price: 1\n  price-type: bronze\n  upgrade:\n    entities:\n    - type: spawner\n      spawner-type: bronze\n      add-levels: 0.2\n      max-level: 2\n      shop-name: \"Bronze upgrade of the team %team%\"\n      notify-team: true\n  stack:\n    type: diamond_block\n    amount: 1\n    display-name: \"Bronze upgrade of the team %team%\"\n

Let's get into it.

"},{"location":"upgrades/#modes","title":"Modes","text":""}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"ScreamingBedWars","text":"

Flexible BedWars plugin, formerly coded as a replacement for BedwarsRel. Supported versions: [1.8.8 - 1.21.3], recommended versions: [1.21.1].

"},{"location":"#support","title":"Support","text":"

If you need any help, you can contact us on Discord. Make sure to read this documentation, the servers' rules and the FAQ's before asking for support.

If you find any bugs, feel free to report it into GitHub issues, we will look into it.

"},{"location":"#features","title":"Features","text":""},{"location":"api/","title":"Using BedWars API","text":"

Warning

Note that API is going to be changed in future versions (0.3.0+)

"},{"location":"api/#maven","title":"Maven","text":"
<repositories>\n  <repository>\n    <id>screaming-repo</id>\n    <url>https://repo.screamingsandals.org/public/</url>\n  </repository>\n</repositories>\n\n<dependencies>\n  <dependency>\n    <groupId>org.screamingsandals.bedwars</groupId>\n    <artifactId>BedWars-API</artifactId>\n    <version>0.2.36</version>\n    <scope>provided</scope>\n  </dependency>\n</dependencies>\n
"},{"location":"api/#gradle","title":"Gradle","text":"
repositories {\n    maven { url 'https://repo.screamingsandals.org/public/' }\n}\n\ndependencies {\n    compileOnly 'org.screamingsandals.bedwars:BedWars-API:0.2.36'\n}\n
"},{"location":"api/#hooking-into-the-api","title":"Hooking into the API","text":"
import org.screamingsandals.bedwars.api.BedwarsAPI;\n\n...\nBedwarsAPI api = BedwarsAPI.getInstance();\n...\n

Javadoc: https://docs.screamingsandals.org/BedWars/javadoc/0.2.36/

"},{"location":"arena/","title":"Making an arena","text":"

World

This tutorial presumes that you already have a world with your desired BedWars map, loaded with a plugin like Multiverse or SlimeWorldManager and that you already are in the world with your BedWars map.

"},{"location":"arena/#creating-the-arena","title":"Creating the arena","text":"

Create the arena by executing this command: /bw admin <arena name> add.

"},{"location":"arena/#setting-the-arena-positions","title":"Setting the arena positions","text":"

To set the first position, go into the first corner of your map and execute this command: /bw admin <arena name> pos1. To set the second position, go into the second corner of your map and execute this command: /bw admin <arena name> pos2.

Positions

pos1 is one corner of the arena and pos2 is the corner of the arena, that is opposing to pos1!

"},{"location":"arena/#adding-teams","title":"Adding teams","text":"

Now it's time to add the teams. To add a team, do /bw admin <arena> team add <team name> <team colour> <team size>.

For the colors, you can use this TeamColor enum: RED, BLUE, GREEN, YELLOW, MAGENTA, PINK, LIME, BLACK, WHITE, ORANGE, LIGHT_GRAY, GRAY, LIGHT_BLUE, CYAN and BROWN.

Warning

You must create at least 2 teams.

"},{"location":"arena/#setting-team-spawns","title":"Setting team spawns","text":"

Stand where you would like to have the team spawn, and look in the direction that you want your players to be oriented when they spawn, as the yaw will also be taken into account. Set the team's spawn with this command: /bw admin <arena> team spawn <team> and repeat until all teams have a spawn.

"},{"location":"arena/#setting-the-team-bed","title":"Setting the team bed","text":"

Stand on top of the bed, look down on the head of the bed and execute this command to set the bed location: /bw admin <arena name> team bed <team name>. Repeat until all teams have a bed.

Target blocks

The team's target block isn't limited to a bed, in fact BedWars has support for any block (the Dragon Egg, cakes and the Respawn Anchor have special support to allow BedWars to operate as EggWars, AnchorWars or CakeWars out of the box).

"},{"location":"arena/#adding-resource-generators","title":"Adding resource generators","text":"

Stand at the block where you want the generator to be and execute this command: /bw admin <arena name> spawner add <resource> <true/false>.

Valid default resources: bronze, iron and gold (diamond and emerald is not included out of the box, you will have to add it yourself in the configuration).

The true/false part of the command means if there should be a hologram (true) or if there should be no hologram (false).

"},{"location":"arena/#adding-merchants","title":"Adding merchants","text":"

Now it's time to add the shops. Stand where you would like your shop entity to be, look forward and execute this command: /bw admin <arena> store add <name of villager entity> [file with shop] [use main shop] (last two command parts can be omitted).

Example: /bw admin <arena> store add &aStore shop.yml false, /bw admin <arena> store add &aStore

Store entity types

If you would like to have a different entity as the store, do the following: /bw admin <arena> store type <living entity>. This sets entity type of store (Villager, Horse, Cow, etc.). If you would like to have a player with a skin as the shop keeper, use this command: /bw admin <arena> store type Player:skinname.

"},{"location":"arena/#final-steps","title":"Final steps","text":"

Add the lobby location for the arena by executing this command: /bw admin <arena> lobby.

Add the spectator location for the arena by executing this command: /bw admin <arena> spec.

Last but not least, remember to save the arena with /bw admin <arena> save.

"},{"location":"arena/#join-signs","title":"Join signs","text":"

You can use signs to join the arena. Follow these steps to create such sign.

Alternatively, you can create a leave sign by writing word leave instead of arena name.

"},{"location":"arena/#team-entities","title":"Team entities","text":"

These entities allow players to select their team by right clicking at them. There are two ways how these entities can be created.

"},{"location":"arena/#creation-by-jointeam-command","title":"Creation by jointeam command","text":""},{"location":"arena/#manual-creation","title":"Manual creation","text":"

Create any living entity with custom name same as team name and place it in your lobby. The plugin will use the name to determine the team.

"},{"location":"bungee/","title":"BungeeCord mode","text":"

Screaming BedWars supports a BungeeCord mode, which allows for single-arena servers with arena autojoin. This document provides instructions on how to configure this mode.

Velocity Support

This mode is also compatible with Velocity. Ensure bungee-plugin-message-channel is enabled in the velocity.toml file on your proxy.

"},{"location":"bungee/#configuring-game-servers","title":"Configuring Game Servers","text":"

To enable BungeeCord mode, locate the bungee section in config.yml and set enabled to true. Then, configure each option according to your requirements:

The configuration section might look like this:

bungee:\n  enabled: false\n  serverRestart: true\n  serverStop: false\n  server: hub\n  auto-game-connect: false\n  kick-when-proxy-too-slow: true\n  random-game-selection:\n    enabled: true\n    preselect-games: false\n  motd:\n    enabled: false\n    waiting: '%name%: Waiting for players [%current%/%max%]'\n    waiting_full: '%name%: Game is full [%current%/%max%]'\n    running: '%name%: Game is running [%current%/%max%]'\n    rebuilding: '%name%: Rebuilding...'\n    disabled: '%name%: Game is disabled'\n
"},{"location":"bungee/#configuring-hub-servers","title":"Configuring Hub Servers","text":"

While there is no lobby plugin for Screaming BedWars, any server selection plugin can be used, such as BungeeSigns. Plugins that can read MOTD are preferred as they can relay the game state to your hub server.

If you prefer to use inventory-based GUIs instead of signs and wish to display information from the server's MOTD, you can utilize any inventory plugin compatible with PlaceholderAPI, such as DeluxeMenus. The Pinger expansion is recommended, as it provides the necessary placeholders for this purpose. To create a server selector using DeluxeMenus, you may refer to this guide and review this example.

Synchronizing Statistics

For BungeeCord networks, it is common to synchronize statistics to a database. Configure the database section as described here. Ensure all servers are connected to the same database.

To access statistics in the lobby, the simplest option is to install Screaming BedWars on your hub server as well. Ensure this instance is NOT in BungeeCord mode. Alternatively, you can create an addon to retrieve statistics. The database structure is detailed at the end of the database configuration section.

"},{"location":"commands/","title":"Commands and Permissions","text":""},{"location":"commands/#permissions","title":"Permissions","text":"

Every permission can be prefixed with misat11.. Note that this egoism is deprecated and will be removed in a future release.

All permissions starting with bw.cmd. are allowed by default even if the permission is not explicitly given. This can be changed in config.yml in section default-permissions

default-permissions:\n  join: true\n  leave: true\n  stats: true\n  list: true\n  rejoin: true\n  autojoin: true\n  leaderboard: true\n
"},{"location":"commands/#commands","title":"Commands","text":"

Every command has its own specified permission in brackets.

<argument> is required argument. [argument] is optional argument, and the command can be executed if this argument is not specified. However, every optional argument before this optional argument must be specified in order to be able to use this argument.

"},{"location":"commands/#player-commands","title":"Player commands","text":""},{"location":"commands/#admin-commands","title":"Admin Commands","text":"

All these commands require bw.admin permission if not specified.

"},{"location":"commands/#arena-editing","title":"Arena editing","text":""},{"location":"commands/#cheat-commands","title":"Cheat commands","text":"

These command have to be enabled manually using the config option enable-cheat-command-for-admins. The admin must be in the game (running or in waiting lobby) in order to execute cheat.

Additionaly to /bw cheat command, there is the /bw cheatIn <game> <cheat> [params...] command. This command allows the admin to execute cheat in a game they are not joined to, or from console. Currently supports the following cheats: give, kill, destroybed ad destroyallbeds.

"},{"location":"commands/#misc","title":"Misc","text":""},{"location":"config/","title":"Configuration","text":"
# the language of the plugin's messages\nlocale: en\n# enables debug messages, may help with resolving certain problems\ndebug: false\n# is crafting in the arenas allowed?\nallow-crafting: false\n# should items be kept when the player dies in the arena?\nkeep-inventory-on-death: false\n# should player's armor be colored after choosing their team in the lobby?\nin-lobby-colored-leather-by-team: true\n# should the entity for joining teams have a visible name?\njointeam-entity-show-name: true\n# are teammates allowed to damage themselves?\nfriendlyfire: false\n# do items drop from players when killed in the arena?\nplayer-drops: true\n# should the players be joined to a random team after the lobby waiting time passes?\n# if false, the game won't start until everyone chooses a team\njoin-randomly-after-lobby-timeout: false\n# should BedWars prevent players from killing the merchants?\nprevent-killing-villagers: true\n# should the compass for choosing teams be available in the lobby?\ncompass-enabled: true\n# should BedWars join the player to a random team when he joins the lobby?\njoin-randomly-on-lobby-join: false\nadd-wool-to-inventory-on-join: true\nprevent-spawning-mobs: true\nspawner-holograms: true\nspawner-disable-merge: true\nprevent-lobby-spawn-mobs-in-radius: 16\nspawner-holo-height: 0.25\nspawner-holograms-countdown: true\ndamage-when-player-is-not-in-arena: false\nremove-unused-target-blocks: true\nallow-block-falling: true\ngame-start-items: false\nplayer-respawn-items: false\n# When game-start-items is enabled, the player is going to get all items listed in the following list.\n# Example:\n# gived-game-start-items:\n# - wooden_sword\n# - leather_helmet\n# - leather_boots\n# - leather_leggings\n# - leather_chestplate\ngived-game-start-items: []\ngived-player-respawn-items: []\ndisable-hunger: false\nautomatic-coloring-in-shop: true\nsell-max-64-per-click-in-shop: true\nenable-cheat-command-for-admins: false\nshopkeepers-are-silent: true\ndestroy-placed-blocks-by-explosion-except: []\ndestroy-placed-blocks-by-explosion: true\nholo-above-bed: true\nallow-spectator-join: false\ndisable-server-message:\n  player-join: false\n  player-leave: false\ndisable-flight: true\nrespawn-cooldown:\n  enabled: true\n  time: 5\nstop-team-spawners-on-die: false\nallow-fake-death: false\n# Whether or not should 1.19.4 display entities be used or not. Does work only on 1.19.4+\nprefer-1-19-4-display-entities: true\nremember-what-scoreboards-players-had-before: false\nuse-chunk-tickets-if-available: true\nreset-full-spawner-countdown-after-picking: true\nplayers-can-win-game-only-after-seconds: 0\nkick-players-upon-final-death:\n  enabled: false\n  delay: 5\nallowed-commands: []\nchange-allowed-commands-to-blacklist: false\nbungee:\n  enabled: false\n  serverRestart: true\n  serverStop: false\n  server: hub\n  auto-game-connect: false\n  kick-when-proxy-too-slow: true\n  random-game-selection:\n    enabled: true\n    preselect-games: false\n  motd:\n    enabled: false\n    waiting: '%name%: Waiting for players [%current%/%max%]'\n    waiting_full: '%name%: Game is full [%current%/%max%]'\n    running: '%name%: Game is running [%current%/%max%]'\n    rebuilding: '%name%: Rebuilding...'\n    disabled: '%name%: Game is disabled'\nfarmBlocks:\n  enable: false\n  blocks: []\nscoreboard:\n  enable: true\n  title: '&a%game%&r - %time%'\n  bedLost: '&c\u2718'\n  anchorEmpty: '&e\u2718'\n  bedExists: '&a\u2714'\n  teamTitle: '%bed%%color%%team%'\ntitle:\n  enabled: true\n  fadeIn: 0\n  stay: 20\n  fadeOut: 0\nshop:\n  rows: 4\n  render-actual-rows: 6\n  render-offset: 9\n  render-header-start: 0\n  render-footer-start: 45\n  items-on-row: 9\n  show-page-numbers: true\n  inventory-type: CHEST\n  citizens-enabled: false\n  allow-execution-of-console-commands: true\nitems:\n  jointeam: COMPASS\n  leavegame: SLIME_BALL\n  startgame: DIAMOND\n  shopback: BARRIER\n  shopcosmetic: GRAY_STAINED_GLASS_PANE\n  pageback: ARROW\n  pageforward: ARROW\n  team-select: WHITE_WOOL\nvault:\n  enable: true\n  reward:\n    kill: 5\n    win: 20\n    final-kill: 5\n    bed-destroy: 0\nresources:\n  gold:\n    material: GOLD_INGOT\n    color: GOLD\n    name: Gold\n    interval: 20\n    translate: resource_gold\n    spread: 1.0\n  iron:\n    material: IRON_INGOT\n    color: GRAY\n    name: Iron\n    interval: 10\n    translate: resource_iron\n    spread: 1.0\n  bronze:\n    material: BRICK\n    color: DARK_RED\n    name: Bronze\n    interval: 1\n    translate: resource_bronze\n    spread: 1.0\nrespawn:\n  protection-enabled: true\n  protection-time: 10\n  show-messages: true\nspecials:\n  action-bar-messages: true\n  dont-show-success-messages: false\n  rescue-platform:\n    is-breakable: false\n    delay: 0\n    break-time: 10\n    distance: 1\n    material: GLASS\n  protection-wall:\n    is-breakable: false\n    delay: 20\n    break-time: 0\n    width: 5\n    height: 3\n    distance: 2\n    material: CUT_SANDSTONE\n  tnt-sheep:\n    speed: 0.25\n    follow-range: 10.0\n    max-target-distance: 32\n    explosion-time: 8\n  arrow-blocker:\n    protection-time: 10\n    delay: 5\n  warp-powder:\n    teleport-time: 6\n    delay: 0\n  magnet-shoes:\n    probability: 75\n  golem:\n    speed: 0.25\n    follow-range: 10\n    health: 20\n    name-format: '%teamcolor%%team% Golem'\n    show-name: true\n    delay: 0\n    collidable: false\n  teamchest:\n    turn-all-enderchests-to-teamchests: true\n  throwable-fireball:\n    damage: 3.0\n    incendiary: true\n    damage-thrower: true\n  auto-igniteable-tnt:\n    explosion-time: 8\n    damage-placer: true\n    damage: 4.0\nsounds:\n  bed_destroyed:\n    sound: ENTITY_ENDER_DRAGON_GROWL\n    volume: 1\n    pitch: 1\n  my_bed_destroyed:\n    sound: ENTITY_ENDER_DRAGON_GROWL\n    volume: 1\n    pitch: 1\n  countdown:\n    sound: UI_BUTTON_CLICK\n    volume: 1\n    pitch: 1\n  game_start:\n    sound: ENTITY_PLAYER_LEVELUP\n    volume: 1\n    pitch: 1\n  team_kill:\n    sound: ENTITY_PLAYER_LEVELUP\n    volume: 1\n    pitch: 1\n  player_kill:\n    sound: ENTITY_PLAYER_BIG_FALL\n    volume: 1\n    pitch: 1\n  item_buy:\n    sound: ENTITY_ITEM_PICKUP\n    volume: 1\n    pitch: 1\n  upgrade_buy:\n    sound: ENTITY_EXPERIENCE_ORB_PICKUP\n    volume: 1\n    pitch: 1\n  respawn_cooldown_wait:\n    sound: UI_BUTTON_CLICK\n    volume: 1\n    pitch: 1\n  respawn_cooldown_done:\n    sound: ENTITY_PLAYER_LEVELUP\n    volume: 1\n    pitch: 1\ngame-effects:\n  end:\n    effects:\n    - ==: Firework\n      flicker: false\n      trail: false\n      colors:\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      fade-colors:\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      type: BALL\n    power: 1\n    type: Firework\n  start: {}\n  kill: {}\n  teamkill: {}\n  lobbyjoin: {}\n  lobbyleave: {}\n  respawn: {}\n  beddestroy: {}\n  warppowdertick: {}\nlobby-scoreboard:\n  enabled: true\n  title: '&eBEDWARS'\n  content:\n  - ' '\n  - '&fMap: &2%arena%'\n  - '&fPlayers: &2%players%&f/&2%maxplayers%'\n  - ' '\n  - '&fWaiting ...'\n  - ' '\nstatistics:\n  enabled: true\n  type: yaml\n  show-on-game-end: false\n  bed-destroyed-kills: false\n  scores:\n    kill: 10\n    final-kill: 0\n    die: 0\n    win: 50\n    bed-destroy: 25\n    lose: 0\n    record: 100\ndatabase:\n  host: localhost\n  port: 3306\n  db: database\n  user: root\n  password: secret\n  table-prefix: bw_\n  type: mysql\n  driver: default\n  params:\n    useSSL: false\n    serverTimezone: Europe/Prague\n    autoReconnect: true\n    cachePrepStmts: true\n    prepStmtCacheSize: 250\n    prepStmtCacheSqlLimit: 2048\nbossbar:\n  use-xp-bar: false\n  lobby:\n    enable: true\n    color: YELLOW\n    style: SEGMENTED_20\n  game:\n    enable: true\n    color: GREEN\n    style: SEGMENTED_20\n  # The backend-entity field is present only if the server is running on 1.8.8. Allowed values: wither, dragon\n  backend-entity: dragon\nholograms:\n  enabled: true\n  headline: Your &eBEDWARS&f stats\n  leaderboard:\n    headline: '&6Bedwars Leaderboard'\n    format: '&l%order%. &7%name% - &a%score%'\n    size: 10\nchat:\n  override: true\n  format: '<%teamcolor%%name%&r> '\n  separate-chat:\n    lobby: false\n    game: false\n  send-death-messages-just-in-game: true\n  send-custom-death-messages: true\n  default-team-chat-while-running: true\n  all-chat-prefix: '@a'\n  team-chat-prefix: '@t'\n  all-chat: '[ALL] '\n  team-chat: '[TEAM] '\n  death-chat: '[DEATH] '\n  disable-all-chat-for-spectators: false\nrewards:\n  enabled: false\n  player-win:\n  - /example {player} 200\n  player-win-run-immediately:\n  - /example {player} 200\n  player-end-game:\n  - /example {player} {score}\n  player-destroy-bed:\n  - /example {player} {score}\n  player-kill:\n  - /example {player} 10\n  player-final-kill:\n  - /example {player} 10\n  player-game-start:\n  - /example {player} 10\n  player-early-leave:\n  - /example {player} {death} 10\n  team-win:\n  - /example {team} 10\n  player-team-win:\n  - /example {team} {death} 10\n  game-start:\n  - /example Hello World!\nlore:\n  generate-automatically: true\n  text:\n  - '&7Price:'\n  - '&7%price% %resource%'\n  - '&7Amount:'\n  - '&7%amount%'\nsign:\n  lines:\n  - '&c&l[BedWars]'\n  - '%arena%'\n  - '%status%'\n  - '%players%'\n  block-behind:\n    enabled: false\n    waiting: ORANGE_STAINED_GLASS\n    rebuilding: BROWN_STAINED_GLASS\n    in-game: GREEN_STAINED_GLASS\n    game-disabled: RED_STAINED_GLASS\nhotbar:\n  selector: 0\n  color: 1\n  start: 2\n  leave: 8\nbreakable:\n  enabled: false\n  asblacklist: false\n  explosions: false\n  blocks: []\nleaveshortcuts:\n  enabled: false\n  list:\n  - leave\nmainlobby:\n  enabled: false\n  location: ''\n  world: ''\nturnOnExperimentalGroovyShop: false\npreventSpectatorFlyingAway: false\nremovePurchaseMessages: false\nremovePurchaseFailedMessages: false\nremoveUpgradeMessages: false\ndisableCakeEating: true\ndisableDragonEggTeleport: true\npreventArenaFromGriefing: true\nupdate-checker:\n  zero:\n    console: true\n    admins: true\n  one:\n    console: true\n    admins: true\ntarget-block:\n  allow-destroying-with-explosions: false\n  respawn-anchor:\n    fill-on-start: true\n    enable-decrease: true\n    sound:\n      charge: BLOCK_RESPAWN_ANCHOR_CHARGE\n      used: BLOCK_GLASS_BREAK\n      deplete: BLOCK_RESPAWN_ANCHOR_DEPLETE\n  cake:\n    destroy-by-eating: true\nevent-hacks:\n  damage: false\n  destroy: false\n  place: false\ntab:\n  enable: false\n  header:\n    enabled: true\n    contents:\n    - '&aMy awesome BedWars server'\n    - '&bMap: %map%'\n    - '&cPlayers: %respawnable%/%max%'\n  footer:\n    enabled: true\n    contents:\n    - '&eexample.com'\n    - '&fWow!!'\n    - '&a%spectators% are watching this match'\n  hide-spectators: true\n  hide-foreign-players: false\ndefault-permissions:\n  join: true\n  leave: true\n  stats: true\n  list: true\n  rejoin: true\n  autojoin: true\n  leaderboard: true\n  party: true\n# The following sections requires Parties plugin to be installed\nparty:\n  enabled: false\n  autojoin-members: false\n  notify-when-warped: true\n
"},{"location":"config/#custom-resources","title":"Custom resources","text":"

Tip

If you want to switch to emerald, diamond, iron and gold specifically, you may want to have another Hypixel features on your server, like upgrades. In that case, we would recommend you checking out SBA.

Open the config (plugins/BedWars/config.yml) and scroll down, until you find a section called resources. Using Ctrl+F helps you to search for it.

Here is an example on how to add emerald, diamond, iron and gold.

resources:\n  emerald: # resource name\n    material: EMERALD # resource material (https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)\n    color: GREEN # resource color (https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ChatColor.html)\n    name: Emerald # resource in-game name\n    interval: 60 # resource spawn time in seconds\n    translate: resource_emerald # resource translation key\n    spread: 1.0 # resource spread radius\n  diamond:\n    material: DIAMOND\n    color: BLUE\n    name: Diamond\n    interval: 30\n    translate: resource_diamond\n    spread: 1.0\n  iron:\n    material: IRON_INGOT\n    color: WHITE\n    name: Iron\n    interval: 2\n    translate: resource_iron\n    spread: 1.0\n  gold:\n    material: GOLD_INGOT\n    color: GOLD\n    name: Gold\n    interval: 8\n    translate: resource_gold\n    spread: 1.0\n
"},{"location":"config/#database-connection","title":"Database connection","text":"

In config.yml you can find a section called database. Under this section, you can configure the database connection. Currently only MySQL and MariaDB are officially supported, yet the configuration allows you to provide a custom driver for a newer version of the database system or a driver for a different SQL-like database system like PostgreSQL. Pull requests fixing support with different database systems are welcome :)

To enable the database connection, you have to set something to be saved in database. Currently only statistics can be saved to the database. To enable that, locate the statistics section and switch type from yaml to database.

There are following fields in the database section:

Driver version

If you use an ancient Minecraft version like 1.8.8, but you have new version of MySQL/MariaDB, the driver bundled in Spigot 1.8.8 may be incompatible. Get a new version of MySQL Connector J here: select Platform Independent, download the archive and extract the mysql-connector-j-8.x.x.jar file from it (other files from the archive are not relevant). Put the JAR file in plugins/BedWars folder, and change driver from default to the name of the file, eg. mysql-connector-j-8.4.0.jar.

stats_players table structure

In specific cases, the automatic creation of the database table may fail. In that case you may need to create it manually, using the following code or its variation.

CREATE TABLE IF NOT EXISTS `bw_stats_players` (\n  `kills` int(11) NOT NULL DEFAULT '0',\n  `wins` int(11) NOT NULL DEFAULT '0',\n  `score` int(11) NOT NULL DEFAULT '0',\n  `loses` int(11) NOT NULL DEFAULT '0',\n  `name` varchar(255) NOT NULL,\n  `destroyedBeds` int(11) NOT NULL DEFAULT '0',\n  `uuid` varchar(255) NOT NULL,\n  `deaths` int(11) NOT NULL DEFAULT '0',\n  PRIMARY KEY (`uuid`)\n);\n
"},{"location":"config/#game-effects","title":"Game effects","text":"

In config.yml you can find a section called game-effects. Here you can set some visual effects that will enhance your game experiences.

"},{"location":"config/#events","title":"Events","text":""},{"location":"config/#effect-types","title":"Effect types","text":""},{"location":"config/#particle","title":"Particle","text":"
game-effects:\n  start:\n    type: Particle\n    value: LAVA # uppercase key from the list\n    # options below are optional\n    count: 2 # how many particles will be spawned (default - 1)\n    offsetX: 1 # offset from the event location (default - 0 for each coordinate)\n    offsetY: 1\n    offsetZ: 1\n    extra: 1 # extra data, depends on each particle (default - 1)\n
"},{"location":"config/#effect","title":"Effect","text":"
game-effects:\n  start:\n    type: Effect\n    value: DOOR_CLOSE # uppercase key from the list\n
"},{"location":"config/#firework","title":"Firework","text":"

Firework effect types are listed here

game-effects:\n  end:\n    type: Firework\n    power: 1 # power of the firework\n    effects: # list of firework effects\n    - ==: Firework\n      flicker: false\n      trail: false\n      colors: # list of colors\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      fade-colors:\n      - ==: Color\n        RED: 255\n        BLUE: 255\n        GREEN: 255\n      type: BALL # effect type\n

"},{"location":"config/#list","title":"List","text":"
game-effects:\n  end:\n    type: List\n    list: # list of effects\n    - type: Particle\n      value: LAVA\n      count: 2\n      extra: 1\n    - type: Effect\n      value: DOOR_CLOSE # uppercase key from the list\n    - type: Firework\n      power: 1 # power of the firework\n      effects: # list of firework effects\n      - ==: Firework\n        flicker: false\n        trail: false\n        colors: # list of colors\n        - ==: Color\n          RED: 255\n          BLUE: 255\n          GREEN: 255\n        fade-colors:\n        - ==: Color\n          RED: 255\n          BLUE: 255\n          GREEN: 255\n        type: BALL # effect type\n
"},{"location":"config/#custom-language","title":"Custom language","text":"

And that's it, you have your own language!

"},{"location":"placeholderapi/","title":"PlaceholderAPI","text":"

This plugin registers placeholders to PlaceholderAPI.

These placeholders are intended for use in other plugins and may not function if used in the BedWars configuration. However, they can be utilized in shop.yml and other shop-related files if PlaceholderAPI is installed. Use the slightly modified syntax: %papi.<placeholder_name>% (e.g., %papi.bedwars_all_games_players%).

"},{"location":"placeholderapi/#global-placeholders","title":"Global placeholders","text":""},{"location":"placeholderapi/#current-information-about-players","title":"Current information about players","text":"

The placeholders in this section are specific to a player, based on the context in which they are used, most commonly the viewer of a message, hologram, etc.

"},{"location":"placeholderapi/#information-about-the-current-game","title":"Information about the current game","text":"

Some of these placeholders contain a parameter <team_name>. Replace it with the name of the team. For example, if the team name is red, you would use %bedwars_current_game_team_red_bed%.

"},{"location":"placeholderapi/#information-about-the-players-team","title":"Information about the player's team","text":""},{"location":"placeholderapi/#game-information-placeholders","title":"Game information placeholders","text":"

When using these placeholders, replace <game> with the specific game identifier and <team_name> with the name of the team. For example, if the game identifier is game1 and the team name is red, you would use %bedwars_game_game1_team_red_colored%.

"},{"location":"placeholderapi/#statistics-placeholders","title":"Statistics placeholders","text":""},{"location":"placeholderapi/#player-stats-placeholders","title":"Player stats placeholders","text":"

Custom leaderboards

You can create custom leaderboards using placeholders to display player statistics in various ways. To achieve this, consider using the ajLeaderboards plugin with the placeholders listed below. This allows for greater flexibility beyond what the BedWars plugin offers.

The placeholders in this section are specific to a player, based on the context in which they are used, most commonly the viewer of a message, hologram, etc.

"},{"location":"placeholderapi/#any-player-stats-placeholders","title":"Any player stats placeholders","text":"

When using these placeholders, replace <player> with the specific player's name. For example, if the player's name is Misat11, you would use %bedwars_otherstats_Misat11_deaths%.

"},{"location":"shop/","title":"Shop","text":"

Screaming BedWars plugin uses our own lib called SimpleInventories to create and render inventory-based guis, and therefore shops. This article will show you some basics of this format. Check this wiki for more advanced variables.

"},{"location":"shop/#creating-a-new-item","title":"Creating a new item","text":"

To create a new item, first you need to know internal item's name. You can use Minecraft Wiki to get the specific resource name. The name usually starts with minecraft:, this part can be omitted from the final name.

You can also use modern names in legacy environments (1.8.8-1.12.2). If the modern name does not work, check this page for old names. Old names are deprecated and they may not be supported in future releases of BedWars.

There are two supported formats of items. We call them short stack and long stack.

"},{"location":"shop/#using-short-stack","title":"Using short stack","text":"

This format can describe only material name, amount, display name and lore. Except for material name, every part is optional. Each part is divided using semicolon.

items:\n- stone\n- dirt;2\n- diamond_pickaxe;;Super Sword\n- tnt;3;Trinitrotoluene;Does explode\n

To specify price and make the item buyable, suffix this format with for <amount> <resource>:

items:\n- stone for 1 bronze\n- dirt;2 for 3 iron\n- diamond_pickaxe;;Super Sword for 5 gold\n- tnt;3;Trinitrotoluene;Does explode for 9 iron\n

In order to be able to specify other attributes (for example properties), we have to convert this from string to map. This is done by splitting the string into variables stack and price:

items:\n- stack: stone\n  price: 1 bronze\n- stack: dirt;2\n  price: 3 iron\n- stack: diamond_pickaxe;;Super Pickaxe\n  price: 5 gold\n- stack: tnt;3;Trinitrotoluene;Does explode\n  price: 9 iron\n
"},{"location":"shop/#using-long-stack","title":"Using long stack","text":"

Long stack allows you to create items with enchantments and other attributes. Let's see the previous example rewritten in this format:

items:\n- stack: \n    type: stone\n  price: 1 bronze\n- stack: \n    type: dirt\n    amount: 2\n  price: 3 iron\n- stack: \n    type: diamond_pickaxe\n    display-name: Super Pickaxe\n  price: 5 gold\n- stack: \n    type: tnt\n    amount: 3\n    display-name: Trinitrotoluene\n    lore:\n    - Does explode\n  price: 9 iron\n

As we can see, the stack attribute is now a map, which allows more attributes to be present. For example, we can enchant our Super Pickaxe with Fortune III.

- stack: \n    type: diamond_pickaxe\n    display-name: Super Pickaxe\n    enchants:\n      fortune: 3\n  price: 5 gold\n

The enchantment names can be found here.

For list of all available options visit this page.

"},{"location":"shop/#using-item-as-a-category","title":"Using item as a category","text":"

You can use any item as a category (even if the item is in another category). Players can then click on that item to open the category. The format is very similar, the only thing you have to specify is a list called items, where you put items of that specific category. Format of items in items is same as format in the base data list.

- stack: \n    type: diamond_pickaxe\n    display-name: Super Pickaxes\n    lore:\n     - You will never mine with anything else!\n  items:\n    - wooden_pickaxe for 10 gold\n    - golden_pickaxe for 20 gold\n
"},{"location":"specials/","title":"Specials","text":"

Special items can be sold in the shop and have unique behaviors when used. For example, they can spawn entities, reduce knockback, gives potion effects, etc.

Addons can also introduce new special items.

Every special item in the shop is configured using properties.

"},{"location":"specials/#arrow-blocker","title":"Arrow Blocker","text":"

The Arrow Blocker is an item that allows you to block arrows for a certain period of time when used.

There are two configurable options for an Arrow Blocker:

Here is an example of the Arrow Blocker configured in the shop:

- price: 5 of gold\n  properties:\n  - name: \"ArrowBlocker\"\n    protection-time: 10\n    delay: 5\n  stack:\n    type: ender_eye\n    display-name: \"Arrow Blocker\"\n    lore:\n      - \"Block arrows that are coming\"\n      - \"for you with black magic.\"\n      - \"I mean, with this item.\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  arrow-blocker:\n    protection-time: 10\n    delay: 5\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 5 of gold\n  properties: \"ArrowBlocker\"\n  stack:\n    type: ender_eye\n    display-name: \"Arrow Blocker\"\n    lore:\n      - \"Block arrows that are coming\"\n      - \"for you with black magic.\"\n      - \"I mean, with this item.\"\n
"},{"location":"specials/#auto-ignitable-tnt","title":"Auto Ignitable TNT","text":"

The Auto Ignitable TNT is a special item that spawns ignited TNT when placed.

There are three configurable options for the Auto Ignitable TNT:

TNT jumping

Addons like SBA provide additional customization to this item related to jumping. Please refer to their documentation for more details.

Here is an example of the Auto Ignitable TNT configured in the shop:

- price: 3 of iron\n  properties:\n  - name: \"AutoIgniteableTnt\"\n    explosion-time: 5\n    damage-placer: false\n    damage: 4.0\n  stack:\n    type: tnt\n    display-name: \"Autoigniteable TNT\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  auto-igniteable-tnt:\n    explosion-time: 5\n    damage-placer: false\n    damage: 4.0\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 3 of iron\n  properties: \"AutoIgniteableTnt\"\n  stack:\n    type: tnt\n    display-name: \"Autoigniteable TNT\"\n
"},{"location":"specials/#golem","title":"Golem","text":"

The Golem is a special item that spawns a golem to attack enemy teams.

There are multiple configurable options for this special item:

Here is an example of the Golem configured in the shop:

- price: 24 of iron\n  properties:\n  - name: \"Golem\"\n    speed: 0.25\n    follow-range: 16.0\n    health: 20\n    show-name: true\n    delay: 0\n    collidable: true\n    name-format: \"%teamcolor%%team% Golem\"\n  stack:\n    type: ghast_spawn_egg\n    display-name: \"Golem\"\n    lore:\n      - \"An iron golem that will protect\"\n      - \"your team from the enemies.\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  golem:\n    speed: 0.25\n    follow-range: 16.0\n    health: 20\n    show-name: true\n    delay: 0\n    collidable: true\n    name-format: \"%teamcolor%%team% Golem\"\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 24 of iron\n  properties: \"Golem\"\n  stack:\n    type: ghast_spawn_egg\n    display-name: \"Golem\"\n    lore:\n      - \"An iron golem that will protect\"\n      - \"your team from the enemies.\"\n
"},{"location":"specials/#lucky-block","title":"Lucky Block","text":"

The Lucky Block is a special item inspired by the LuckyBlock Addon for BedWarsRel. This block can be placed anywhere, and when broken, a random configured event will occur. Lucky Blocks are not available in the shop by default; therefore, you must add them to the shop manually.

Like other special items, Lucky Blocks use properties for their configuration. The property for these blocks is called LuckyBlock and includes a data section. This section is a list of events that may occur.

There are 5 event types:

Below is an example of a fully configured Lucky Block with all these events included. Additionally, each event can have a variable message. This message will be sent to the player who broke the block.

- price: 7 of iron\n  properties:\n  - name: \"LuckyBlock\"\n    data:\n    - type: tnt\n    - type: nothing\n    - type: teleport\n      height: 50\n    - type: item\n      stack: dirt\n      message: \"This sends you message. You can add it to any event type.\"\n    - type: potion\n      effect:\n        effect: blindness\n        amplifier: 2\n        duration: 100\n        ambient: true\n        particles: true\n        icon: true\n  stack:\n    type: sponge\n    amount: 1\n    display-name: \"Lucky Block\"\n

Unlike other special items, there is no global configuration for Lucky Blocks.

"},{"location":"specials/#magnet-shoes","title":"Magnet Shoes","text":"

Wearing this special item randomly absorbs all received knockback, giving you an advantage in PvP.

There is a single configurable option for this special item:

Here is an example of Magnet Shoes configured in the shop:

- price: 6 of iron\n  properties:\n  - name: \"MagnetShoes\"\n    probability: 75\n  stack:\n    type: iron_boots\n    display-name: \"Magnet-Shoes\"\n    lore:\n      - \"Wear those shoes and have a 75%\"\n      - \"chance of getting no knockback!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  magnet-shoes:\n    probability: 75\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 6 of iron\n  properties: \"MagnetShoes\"\n  stack:\n    type: iron_boots\n    display-name: \"Magnet-Shoes\"\n    lore:\n      - \"Wear those shoes and have a 75%\"\n      - \"chance of getting no knockback!\"\n
"},{"location":"specials/#protection-wall","title":"Protection Wall","text":"

The Protection Wall is a special item that builds a wall when used.

There are several configurable options for this item:

Here is an example of a Protection Wall configured in the shop:

- price: 64 of bronze\n  properties:\n  - name: \"protectionwall\"\n    is-breakable: false\n    delay: 20\n    break-time: 0\n    width: 5\n    height: 3\n    distance: 2\n    material: cut_sandstone\n  stack:\n    type: bricks\n    display-name: \"Protection Wall\"\n    lore:\n      - \"Instantly builds a wall that\"\n      - \"can save your life!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  protection-wall:\n    is-breakable: false\n    delay: 20\n    break-time: 0\n    width: 5\n    height: 3\n    distance: 2\n    material: cut_sandstone\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 64 of bronze\n  properties: \"protectionwall\"\n  stack:\n    type: bricks\n    display-name: \"Protection Wall\"\n    lore:\n      - \"Instantly builds a wall that\"\n      - \"can save your life!\"\n
"},{"location":"specials/#rescue-platform","title":"Rescue Platform","text":"

The Rescue Platform is similar to the Protection Wall, but instead of wall it builds a platform that the player can use when falling to prevent fall damage or falling off the map.

There are several configurable options for this item:

Here is an example of a Rescue Platform configured in the shop:

- price: 64 of bronze\n  properties:\n  - name: \"rescueplatform\"\n    is-breakable: false\n    delay: 0\n    break-time: 10\n    distance: 1\n    material: glass\n  stack:\n    type: blaze_rod\n    display-name: \"Rescue Platform\"\n    lore:\n      - \"Protect yourself from falling into\"\n      - \"the void with a Rescue Platform.\"\n      - \"This is your last hope!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  rescue-platform:\n    is-breakable: false\n    delay: 0\n    break-time: 10\n    distance: 1\n    material: glass\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 64 of bronze\n  properties: \"rescueplatform\"\n  stack:\n    type: blaze_rod\n    display-name: \"Rescue Platform\"\n    lore:\n      - \"Protect yourself from falling into\"\n      - \"void with a Rescue Platform.\"\n      - \"This is your last hope!\"\n
"},{"location":"specials/#team-chest","title":"Team Chest","text":"

Placing this item creates a chest accessible only by the placing team. All of these chests share the same inventory, similarly to an ender chest.

For legacy reasons, any ender chest in the shop is turned into a team chest regardless of the given properties. To disable this behavior, you have to set specials.teamchest.turn-all-enderchests-to-teamchests to false in config.yml.

Explicitly created team chests in the shop look like this:

- price: 1 of gold\n  properties: \"teamchest\"\n  stack: ender_chest\n

Warning

The type needs to be ender_chest for the item to work!

"},{"location":"specials/#throwable-fireball","title":"Throwable Fireball","text":"

The Throwable Fireball represents a fireball that can be thrown from the hand of a player.

There are several configurable options for this item:

Fireball jumping

Addons like SBA provide additional customization to this item related to jumping. Please refer to their documentation for more details.

Here is an example of a Throwable Fireball configured in the shop:

- price: 40 of iron\n  properties:\n  - name: \"ThrowableFireball\"\n    damage: 3.0\n    incendiary: true\n    damage-thrower: true\n  stack:\n    type: fire_charge\n    display-name: \"Fireball\"\n    lore:\n      - \"Is it a bird? Is it a plane?\"\n      - \"By the time you know\"\n      - \"you are dead!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  throwable-fireball:\n    damage: 3.0\n    incendiary: true\n    damage-thrower: true\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 40 of iron\n  properties: \"ThrowableFireball\"\n  stack:\n    type: fire_charge\n    display-name: \"Fireball\"\n    lore:\n      - \"Is it a bird? Is it a plane?\"\n      - \"By the time you know\"\n      - \"you are dead!\"\n
"},{"location":"specials/#tnt-sheep","title":"TNT Sheep","text":"

The TNT Sheep is a special item that summons an explosive sheep, following enemy players. Upon summoning, it targets the closest enemy.

There are several configurable options for this special item:

Here is an example of the TNT Sheep configured in the shop:

- price: 10 of gold\n  properties:\n  - name: \"TNTSheep\"\n    speed: 0.25\n    follow-range: 10.0\n    max-target-distance: 32\n    explosion-time: 8\n  stack:\n    type: sheep_spawn_egg\n    display-name: \"TNT Sheep\"\n    lore:\n      - \"Use the TNT-Sheep! It will\"\n      - \"walk towards your closest enemy\"\n      - \"and explode within 8 seconds!\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  tnt-sheep:\n    speed: 0.25\n    follow-range: 10.0\n    max-target-distance: 32\n    explosion-time: 8\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 10 of gold\n  properties: \"TNTSheep\"\n  stack:\n    type: sheep_spawn_egg\n    display-name: \"TNT Sheep\"\n    lore:\n      - \"Use the TNT-Sheep! It will\"\n      - \"walk towards your closest enemy\"\n      - \"and explode within 8 seconds!\"\n
"},{"location":"specials/#tracker","title":"Tracker","text":"

The Tracker is a simple special item that displays the distance and direction of the nearest enemy. It is recommended for the Tracker to be a compass since the item sets the compass target of its user. Unlike other special items, this item is permanent, and you can use it repeatedly.

Here is an example of the Tracker configured in the shop:

- price: 5 of iron\n  properties: \"Tracker\"\n  stack:\n    type: compass\n    display-name: \"Tracker\"\n    lore:\n      - \"Wanna know where your closest target is?\"\n      - \"Let's try this out!\"\n
"},{"location":"specials/#trap","title":"Trap","text":"

A Trap is a placeable special item. When an enemy steps on a trap, all configured events will occur. Additionally, the team will be notified that someone has triggered their trap.

Unlike other special items, there is no global configuration for traps. The only option here is data, which is a list containing all the events.

There are 3 event types:

Here is an example of a fully configured trap:

- price: 3 of iron\n  properties:\n   - name: \"Trap\"\n     data:\n      - damage: 2.0\n      - sound: ENTITY_SHEEP_AMBIENT\n      - effect:\n          effect: blindness\n          amplifier: 2\n          duration: 100\n          ambient: true\n          particles: true\n          icon: true\n      - effect:\n          effect: weakness\n          amplifier: 2\n          duration: 100\n          ambient: true\n          particles: true\n          icon: true\n      - effect:\n          effect: slowness\n          amplifier: 2\n          duration: 100\n          ambient: true\n          particles: true\n          icon: true\n  stack:\n    type: string\n    display-name: \"Trap\"\n    lore:\n      - \"Get informed if an enemy steps on your trap\"\n      - \"and your enemy won't be able to move properly.\"\n
"},{"location":"specials/#warp-powder","title":"Warp Powder","text":"

The Warp Powder is a special item that teleports you to the team spawn when used. However, you must wait a few seconds without moving, otherwise, the teleportation will be canceled.

There are two configurable options for Warp Powder:

Here is an example of Warp Powder configured in the shop:

- price: 7 of iron\n  properties:\n  - name: \"WarpPowder\"\n    teleport-time: 6\n    delay: 0\n  stack:\n    type: gunpowder\n    display-name: \"Warp Powder\"\n    lore:\n      - \"When using this powder you'll get\"\n      - \"teleported to you spawn point within 6 seconds\"\n      - \"Warning: Any movement will stop the process\"\n

A global configuration in config.yml can also be used instead of a local configuration. The global configuration in config.yml looks like this:

specials:\n  # ...\n  warp-powder:\n    teleport-time: 6\n    delay: 0\n  # ...\n

To use the global configuration, simply omit the options you do not wish to override in the shop configuration. If there is a single property with only a name and no overrides, you can use the following syntax:

- price: 7 of iron\n  properties: \"WarpPowder\"\n  stack:\n    type: gunpowder\n    display-name: \"Warp Powder\"\n    lore:\n      - \"When using this powder you'll get\"\n      - \"teleported to you spawn point within 6 seconds\"\n      - \"Warning: Any movement will stop the process\"\n
"},{"location":"troubleshooting/","title":"Troubleshooting and FAQ","text":""},{"location":"troubleshooting/#non-op-players-cannot-use-signs","title":"Non-OP players cannot use signs","text":"

Move the sign out of vanilla spawn protection (for example, if you have the spawn protection in server.properties set to 16, move 34 blocks away from spawn location) or change spawn protection to zero. Non-OP players can't do some things in spawn protection.

"},{"location":"troubleshooting/#position-1-and-position-2","title":"Position 1 and Position 2","text":"

These two positions serve to designate an area to be considered an arena. (such as axe in WorldEdit)

See the Arena

"},{"location":"troubleshooting/#bed-cannot-be-destroyed","title":"Bed cannot be destroyed","text":"

BedWars allows you to use any block as the target block, so you won't see any error when you set it to, for example, floor. So check it, and make you sure you're looking at the bed head when setting the team target block.

"},{"location":"troubleshooting/#adding-a-sign","title":"Adding a sign","text":"

Place a sign and write [BedWars] or [BWGame] (case-sensitive) as the first line, and the name of your arena as the second line. Make sure that your sign is not in range of vanilla's spawn protection.

"},{"location":"troubleshooting/#automatically-coloring-a-shop-item","title":"Automatically coloring a shop item","text":"

Use the applycolorbyteam property, for example:

- price: 1\n  price-type: bronze\n  properties:\n    - name: \"applycolorbyteam\"\n  stack:\n    type: white_wool\n    amount: 2\n

"},{"location":"troubleshooting/#upgrades","title":"Upgrades","text":"

See the Upgrades article.

"},{"location":"troubleshooting/#language-file","title":"Language file","text":"

See the Configuration article.

"},{"location":"troubleshooting/#placeholderapi-placeholders","title":"PlaceholderAPI placeholders","text":"

See the Placeholder API article.

"},{"location":"troubleshooting/#changing-the-message-prefix","title":"Changing the message prefix","text":"

Prefix is changeable globally in the language file or per arena with this command: /bw admin <arena> customprefix &6My Awesome Prefix.

"},{"location":"troubleshooting/#editing-resources","title":"Editing resources","text":"

See the Configuration article.

"},{"location":"troubleshooting/#broken-shop","title":"Broken shop","text":"

Make sure your shop is YAML valid with yamlchecker, has proper materials and format.

"},{"location":"troubleshooting/#compass-teleports-the-player","title":"Compass teleports the player","text":"

Well, you probably have WorldEdit or FastAsyncWorldEdit. The compass is used to teleport through walls. However it works only for people with permission or with OP. You can disable this tool or bound it to another item in WorldEdit configuration. You can also change the team selection item to another one in BedWars configuration.

"},{"location":"troubleshooting/#permissions","title":"Permissions","text":"

See the Commands and Permissions page.

"},{"location":"troubleshooting/#adding-start-and-respawn-items","title":"Adding start and respawn items","text":"

You can by doing the following

"},{"location":"troubleshooting/#start-game","title":"Start game","text":"
game-start-items: true\ngived-game-start-items:\n- leather_helmet\n- leather_boots\n- leather_leggings\n- leather_chestplate\n- wooden_sword\n
"},{"location":"troubleshooting/#respawn","title":"Respawn","text":"
player-respawn-items: true\ngived-player-respawn-items: \n- leather_helmet\n- leather_boots\n- leather_leggings\n- leather_chestplate\n- wooden_sword\n
"},{"location":"troubleshooting/#villagers-do-not-spawn","title":"Villagers do not spawn","text":"

Here is some info on how to troubleshoot this error:

"},{"location":"troubleshooting/#are-there-any-visualparticle-effects","title":"Are there any visual/particle effects?","text":"

Yes, there are. Check out this page

"},{"location":"troubleshooting/#changing-damage-or-explosion-power-of-fireball","title":"Changing damage or explosion power of Fireball","text":"

Go in your config.yml and there are settings for the Fireball. It is located under specials, it is not that hard to find \ud83d\ude1b

Same goes for basically any other special item. \ud83d\ude42

"},{"location":"troubleshooting/#setting-up-the-plugin-with-bungeecord","title":"Setting up the plugin with Bungeecord","text":"

The plugin has a single-arena bungeecord mode. Check out this page.

"},{"location":"troubleshooting/#pvp-does-not-work","title":"PvP does not work","text":"

Make sure:

Keep in mind that BedWars does not moderate PvP. If PvP does not work for you, it is caused by a misconfiguration or another plugin. If tips above did not help you, please contact us on our Discord server.

If you have WorldGuard installed, you can also use a command to check which plugin blocks PvP. The command is /wg debug testdamage -t <player_name> and you need a second player to test this out. Click here to read more about this command.

"},{"location":"troubleshooting/#players-regenerate-too-quicklyswords-deal-very-little-damage","title":"Players regenerate too quickly/swords deal very little damage","text":"

That is not a BedWars issue, increase your server's game difficulty (from easy to normal for example).

"},{"location":"troubleshooting/#changing-arena-name","title":"Changing arena name","text":"

First, we will provide no support if you mess this up somehow, arena files are not supposed to be edited by people.

  1. Go to your BedWars folder and then to arenas folder. The path should be plugins/BedWars/arenas
  2. Open the file you want to change the name
  3. First filled is name, enter your new one. The name cannot look like this test arena and always needs to be one string, that means test-arena. The name also must be unique, that means you cannot have two arenas with the same name.
  4. Save the file
  5. Restart or reload the server
"},{"location":"troubleshooting/#class-version-errors","title":"Class version errors","text":"

SomeClass has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class SomeClass)

This means you are using Java 8 (52.0), but the plugin requires at least Java 11 (55.0), if you want to know how to update, visit this page (It tells you about updating to Java 17 which can run software for Java 11; similar methods can be used for Java 11)

Currently BedWars 0.2.36 does not require Java 11, however the most famous addon SBA requires at least Java 11. New version of BedWars (0.3.0+) will require at least Java 11.

"},{"location":"troubleshooting/#using-no-norwegian-language","title":"Using no (Norwegian) language","text":"

Well, Yaml specification says that literal no means false. To use no as no, you need to cast it to string locale: \"no\"

"},{"location":"troubleshooting/#players-get-disconnected-from-the-bedwars-game-when-they-die-or-players-respawn-in-the-arena-after-reconnecting","title":"Players get disconnected from the bedwars game when they die or players respawn in the arena after reconnecting","text":"

A plugin is overriding player spawns on your server, those might include (but not limited to) EssentialsSpawn, WorldGuard, etc. Remove those plugins or disable them in bedwars worlds.

"},{"location":"upgrades/","title":"Upgrades","text":""},{"location":"upgrades/#spawner-resource-quantity-upgrade","title":"Spawner resource quantity upgrade","text":"

This is how it should look in you shop.yml file:

- price: 1\n  price-type: bronze\n  upgrade:\n    entities:\n    - type: spawner\n      spawner-type: bronze\n      add-levels: 0.2\n      max-level: 2\n      shop-name: \"Bronze upgrade of the team %team%\"\n      notify-team: true\n  stack:\n    type: diamond_block\n    amount: 1\n    display-name: \"Bronze upgrade of the team %team%\"\n

Let's get into it.

"},{"location":"upgrades/#modes","title":"Modes","text":""}]} \ No newline at end of file