Disaster Slap Tower
This is Part Two of my blog series documenting the development process of my obby game, which you can playtest right now!
If you haven’t seen the first blog, go ahead and check it out by clicking here.
The Actual… Game?
Now that the button system I made is working, my next objective was to make the actual game.
What I mean by that is where the players are going to be playing – the obby. As aforementioned, this was going to be tower based, meaning that the aim is to reach the top and get a reward.
Level 1 – The Hook
Every obby has stages, but I believed that mine had to be different – less about skill, and more about trolling.
I wanted to have the player be slowly introduced to all the obstacle features, in order to appeal to lesser experienced players, but still be challenging enough to intrigue higher skilled players.
I started off easy with the lava bricks that damage players, and then a conveyor belt that pushes players. This serves as a great opportunity for trolling, as if a player causes an ice event, this conveyer might get too slippy for anyone unfortunate enough to be on top of it to handle!
Here’s the layout of the level.

I even added a cheeky easter egg – a ladder that allows the player to skip over half the level! Can you spot it?

Level 2 – Introducing More Mechanics
This level introduced two more mechanics to the player, a platform that propels the player upward – similar to a turbo engine powered fan enough to move a whole person!
The second obstacle gimmick introduced is disappearing platforms that will fade away once a person steps on them (coming back after a short cooldown)

This is server-sided, not client-side, which is entirely intentional, as it raises the potential for even further trolling, with players stepping on these platforms to mess up any of those behind them not paying attention!
Another Button
I know, I know. Another button, seriously? Why? I’ll tell you.
This button is on the third level of the tower, but unlike the disaster button, this one hides something little more sinister. It makes a platform completely disappear for a couple seconds, meaning that you can trick players into jumping to their demise.
The three platforms leading up to that one disappear too, so if someone pushes that button, that player is doomed to fall.

Don’t Get Dizzy
This part of the game includes spinning lava bricks that will hurt the player if they touch it.
All while this is happening, you must jump on small, floating platforms to progress to the next stage. A challenge indeed.

I had a lot of fun making this level, as my favourite part was all the funny glitches that the spinning brick had while coding it. I managed to get it working how I liked it, using the servers tick rate to keep it all in sync.
local part = script.Parent
local rotationSpeed = -270 -- Degrees per second, put a minus to flip to counterclockwise!
local RunService = game:GetService("RunService")
local lastTime = tick()
RunService.Heartbeat:Connect(function()
local now = tick()
local deltaTime = now - lastTime
lastTime = now
local rotationAngle = math.rad(rotationSpeed) * deltaTime
part.CFrame = part.CFrame * CFrame.Angles(0, rotationAngle, 0)
end)
A Step-up
This level has insta-death kill bricks (shown in red), meaning if you touch them, you dont get any second chances. This is a high stakes level, requiring moving with the utmost of precision.
A single slip-up, and back to the bottom you go.
I also thought it would be fun to add an icy section to the level, making it even harder not to accidentally glide into a lava brick.

I managed to do this with 0 code whatsoever, all I did was change the CustomPhysicalProperties, setting the Friction to 0, and the FrictionWeight to 100!
The Final Stretch
This is the final, ultimate challenge. You must run across these seven platforms, all equipped with spinning insta-death kill bricks.
