Свой сервер

OneBlock: мир из одного блока

Соберите свою карту «один блок» для Minecraft 1.21.9 — 26.3: выберите фазы, их длину, сундуки и мобов — и скачайте датапак. Ломаете блок — на его месте сразу появляется следующий.

Фазы

Фазы идут в порядке игры, после последней — снова с первой.

Длина фазы

Столько блоков надо сломать, чтобы перейти к следующей фазе.

Сундуки и мобы

Сундук с добычей вместо блока

Мобы на новом блоке

Ваш OneBlock

Датапак · 1.21.9 — 26.3
Фаз
9
Блоков в фазе
100
Круг целиком
900 блоков
  1. Равнина 1–100
  2. Подземелье 101–200
  3. Снега 201–300
  4. Океан 301–400
  5. Джунгли 401–500
  6. Пустыня 501–600
  7. Глубины 601–700
  8. Незер 701–800
  9. Энд 801–900
Скачать датапак
Что внутри архива — 28 файлов

data/minecraft/tags/function/load.json

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

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

data/minecraft/tags/function/tick.json

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

{
  "values": [
    "oneblock: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/oneblock/function/load.mcfunction

При загрузке мира: счёт, длина фазы и первый блок, если его ещё нет.

scoreboard objectives add oneblock dummy
setworldspawn 0 65 0
scoreboard players set #length oneblock 100
scoreboard players set #count oneblock 9
execute unless score #built oneblock matches 1 run function oneblock:start

data/oneblock/function/start.mcfunction

Первый блок — трава — и сундук с саженцами, ведром воды и хлебом.

forceload add 0 0
setblock 0 64 0 minecraft:grass_block
setblock 0 64 1 minecraft:chest[facing=north]{Items:[{Slot:0b,id:"minecraft:oak_sapling",count:2},{Slot:1b,id:"minecraft:water_bucket",count:1},{Slot:2b,id:"minecraft:bread",count:4}]}
setblock 0 63 0 minecraft:barrier
scoreboard players set #blocks oneblock 0
scoreboard players set #built oneblock 1
schedule function oneblock:release 5s

data/oneblock/function/release.mcfunction

Через 5 с после постройки чанк отпускается: дальше его грузит игрок, как любой другой.

forceload remove 0 0

data/oneblock/function/join.mcfunction

Первый вход игрока: на место, и возрождаться — там же.

tp @s 0.5 65 0.5
spawnpoint @s 0 65 0
tag @s add oneblock_joined

data/oneblock/function/tick.mcfunction

Каждый тик: новичка — на блок, сломанный блок — заменить следующим.

execute as @a[tag=!oneblock_joined] run function oneblock:join
execute if block 0 64 0 #minecraft:replaceable run function oneblock:next

data/oneblock/function/next.mcfunction

Блок сломан: счёт, фаза, бросок — и новый блок на том же месте.

scoreboard players add #blocks oneblock 1
scoreboard players operation #phase oneblock = #blocks oneblock
scoreboard players operation #phase oneblock /= #length oneblock
scoreboard players operation #phase oneblock %= #count oneblock
scoreboard players operation #in oneblock = #blocks oneblock
scoreboard players operation #in oneblock %= #length oneblock
execute store result score #roll oneblock run random value 1..1000
execute if score #phase oneblock matches 0 run function oneblock:phase/plains
execute if score #phase oneblock matches 1 run function oneblock:phase/underground
execute if score #phase oneblock matches 2 run function oneblock:phase/snow
execute if score #phase oneblock matches 3 run function oneblock:phase/ocean
execute if score #phase oneblock matches 4 run function oneblock:phase/jungle
execute if score #phase oneblock matches 5 run function oneblock:phase/desert
execute if score #phase oneblock matches 6 run function oneblock:phase/deep
execute if score #phase oneblock matches 7 run function oneblock:phase/nether
execute if score #phase oneblock matches 8 run function oneblock:phase/end
execute as @a[x=0,y=64,z=0,dx=0,dy=0,dz=0] at @s run tp @s ~ 65 ~
execute store result score #mob oneblock run random value 1..1000
execute if score #phase oneblock matches 0 if score #mob oneblock matches 1..50 run function oneblock:mob/plains
execute if score #phase oneblock matches 1 if score #mob oneblock matches 1..50 run function oneblock:mob/underground
execute if score #phase oneblock matches 2 if score #mob oneblock matches 1..50 run function oneblock:mob/snow
execute if score #phase oneblock matches 3 if score #mob oneblock matches 1..50 run function oneblock:mob/ocean
execute if score #phase oneblock matches 4 if score #mob oneblock matches 1..50 run function oneblock:mob/jungle
execute if score #phase oneblock matches 5 if score #mob oneblock matches 1..50 run function oneblock:mob/desert
execute if score #phase oneblock matches 6 if score #mob oneblock matches 1..50 run function oneblock:mob/deep
execute if score #phase oneblock matches 7 if score #mob oneblock matches 1..50 run function oneblock:mob/nether
execute if score #phase oneblock matches 8 if score #mob oneblock matches 1..50 run function oneblock:mob/end
title @a actionbar ["",{"text":"Блок "},{"score":{"name":"#blocks","objective":"oneblock"}}]

data/oneblock/function/phase/plains.mcfunction

Фаза «Равнина»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Равнина"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/village/village_plains_house"}
execute if score #roll oneblock matches 1..233 run return run setblock 0 64 0 minecraft:grass_block
execute if score #roll oneblock matches 234..408 run return run setblock 0 64 0 minecraft:dirt
execute if score #roll oneblock matches 409..621 run return run setblock 0 64 0 minecraft:oak_log
execute if score #roll oneblock matches 622..679 run return run setblock 0 64 0 minecraft:oak_leaves[persistent=true]
execute if score #roll oneblock matches 680..757 run return run setblock 0 64 0 minecraft:stone
execute if score #roll oneblock matches 758..805 run return run setblock 0 64 0 minecraft:sand
execute if score #roll oneblock matches 806..853 run return run setblock 0 64 0 minecraft:gravel
execute if score #roll oneblock matches 854..892 run return run setblock 0 64 0 minecraft:clay
execute if score #roll oneblock matches 893..921 run return run setblock 0 64 0 minecraft:pumpkin
execute if score #roll oneblock matches 922..950 run return run setblock 0 64 0 minecraft:melon
execute if score #roll oneblock matches 951..970 run return run setblock 0 64 0 minecraft:coarse_dirt

data/oneblock/function/mob/plains.mcfunction

Моб фазы «Равнина» — на новом блоке.

execute store result score #which oneblock run random value 1..4
execute if score #which oneblock matches 1 run summon minecraft:cow 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:sheep 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:pig 0.5 65 0.5
execute if score #which oneblock matches 4 run summon minecraft:chicken 0.5 65 0.5

data/oneblock/function/phase/underground.mcfunction

Фаза «Подземелье»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Подземелье"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/simple_dungeon"}
execute if score #roll oneblock matches 1..291 run return run setblock 0 64 0 minecraft:stone
execute if score #roll oneblock matches 292..407 run return run setblock 0 64 0 minecraft:cobblestone
execute if score #roll oneblock matches 408..485 run return run setblock 0 64 0 minecraft:andesite
execute if score #roll oneblock matches 486..563 run return run setblock 0 64 0 minecraft:diorite
execute if score #roll oneblock matches 564..641 run return run setblock 0 64 0 minecraft:granite
execute if score #roll oneblock matches 642..689 run return run setblock 0 64 0 minecraft:tuff
execute if score #roll oneblock matches 690..747 run return run setblock 0 64 0 minecraft:gravel
execute if score #roll oneblock matches 748..844 run return run setblock 0 64 0 minecraft:coal_ore
execute if score #roll oneblock matches 845..922 run return run setblock 0 64 0 minecraft:iron_ore
execute if score #roll oneblock matches 923..970 run return run setblock 0 64 0 minecraft:copper_ore

data/oneblock/function/mob/underground.mcfunction

Моб фазы «Подземелье» — на новом блоке.

execute store result score #which oneblock run random value 1..4
execute if score #which oneblock matches 1 run summon minecraft:bat 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:zombie 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:skeleton 0.5 65 0.5
execute if score #which oneblock matches 4 run summon minecraft:spider 0.5 65 0.5

data/oneblock/function/phase/snow.mcfunction

Фаза «Снега»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Снега"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/igloo_chest"}
execute if score #roll oneblock matches 1..252 run return run setblock 0 64 0 minecraft:snow_block
execute if score #roll oneblock matches 253..388 run return run setblock 0 64 0 minecraft:ice
execute if score #roll oneblock matches 389..466 run return run setblock 0 64 0 minecraft:packed_ice
execute if score #roll oneblock matches 467..660 run return run setblock 0 64 0 minecraft:spruce_log
execute if score #roll oneblock matches 661..718 run return run setblock 0 64 0 minecraft:spruce_leaves[persistent=true]
execute if score #roll oneblock matches 719..854 run return run setblock 0 64 0 minecraft:stone
execute if score #roll oneblock matches 855..912 run return run setblock 0 64 0 minecraft:iron_ore
execute if score #roll oneblock matches 913..970 run return run setblock 0 64 0 minecraft:coal_ore

data/oneblock/function/mob/snow.mcfunction

Моб фазы «Снега» — на новом блоке.

execute store result score #which oneblock run random value 1..4
execute if score #which oneblock matches 1 run summon minecraft:wolf 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:fox 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:rabbit 0.5 65 0.5
execute if score #which oneblock matches 4 run summon minecraft:stray 0.5 65 0.5

data/oneblock/function/phase/ocean.mcfunction

Фаза «Океан»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Океан"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/buried_treasure"}
execute if score #roll oneblock matches 1..272 run return run setblock 0 64 0 minecraft:sand
execute if score #roll oneblock matches 273..427 run return run setblock 0 64 0 minecraft:gravel
execute if score #roll oneblock matches 428..563 run return run setblock 0 64 0 minecraft:clay
execute if score #roll oneblock matches 564..699 run return run setblock 0 64 0 minecraft:prismarine
execute if score #roll oneblock matches 700..757 run return run setblock 0 64 0 minecraft:dark_prismarine
execute if score #roll oneblock matches 758..815 run return run setblock 0 64 0 minecraft:sea_lantern
execute if score #roll oneblock matches 816..834 run return run setblock 0 64 0 minecraft:wet_sponge
execute if score #roll oneblock matches 835..970 run return run setblock 0 64 0 minecraft:sandstone

data/oneblock/function/mob/ocean.mcfunction

Моб фазы «Океан» — на новом блоке.

execute store result score #which oneblock run random value 1..2
execute if score #which oneblock matches 1 run summon minecraft:turtle 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:drowned 0.5 65 0.5

data/oneblock/function/phase/jungle.mcfunction

Фаза «Джунгли»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Джунгли"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/jungle_temple"}
execute if score #roll oneblock matches 1..252 run return run setblock 0 64 0 minecraft:jungle_log
execute if score #roll oneblock matches 253..349 run return run setblock 0 64 0 minecraft:jungle_leaves[persistent=true]
execute if score #roll oneblock matches 350..485 run return run setblock 0 64 0 minecraft:moss_block
execute if score #roll oneblock matches 486..601 run return run setblock 0 64 0 minecraft:mossy_cobblestone
execute if score #roll oneblock matches 602..698 run return run setblock 0 64 0 minecraft:melon
execute if score #roll oneblock matches 699..853 run return run setblock 0 64 0 minecraft:grass_block
execute if score #roll oneblock matches 854..970 run return run setblock 0 64 0 minecraft:mud

data/oneblock/function/mob/jungle.mcfunction

Моб фазы «Джунгли» — на новом блоке.

execute store result score #which oneblock run random value 1..4
execute if score #which oneblock matches 1 run summon minecraft:parrot 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:ocelot 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:panda 0.5 65 0.5
execute if score #which oneblock matches 4 run summon minecraft:zombie 0.5 65 0.5

data/oneblock/function/phase/desert.mcfunction

Фаза «Пустыня»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Пустыня"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/desert_pyramid"}
execute if score #roll oneblock matches 1..291 run return run setblock 0 64 0 minecraft:sand
execute if score #roll oneblock matches 292..485 run return run setblock 0 64 0 minecraft:sandstone
execute if score #roll oneblock matches 486..601 run return run setblock 0 64 0 minecraft:red_sand
execute if score #roll oneblock matches 602..717 run return run setblock 0 64 0 minecraft:terracotta
execute if score #roll oneblock matches 718..795 run return run setblock 0 64 0 minecraft:gold_ore
execute if score #roll oneblock matches 796..873 run return run setblock 0 64 0 minecraft:smooth_sandstone
execute if score #roll oneblock matches 874..970 run return run setblock 0 64 0 minecraft:orange_terracotta

data/oneblock/function/mob/desert.mcfunction

Моб фазы «Пустыня» — на новом блоке.

execute store result score #which oneblock run random value 1..3
execute if score #which oneblock matches 1 run summon minecraft:camel 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:rabbit 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:husk 0.5 65 0.5

data/oneblock/function/phase/deep.mcfunction

Фаза «Глубины»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Глубины"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/ancient_city"}
execute if score #roll oneblock matches 1..291 run return run setblock 0 64 0 minecraft:deepslate
execute if score #roll oneblock matches 292..427 run return run setblock 0 64 0 minecraft:cobbled_deepslate
execute if score #roll oneblock matches 428..475 run return run setblock 0 64 0 minecraft:deepslate_diamond_ore
execute if score #roll oneblock matches 476..543 run return run setblock 0 64 0 minecraft:deepslate_gold_ore
execute if score #roll oneblock matches 544..621 run return run setblock 0 64 0 minecraft:deepslate_redstone_ore
execute if score #roll oneblock matches 622..689 run return run setblock 0 64 0 minecraft:deepslate_lapis_ore
execute if score #roll oneblock matches 690..708 run return run setblock 0 64 0 minecraft:deepslate_emerald_ore
execute if score #roll oneblock matches 709..805 run return run setblock 0 64 0 minecraft:obsidian
execute if score #roll oneblock matches 806..873 run return run setblock 0 64 0 minecraft:amethyst_block
execute if score #roll oneblock matches 874..970 run return run setblock 0 64 0 minecraft:sculk

data/oneblock/function/mob/deep.mcfunction

Моб фазы «Глубины» — на новом блоке.

execute store result score #which oneblock run random value 1..4
execute if score #which oneblock matches 1 run summon minecraft:bat 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:zombie 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:skeleton 0.5 65 0.5
execute if score #which oneblock matches 4 run summon minecraft:creeper 0.5 65 0.5

data/oneblock/function/phase/nether.mcfunction

Фаза «Незер»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Незер"}
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/nether_bridge"}
execute if score #roll oneblock matches 1..288 run return run setblock 0 64 0 minecraft:netherrack
execute if score #roll oneblock matches 289..384 run return run setblock 0 64 0 minecraft:soul_sand
execute if score #roll oneblock matches 385..442 run return run setblock 0 64 0 minecraft:soul_soil
execute if score #roll oneblock matches 443..538 run return run setblock 0 64 0 minecraft:nether_quartz_ore
execute if score #roll oneblock matches 539..615 run return run setblock 0 64 0 minecraft:nether_gold_ore
execute if score #roll oneblock matches 616..692 run return run setblock 0 64 0 minecraft:glowstone
execute if score #roll oneblock matches 693..750 run return run setblock 0 64 0 minecraft:magma_block
execute if score #roll oneblock matches 751..808 run return run setblock 0 64 0 minecraft:crimson_stem
execute if score #roll oneblock matches 809..866 run return run setblock 0 64 0 minecraft:warped_stem
execute if score #roll oneblock matches 867..924 run return run setblock 0 64 0 minecraft:blackstone
execute if score #roll oneblock matches 925..962 run return run setblock 0 64 0 minecraft:basalt
execute if score #roll oneblock matches 963..970 run return run setblock 0 64 0 minecraft:ancient_debris

data/oneblock/function/mob/nether.mcfunction

Моб фазы «Незер» — на новом блоке.

execute store result score #which oneblock run random value 1..5
execute if score #which oneblock matches 1 run summon minecraft:strider 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:blaze 0.5 65 0.5
execute if score #which oneblock matches 3 run summon minecraft:piglin 0.5 65 0.5
execute if score #which oneblock matches 4 run summon minecraft:zombified_piglin 0.5 65 0.5
execute if score #which oneblock matches 5 run summon minecraft:magma_cube 0.5 65 0.5

data/oneblock/function/phase/end.mcfunction

Фаза «Энд»: какой блок встанет.

execute if score #in oneblock matches 0 run title @a title {"text":"Энд"}
execute if score #in oneblock matches 0 unless score #portal oneblock matches 1 run function oneblock:portal
execute if score #roll oneblock matches 971..1000 run return run setblock 0 64 0 minecraft:chest{LootTable:"minecraft:chests/end_city_treasure"}
execute if score #roll oneblock matches 1..485 run return run setblock 0 64 0 minecraft:end_stone
execute if score #roll oneblock matches 486..621 run return run setblock 0 64 0 minecraft:end_stone_bricks
execute if score #roll oneblock matches 622..757 run return run setblock 0 64 0 minecraft:purpur_block
execute if score #roll oneblock matches 758..970 run return run setblock 0 64 0 minecraft:obsidian

data/oneblock/function/mob/end.mcfunction

Моб фазы «Энд» — на новом блоке.

execute store result score #which oneblock run random value 1..2
execute if score #which oneblock matches 1 run summon minecraft:enderman 0.5 65 0.5
execute if score #which oneblock matches 2 run summon minecraft:endermite 0.5 65 0.5

data/oneblock/function/portal.mcfunction

Рамка портала в Энд в 6 блоках к югу — без глаз. Строится один раз: на втором круге фаз вставленные глаза не пропадают.

fill -2 64 4 2 64 8 minecraft:end_stone
setblock -1 65 4 minecraft:end_portal_frame[facing=south]
setblock 0 65 4 minecraft:end_portal_frame[facing=south]
setblock 1 65 4 minecraft:end_portal_frame[facing=south]
setblock -1 65 8 minecraft:end_portal_frame[facing=north]
setblock 0 65 8 minecraft:end_portal_frame[facing=north]
setblock 1 65 8 minecraft:end_portal_frame[facing=north]
setblock -2 65 5 minecraft:end_portal_frame[facing=east]
setblock -2 65 6 minecraft:end_portal_frame[facing=east]
setblock -2 65 7 minecraft:end_portal_frame[facing=east]
setblock 2 65 5 minecraft:end_portal_frame[facing=west]
setblock 2 65 6 minecraft:end_portal_frame[facing=west]
setblock 2 65 7 minecraft:end_portal_frame[facing=west]
scoreboard players set #portal oneblock 1

Что выпадает в каждой фазе

Шанс — на каждый сломанный блок. Вместо блока с шансом 3 % встаёт сундук с добычей сооружения своей фазы. Моб появляется на новом блоке с шансом 5 %.

7Глубины

Сундук древнего города.

Мобы: летучая мышь, зомби, скелет, крипер.

8Незер

Сундук крепости Незера.

Мобы: лавомерка, всполох, пиглин, зомбифицированный пиглин, магмовый куб.

Как начать

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

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

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

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

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

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

  4. Ломайте

    Вы стоите на траве посреди пустоты. Сломали — блок появился снова, а над хотбаром — счёт блоков.

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

  • Пустой мир — только при создании. Пак заменяет генератор обычного мира на пустоту, а генератор игра читает один раз — когда мир создаётся. В готовый мир пак тоже встанет, но земля вокруг останется.
  • Под блоком — барьер. Песок и гравий не падают в пустоту, выпавшие вещи не улетают, а сломавший блок под собой встаёт на барьер.
  • Стартовый сундук рядом с блоком: саженец дуба ×2, ведро воды ×1, хлеб ×4 — на первое дерево и ферму.
  • Портал в Энд строится сам. Когда начнётся фаза «Энд», в шести блоках к югу встанет рамка портала без глаз. Огненные стержни дают ифриты Незера, жемчуг — эндермены фазы Энда.
  • Незер — обычный. Пустым пак делает только верхний мир: портал из обсидиана фазы «Глубины» ведёт в настоящий Незер.

Классический остров вместо одного блока — скайблок. Что такое OneBlock и другие режимы серверов — в вики, а сервера с OneBlock — в мониторинге.

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

Как сделать OneBlock в Майнкрафте без модов?

Датапаком: создайте новый мир и добавьте архив в «Наборы данных». Мир будет пустым, а блок под ногами после каждого удара появляется снова — фаза за фазой до Энда.

Почему вокруг блока обычный мир, а не пустота?

Пустоту пак задаёт генератором мира, а его игра читает только при создании. Добавьте датапак на экране создания нового мира, а не в готовый.

Как попасть в Энд в OneBlock?

Когда начнётся фаза «Энд», в шести блоках к югу появится рамка портала. Вставьте 12 глаз Эндера: огненные стержни дают ифриты фазы «Незер», жемчуг — эндермены.