Свой сервер

Генератор паркура

Паркур-трасса по сиду для Minecraft 1.21.9 — 26.3: выберите сложность и длину — датапак поставит трассу одной командой, а чекпоинты, таймер и возврат после падения заработают сами.

Сложность

Через 2–3 блока с разбега, вверх — через 1–2.

Блоки

Старт — изумрудный блок, чекпоинты — золотые, финиш — алмазный.

Трасса

Датапак · 1.21.9 — 26.3

Высота по прыжкам

Прыжков
20
Чекпоинтов
3
Размер
17 × 9 × 25
Сид
2026

Поставить трассу от ваших ног (права оператора)

/function parkour:place
Скачать датапак
Что внутри архива — 15 файлов

data/minecraft/tags/function/load.json

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

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

data/minecraft/tags/function/tick.json

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

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

data/parkour/function/load.mcfunction

При загрузке мира: счёты игроков и /trigger parkour.

scoreboard objectives add pk dummy
scoreboard objectives add pk_id dummy
scoreboard objectives add pk_cp dummy
scoreboard objectives add pk_t dummy
scoreboard objectives add pk_floor dummy
scoreboard objectives add pk_y dummy
scoreboard objectives add pk_sec dummy
scoreboard objectives add pk_dec dummy
scoreboard objectives add pk_best dummy
scoreboard objectives add parkour trigger "Сойти с трассы"
scoreboard players set #20 pk 20
scoreboard players set #2 pk 2

data/parkour/function/tick.mcfunction

Каждый тик: старт, бег по трассе, выход.

scoreboard players enable @a parkour
execute as @a[scores={parkour=1..}] run function parkour:quit
execute as @a at @s if entity @e[type=marker,tag=pk_start,distance=..1.2] run function parkour:ready
execute as @a[tag=pk_run] at @s run function parkour:run

data/parkour/function/place.mcfunction

/function parkour:place — трасса от ваших ног, вы — на старте.

kill @e[type=marker,tag=pk]
execute align xyz positioned ~-1 ~ ~-1 run function parkour:build
tp @s ~ ~1 ~

data/parkour/function/build.mcfunction

Шаблон и маркеры старта, чекпоинтов и финиша.

place template parkour:course
function parkour:mark {x:1,y:1,z:1,id:0,drop:0}
function parkour:mark {x:2,y:2,z:19,id:1,drop:0}
function parkour:mark {x:10,y:3,z:22,id:2,drop:0}
function parkour:mark {x:11,y:6,z:8,id:3,drop:0}
tag @e[type=marker,tag=pk_cp,scores={pk_id=0}] add pk_start
summon marker ~16.5 ~9 ~1.5 {Tags:["pk","pk_end"]}
tellraw @s {"text":"Трасса готова: 20 прыжков, чекпоинтов — 3. Сойдите со старта — время пойдёт.","color":"green"}

data/parkour/function/mark.mcfunction

Макрос: маркер чекпоинта с номером и «полом» его участка.

$summon marker ~$(x).5 ~$(y) ~$(z).5 {Tags:["pk","pk_cp","pk_new"]}
$scoreboard players set @e[type=marker,tag=pk_new] pk_id $(id)
execute as @e[type=marker,tag=pk_new] store result score @s pk_floor run data get entity @s Pos[1]
$scoreboard players remove @e[type=marker,tag=pk_new] pk_floor $(drop)
tag @e[type=marker,tag=pk_new] remove pk_new

data/parkour/function/ready.mcfunction

Игрок на старте: время с нуля.

tag @s add pk_run
scoreboard players set @s pk_cp 0
scoreboard players set @s pk_t 0
scoreboard players operation @s pk_floor = @n[type=marker,tag=pk_start] pk_floor

data/parkour/function/run.mcfunction

Каждый тик на трассе: время, чекпоинт, финиш, падение.

scoreboard players add @s pk_t 1
execute if score @s pk_cp < @n[type=marker,tag=pk_cp,distance=..1.2] pk_id run function parkour:checkpoint
execute if entity @e[type=marker,tag=pk_end,distance=..1.2] run return run function parkour:finish
execute store result score @s pk_y run data get entity @s Pos[1]
execute if score @s pk_y < @s pk_floor run function parkour:back
function parkour:clock
title @s actionbar ["",{"text":"Чекпоинт "},{"score":{"name":"@s","objective":"pk_cp"}},{"text":"/3 · "},{"score":{"name":"@s","objective":"pk_sec"}},{"text":"."},{"score":{"name":"@s","objective":"pk_dec"}},{"text":" с"}]

data/parkour/function/clock.mcfunction

Тики — в секунды и десятые.

scoreboard players operation @s pk_sec = @s pk_t
scoreboard players operation @s pk_sec /= #20 pk
scoreboard players operation @s pk_dec = @s pk_t
scoreboard players operation @s pk_dec %= #20 pk
scoreboard players operation @s pk_dec /= #2 pk

data/parkour/function/checkpoint.mcfunction

Новый чекпоинт: номер и пол участка.

scoreboard players operation @s pk_cp = @n[type=marker,tag=pk_cp] pk_id
scoreboard players operation @s pk_floor = @n[type=marker,tag=pk_cp] pk_floor
playsound minecraft:entity.experience_orb.pickup master @s
title @s subtitle {"text":"Чекпоинт","color":"gold"}
title @s title ""

data/parkour/function/back.mcfunction

Упал — на свой чекпоинт (телепорт снимает урон от падения).

tag @s add pk_me
execute as @e[type=marker,tag=pk_cp] if score @s pk_id = @e[tag=pk_me,limit=1] pk_cp at @s run tp @e[tag=pk_me,limit=1] ~ ~ ~
tag @s remove pk_me
playsound minecraft:entity.enderman.teleport master @s

data/parkour/function/finish.mcfunction

Финиш: время в чат, рекорд игрока.

tag @s remove pk_run
function parkour:clock
playsound minecraft:ui.toast.challenge_complete master @s
tellraw @a ["",{"selector":"@s"},{"text":" прошёл паркур за ","color":"green"},{"score":{"name":"@s","objective":"pk_sec"}},{"text":"."},{"score":{"name":"@s","objective":"pk_dec"}},{"text":" с"}]
execute unless score @s pk_best matches 1.. run scoreboard players set @s pk_best 2147483647
execute if score @s pk_t < @s pk_best run function parkour:record

data/parkour/function/record.mcfunction

Лучшее время игрока.

scoreboard players operation @s pk_best = @s pk_t
title @s title {"text":"Рекорд!","color":"gold"}

data/parkour/function/quit.mcfunction

/trigger parkour — сойти с трассы без прав оператора.

scoreboard players set @s parkour 0
tag @s remove pk_run
tellraw @s {"text":"Вы сошли с трассы. Вернуться — встаньте на старт.","color":"gray"}

Если строить руками — 29 блоков

Как поставить трассу

  1. Положите датапак в мир

    В одиночной игре — saves/<мир>/datapacks, на сервере — world/datapacks, потом /reload. Распаковывать не нужно.

  2. Встаньте на ровное место

    Трасса уйдёт от ваших ног на восток и юг — 17 × 9 × 25 блоков. Лучше всего — плоский мир или открытое поле.

  3. Поставьте и бегите

    /function parkour:place — вы окажетесь на старте. Сошли со старта — время пошло.

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

  • Каждый прыжок проходим. Самый длинный прыжок с разбега — четыре блока пустоты по ровному и три с подъёмом на блок. «Сложная» доходит до этих пределов, «лёгкая» не дальше двух.
  • Упали — вернётесь на чекпоинт. Кто опустился ниже самого низкого блока своего участка, переносится на последний чекпоинт. Урона от падения нет: телепорт его снимает.
  • Время и рекорд. Над хотбаром — чекпоинт и секунды, на финише время уходит в чат всем, а лучший результат каждый держит свой.
  • Сойти с трассы — /trigger parkour. Прав оператора не нужно; вернуться — встать на старт.
  • Шаблон ставит только блоки трассы. Холм или дерево на пути останутся на месте — поэтому ровное место. Трасса на мир одна: повторная установка переносит чекпоинты на новую.
  • Сид — это трасса. Тот же сид и настройки дают ту же трассу, поэтому ссылкой можно поделиться вместо файла.

Лабиринт для той же карты — генератор лабиринтов, правила поверх выживания — «Майнкрафт, но…», а готовые паркур-трассы — на серверах с паркуром.

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

Как сделать паркур в Майнкрафте?

Выберите сложность и длину, скачайте датапак и положите его в мир. Команда /function parkour:place поставит трассу от ваших ног: старт, чекпоинты и финиш уже размечены.

Что будет, если упасть с трассы?

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

Как узнать время прохождения?

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