Tutorial: Create a Climbable Ladder In Doom

Apr 25, 2018Doom, Tutorial


“Why use a ladder when you could use stairs, a lift, moving floors, or even a bouncepad?”. There’s any number of reasons to use it, but for me perhaps the most important reason is the theme of your map. The most logical use of a ladder I’ve implemented in my own works that comes to mind is the ladders in the hub level for Joy Of Mapping 5. Inside the house you can find a ladder leading up to an attic – some techno-style lift or bouncepad wouldn’t work here visually, and there’s not enough room for stairs.

Ladders can come in any shape and size you want, the only requirement is that there’s a single linedef that will normally feel like a solid wall for the player walking into it. This is because we’re going to be using the ‘player bumps’ activation method on the ladder.

For this example I’m making use of 3D Floors to create a ladder which has individual steps on it, but you might want to opt in for a ladder texture or any other visual appearance of your choice. Take a quick look at the below screenshots to see how my ladder looks!

Tutorial Difficulty:

Required Tools & Resources

  • GZDoom Builder
  • Only 10 minutes of your time


This step is relatively simple – first we need to do a tiny little bit of ACS, then we need to hook the ladder up to the ACS function. First I’ll show the code, then break it down so you understand it.

Script "LadderClimb" (void) {
ThrustThingZ(0, 16, 0, 0);

As you can see, it’s super simple. The first line defines the script as a named script with the name “LadderClimb”. The next line thrusts the player upwards with ThrustThingZ()¬†with a force value of 16, and the third line closes the script. ACS doesn’t get easier than this!

Now all we need to do is hook the ladder up to this script. In the editor, select the sides of the ladder, then open up their properties. We’re going to apply line action 80: ACS_Execute. The first argument needs to have the “Named Script” option ticked first, then we can select the new LadderClimb script from the drop down menu. Leave the rest of the arguments as 0. Set the activation method to “Repeatable Action” and “Player Bumps”.

That’s it, you’re done! Save your work, make sure you have a player start placed, then jump in game and test it out! If you find the movement speed up the ladder is too fast or two slow, tweak the force value from 16 to a number that suits your map better.

To make the ladders interesting in the JoM5 map, they pass through portals, allowing the house in that map to have multiple floors without going overboard on 3D floors!

Happy mapping!

More Tutorials: