How to Make an Obby in Roblox Studio: From Plan to Publish
This guide shows how to make an obby in Roblox Studio from an empty Baseplate to a published game: planning stages, building fair jumps, checkpoints that save your stage, kill bricks and publishing.
- Plan 10 stages with a real difficulty curve
- Checkpoint script with a Stage leaderboard
- Kill bricks, playtesting and publishing rules
Step by step
Plan your stages on paper
Choose a theme and list 10 stages from easy to hard, one new idea per stage. Mark where each checkpoint goes. This plan keeps the game fair and gives you a clear to-do list.
Build and anchor the platforms
Open the Baseplate template and build stage 1 with Parts. Turn on Anchored for every platform. Group each stage into a Model named Stage1, Stage2 and so on to keep the Explorer tidy.
Create the Checkpoints folder
Insert a Folder in Workspace named Checkpoints. Move the default SpawnLocation into it and rename it 1. Add one SpawnLocation at the start of each stage, named 2, 3, 4 and so on.
Remove the spawn ForceField
Select all checkpoints and set Duration to 0 in Properties. Otherwise players get a ForceField bubble for 10 seconds after respawning, which blocks lava damage and looks strange in an obby.
Add the checkpoint script
Insert a Script in ServerScriptService, name it Checkpoints and paste the code below. Press Play: a Stage column appears, and touching checkpoint 2 raises it to 2. Reset your character to check you respawn there.
Add kill bricks and lava
Place kill bricks or lava parts below and between platforms using the kill brick scripts. Make danger easy to recognise, and keep a checkpoint close to every hard jump.
Playtest with a friend
Play from stage 1 after every change, then watch a friend play without helping. Fix places where they get stuck for too long, fall because the camera hides the jump, or get bored.
Publish your obby
Click File, Publish to Roblox. The game starts private. To open it to players, set the Audience in Creator Hub. Roblox currently requires an age check and the content maturity questionnaire first, so do this with a parent.
The script
-- Script inside ServerScriptService
-- Checkpoints = SpawnLocations inside Workspace > Checkpoints, named 1, 2, 3...
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")
Players.PlayerAdded:Connect(function(player: Player)
-- Show each player's stage on the leaderboard
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local stage = Instance.new("IntValue")
stage.Name = "Stage"
stage.Value = 1
stage.Parent = leaderstats
-- New players always start at checkpoint 1
local firstCheckpoint = checkpoints:FindFirstChild("1")
if firstCheckpoint and firstCheckpoint:IsA("SpawnLocation") then
player.RespawnLocation = firstCheckpoint
end
end)
local function onCheckpointTouched(checkpoint: SpawnLocation, otherPart: BasePart)
local character = otherPart:FindFirstAncestorOfClass("Model")
local player = character and Players:GetPlayerFromCharacter(character)
if not player then
return
end
local stageNumber = tonumber(checkpoint.Name)
local leaderstats = player:FindFirstChild("leaderstats")
local stage = leaderstats and leaderstats:FindFirstChild("Stage")
if not (stageNumber and stage and stage:IsA("IntValue")) then
return
end
-- Only move forward: touching an older checkpoint does nothing
if stageNumber > stage.Value then
stage.Value = stageNumber
player.RespawnLocation = checkpoint -- respawn here after falling
end
end
-- Connect every checkpoint in the folder
for _, checkpoint in checkpoints:GetChildren() do
if checkpoint:IsA("SpawnLocation") then
checkpoint.Touched:Connect(function(otherPart)
onCheckpointTouched(checkpoint, otherPart)
end)
end
end
Not working? Common mistakes
Some parts are not anchored. Select all parts of the stage and turn on Anchored.
The checkpoint must be a SpawnLocation named with a number only (2, not Checkpoint 2) and placed inside Workspace > Checkpoints.
Only one script should create leaderstats. Put Stage and Coins in the same PlayerAdded function.
Set Duration to 0 on every checkpoint SpawnLocation to remove the spawn ForceField.
How to make an obby in Roblox Studio: plan before you build
An obby (obstacle course) is the classic first Roblox game, and for good reason: it teaches building, scripting and game design at the same time. The biggest mistake beginners make when learning how to make an obby in Roblox Studio is starting to place random parts. Spend ten minutes on paper first.
- Pick a theme: lava castle, candy land, space station. A theme decides your colours and obstacles.
- List 10 stages: for example simple jumps, thin beams, moving platforms, a lava floor, a wall climb with a truss, a final tower.
- Draw a difficulty curve: easy stages first, one new idea per stage, a short easy stage after every hard one.
- Mark checkpoints: one at the start of every stage.
This plan becomes your to-do list. It also makes the game feel designed rather than thrown together, and players notice the difference within the first minute.
Building roblox obby stages that feel fair
Start from the Baseplate template. Build each stage from Parts: blocks for platforms, wedges for ramps, a TrussPart for climbing. Two properties matter most:
- Anchored must be on for every platform. Unanchored parts fall as soon as you press Play, and your stage collapses.
- Material and Color tell players what a part does. Keep one rule for the whole game, for example red Neon always hurts and green is always a checkpoint.
For distances, remember the defaults: characters walk at 16 studs per second and jump 7.2 studs high. Test every gap yourself. If you need three tries, most players will need ten. If a jump needs a double jump, add our double jump script and make it clear with signs.
Group each stage into a Model named Stage1, Stage2 and so on. Your Explorer stays tidy and you can move or copy whole stages. For moving platforms, reuse the TweenService code from the door tutorial.
Roblox obby checkpoints and kill bricks
Checkpoints are what make an obby playable. In this tutorial every checkpoint is a SpawnLocation inside a Folder named Checkpoints, named with numbers: 1, 2, 3 and so on. The script does three things:
- Gives each player a Stage value in leaderstats, so everyone sees how far others got.
- Sets Player.RespawnLocation to checkpoint 1 when a player joins.
- When a player touches a higher-numbered checkpoint, it raises their Stage and moves their RespawnLocation there. Touching an older checkpoint does nothing, so nobody loses progress by walking backwards.
Set each SpawnLocation's Duration to 0. Otherwise players get a ForceField bubble for 10 seconds after respawning, which looks odd in an obby and blocks lava damage.
Now add danger. Put classic kill bricks or lava parts between platforms using our kill brick tutorial. Want coins too? Follow the leaderboard tutorial, but create Coins in this same script so there is only one leaderstats folder.
Playtesting and publishing your obby
Play the whole obby from stage 1 every time you finish a new stage. Then ask a friend or family member to play while you watch without helping. Wherever they get stuck or bored, change something. Add a custom loading screen for a polished first impression.
To publish, click File, Publish to Roblox and give the game a name and description. New games are private by default, so only you and people with edit access can play.
To let others in, change the Audience in Creator Hub under Configure, Settings. Roblox's current rules (2026) say that to publish to a Public or Limited audience the account must be in good standing and at least 2 days old, complete an age check and fill in the content maturity questionnaire. Reaching players of all ages, including Roblox Kids and Select accounts, has extra requirements such as 2-step verification and an evaluation of the game. Parents should handle these steps together with their child.
Parent note: what an obby teaches
Learning how to make an obby in Roblox Studio is a complete mini project: planning, 3D building, scripting, testing with real users and publishing. Kids learn to break a big goal into small tasks, to test and fix, and to design for other people, not just themselves.
On the coding side, the checkpoint script uses events, tables of objects, number conversion (tonumber), conditions and leaderstats. Those are the same fundamentals taught in a first Python course, in a context kids care about.
Safety-wise, building in Studio needs no chat. Published games start private, and letting other players in requires the account steps described above. Talk with your child about who they share their game with, and use Roblox's parental controls on a linked parent account.
From obby to real game developer
Want your child to build full games like this? First 1-on-1 lesson free.
Now you know how to make an obby in Roblox Studio, the perfect first project. But it is only the start. In our Roblox Studio course, Vlad Pomazanets teaches students aged 8–17 one-on-one on Zoom, step by step: from their first obby to games with shops, saving, user interfaces and their own ideas. Students build their own games rather than copying tutorials.
Teens aged 14–17 can join the Roblox + AI program: 4 lessons a month of 120 minutes. In lesson 1 they build a complete shooter game in one session, then create 3D models, animations and VFX with AI tools, and keep and publish their game.
Regular lessons are 60 minutes, CA$280 for 4 lessons, and the first lesson is free. Unused lessons are refundable within 14 days. Lessons are in English, Ukrainian or Russian, online or in person in Hamilton, Ontario. Book the free Roblox class.
Questions parents ask
How long does it take to learn how to make an obby in Roblox Studio?
A simple 10-stage obby with checkpoints and kill bricks can be built in a weekend by a motivated beginner who follows a tutorial. A polished obby with a theme, moving parts, coins and a loading screen usually takes a few weeks of regular practice, especially when kids design their own stages.
Do I need to know scripting to make an obby?
You can build the stages without code, because platforms are just anchored parts. Scripts are needed for checkpoints that remember progress, kill bricks, coins and moving obstacles. Each of those scripts is short, which is why an obby is a great way to start learning Luau.
Why do players spawn at the wrong checkpoint?
Check that every checkpoint is a SpawnLocation inside a folder named Checkpoints, that they are named 1, 2, 3 with no spaces, and that the first one is exactly 1. Also move the Baseplate's default SpawnLocation into the folder and rename it 1, or delete it.
Can my child publish an obby for free?
Yes, publishing to Roblox itself is free and new games start private. Opening the game to other players requires an age check and the content maturity questionnaire. Reaching all ages has extra requirements, including either a Premium or Plus subscription for two months or a refundable publishing fee, so parents should review the current rules.
What is the best age to start building obbies?
Kids from about 8 can build an obby with some adult help, especially the building part. From around 10 to 12 most can also follow and adapt the scripts. Our lessons for ages 8–17 adjust the pace and the amount of coding to each student.
Want your child to build full games like this?
Book a free first 1-on-1 Roblox lesson with Vlad. 60 minutes on Zoom, ages 8–17, English, Ukrainian or Russian. We'll match a time in your time zone.
Book a free lessonBook a free lesson
No commitment. No payment. Just your child's first coding class.
5 / 5 · 1 review
“We were looking for coding classes for kids in Hamilton and a friend recommended Exclusive-IT. My 11-year-old started the Roblox course one-on-one and built his first real game in a few weeks. The mentor is patient, the lessons are in plain English, and my son actually looks forward to them. Highly recommend for any parent who wants their child to learn to code.”
Or message us directly
Tap a messenger — the chat opens with a ready greeting.
- +1 (289) 44-28-698
- excklusiveit@gmail.com
-
Working hours — Hamilton, Ontario (ET) Mon–Fri: 9:00–18:00 Sat–Sun: 8:00–16:00
- Online worldwide · classroom in Hamilton: 170 Parkdale Ave N, Hamilton, ON L8H 5X2