๐ŸŸฆ My First Roblox Studio Game ยท Episode 1 of 6 ยท See All Episodes
๐Ÿƒ Episode 1 ยท Beginner ยท No Scripting Needed

Don't Fall!
Obby Obstacle Course

Build a fun obstacle course in Roblox Studio with moving platforms, a lava floor, jump pads and a finish checkpoint then publish it so your friends can play!

๐Ÿ‘ถ Ages 7+ โฑ๏ธ ~1 Hour ๐ŸŸฆ Roblox Studio โœ“ Free
๐Ÿงฑ Part building ๐Ÿ“œ Lua scripting ๐ŸŽฌ TweenService ๐Ÿ”ฅ Kill bricks ๐Ÿš€ Jump pads ๐ŸŒ Publishing
โญ
0 XP
Level 1
๐Ÿ”ฅ0
Your Progress 0 / 8 steps
1
๐ŸŸฆ
Open Roblox Studio
Install Roblox Studio and create a brand-new Baseplate project
Active
๐ŸŽฏ
Goal for this step

Get Roblox Studio open with a blank world ready to build in.

๐Ÿ‘จโ€๐Ÿ‘ง
Parent note: Roblox Studio is free. Go to create.roblox.com, sign in with your child's Roblox account and click Start Creating. It will download and install automatically. You only need to do this once.

Create your first place

  • 1Open Roblox Studio from your desktop or Start menu.
  • 2On the home screen, click the Baseplate template. A big flat green platform will appear.
  • 3Look at the top. You'll see tabs like Home, Model, View. These are your tools.
  • 4In the middle is the Viewport this is your game world. Click and drag to look around.
  • 5On the right you'll see the Explorer panel. This shows everything in your game.
๐Ÿ’ก
Hold the right mouse button and move to look around. Use W A S D to fly through the world.
๐Ÿ“Fill in the Concept+15 XP
The is the 3D view in the centre of Roblox Studio where you see your game world. The panel on the right called the shows every object in your game.
๐Ÿง 
Knowledge Check
+15 XP
What is the Explorer panel in Roblox Studio?
AThe 3D view where you see your game world
BThe toolbar at the top with Home, Model, View tabs
CThe panel on the right that shows everything in your game
2
๐Ÿงฑ
Set Up Your Start Area
Delete the baseplate and add a proper SpawnLocation for players
Locked
๐ŸŽฏ
Goal for this step

Create a starting platform where players appear when the game begins.

Remove the baseplate

  • 1In the Explorer panel on the right, find Workspace and click the arrow to expand it.
  • 2Click on Baseplate to select it, then press Delete on your keyboard. The green floor disappears that's fine!
  • 3Also click SpawnLocation in Explorer and press Delete. We'll add our own.

Build a start platform

  • 4Click the Model tab at the top, then click Part. A grey box appears in the world.
  • 5With the part selected, look in the Properties panel (bottom right). Set Size to 20, 1, 20 to make a flat wide platform.
  • 6Set Position to 0, 0, 0. This is your starting floor.
  • 7Change the BrickColor to something bright try Bright blue or Lime green.
  • 8Now go to Model โ†’ Spawn. A SpawnLocation tile appears. Move it onto your platform using the Move tool (press W to switch to it).
๐Ÿ’ก
Press F with something selected to zoom in on it so you can see it clearly.
โšกTrue or False?+15 XP
You can insert a new Part from the Model tab.
The Properties panel is at the top left of the screen.
A SpawnLocation controls where players appear when the game starts.
๐Ÿง 
Knowledge Check
+15 XP
What does a SpawnLocation do in Roblox?
AIt kills any player who touches it
BIt's where players appear when the game starts or when they respawn
CIt makes a platform move back and forth
3
๐ŸŸซ
Build the First Section
Add platforms for players to jump across leave gaps so they can fall!
Locked
๐ŸŽฏ
Goal for this step

Build 6 stepping-stone platforms leading away from the start. Leave gaps between them!

๐Ÿ‘จโ€๐Ÿ‘ง
Parent note: Let your child choose the colours and sizes of the platforms. There's no wrong answer here the fun is making it their own!

Add stepping platforms

  • 1Click Model โ†’ Part to add a new part.
  • 2Set its Size to 6, 1, 6 and move it about 8 studs away from your start platform. Leave a gap!
  • 3Give it a BrickColor you like.
  • 4Repeat this 5 more times, spacing platforms out in a zigzag path. Make some close, some far apart.
  • 5Make some platforms different sizes some tiny (4ร—1ร—4), some bigger (8ร—1ร—8). Tiny ones are harder to land on!
  • 6In Explorer, click Workspace, then rename your parts by right-clicking them and choosing Rename. Call them Platform1, Platform2, etc.
๐ŸŽจ
Try making platforms different heights too add extra studs to the Y position to create a staircase effect!
๐Ÿ”ขOrder the Steps+15 XP
Click each step in the correct order to add a new platform to your obby:
Set the platform's Size and Position in Properties
Click the Model tab at the top
Change the BrickColor to a colour you like
Click Part to insert a new block
๐Ÿง 
Knowledge Check
+15 XP
In Roblox Studio, which tab do you click to insert a new Part?
AModel
BView
CHome
4
๐Ÿ”ฅ
Add Lava! Kill Bricks
Make a danger zone that sends players back to the start
Locked
๐ŸŽฏ
Goal for this step

Add a lava floor below the platforms touching it kills the player and sends them back to spawn.

Build the lava floor

  • 1Add a new Part. Set its size to 200, 1, 200 a massive flat slab.
  • 2Set its Position Y to -10 so it sits below all your platforms.
  • 3Set BrickColor to Bright red or Neon orange. This is your lava.
  • 4In Properties, scroll down and find Material. Change it to Neon it will glow!
  • 5Rename this part Lava in the Explorer.

Make it kill players

  • 6Click on your Lava part in Explorer. Right-click it and choose Insert Object โ†’ Script.
  • 7A script editor opens. Delete everything inside and type this:
Script (inside Lava part)
local lava = script.Parent lava.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChildWhichIsA("Humanoid") if humanoid then humanoid.Health = 0 end end)
๐Ÿ“–
What does this do? When any part of a player's body touches the lava, we find their Humanoid (the part that controls health) and set health to 0. Zero health = respawn at SpawnLocation!
  • 8Press Play (the big green Play button at the top) to test it. Walk your character off a platform you should fall into the lava and respawn!
โš ๏ธ
Press Stop after testing. Any changes you make while playing are lost when you stop always stop before building more.
๐Ÿ’ป
Code Challenge
+20 XP
Fill in the blanks to make the lava kill the player on touch:
local lava = script.Parent lava.:Connect(function(hit) local humanoid = hit.Parent:FindFirstChildWhichIsA("Humanoid") if humanoid then humanoid.Health = end end)
๐Ÿ’ก Hint: The event that fires when something touches a part is called "Touched". Setting health to zero kills the player.
๐Ÿ“Fill in the Concept+15 XP
The event fires when another part makes contact. Inside the function, we check for a to make sure a player touched the lava, not just a random part.
๐Ÿง 
Knowledge Check
+15 XP
What happens when you set a Humanoid's Health to 0?
AThe player becomes invisible
BThe player dies and respawns at the SpawnLocation
CThe player's speed is set to zero
5
โ†”๏ธ
Moving Platforms
Add platforms that slide back and forth to make the obby harder
Locked
๐ŸŽฏ
Goal for this step

Create 2 platforms that slide side-to-side on their own using TweenService.

๐Ÿ‘จโ€๐Ÿ‘ง
Parent note: This step uses a script with TweenService โ€” Roblox's built-in tool for smooth movement. Just copy it carefully and it will work perfectly.

Add a moving platform part

  • 1Add a new Part, size 8, 1, 8. Place it somewhere in the middle of your obby path. Colour it Bright yellow.
  • 2Set Anchored to true in Properties (so gravity doesn't pull it down).
  • 3Rename it MovingPlatform1.
  • 4Right-click it in Explorer โ†’ Insert Object โ†’ Script.
  • 5Delete everything in the script and paste this:
Script (inside MovingPlatform1)
local TweenService = game:GetService("TweenService") local platform = script.Parent local startPos = platform.Position local endPos = startPos + Vector3.new(20, 0, 0) local info = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true) local tween = TweenService:Create(platform, info, {Position = endPos}) tween:Play()
๐Ÿ“–
The 20 is how far it moves sideways. The 2 is how many seconds it takes. Change these numbers to make it faster, slower, or move further!
  • 6Make a second moving platform in a different spot. Copy the same script but change the Vector3.new(20, 0, 0) to Vector3.new(0, 0, 20) so it moves forward/back instead.
  • 7Press Play to see them move!
๐Ÿ’ป
Code Challenge
+20 XP
Fill in the blanks to get TweenService and create a tween that moves a platform:
local TweenService = game:("TweenService") local platform = script.Parent local endPos = platform.Position + Vector3.new(20, 0, 0) local tween = TweenService:Create(platform, info, {Position = endPos}) tween:()
๐Ÿ’ก Hint: You "Get" a "Service" from game. To start a tween you call its "Play" method.
๐Ÿ”ฎPredict What Happens+15 XP
You create a moving platform with TweenService but forget to set Anchored = true on the part. What will happen when you press Play?
AThe platform moves normally
BThe platform falls due to gravity before the tween can move it
CThe platform turns invisible
โšกTrue or False?+15 XP
TweenService smoothly animates a part from one position to another.
A platform must be Anchored for a tween to work properly.
tween:Play() stops the animation.
๐Ÿง 
Knowledge Check
+15 XP
Why do we set Anchored to true on the moving platform?
ASo the platform can't be destroyed
BSo the platform changes colour
CSo gravity doesn't pull it down โ€” it stays in place until the tween moves it
6
๐Ÿš€
Jump Pads!
Add a launch pad that shoots players high into the air
Locked
๐ŸŽฏ
Goal for this step

Create a launch pad that blasts players upward when they touch it.

Build the jump pad

  • 1Add a new Part, size 6, 1, 6. Set Material to Neon and BrickColor to Cyan.
  • 2Place it somewhere in your obby as a secret shortcut or fun extra. Rename it JumpPad.
  • 3Right-click JumpPad โ†’ Insert Object โ†’ Script and paste:
Script (inside JumpPad)
local pad = script.Parent pad.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChildWhichIsA("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if humanoid and rootPart then rootPart.Velocity = Vector3.new(0, 80, 0) end end)
๐Ÿ“–
The 80 is the launch power. Try 50 for a gentle bounce or 150 to fly really high!
๐Ÿ’ป
Code Challenge
+20 XP
Fill in the blanks to launch a player upward when they touch the pad:
local rootPart = character:FindFirstChild("") if humanoid and rootPart then rootPart.Velocity = Vector3.new(0, , 0) end
๐Ÿ’ก Hint: The root part of any character is called "HumanoidRootPart". The Y value (middle number) controls up/down force.
๐Ÿ“Fill in the Concept+15 XP
To launch a player upward, we set the of the HumanoidRootPart. The axis controls up and down movement in Roblox.
๐Ÿง 
Knowledge Check
+15 XP
In Vector3.new(0, 80, 0), which axis controls the upward launch?
AY (the middle number) โ€” Y is up/down in Roblox
BX (the first number) โ€” X is up/down
CZ (the last number) โ€” Z is up/down
7
๐Ÿ
Add the Finish Checkpoint
Create a finish line that celebrates when players complete the obby
Locked
๐ŸŽฏ
Goal for this step

Add a glowing finish platform that shows a victory message when players reach it.

Build the finish area

  • 1Add a new Part at the end of your obby. Size: 12, 1, 12. BrickColor: Bright green. Material: Neon.
  • 2Add another part on top as a tall arch or flag pole get creative! Rename the floor part FinishLine.
  • 3Right-click FinishLine โ†’ Insert Object โ†’ Script:
Script (inside FinishLine)
local finish = script.Parent local winners = {} finish.Touched:Connect(function(hit) local character = hit.Parent local player = game.Players:GetPlayerFromCharacter(character) if player and not winners[player.Name] then winners[player.Name] = true print(player.Name .. " finished the obby! ๐ŸŽ‰") end end)
๐Ÿ’ก
The message appears in the Output window at the bottom of Studio. Press View โ†’ Output if you can't see it. Later you can add a proper on-screen message!
๐Ÿ’ป
Code Challenge
+20 XP
Fill in the blanks to get the player from a character and print a win message:
local player = game.Players:(character) if player then (player.Name .. " finished the obby!") end
๐Ÿ’ก Hint: The function to get a Player object from their character model is "GetPlayerFromCharacter". To output text use "print".
๐Ÿ”ฎPredict What Happens+15 XP
A player touches the FinishLine part, but the winners table already contains their name. What will happen?
AThe win message prints again
BThe game crashes
CNothing happens โ€” the if-check stops it from printing again
๐Ÿง 
Knowledge Check
+15 XP
Why does the finish script use a winners table?
ATo store the player's score
BTo make the finish line move
CTo prevent the same player triggering the win message more than once
8
๐ŸŒ
Test, Save & Publish!
Play through your whole obby and share it with friends
Locked
๐ŸŽฏ
Goal for this step

Complete a full playthrough, save your game and publish it so others can play!

Test your whole obby

  • 1Press the Play button. Walk your character through the entire obby from start to finish.
  • 2If any gaps are too big to jump, press Stop and adjust the platform positions.
  • 3Check that lava kills you and you respawn correctly.
  • 4Try the moving platforms and jump pads. Do they feel fun?
  • 5Press Stop when you're happy.

Save and publish

  • 6Press File โ†’ Save to Roblox. Give your obby a name โ€” like "Don't Fall Obby by [your name]".
  • 7Press File โ†’ Publish to Roblox. Set Privacy to Public so anyone can play it.
  • 8Visit your game's page on roblox.com and copy the link to share with friends and family!
๐ŸŽ‰
You just built and published your first Roblox game! Share the link and watch your friends try to complete your obby.
๐Ÿ”ขOrder the Steps+15 XP
Put the publish process in the correct order:
Set Privacy to Public
Press Stop to exit play mode
Share the link with friends
Click File then Publish to Roblox
โšกTrue or False?+15 XP
Changes made while the game is playing are lost when you press Stop.
You must pay money to publish a Roblox game.
You should always press Stop before editing parts in your game.
๐Ÿง 
Final Knowledge Check
+15 XP
Why should you always press Stop before making changes in Roblox Studio?
ABecause it saves your game automatically
BBecause any changes made while playing are lost when you stop
CBecause the game runs faster when stopped
๐ŸŽ‰๐Ÿƒ๐ŸŸฆ๐ŸŽŠ๐Ÿ
You Built an Obby!

Amazing work โ€” you've created a real published Roblox game with moving platforms, lava, jump pads and a finish line. Now try Episode 2!

0
Total XP
1
Level
0
Best Streak
0%
Accuracy
๐Ÿญ Episode 2: Tycoon Game โ†’ โญ View My Progress & Certificates

This workshop was free and took many hours to build. If it helped you learn something new, consider supporting the project.

☕ Support on Ko-fi