Skip to content

Build an Obby From Scratch

By the end of this page you will have a playable obby in your own place: a start area, a run of platforms that gets harder, killbricks, checkpoints that respawn you where you died, and a finish that rewards the player.

Time: 30 to 45 minutes, most of it spent watching parts appear in Studio.

Cost: about six messages. Build messages are charged by how much work each one takes rather than a flat rate, and the smallest charge for any message is 0.1 credits — watch the credits pill in the dashboard header as you go.

You need: Roblox Studio open on a place you can edit, and the Revix plugin connected. You can tell it is connected because the pill at the top of the dashboard shows your game's name with a green dot instead of "Not Connected". If it does not, start with Setup.

What you're building

A linear obby you can walk from end to end. Twenty jump platforms lead away from a stone start pad, getting smaller and further apart as you go. Lava under the gaps kills you, checkpoint pads move your spawn forward, and a gold finish arch adds a win to your leaderboard.

Done looks like this: you press Play, jump the course, fall in the lava halfway on purpose, and respawn at the last pad you touched instead of back at the beginning.


Step 1 — Build the start area

Paste this into the composer and send it.

text
Build a spawn area for an obby at the world origin: a 60 x 60 stud stone platform at Y = 0, a SpawnLocation in the middle of it, low walls around the edge so you cannot walk off, and a sign facing the course that reads START. Anchor everything and put it all in a folder called Obby in Workspace.

What happens. A small pill reads "Deciding next move…" for a second, then a thinking panel opens and a checklist appears. Items flip from waiting to in progress to done while parts land in your Studio viewport. When it finishes you get a short summary: what it built, a "Where to find it" list of exact paths, and what to try when you press Play.

Check it worked. In Studio's Explorer, open Workspace and find the Obby folder named in the summary. Press Play. Your character should spawn standing on the stone platform, not falling.

Step 2 — Lay out the course

text
In the Obby folder, add 20 jump platforms leading away from the start area in a straight line. Make the first five easy: 8 x 8 studs with a 4 stud gap between them, all level. Ramp the difficulty over the run so the last five are 4 x 4 studs with a 6 stud gap, and add up and down height changes. Never make a gap wider than 6 studs, because that is roughly as far as a default character can jump. Anchor every platform and colour them so they get warmer as they get harder.

What happens. The platforms go down in batches. Revix places and then measures — it has no view of your screen, so a precise instruction like "a 4 stud gap between them" gets you a much better result than "not too far apart".

Check it worked. Send this and read the answer:

text
List every platform in the Obby folder with its size and position, and tell me the gap between each pair.

The first gaps should be about 4 studs and none should be over 6. If any are wider than a character can jump, there is a fix at the bottom of this page.

Step 3 — Add killbricks

text
Add killbricks to the obby: thin red lava slabs filling the gaps under the platforms so a missed jump kills the player, plus three moving killbricks that slide back and forth across the wider platforms in the second half. Put the killing logic in one server script and drive it off a tag so I can add more killbricks later without editing the code.

What happens. The parts go into Workspace and the script goes into ServerScriptService, because that is where server logic belongs. Revix checks that Luau actually compiles before it writes a script, so a typo will not silently ship.

Check it worked. Press Play and walk off the edge of platform two. You should reset. The sliding slabs should already be moving the moment the game starts.

Step 4 — Add checkpoints

text
Add checkpoints to the obby. Put a checkpoint pad at the start and one every five platforms. When a player touches a pad it becomes their spawn point, touching an earlier pad does nothing, and they respawn at their latest pad when they die. Show the stage number as a leaderstat called Stage. Keep the checkpoint logic in the same server script.

What happens. A leaderboard stat appears and the respawn handling gets wired up. This is the step where the summary is worth reading properly. Anything Revix could not confirm without a live playtest goes in a "Heads up" quote block at the bottom, kept visually separate so a caveat can never read like a promise.

Check it worked. Press Play. Touch checkpoint pad 1, then jump into the lava on purpose. You should reappear at pad 1, and the leaderboard in the top right should read Stage 1.

Step 5 — Build the finish and the reward

text
Build a finish zone at the end of the obby: a raised gold platform with an arch over it and a sign that reads FINISH. When a player touches it, add 1 to a leaderstat called Wins, show a short congratulations message on screen, and send them back to the start with Stage reset to 0. Save Wins so it is still there when they rejoin.

What happens. Saving is a server job, so the save code lands in ServerScriptService and gets wrapped in retries. The on-screen message is a client thing, and client code cannot be proven while Studio is sitting in edit mode — Revix will say so rather than claim it tested it.

Check it worked. Press Play, walk the whole course, touch the finish. Wins should tick to 1 and you should be standing back on the start pad.

Step 6 — Sweep for problems

text
Check the whole Obby folder for problems — parts that are not anchored, gaps between platforms, overlapping or zero-size parts — and fix everything you find. Then tell me plainly which parts of this obby you could not verify without a playtest.

Now play it once, end to end. If something misbehaves, describe exactly what you saw:

text
I played it and I fell straight through platform 14. Read the Studio output window and fix it.

Revix reads what your running game printed into Output, errors included, and works from that. It cannot press Play itself — it will ask you to press it, then pick up from what the console says.


Make it yours

text
Add a timer on screen that starts when the player leaves the start pad and stops at the finish, and keep each player's best time on the leaderboard.
text
Make platforms 12 to 16 disappear for 2 seconds after a player steps on them, then come back.
text
Add a spinning bar obstacle on platform 9 that knocks players off, and a second one turning the other way on platform 17.
text
Build a second section of 15 platforms spiralling upward from the finish, continuing the checkpoint numbering from where it left off.
text
Give the obby a night look: dark lighting, glowing edges on every platform, and low fog.

If something goes wrong

The gaps are too wide to jump.

text
The gaps between platforms 12 and 20 are too wide to jump. Measure the distance between each pair and bring every gap down to 6 studs at most, keeping the difficulty ramp by shrinking the platforms instead.

Parts fell over when you pressed Play.

text
Some obby parts fell when I pressed Play. Find every unanchored part in the Obby folder and anchor it.

You respawn straight into lava.

text
After dying at stage 2 I respawn inside a killbrick. Move each checkpoint spawn point 4 studs above its pad and away from the lava, then read the output window and fix any errors.

Wins does not survive a rejoin.

text
Wins is not saving when I test in Studio. Tell me exactly what I need to switch on in Studio for saving to work, then read the output window and fix any errors you find.

The build stopped before it finished. Long builds have a ceiling. You will see a card reading "That one stopped early" with a Keep going button — press it, or just type continue. Nothing already built gets undone.

You want the last change gone. Ctrl+Z in Studio steps back through Revix's work like any other edit, or you can ask: undo the last change.

Next