Make a short course readable first
Start with a spawn, a handful of anchored platforms, a clear finish, and recovery after a fall. Make a complete run understandable before adding shops or persistent progress.
Use the free course planner for inspectable geometry. It creates platforms only; jump reach and checkpoint behavior need Studio playtests.

Design the route
- Show the first platform and goal direction from the spawn.
- Keep early jumps forgiving while players learn controls.
- Introduce one obstacle, then vary it before adding another.
- Place recovery near harder sections.
- Make the finish different from an ordinary platform.
| Element | Inspect | Test |
|---|---|---|
| Platform | Size, gap, anchoring, collision | Can your chosen character reach it? |
| Hazard | Clear appearance and server consequence | Does contact cause the intended failure? |
| Checkpoint | Per-player progress and activation order | Do two players retain separate progress? |
| Finish | Single completion per run | Does repeated contact duplicate rewards? |
A small hazard reference script
Put this server Script under a hazard Part. It changes health only if the touched model contains a Humanoid. This is a reference example, not a claim of Studio execution; test it with your character setup.
local hazard = script.Parent
hazard.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end)Define checkpoint rules
Record progress independently for each player. Decide whether sequence skipping is allowed, when a run resets, and whether progress survives a new session. Session-only checkpoints do not need a persistent DataStore; saving adds separate failure-handling requirements.
Release checks
- Complete a run without developer shortcuts.
- Fall in every section and verify recovery.
- Reset at a checkpoint and verify the destination.
- Test two players progressing independently.
- Test touch controls and camera visibility.
- Try repeated finish contact and verify no duplicate reward.
Next: pick a mechanic and prepare release. Sources: BasePart.Touched and server validation.


