Stage 4: KillBrick Path
Make sure you've finished Stage 3: Plank Walkway.
a path around dangerous KillBricks
how hazards guide player timing and route choices
a safer-looking path that still has real challenge

Preview the KillBrick path where danger blocks shape the route players must read.
Build this stage belowThe big idea
Stages 1–3 punished the player for falling. Today's stage adds a brand-new way to lose: touching the wrong part. A KillBrick is a brick that defeats the player on contact — they respawn at the last checkpoint and have to try again.
The new design lesson is hazards turn a path into a puzzle. A wide flat floor isn't a challenge — but the same floor with KillBricks scattered on it asks the player to read the layout before they move. That reading time is what makes a stage feel like a real obstacle.
This is also the first time we'll write a real script. We'll build the KillBrick ourselves, then paste in the code that makes it dangerous. You don't have to write the script from memory — copy what we give you and read along.
Build it
Step 1 — Build the path
A wide flat path with a few KillBricks scattered on it. The hazards do all the work.

1.1 Build a straight path
Build this partHazardPath
BlockOpen recipe
HazardPath
Block- Size
- 10 × 1 × 30
- Color
- Dark stone grey
- Material
- Concrete
- Anchored
- ✓ Yes
- Place
- Right in front of the Stage 4 checkpoint, stretching forward 30 studs
10 studs wide on purpose — we want safe space *between* the hazards so the player has somewhere to walk. Pick a different Color or Material if you want; the design still works.
1.2 Build a KillBrick
Build this partKillBrick_1
BlockOpen recipe
KillBrick_1
Block- Size
- 4 × 4 × 4
- Color
- Really red
- Material
- Neon
- Anchored
- ✓ Yes
- Place
- On the path, in the middle of one of the lanes
Red + Neon = the brick *looks* dangerous before the script makes it dangerous. That's a design trick. Anchored = true keeps it from falling.
1.3 Add the script that kills on touch
A KillBrick is just a normal red brick until a script tells it to defeat the player. Right-click KillBrick_1 in Explorer → Insert Object → Script. Delete the placeholder code inside.
KillBrick_1
The Script lives inside KillBrick_1. If you don't see the Script indented under the brick in Explorer, drag it inside.
local brick = script.Parent
brick.Touched:Connect(function(otherPart)
local character = otherPart.Parent
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end)
Press ▶ Play. Touch KillBrick_1 — you respawn at the Stage 4 checkpoint.
1.4 Make two more KillBricks
You wrote the script once. Now make two more bricks that do the exact same thing.
- Click KillBrick_1 in Explorer, press Ctrl+D twice. You now have KillBrick_2 and KillBrick_3.
- The duplicates don't have the Script inside yet. Drag the Script from KillBrick_1 onto KillBrick_2 in Explorer — Roblox copies it. Do the same for KillBrick_3.
- Drag each new brick to a different spot on the path so the player has to weave between them.
Press ▶ Play. All three bricks kill on touch. The wide path makes it possible to find a safe route.
Step 2 — Add the next checkpoint
The Stage 5 checkpoint goes at the far end of the hazard path. Same checkpoint pattern as Stages 1–3 — this is the fourth time you've done it.
2.1 Add another SpawnLocation
In Explorer, right-click Workspace → Insert Object → SpawnLocation.
2.2 Set its properties
- BrickColor → a new color.
- AllowTeamChangeOnTouch → checked.
- Neutral → unchecked.
- TeamColor → matches the BrickColor.
2.3 Tag it with its stage number
Same gesture as Stage 1. In the Attributes section of Properties, add a StageNumber attribute (number type) and set its value to 5.
2.4 Add a Team
- In Teams, insert a new Team named Stage 5.
- Uncheck AutoAssignable.
- Set TeamColor to match.
Drag the SpawnLocation onto the end of your path.
Understand it
A KillBrick is just a normal part with a tiny script attached. The script listens for a Touched event, and when a player character touches the part, the script sets the player's Health to 0. That's the whole thing. You'll see this exact pattern (touched event → do something) in every script-based hazard in Roblox.
The script we pasted does three things in order: find the brick (script.Parent), wait for something to touch it (Touched:Connect), and check whether the toucher was a player (FindFirstChildOfClass("Humanoid")). If it was a player, set their Health to 0. Real game devs spend a lot of time reading and pasting code that already works — that's the same skill you just used.
The wide path is a deliberate design choice. A narrow path with KillBricks just becomes Stage 3 with extra danger — not actually harder, just meaner. A wide path with hazards lets the player choose a route. Pick the wrong route and you lose. Pick the right route and you feel smart. That choice is the difference between a puzzle and a punishment.
We also color the KillBricks Really red + Neon for a reason: red bricks look dangerous, gray bricks look harmless. The player reads the color before they read the script. Visible danger is fair danger.
Try this
Try this
Three short experiments. Predict before you run, then test your guess.
Place a KillBrick directly in the middle of your path so the player can't avoid it. Predict what happens. Now move it slightly to one side. Why does the second version feel completely different to play?
Color your KillBricks bright red. Play through. Now color them the same color as the path. Play through again. Which version feels fair? Which feels cheap?
Stage 5 swaps static hazards for timed hazards — fireballs flying across a path. Look at your KillBrick path. Which is harder for the player: a danger that never moves but is in their way, or a danger that moves but only sometimes?
Test your stage
Before moving on:
- Press ▶ Play and start from the Stage 4 checkpoint.
- Touch one KillBrick on purpose and confirm it sends you back to the checkpoint.
- Complete the path without touching a KillBrick.
- Touch the Stage 5 checkpoint, reset, and confirm you respawn there.
- Design check. Is there a safe path through that every player could find, or do they have to stumble into it?
If it breaks
- The KillBrick doesn't kill me. The Script is probably outside the brick. In Explorer, the Script should appear indented underneath KillBrick_1, not next to it. Drag it inside the brick.
- KillBrick_2 and KillBrick_3 don't kill me, but KillBrick_1 does. You forgot to drag the Script onto the duplicates. Each brick needs its own Script inside. Drag the Script from KillBrick_1 onto each one in Explorer.
- Output shows a red error mentioning "Humanoid". You probably misspelled
Humanoid— case matters. Re-check the linelocal humanoid = character:FindFirstChildOfClass("Humanoid"). - My character respawns at Stage 1 instead of Stage 4. Your Stage 4 SpawnLocation isn't actually finished. Re-check: AllowTeamChangeOnTouch is on, Neutral is off, BrickColor matches TeamColor, and the Stage 4 Team exists with the same TeamColor.
- Players cheat by jumping over the KillBricks. They're too short. Increase their height — try
[4, 6, 4]— so they actually block the player's normal jump.