Свой сервер
Генератор паркура
Паркур-трасса по сиду для 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 блоков
Как поставить трассу
- Положите датапак в мир
В одиночной игре — saves/<мир>/datapacks, на сервере — world/datapacks, потом /reload. Распаковывать не нужно.
- Встаньте на ровное место
Трасса уйдёт от ваших ног на восток и юг — 17 × 9 × 25 блоков. Лучше всего — плоский мир или открытое поле.
- Поставьте и бегите
/function parkour:place — вы окажетесь на старте. Сошли со старта — время пошло.
Что нужно знать
- Каждый прыжок проходим. Самый длинный прыжок с разбега — четыре блока пустоты по ровному и три с подъёмом на блок. «Сложная» доходит до этих пределов, «лёгкая» не дальше двух.
- Упали — вернётесь на чекпоинт. Кто опустился ниже самого низкого блока своего участка, переносится на последний чекпоинт. Урона от падения нет: телепорт его снимает.
- Время и рекорд. Над хотбаром — чекпоинт и секунды, на финише время уходит в чат всем, а лучший результат каждый держит свой.
- Сойти с трассы — /trigger parkour. Прав оператора не нужно; вернуться — встать на старт.
- Шаблон ставит только блоки трассы. Холм или дерево на пути останутся на месте — поэтому ровное место. Трасса на мир одна: повторная установка переносит чекпоинты на новую.
- Сид — это трасса. Тот же сид и настройки дают ту же трассу, поэтому ссылкой можно поделиться вместо файла.
Лабиринт для той же карты — генератор лабиринтов, правила поверх выживания — «Майнкрафт, но…», а готовые паркур-трассы — на серверах с паркуром.
Частые вопросы
Как сделать паркур в Майнкрафте?
Выберите сложность и длину, скачайте датапак и положите его в мир. Команда /function parkour:place поставит трассу от ваших ног: старт, чекпоинты и финиш уже размечены.
Что будет, если упасть с трассы?
Игрок, опустившийся ниже своего участка, переносится на последний пройденный чекпоинт, без урона от падения. Без чекпоинтов — на старт.
Как узнать время прохождения?
Время идёт над хотбаром с той секунды, как вы сошли со старта. На финише его видят все в чате, а лучший результат каждого игрока запоминается.
