Skip to main content

Stage 2: Sphere Staircase + jump pad

Course progressStage 2 of 10
~35 min
Before you start

Make sure Stage 1 works and resetting brings you back to the red Stage 2 checkpoint.

Build

a sphere staircase and a Stage 3 checkpoint

Learn

how a tiny script can give a player a short upward push

Ship

a jump pad that makes the obby feel like parkour

The big idea

A jump pad is simple magic: touch the pad, get pushed upward for a tiny moment. Students see the result immediately, so the code feels worth typing.

New words
Touched
an event that runs when something bumps into a part
HumanoidRootPart
the center part Roblox uses to move a character
velocity
speed in a direction

Build it

Step 1 — Build the sphere staircase

Add 5 anchored Ball parts after the Stage 2 checkpoint. Make each sphere a little higher and farther than the last.

  • Name them SphereStep_1 through SphereStep_5.
  • Keep them big enough to land on.
  • Use bright colors so the path is easy to read.

Press Play and jump across them.

Step 2 — Build the jump pad

Add one part after the spheres:

Build this part

JumpPad_1

Block
Open recipe
Size
8 × 1 × 8
Color
Cyan
Material
Neon
Anchored
✓ Yes
Place
After the last sphere, before a small gap

Insert a Script inside JumpPad_1:

local pad = script.Parent
local JUMP_POWER = 100
local ready = true

pad.Touched:Connect(function(touched)
if not ready then return end

local character = touched.Parent
local root = character and character:FindFirstChild("HumanoidRootPart")
if not root then return end

ready = false

local velocity = Instance.new("BodyVelocity")
velocity.MaxForce = Vector3.new(40000, 40000, 40000)
velocity.Velocity = Vector3.new(0, JUMP_POWER, 0)
velocity.Parent = root

task.wait(0.1)
velocity:Destroy()

task.wait(0.3)
ready = true
end)

Press Play. Step on the pad and watch your character blast upward. The first test should feel obvious.

Step 3 — Add the Stage 3 checkpoint

Place a new SpawnLocation where the jump pad lands. Set it to a new color, add StageNumber = 3, and create the matching Stage 3 Team.

Understand it

The pad waits for a player to touch it. Then it finds the player's HumanoidRootPart and adds a short upward push.

The BodyVelocity object is the push. It lives on the player for 0.1 seconds, then the script destroys it. The ready variable is a cooldown, so one touch does not create a pile of pushes at the same time.

The important idea is not the long Roblox word. The idea is: touch part -> change motion.

Try this

Learning beat

Try this

Three short experiments. Predict before you run, then test your guess.

Predict first

What will happen if JUMP_POWER changes from 100 to 50?

Compare

Test JUMP_POWER at 80, 100, and 120. Which launch feels exciting but still controllable?

Connect

Where else could a touch part change how the player moves?

Test your stage

  • The sphere staircase is possible.
  • The jump pad launches upward.
  • The landing checkpoint has StageNumber = 3.
  • Resetting after touching Stage 3 brings you back there.

If it breaks

  • Nothing happens on the pad. Make sure the Script is inside JumpPad_1.
  • The launch is too weak. Raise JUMP_POWER.
  • The launch is too wild. Lower JUMP_POWER or move the landing closer.
  • The pad fires again and again. Check that ready = false, task.wait(0.3), and ready = true are all in the script.
Coach notes

Do not over-explain velocity. Let students tune the number and feel the difference. The number-feel connection is the win.