Build a parkour course
Parkour is only fun if you don't restart from the beginning every time you fall. This project adds working checkpoints — step on an emerald block and that becomes your new respawn — plus a finish line, all from a couple of small functions.
1. The checkpoint function
When a player stands on a checkpoint, set their spawn point to where they are, confirm it with an action-bar message and a chime, and tag them so we know they've started. spawnpoint @s with no coordinates uses the player's current position.
# functions/park/checkpoint.mcfunction
spawnpoint @s
title @s actionbar Checkpoint reached!
playsound random.orb @s
tag @s add checkpoint
2. The finish line
A separate block type ends the course — a big title, a victory sound, and clear the tag so they can run it again.
# functions/park/finish.mcfunction
title @s title Course complete!
playsound random.levelup @s
tag @s remove checkpoint 3. Wire the blocks
A tick.json checks every player each tick: emerald under their feet fires a checkpoint, diamond fires the finish. Place emerald blocks at each safe landing and a diamond block at the end.
# functions/tick.mcfunction (via tick.json)
execute as @a at @s if block ~ ~-1 ~ emerald_block run function park/checkpoint
execute as @a at @s if block ~ ~-1 ~ diamond_block run function park/finish Re-setting spawn every tick while standing on the same block is harmless — but the sound and title will repeat. See "Make it yours" below to fire each checkpoint only once.
Make it yours
- · Give each checkpoint its own number by using a different block (gold = 2, iron = 3) and its own tag.
- · Silence the repeat: only chime when the player doesn't already have a at_cp tag, and clear that tag when they step off.
- · Add a fall-death catch: if a player drops below a Y level, /tp them back to their spawn.
- · Track a timer with a scoreboard objective for a speedrun leaderboard.
See it in Minecraft
Step onto a checkpoint pad and it fires — your spawn moves here and the screen confirms it, so a fall just sends you back to the last checkpoint.
The floating course in the shot is a handful of blocks — run this once to place a jump run with an emerald checkpoint at the top:
# functions/park/build.mcfunction
setblock ~ ~ ~2 quartz_block
setblock ~1 ~1 ~4 lime_concrete
setblock ~ ~2 ~6 quartz_block
setblock ~1 ~3 ~8 lime_concrete
setblock ~ ~4 ~10 quartz_block
setblock ~ ~5 ~12 emerald_block Keep the score.
Add a live scoreboard and a win condition, like the coin minigame.
Build a coin minigame