Свой сервер

BedWars в Майнкрафт датапаком

Датапак BedWars для Minecraft 1.21.11 — 26.3: острова команд с кроватью, генераторы железа, золота и изумрудов и житель-магазин в окне торговли. Пока кровать цела — возрождаешься, сломали — следующая смерть последняя.

Команды

  • Красные
  • Синие
  • Зелёные
  • Жёлтые

Игроки раздаются по командам по очереди: в двух командах из восьми игроков — по четыре.

Генераторы

  • Железный слиток раз в 1 с, до 48
  • Золотой слиток раз в 8 с, до 16
  • Изумруд раз в 30 с, до 4

Железо и золото — на острове каждой команды, изумруды — в центре. Больше указанного в куче не копится.

Карта сверху

Датапак · 1.21.11 — 26.3

Кровать — шерстью цвета команды, генератор — железный блок, магазин — доски, изумруды — в центре.

Команд
4
Сделок в магазине
12

Начать раунд — любой игрок в лобби

/trigger start
Скачать датапак
Что внутри архива — 50 файлов

data/minecraft/tags/function/load.json

Тег load: игра зовёт эти функции при загрузке мира и после /reload.

{
  "values": [
    "bedwars:load"
  ]
}

data/minecraft/tags/function/tick.json

Тег tick: эти функции идут каждый тик — 20 раз в секунду.

{
  "values": [
    "bedwars:tick"
  ]
}

data/minecraft/dimension/overworld.json

Обычный мир без земли: игра читает этот файл только при создании мира.

{
  "type": "minecraft:overworld",
  "generator": {
    "type": "minecraft:flat",
    "settings": {
      "biome": "minecraft:the_void",
      "features": false,
      "lakes": false,
      "layers": [
        {
          "block": "minecraft:air",
          "height": 1
        }
      ],
      "structure_overrides": []
    }
  }
}

data/bedwars/function/build.mcfunction

Загрузить чанки арены и, когда все готовы, строить.

forceload add -55 -55 55 55
execute unless loaded -56 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded -56 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded -40 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded -24 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded -8 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded 8 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded 24 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded 40 ~ 56 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ -56 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ -40 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ -24 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ -8 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ 8 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ 24 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ 40 run return run schedule function bedwars:build 5t
execute unless loaded 56 ~ 56 run return run schedule function bedwars:build 5t
function bedwars:make

data/bedwars/function/make.mcfunction

Арена заново: уборка, острова, кровати, генераторы, магазины.

kill @e[type=!player,x=-55,y=80,z=-55,dx=110,dy=45,dz=110]
fill -55 80 -55 55 81 55 minecraft:air
fill -55 82 -55 55 83 55 minecraft:air
fill -55 84 -55 55 85 55 minecraft:air
fill -55 86 -55 55 87 55 minecraft:air
fill -55 88 -55 55 89 55 minecraft:air
fill -55 90 -55 55 91 55 minecraft:air
fill -55 92 -55 55 93 55 minecraft:air
fill -55 94 -55 55 95 55 minecraft:air
fill -55 96 -55 55 97 55 minecraft:air
fill -55 98 -55 55 99 55 minecraft:air
fill -55 100 -55 55 101 55 minecraft:air
fill -55 102 -55 55 103 55 minecraft:air
fill -55 104 -55 55 105 55 minecraft:air
fill -55 106 -55 55 107 55 minecraft:air
fill -55 108 -55 55 109 55 minecraft:air
fill -55 110 -55 55 111 55 minecraft:air
fill -55 112 -55 55 113 55 minecraft:air
fill -55 114 -55 55 115 55 minecraft:air
fill -55 116 -55 55 117 55 minecraft:air
fill -55 118 -55 55 119 55 minecraft:air
fill -55 120 -55 55 121 55 minecraft:air
fill -55 122 -55 55 123 55 minecraft:air
fill -55 124 -55 55 125 55 minecraft:air
fill -4 139 -4 4 143 4 minecraft:glass hollow
place template bedwars:center -7 92 -7
setblock 0 100 0 minecraft:emerald_block
summon marker 0.5 101 0.5 {Tags:["bedwars_emerald"]}
place template bedwars:base -5 94 -39
setblock 0 101 -36 minecraft:red_bed[part=foot,facing=north]
setblock 0 101 -37 minecraft:red_bed[part=head,facing=north]
setblock 3 100 -34 minecraft:iron_block
summon marker 3.5 101 -33.5 {Tags:["bedwars_iron","bedwars_gold"]}
summon minecraft:villager -2.5 101 -33.5 {CustomName:"Магазин",Invulnerable:1b,NoAI:1b,Silent:1b,VillagerData:{profession:"minecraft:armorer",level:5,type:"minecraft:plains"},Offers:{Recipes:[{buy:{id:"minecraft:iron_ingot",count:4},sell:{id:"minecraft:red_wool",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:24},sell:{id:"minecraft:end_stone",count:12},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:4},sell:{id:"minecraft:oak_planks",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:10},sell:{id:"minecraft:stone_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:7},sell:{id:"minecraft:iron_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:diamond_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:iron_chestplate",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:6},sell:{id:"minecraft:iron_pickaxe",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:bow",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:2},sell:{id:"minecraft:arrow",count:8},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:3},sell:{id:"minecraft:golden_apple",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:ender_pearl",count:1},maxUses:2147483647,rewardExp:0b}]},Tags:["bedwars"],Rotation:[-90f,0f]}
place template bedwars:base -5 94 29
setblock 0 101 36 minecraft:blue_bed[part=foot,facing=south]
setblock 0 101 37 minecraft:blue_bed[part=head,facing=south]
setblock -3 100 34 minecraft:iron_block
summon marker -2.5 101 34.5 {Tags:["bedwars_iron","bedwars_gold"]}
summon minecraft:villager 3.5 101 34.5 {CustomName:"Магазин",Invulnerable:1b,NoAI:1b,Silent:1b,VillagerData:{profession:"minecraft:armorer",level:5,type:"minecraft:plains"},Offers:{Recipes:[{buy:{id:"minecraft:iron_ingot",count:4},sell:{id:"minecraft:blue_wool",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:24},sell:{id:"minecraft:end_stone",count:12},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:4},sell:{id:"minecraft:oak_planks",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:10},sell:{id:"minecraft:stone_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:7},sell:{id:"minecraft:iron_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:diamond_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:iron_chestplate",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:6},sell:{id:"minecraft:iron_pickaxe",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:bow",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:2},sell:{id:"minecraft:arrow",count:8},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:3},sell:{id:"minecraft:golden_apple",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:ender_pearl",count:1},maxUses:2147483647,rewardExp:0b}]},Tags:["bedwars"],Rotation:[90f,0f]}
place template bedwars:base 29 94 -5
setblock 36 101 0 minecraft:lime_bed[part=foot,facing=east]
setblock 37 101 0 minecraft:lime_bed[part=head,facing=east]
setblock 34 100 3 minecraft:iron_block
summon marker 34.5 101 3.5 {Tags:["bedwars_iron","bedwars_gold"]}
summon minecraft:villager 34.5 101 -2.5 {CustomName:"Магазин",Invulnerable:1b,NoAI:1b,Silent:1b,VillagerData:{profession:"minecraft:armorer",level:5,type:"minecraft:plains"},Offers:{Recipes:[{buy:{id:"minecraft:iron_ingot",count:4},sell:{id:"minecraft:lime_wool",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:24},sell:{id:"minecraft:end_stone",count:12},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:4},sell:{id:"minecraft:oak_planks",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:10},sell:{id:"minecraft:stone_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:7},sell:{id:"minecraft:iron_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:diamond_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:iron_chestplate",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:6},sell:{id:"minecraft:iron_pickaxe",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:bow",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:2},sell:{id:"minecraft:arrow",count:8},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:3},sell:{id:"minecraft:golden_apple",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:ender_pearl",count:1},maxUses:2147483647,rewardExp:0b}]},Tags:["bedwars"],Rotation:[0f,0f]}
place template bedwars:base -39 94 -5
setblock -36 101 0 minecraft:yellow_bed[part=foot,facing=west]
setblock -37 101 0 minecraft:yellow_bed[part=head,facing=west]
setblock -34 100 -3 minecraft:iron_block
summon marker -33.5 101 -2.5 {Tags:["bedwars_iron","bedwars_gold"]}
summon minecraft:villager -33.5 101 3.5 {CustomName:"Магазин",Invulnerable:1b,NoAI:1b,Silent:1b,VillagerData:{profession:"minecraft:armorer",level:5,type:"minecraft:plains"},Offers:{Recipes:[{buy:{id:"minecraft:iron_ingot",count:4},sell:{id:"minecraft:yellow_wool",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:24},sell:{id:"minecraft:end_stone",count:12},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:4},sell:{id:"minecraft:oak_planks",count:16},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:iron_ingot",count:10},sell:{id:"minecraft:stone_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:7},sell:{id:"minecraft:iron_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:diamond_sword",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:iron_chestplate",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:6},sell:{id:"minecraft:iron_pickaxe",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:12},sell:{id:"minecraft:bow",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:2},sell:{id:"minecraft:arrow",count:8},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:gold_ingot",count:3},sell:{id:"minecraft:golden_apple",count:1},maxUses:2147483647,rewardExp:0b},{buy:{id:"minecraft:emerald",count:4},sell:{id:"minecraft:ender_pearl",count:1},maxUses:2147483647,rewardExp:0b}]},Tags:["bedwars"],Rotation:[180f,0f]}
setworldspawn 0 140 0
schedule function bedwars:release 5s

data/bedwars/function/release.mcfunction

Через 5 с после постройки чанки арены отпускаются.

forceload remove -55 -55 55 55

data/bedwars/function/team/red.mcfunction

В команду «Красные»: на её остров, возрождение — там же.

team join bedwars_red @s
tag @s remove bedwars_queue
tag @s add bedwars_alive
tp @s 0.5 101 -33.5 facing 0.5 101 0.5
spawnpoint @s 0 101 -34

data/bedwars/function/kit/red.mcfunction

Набор команды «Красные»: кожаная броня её цвета и деревянный меч.

item replace entity @s armor.head with minecraft:leather_helmet[minecraft:dyed_color=11546150,minecraft:unbreakable={}]
item replace entity @s armor.chest with minecraft:leather_chestplate[minecraft:dyed_color=11546150,minecraft:unbreakable={}]
item replace entity @s armor.legs with minecraft:leather_leggings[minecraft:dyed_color=11546150,minecraft:unbreakable={}]
item replace entity @s armor.feet with minecraft:leather_boots[minecraft:dyed_color=11546150,minecraft:unbreakable={}]
give @s minecraft:wooden_sword[minecraft:unbreakable={}]

data/bedwars/function/bed/keep_red.mcfunction

Игрок «Красные» сломал свою кровать — она снова на месте.

scoreboard players reset @s bedwars_red
setblock 0 101 -36 minecraft:red_bed[part=foot,facing=north]
setblock 0 101 -37 minecraft:red_bed[part=head,facing=north]
execute positioned 0 101 -36 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:red_bed"}}]
tellraw @s {"text":"Свою кровать ломать нельзя.","color":"red"}

data/bedwars/function/bed/lost_red.mcfunction

Кровать «Красные» сломана: больше не возрождаются.

scoreboard players set #bed_red bedwars 0
execute positioned 0 101 -36 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:red_bed"}}]
tellraw @a {"text":"Кровать красных разрушена!","color":"red"}
title @a[team=bedwars_red] title {"text":"Кровать разрушена!","color":"red"}
title @a[team=bedwars_red] subtitle {"text":"следующая смерть — последняя"}
execute as @a at @s run playsound minecraft:entity.ender_dragon.growl master @s

data/bedwars/function/bed/none_red.mcfunction

В «Красные» никого — кровать убирается.

scoreboard players set #bed_red bedwars 0
fill 0 101 -36 0 101 -37 minecraft:air

data/bedwars/function/team/blue.mcfunction

В команду «Синие»: на её остров, возрождение — там же.

team join bedwars_blue @s
tag @s remove bedwars_queue
tag @s add bedwars_alive
tp @s 0.5 101 34.5 facing 0.5 101 0.5
spawnpoint @s 0 101 34

data/bedwars/function/kit/blue.mcfunction

Набор команды «Синие»: кожаная броня её цвета и деревянный меч.

item replace entity @s armor.head with minecraft:leather_helmet[minecraft:dyed_color=3949738,minecraft:unbreakable={}]
item replace entity @s armor.chest with minecraft:leather_chestplate[minecraft:dyed_color=3949738,minecraft:unbreakable={}]
item replace entity @s armor.legs with minecraft:leather_leggings[minecraft:dyed_color=3949738,minecraft:unbreakable={}]
item replace entity @s armor.feet with minecraft:leather_boots[minecraft:dyed_color=3949738,minecraft:unbreakable={}]
give @s minecraft:wooden_sword[minecraft:unbreakable={}]

data/bedwars/function/bed/keep_blue.mcfunction

Игрок «Синие» сломал свою кровать — она снова на месте.

scoreboard players reset @s bedwars_blue
setblock 0 101 36 minecraft:blue_bed[part=foot,facing=south]
setblock 0 101 37 minecraft:blue_bed[part=head,facing=south]
execute positioned 0 101 36 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:blue_bed"}}]
tellraw @s {"text":"Свою кровать ломать нельзя.","color":"red"}

data/bedwars/function/bed/lost_blue.mcfunction

Кровать «Синие» сломана: больше не возрождаются.

scoreboard players set #bed_blue bedwars 0
execute positioned 0 101 36 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:blue_bed"}}]
tellraw @a {"text":"Кровать синих разрушена!","color":"blue"}
title @a[team=bedwars_blue] title {"text":"Кровать разрушена!","color":"red"}
title @a[team=bedwars_blue] subtitle {"text":"следующая смерть — последняя"}
execute as @a at @s run playsound minecraft:entity.ender_dragon.growl master @s

data/bedwars/function/bed/none_blue.mcfunction

В «Синие» никого — кровать убирается.

scoreboard players set #bed_blue bedwars 0
fill 0 101 36 0 101 37 minecraft:air

data/bedwars/function/team/green.mcfunction

В команду «Зелёные»: на её остров, возрождение — там же.

team join bedwars_green @s
tag @s remove bedwars_queue
tag @s add bedwars_alive
tp @s 34.5 101 0.5 facing 0.5 101 0.5
spawnpoint @s 34 101 0

data/bedwars/function/kit/green.mcfunction

Набор команды «Зелёные»: кожаная броня её цвета и деревянный меч.

item replace entity @s armor.head with minecraft:leather_helmet[minecraft:dyed_color=8439583,minecraft:unbreakable={}]
item replace entity @s armor.chest with minecraft:leather_chestplate[minecraft:dyed_color=8439583,minecraft:unbreakable={}]
item replace entity @s armor.legs with minecraft:leather_leggings[minecraft:dyed_color=8439583,minecraft:unbreakable={}]
item replace entity @s armor.feet with minecraft:leather_boots[minecraft:dyed_color=8439583,minecraft:unbreakable={}]
give @s minecraft:wooden_sword[minecraft:unbreakable={}]

data/bedwars/function/bed/keep_green.mcfunction

Игрок «Зелёные» сломал свою кровать — она снова на месте.

scoreboard players reset @s bedwars_green
setblock 36 101 0 minecraft:lime_bed[part=foot,facing=east]
setblock 37 101 0 minecraft:lime_bed[part=head,facing=east]
execute positioned 36 101 0 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:lime_bed"}}]
tellraw @s {"text":"Свою кровать ломать нельзя.","color":"red"}

data/bedwars/function/bed/lost_green.mcfunction

Кровать «Зелёные» сломана: больше не возрождаются.

scoreboard players set #bed_green bedwars 0
execute positioned 36 101 0 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:lime_bed"}}]
tellraw @a {"text":"Кровать зелёных разрушена!","color":"green"}
title @a[team=bedwars_green] title {"text":"Кровать разрушена!","color":"red"}
title @a[team=bedwars_green] subtitle {"text":"следующая смерть — последняя"}
execute as @a at @s run playsound minecraft:entity.ender_dragon.growl master @s

data/bedwars/function/bed/none_green.mcfunction

В «Зелёные» никого — кровать убирается.

scoreboard players set #bed_green bedwars 0
fill 36 101 0 37 101 0 minecraft:air

data/bedwars/function/team/yellow.mcfunction

В команду «Жёлтые»: на её остров, возрождение — там же.

team join bedwars_yellow @s
tag @s remove bedwars_queue
tag @s add bedwars_alive
tp @s -33.5 101 0.5 facing 0.5 101 0.5
spawnpoint @s -34 101 0

data/bedwars/function/kit/yellow.mcfunction

Набор команды «Жёлтые»: кожаная броня её цвета и деревянный меч.

item replace entity @s armor.head with minecraft:leather_helmet[minecraft:dyed_color=16701501,minecraft:unbreakable={}]
item replace entity @s armor.chest with minecraft:leather_chestplate[minecraft:dyed_color=16701501,minecraft:unbreakable={}]
item replace entity @s armor.legs with minecraft:leather_leggings[minecraft:dyed_color=16701501,minecraft:unbreakable={}]
item replace entity @s armor.feet with minecraft:leather_boots[minecraft:dyed_color=16701501,minecraft:unbreakable={}]
give @s minecraft:wooden_sword[minecraft:unbreakable={}]

data/bedwars/function/bed/keep_yellow.mcfunction

Игрок «Жёлтые» сломал свою кровать — она снова на месте.

scoreboard players reset @s bedwars_yellow
setblock -36 101 0 minecraft:yellow_bed[part=foot,facing=west]
setblock -37 101 0 minecraft:yellow_bed[part=head,facing=west]
execute positioned -36 101 0 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:yellow_bed"}}]
tellraw @s {"text":"Свою кровать ломать нельзя.","color":"red"}

data/bedwars/function/bed/lost_yellow.mcfunction

Кровать «Жёлтые» сломана: больше не возрождаются.

scoreboard players set #bed_yellow bedwars 0
execute positioned -36 101 0 run kill @e[type=item,distance=..4,nbt={Item:{id:"minecraft:yellow_bed"}}]
tellraw @a {"text":"Кровать жёлтых разрушена!","color":"yellow"}
title @a[team=bedwars_yellow] title {"text":"Кровать разрушена!","color":"red"}
title @a[team=bedwars_yellow] subtitle {"text":"следующая смерть — последняя"}
execute as @a at @s run playsound minecraft:entity.ender_dragon.growl master @s

data/bedwars/function/bed/none_yellow.mcfunction

В «Жёлтые» никого — кровать убирается.

scoreboard players set #bed_yellow bedwars 0
fill -36 101 0 -37 101 0 minecraft:air

data/bedwars/function/assign.mcfunction

Игроки по командам по очереди: случайный из очереди — в следующую.

execute unless entity @a[tag=bedwars_queue] run return 0
execute if score #next bedwars matches 0 as @r[tag=bedwars_queue] run function bedwars:team/red
execute if score #next bedwars matches 1 as @r[tag=bedwars_queue] run function bedwars:team/blue
execute if score #next bedwars matches 2 as @r[tag=bedwars_queue] run function bedwars:team/green
execute if score #next bedwars matches 3 as @r[tag=bedwars_queue] run function bedwars:team/yellow
scoreboard players add #next bedwars 1
execute if score #next bedwars matches 4.. run scoreboard players set #next bedwars 0
function bedwars:assign

data/bedwars/function/respawn.mcfunction

Погиб при целой кровати: после возрождения — набор.

tag @s add bedwars_back
tellraw @a ["",{"selector":"@s"},{"text":" погиб — кровать цела, вернётся.","color":"gray"}]

data/bedwars/function/back.mcfunction

Возродился: набор своей команды.

tag @s remove bedwars_back
execute if entity @s[team=bedwars_red] run function bedwars:kit/red
execute if entity @s[team=bedwars_blue] run function bedwars:kit/blue
execute if entity @s[team=bedwars_green] run function bedwars:kit/green
execute if entity @s[team=bedwars_yellow] run function bedwars:kit/yellow

data/bedwars/function/drop/iron.mcfunction

Генератор: слиток, если в куче меньше 48.

scoreboard players set #pile bedwars 0
execute store result score #pile bedwars run data get entity @n[type=item,distance=..1.5,nbt={Item:{id:"minecraft:iron_ingot"}}] Item.count
execute if score #pile bedwars matches ..47 run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:iron_ingot",count:1}}

data/bedwars/function/gen/iron.mcfunction

Раз в 20 тиков — iron_ingot на каждом генераторе.

execute as @e[type=marker,tag=bedwars_iron] at @s run function bedwars:drop/iron
execute if score #state bedwars matches 1 run schedule function bedwars:gen/iron 20t

data/bedwars/function/drop/gold.mcfunction

Генератор: слиток, если в куче меньше 16.

scoreboard players set #pile bedwars 0
execute store result score #pile bedwars run data get entity @n[type=item,distance=..1.5,nbt={Item:{id:"minecraft:gold_ingot"}}] Item.count
execute if score #pile bedwars matches ..15 run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:gold_ingot",count:1}}

data/bedwars/function/gen/gold.mcfunction

Раз в 160 тиков — gold_ingot на каждом генераторе.

execute as @e[type=marker,tag=bedwars_gold] at @s run function bedwars:drop/gold
execute if score #state bedwars matches 1 run schedule function bedwars:gen/gold 160t

data/bedwars/function/drop/emerald.mcfunction

Генератор: слиток, если в куче меньше 4.

scoreboard players set #pile bedwars 0
execute store result score #pile bedwars run data get entity @n[type=item,distance=..1.5,nbt={Item:{id:"minecraft:emerald"}}] Item.count
execute if score #pile bedwars matches ..3 run summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:emerald",count:1}}

data/bedwars/function/gen/emerald.mcfunction

Раз в 600 тиков — emerald на каждом генераторе.

execute as @e[type=marker,tag=bedwars_emerald] at @s run function bedwars:drop/emerald
execute if score #state bedwars matches 1 run schedule function bedwars:gen/emerald 600t

data/bedwars/function/load.mcfunction

При загрузке мира: счета, триггер старта и арена, если её ещё нет.

scoreboard objectives add bedwars dummy
scoreboard objectives add start trigger "Начать раунд"
scoreboard objectives add bedwars_deaths deathCount
scoreboard objectives add bedwars_left minecraft.custom:minecraft.leave_game
team add bedwars_red
team modify bedwars_red color red
team modify bedwars_red friendlyFire false
scoreboard objectives add bedwars_red minecraft.mined:minecraft.red_bed
team add bedwars_blue
team modify bedwars_blue color blue
team modify bedwars_blue friendlyFire false
scoreboard objectives add bedwars_blue minecraft.mined:minecraft.blue_bed
team add bedwars_green
team modify bedwars_green color green
team modify bedwars_green friendlyFire false
scoreboard objectives add bedwars_green minecraft.mined:minecraft.lime_bed
team add bedwars_yellow
team modify bedwars_yellow color yellow
team modify bedwars_yellow friendlyFire false
scoreboard objectives add bedwars_yellow minecraft.mined:minecraft.yellow_bed
execute unless score #built bedwars matches 1 run schedule function bedwars:setup 1t
tellraw @a ["",{"text":"BedWars загружен. Начать раунд — "},{"text":"/trigger start","color":"gold","click_event":{"action":"run_command","command":"/trigger start"}},{"text":"."}]

data/bedwars/function/setup.mcfunction

Первая загрузка: построить арену.

function bedwars:build
scoreboard players set #built bedwars 1

data/bedwars/function/tick.mcfunction

Каждый тик: старт, новички и вернувшиеся, ход игры.

scoreboard players enable @a start
execute as @a[scores={start=1..}] run function bedwars:start
execute as @a[tag=!bedwars_seen] run function bedwars:join
execute as @a[scores={bedwars_left=1..}] run function bedwars:join
execute if score #state bedwars matches 1 run function bedwars:play

data/bedwars/function/join.mcfunction

Вошёл игрок: идёт раунд — смотрит, нет — в лобби. Вышедший из игры в неё не вернётся.

scoreboard players reset @s bedwars_left
tag @s add bedwars_seen
tag @s remove bedwars_alive
execute if score #state bedwars matches 1.. run return run function bedwars:watch
function bedwars:lobby

data/bedwars/function/watch.mcfunction

Опоздавший и выбывший смотрят наблюдателем.

gamemode spectator @s
tp @s 0 120 0
tellraw @s {"text":"Идёт раунд — вы смотрите. Следующий начнётся сам.","color":"gray"}

data/bedwars/function/lobby.mcfunction

Игрок в лобби: режим приключения, пустой инвентарь, полное здоровье.

gamemode adventure @s
team leave @s
clear @s
effect clear @s
effect give @s minecraft:instant_health 1 20 true
effect give @s minecraft:saturation 1 20 true
xp set @s 0 levels
xp set @s 0 points
execute as @s run attribute @s minecraft:movement_speed base reset
execute as @s run attribute @s minecraft:jump_strength base reset
tp @s 0 140 0
spawnpoint @s 0 140 0

data/bedwars/function/start.mcfunction

/trigger start — места, отсчёт. Прав оператора не нужно.

scoreboard players set @s start 0
execute if score #state bedwars matches 1.. run return run tellraw @s {"text":"Раунд уже идёт."}
execute store result score #players bedwars if entity @a
execute if score #players bedwars matches ..1 run return run tellraw @s {"text":"Нужно хотя бы 2 игрока.","color":"red"}
scoreboard players set #state bedwars 2
tag @a add bedwars_queue
scoreboard players set #next bedwars 0
function bedwars:assign
execute as @a[tag=bedwars_alive] run attribute @s minecraft:movement_speed base set 0
execute as @a[tag=bedwars_alive] run attribute @s minecraft:jump_strength base set 0
execute as @a[tag=bedwars_queue] run function bedwars:watch
tag @a remove bedwars_queue
execute as @a[tag=bedwars_alive] run function bedwars:prep
scoreboard players set #count bedwars 10
function bedwars:count

data/bedwars/function/prep.mcfunction

Игрок на месте: пустой инвентарь, полное здоровье и сытость.

gamemode adventure @s
clear @s
effect clear @s
effect give @s minecraft:instant_health 1 20 true
effect give @s minecraft:saturation 1 20 true
xp set @s 0 levels
xp set @s 0 points
scoreboard players reset @s bedwars_deaths

data/bedwars/function/count.mcfunction

Отсчёт 10 … 1 титрами, по нулю — старт.

execute if score #count bedwars matches ..0 run return run function bedwars:go
title @a times 0 25 5
title @a title {"score":{"name":"#count","objective":"bedwars"},"color":"gold"}
execute as @a at @s run playsound minecraft:block.note_block.hat master @s
scoreboard players remove #count bedwars 1
schedule function bedwars:count 1s

data/bedwars/function/go.mcfunction

Старт раунда.

scoreboard players set #state bedwars 1
gamemode survival @a[tag=bedwars_alive]
title @a title {"text":"Старт!","color":"green"}
execute as @a at @s run playsound minecraft:entity.player.levelup master @s
forceload add -55 -55 55 55
execute as @a[tag=bedwars_alive] run attribute @s minecraft:movement_speed base reset
execute as @a[tag=bedwars_alive] run attribute @s minecraft:jump_strength base reset
scoreboard players set #bed_red bedwars 1
execute unless entity @a[tag=bedwars_alive,team=bedwars_red] run function bedwars:bed/none_red
scoreboard players reset * bedwars_red
execute as @a[tag=bedwars_alive,team=bedwars_red] run function bedwars:kit/red
scoreboard players set #bed_blue bedwars 1
execute unless entity @a[tag=bedwars_alive,team=bedwars_blue] run function bedwars:bed/none_blue
scoreboard players reset * bedwars_blue
execute as @a[tag=bedwars_alive,team=bedwars_blue] run function bedwars:kit/blue
scoreboard players set #bed_green bedwars 1
execute unless entity @a[tag=bedwars_alive,team=bedwars_green] run function bedwars:bed/none_green
scoreboard players reset * bedwars_green
execute as @a[tag=bedwars_alive,team=bedwars_green] run function bedwars:kit/green
scoreboard players set #bed_yellow bedwars 1
execute unless entity @a[tag=bedwars_alive,team=bedwars_yellow] run function bedwars:bed/none_yellow
scoreboard players reset * bedwars_yellow
execute as @a[tag=bedwars_alive,team=bedwars_yellow] run function bedwars:kit/yellow
function bedwars:gen/iron
function bedwars:gen/gold
function bedwars:gen/emerald
title @a subtitle {"text":"Защищайте свою кровать"}

data/bedwars/function/play.mcfunction

Каждый тик раунда: смерти, падения и кто остался.

execute as @a[tag=bedwars_alive,y=-2048,dy=2118] run kill @s
execute as @a[tag=bedwars_alive,scores={bedwars_deaths=1..}] run function bedwars:died
execute if score #bed_red bedwars matches 1 as @a[team=bedwars_red,scores={bedwars_red=1..}] run function bedwars:bed/keep_red
execute if score #bed_red bedwars matches 1 unless block 0 101 -36 minecraft:red_bed run function bedwars:bed/lost_red
execute if score #bed_blue bedwars matches 1 as @a[team=bedwars_blue,scores={bedwars_blue=1..}] run function bedwars:bed/keep_blue
execute if score #bed_blue bedwars matches 1 unless block 0 101 36 minecraft:blue_bed run function bedwars:bed/lost_blue
execute if score #bed_green bedwars matches 1 as @a[team=bedwars_green,scores={bedwars_green=1..}] run function bedwars:bed/keep_green
execute if score #bed_green bedwars matches 1 unless block 36 101 0 minecraft:lime_bed run function bedwars:bed/lost_green
execute if score #bed_yellow bedwars matches 1 as @a[team=bedwars_yellow,scores={bedwars_yellow=1..}] run function bedwars:bed/keep_yellow
execute if score #bed_yellow bedwars matches 1 unless block -36 101 0 minecraft:yellow_bed run function bedwars:bed/lost_yellow
execute as @e[type=player,tag=bedwars_back] run function bedwars:back
scoreboard players set #teams bedwars 0
execute if entity @a[tag=bedwars_alive,team=bedwars_red] run scoreboard players add #teams bedwars 1
execute if entity @a[tag=bedwars_alive,team=bedwars_blue] run scoreboard players add #teams bedwars 1
execute if entity @a[tag=bedwars_alive,team=bedwars_green] run scoreboard players add #teams bedwars 1
execute if entity @a[tag=bedwars_alive,team=bedwars_yellow] run scoreboard players add #teams bedwars 1
execute if score #teams bedwars matches ..1 run function bedwars:win

data/bedwars/function/died.mcfunction

Игрок погиб.

scoreboard players reset @s bedwars_deaths
execute if entity @s[team=bedwars_red] if score #bed_red bedwars matches 1 run return run function bedwars:respawn
execute if entity @s[team=bedwars_blue] if score #bed_blue bedwars matches 1 run return run function bedwars:respawn
execute if entity @s[team=bedwars_green] if score #bed_green bedwars matches 1 run return run function bedwars:respawn
execute if entity @s[team=bedwars_yellow] if score #bed_yellow bedwars matches 1 run return run function bedwars:respawn
function bedwars:out

data/bedwars/function/out.mcfunction

Выбыл: наблюдатель до конца раунда.

gamemode spectator @s
tag @s remove bedwars_alive
execute store result score #alive bedwars if entity @a[tag=bedwars_alive]
tellraw @a ["",{"selector":"@s"},{"text":" выбывает. В игре: ","color":"gray"},{"score":{"name":"#alive","objective":"bedwars"}}]

data/bedwars/function/win.mcfunction

Победа: титры, через 10 с — новый раунд.

scoreboard players set #state bedwars 3
forceload remove -55 -55 55 55
execute if entity @a[tag=bedwars_alive,team=bedwars_red] run title @a title {"text":"Победили красные!","color":"red"}
execute if entity @a[tag=bedwars_alive,team=bedwars_blue] run title @a title {"text":"Победили синие!","color":"blue"}
execute if entity @a[tag=bedwars_alive,team=bedwars_green] run title @a title {"text":"Победили зелёные!","color":"green"}
execute if entity @a[tag=bedwars_alive,team=bedwars_yellow] run title @a title {"text":"Победили жёлтые!","color":"yellow"}
execute if score #teams bedwars matches 0 run title @a title {"text":"Ничья"}
tellraw @a {"text":"Новый раунд — через 10 с.","color":"gray"}
schedule function bedwars:restart 10s

data/bedwars/function/restart.mcfunction

Новый раунд: арена заново, все — в лобби.

scoreboard players set #state bedwars 0
function bedwars:build
tag @a remove bedwars_alive
execute as @a run function bedwars:lobby
tellraw @a ["",{"text":"Арена готова. Начать — "},{"text":"/trigger start","color":"gold","click_event":{"action":"run_command","command":"/trigger start"}},{"text":"."}]

Что продаёт магазин

Житель на каждом острове — обычное окно торговли игры. Сделки без предела: запас не кончается, цена не растёт.

Магазин команды

  • Шерсть цвета команды ×16 4 Железный слиток
  • Эндерняк ×12 24 Железный слиток
  • Дубовые доски ×16 4 Золотой слиток
  • Каменный меч 10 Железный слиток
  • Железный меч 7 Золотой слиток
  • Алмазный меч 4 Изумруд
  • Железный нагрудник 12 Золотой слиток
  • Железная кирка 6 Золотой слиток
  • Лук 12 Золотой слиток
  • Стрела ×8 2 Золотой слиток
  • Золотое яблоко 3 Золотой слиток
  • Эндер-жемчуг 4 Изумруд

Как начать

  1. Скачайте датапак

    Распаковывать не нужно: игра читает его прямо из zip.

  2. Создайте новый мир

    «Создать мир» → «Ещё» → «Наборы данных» — перетащите архив и включите. На сервере — положите в world/datapacks до первого запуска.

  3. Подтвердите предупреждение

    Игра назовёт настройки экспериментальными — так она зовёт любой мир со своим генератором. Нажмите «Продолжить».

  4. Начинайте

    Все ждут в стеклянном лобби над центром. Нужно хотя бы двое: /trigger start — команды раздаются, отсчёт, и каждый на своём острове.

Что нужно знать

  • Кровать — это жизни. Пока она цела, погибший возрождается на своём острове с новой бронёй цвета команды и деревянным мечом. Сломали — титр «Кровать разрушена!», и следующая смерть выбивает из игры.
  • Свою кровать не сломать. Сломал свою — она тут же встаёт обратно. Ломать надо чужие.
  • Пустота убивает сразу. Кто упал ниже островов, погибает без полуминуты урона: с целой кроватью — вернётся, без неё — выбыл.
  • Команда без игроков — без кровати. Если на старте в команду никто не попал, её кровать убирается, и остров стоит пустым.
  • Побеждает последняя команда. Через десять секунд арена строится заново: мосты убираются, кровати и магазины встают на место, все — в лобби.
  • Пустой мир — только при создании. Пак заменяет генератор обычного мира на пустоту, а его игра читает один раз — когда мир создаётся.

Свои сделки жителя — генератор торговли, цвет ника команды — генератор /team, бой на островах без кроватей — SkyWars. Настоящие матчи 4 × 4 — на серверах BedWars в мониторинге.

Частые вопросы

Как сделать BedWars в Майнкрафте без плагинов?

Скачайте датапак и добавьте его при создании нового мира: пустой мир, острова команд и магазин пак построит сам. Раунд начинает /trigger start, команды раздаются поровну.

Как работает магазин в BedWars без плагинов?

На каждом острове стоит житель с готовыми сделками: шерсть и каменный меч — за железо, железные меч и нагрудник — за золото, алмазный меч и жемчуг — за изумруды. Окно — обычная торговля игры, запас не кончается.

Что будет, если сломать кровать в BedWars?

Пока кровать цела, погибший игрок возрождается на своём острове с новой бронёй. Сломали кровать — следующая смерть выбивает из игры. Свою кровать сломать нельзя.