Stage 4: KillBrick Path
Finish Stage 3: Plank Walkway first. You have a yellow Stage 4 checkpoint at the end of the planks, and you've written a while … wait loop that flips properties.
a wide path with three KillBrick hazards and the fifth checkpoint
how a `Touched` handler decides whether the toucher is a player, and how to set Humanoid.Health to 0
the KillBrick script — the exact pattern every later hazard reuses
The big idea
This is the core hazard stage.
Every later hazard is a variation of the script you write here: listen for a touch, check if the toucher is a player, then set Humanoid.Health to 0.
The design lesson is that a wide path with hazards is harder than a narrow path with hazards.
A narrow path gives only one route, so the player feels punished. A wide path asks the player to choose.
Color also matters. Red says "danger" before the player reads a word. Visible danger is fair danger.
- Humanoid
- the part of every Roblox character that handles health, walking, and jumping
- :FindFirstChildOfClass
- looks through a part's children for the first one of a given type; returns nil if none found
- Health
- a property on Humanoid; setting it to 0 triggers the death/respawn sequence
- nil
- Lua's word for 'nothing here'; you check `if x then` to know x is not nil
- callback
- a function you hand to an event so it runs whenever the event fires
Build it
Step 1 — Build the wide path
A flat wide path with enough room for the player to choose a route. Wider is harder.

Build this partHazardPath
BlockOpen recipe
HazardPath
Block- Size
- 10 × 1 × 30
- Color
- Dark stone grey
- Material
- Concrete
- Anchored
- ✓ Yes
- Place
- Starting at the Stage 4 yellow pad, stretching forward 30 studs
10 studs wide is enough for the player to walk around 1-2 hazards. Don't make it narrower — that breaks the design.
Step 2 — Build three KillBrick hazards from scratch
Three identical cube hazards. Red, glowing, obviously dangerous. We'll script the first one and then duplicate it.
Build this partKillBrick_1
BlockOpen recipe
KillBrick_1
Block- Size
- 4 × 4 × 4
- Color
- Really red
- Material
- Neon
- Anchored
- ✓ Yes
- Place
- On the path, blocking the middle of one of the three lanes
Neon material makes the brick glow — adds to the danger signal. Anchored so it doesn't fall.
Now duplicate it for the other two hazards. Click KillBrick_1 in Explorer, press Ctrl+D twice. You get KillBrick_2 and KillBrick_3 identical to the first. Drag each to a different position on the path so the player has to weave between them.
Step 3 — Add the fifth checkpoint
Build this partSpawnLocation (Stage 5 — past the hazards)
BlockOpen recipe
SpawnLocation (Stage 5 — past the hazards)
Block- Size
- 6 × 1 × 6
- Color
- Bright violet
- Material
- Plastic
- Anchored
- ✓ Yes
- Place
- At the far end of HazardPath
Also: check AllowTeamChangeOnTouch. Uncheck Neutral. Set TeamColor to Bright violet. In Teams, insert a Team named 'Stage 5', uncheck AutoAssignable, set its TeamColor to Bright violet.
Step 4 — Write the KillBrick script
Now the central script of the course. In Explorer, right-click KillBrick_1 → Insert Object → Script. Open the editor.
Pass 1 — Listen for any touch
Delete the placeholder. Type this:
local brick = script.Parent
brick.Touched:Connect(function(otherPart)
print("Something touched:", otherPart.Name)
end)
Press Play. Walk onto KillBrick_1.
Output prints lines like "Something touched: LeftFoot". Same as Stage 2, but now we will act on the touch.
Pass 2 — Find the Humanoid
Body parts like LeftFoot live inside the character model.
The character also contains a Humanoid. Extend the script so it finds that Humanoid.
local brick = script.Parent
brick.Touched:Connect(function(otherPart)
local character = otherPart.Parent
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
print("Found a player! Humanoid health:", humanoid.Health)
end
end)
Press Play. Walk onto the brick.
Output shows "Found a player! Humanoid health: 100". That proves the script found your character, not just a random part.
Pass 3 — Set health to zero
Swap the print for the action:
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. Walk onto KillBrick_1. You die immediately and respawn at the Stage 4 yellow checkpoint. You just built a KillBrick from scratch.