An obby (short for obstacle course) is the best first game to make in Roblox Studio. You only need a few kinds of parts, the scripts are short, and you can play it with friends the same day you start. By the end of this guide you'll have a real obby with jumps, a lava brick, checkpoints, and a finish line.
You don't need to know how to code. We'll copy two tiny scripts and explain every line.
What you need
- Roblox Studio, the free app for making Roblox games. Download it from the Roblox Creator Hub.
- A Roblox account (ask a parent if you need help making one).
- About an hour for your first few stages.
Step 1: Start a new place
Open Studio and pick the Baseplate template. You'll see a big grey floor and a SpawnLocation, the pad where players appear.
Right away, save your work with File > Save to Roblox. Give it a name like "My First Obby". Saving to Roblox means your game is stored online, so you won't lose it if your computer crashes.
Make sure two windows are open: Explorer (a list of everything in your game) and Properties (the settings of whatever you selected). If you can't see them, turn them on from the View menu.
Step 2: Build your first platforms
Click the Part button (it's on the Home tab, and also on the Model tab). A block appears in front of the camera. Now use the tools at the top:
- Move to drag it around.
- Scale to stretch it.
- Rotate to tilt it.
Make a row of five platforms with gaps between them. Start easy. A normal Roblox character can jump about 7 studs high and clear a gap of around 8 studs, so keep your first gaps short (4 to 6 studs).
Very important: select each platform and tick Anchored in Properties. Anchored parts stay frozen in the air. If you forget, your platforms will fall the moment you press Play.
Step 3: Make a lava kill brick
Kill bricks are the classic obby danger. Touch one and you go back to your last checkpoint.
- Add a new part and place it between two platforms or under a jump.
- In Properties, set Color to bright red or orange, and Material to Neon so it glows.
- Tick Anchored.
- In Explorer, hover over the part, click the + button, and choose Script.
- Delete the sample line and paste this:
local brick = script.Parent
brick.Touched:Connect(function(hit)
local character = hit.Parent
if not character then
return
end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end)Here's what it does. script.Parent is the part the script lives in. Touched runs our code whenever something bumps the brick. If the thing that touched it belongs to a character with a Humanoid (every player has one), we set its health to zero, and the player respawns.
Duplicate the brick (the script copies with it) and sprinkle lava around your course.
Step 4: Add checkpoints
Without checkpoints, players restart from the very beginning every time they fall. That gets frustrating fast, especially for younger players. The easiest kind of checkpoint is a SpawnLocation, the same pad players start on.
- In Explorer, right-click Workspace, choose Insert Object, and add a Folder. Name it
Checkpoints. - Drag your starting SpawnLocation into the folder and rename it
1. - Add more SpawnLocations along the course (find them with Insert Object) and name them
2,3,4in order. Keep them all inside theCheckpointsfolder.
Next you need a script that remembers each player's stage and respawns them at the right pad. Every obby idea on this site comes with a Build it in Studio plan that has a ready-made checkpoint script plus a leaderboard that shows each player's stage. Open any idea, like this Candy Land obby, press Build it in Studio, and copy the scripts into ServerScriptService.
Step 5: Add one moving obstacle
Moving obstacles make an obby feel alive. A spinning bar is a great first one. Make a long thin part, anchor it, add a Script, and paste:
local RunService = game:GetService("RunService")
local spinner = script.Parent
local DEGREES_PER_SECOND = 90
RunService.Heartbeat:Connect(function(deltaTime)
spinner.CFrame *= CFrame.Angles(0, math.rad(DEGREES_PER_SECOND * deltaTime), 0)
end)Heartbeat runs every frame. deltaTime is how long the last frame took, so the bar spins at the same speed on fast and slow computers. Want a deadly spinner? Paste the kill brick script into the same part.
Step 6: Build a finish line
Your last stage deserves something special: a big glowing pad, a trophy, or a confetti cannon. Place a final SpawnLocation as the last checkpoint so players who finish can rest there, and decorate it so it's obvious they won.
Step 7: Playtest like a pro
Press Play (or F5) to test. Walk the whole course yourself and watch for these common problems:
- Platforms falling? You forgot to anchor them.
- A jump feels impossible? Make the gap smaller or the platform wider.
- Respawning at the start? Check that your checkpoints are named with numbers in order and are inside the
Checkpointsfolder.
Then ask a friend or family member to play without any help. Watch where they fall the most. That's where your obby needs another checkpoint or an easier jump.
Step 8: Give your obby a theme
The best obbies aren't just random parts. They have a world. A Candy Land obby could use pink platforms and chocolate-river lava. A haunted obby could use dark fog and flickering lights. Pick colors and materials that match, and add one twist, like "the floor changes color" or "gravity is low".
Stuck on a theme? Roll one on the obby idea generator. Lock Obby and reroll the setting until something clicks.
Step 9: Publish and share
When you're ready, use File > Publish to Roblox. In the game settings you can choose whether the game is private or public. Start private and invite friends, then go public when it's ready. Ask a parent before you change privacy settings or set up anything that sells items.
What to learn next
Once your obby works, you know the basics behind almost every Roblox game: parts, anchoring, properties, and short scripts. Next, try a tycoon or a simulator. Or test your skills with this week's build challenge.
Happy building!