Parkour generator

Datapacks

Track with checkpoints and timerLearn more

The Side Parker for Minecraft 1.21.9 - 26.3: Select complexity and length: Datapack will set the track with one command, while the checkpoints, timer and return after fall will work themselves.

My game select version

We'll remember in this browser and set up where your version is available. Open link settings are more important than this choice; the Vicki versions do not change.

Difficulty

After 2–3 blocks with a running start, upwards after 1–2.

Blocks

Start - Block of Emerald, checkpoints - gold, finish - diamond.

Route

Date · 1.21.9 - 26.3

Jumping height

Jumps
20
Checkpoints
3
Size
17 × 9 × 25
Seed
2026

Set the track from your feet (operator rights)

/function parkour:place
Download datapack
What's inside the archive - 15 files

data/minecraft/tags/function/load.json

Load tag: the game calls these functions when loading the world and after /reload.

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

data/minecraft/tags/function/tick.json

Tick tag: these functions run every tick - 20 times per second.

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

data/parkour/function/load.mcfunction

When loading the world: player scores and /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

Every tick: start, run along the track, exit.

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 - the track is from your feet, you are at the start.

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

data/parkour/function/build.mcfunction

Template and markers for start, checkpoints and finish.

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

Macro: checkpoint marker with the number and “gender” of its area.

$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

Player at the start: time from scratch.

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

Every tick on the track: time, checkpoint, finish, fall.

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

Ticks - in seconds and tenths.

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

New checkpoint: number and floor of the plot.

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

Fell - to your checkpoint (teleport removes fall damage).

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

Finish: chat time, player record.

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

Player's best time.

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

data/parkour/function/quit.mcfunction

/trigger parkour - leave the track without operator rights.

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

If you build with your hands - 29 blocks

How to set a route

  1. Put the datapack into the world

    In single player - saves/<world>/datapacks, on the server - world/datapacks, then /reload. No need to unpack.

  2. Stand on level ground

    The track will leave your legs east and south - 17 x 9 x 25 blocks. The best is a flat world or an open field.

  3. Set it up and run

    /function parkour:place - you will find yourself at the start. We got off the start and time has passed.

What you need to know

  • We pass every jump. The longest jump from the breakup is four blocks of voids on a level and three blocks climbing into the block. The "complex" reaches these limits, the "easy" is no more than two.
  • If you fall, you will return to the checkpoint. Whoever has dropped below the lowest block of their area is transported to the last checkpoint. There is no fall damage: the teleport removes it.
  • Time and record. Above the hotbar there is a checkpoint and seconds, at the finish line everyone spends time in the chat, and everyone keeps their own best result.
  • Get off the track - /trigger parkour. No operator rights are needed; return - get to the start.
  • The template places only route blocks. The hill or tree in the path will remain in place - so the place is level. There is only one route to the world: re-installation transfers checkpoints to a new one.
  • Sid is the track. The same seed and settings give the same trace, so the link can be shared instead of a file.

Labyrinth for the same map - Labyrinth generator, rules over survival - “Minecraft, but...”, and ready-made parkour tracks are on Parcour servers.

Frequently asked questions

How to make parkour in Minecraft?

Select complexity and length, download the date pack and place it in the world. The command / function parcour:place will set the path from your feet: start, checkpoints and finishes have already been marked.

What happens if you fall off the road?

A player who falls below his area is transported to the last checkpoint passed, without damage from the fall. No checkpoints - off to the start.

How to find out the transit time?

Time's been going over the hotbar since you got off start. At the finish, everyone sees him in a chat room, and each player's best result is remembered.