Guide

Game ladder climb systems explained

Harbor Siege's eastern watchtower was supposed to be a five-second vertical shortcut during raid nights. Instead, playtesters called it a death trap: walking near the ladder snapped the character onto rungs facing away from the wall, climb animations desynced from actual position, and the top dismount dropped players through the platform collider into arrow fire below. Support tickets tagged “ladder bug” outnumbered legitimate tower-capture feedback three to one.

Ladder climb systems are the traversal layer between ground locomotion and elevated spaces — mount detection, a dedicated climb finite-state machine, rung-snapped movement, and predictable dismount transitions at the top, bottom, and sides. They look simple in a greybox blockout; in production they intersect animation root motion, camera collision, combat state, and every other vertical tool ( mantling, grapple, wall-run). After Harbor Siege refactored mount cones, climb FSM ownership, and platform snap points, tower capture time fell 40% and ladder-related bug reports went to zero. This guide covers detection, input models, the climb FSM, dismount rules, combat policies, the Harbor Siege refactor, a technique decision table, pitfalls, and a production checklist.

Why ladders deserve their own system

Ladders are not “slow elevators.” They constrain player agency in specific ways that ground movement does not: facing is locked, lateral dodge is limited, and the camera must cooperate in tight shafts. Treating a ladder as a trigger volume that teleports the player up a spline works in a prototype; it breaks the moment you add combat, knockback, or multiplayer replication.

A dedicated ladder system solves four problems:

  • Predictable mounting — players choose when to engage; accidental snaps from walking past a ladder ruin stealth and platforming.
  • Animation fidelity — hands and feet align to rung spacing; root motion does not drift through geometry.
  • State isolation — climb mode disables sprint, dodge, and some attacks without orphaning the character mid-air when hit.
  • Clean handoffs — top, bottom, and side dismounts transition to walk, mantle, or fall with explicit rules instead of physics surprises.

Ladders complement other vertical tools rather than replacing them. Short ledges use mantling; long gaps use grapple; momentum chains use wall-run. Ladders win when the designer wants a readable, low-skill vertical route with optional combat vulnerability.

Mount detection and entry

How the game decides “you are on a ladder” determines 80% of player frustration. Common detection patterns:

Trigger volume + facing cone

A box or capsule along the ladder axis tests overlap with the player capsule. Require the player to face within 45–70 degrees of the ladder normal and press an interact or forward input before mounting. Harbor Siege moved from auto-mount on overlap to interact-or-forward inside the volume, cutting accidental mounts by 92% in analytics.

Forward raycast / sphere cast

Cast from chest height in the movement direction; hit a tagged LadderSurface mesh to offer mount. Good for third-person games where trigger volumes feel mushy. Combine with a max distance (0.8–1.2 m) so players cannot mount from the wrong side of a wall.

Bottom and top snap points

Explicit transforms at ladder ends define where the climb FSM starts and ends. Snap the player's root to the nearest rung index on entry; never start mid-air unless your game supports ladder jumps (see pitfalls). Store rung spacing as ladder metadata (rung_pitch = 0.35 m is a common humanoid default).

Entry from air

Action games often allow grabbing a ladder while falling. Gate with downward velocity, distance to ladder plane, and a short coyote window after leaving ground. Disable entry while knockback is active unless you want slapstick recovery.

Climb FSM and input models

Once mounted, the character enters a climb locomotion mode with its own states:

  • mounting — short blend into first rung pose; input buffered but movement locked.
  • climbing — vertical movement along discrete rungs or a continuous spline.
  • idle_on_ladder — zero input; play breathe/hold animation.
  • dismounting — scripted or root-motion exit to platform or ground.
  • falling_off — knockback, release input, or side-jump exit.

Input mapping choices:

  • Forward/back on stick — intuitive for action-adventure; forward climbs up relative to ladder orientation.
  • Up/down on stick — common in first-person; invert carefully for south-hemisphere ladder meshes.
  • Hold interact to climb — reduces accidental dismounts on mobile; add accessibility toggle for sticky climb.
  • Discrete rung steps — each tap advances one rung; precise for stealth but slow for tall towers.
  • Continuous speed — analog magnitude maps to climb velocity; cap max speed so sprint stamina systems are not bypassed.

Position the player on the ladder plane each frame: project root onto the ladder axis, snap Y to nearest rung or integrate velocity, and slerp facing to ladder normal. In networked games, server-authoritative rung index with client interpolation avoids rubber-banding.

Dismount transitions

Most ladder bugs live at the edges. Define explicit rules for each exit:

Top dismount

When climb position exceeds top_snap - epsilon, transition to dismounting_top: play a mantle-over animation or teleport root to platform_stand_point with a one-frame kinematic flag. Harbor Siege's floor fall was caused by dismount using physics drop before the platform collider registered; the fix was kinematic placement plus a 0.15 s collision ignore window only for the ladder shaft, not the platform.

Bottom dismount

At rung index 0, release to ground locomotion facing away from the ladder or toward it based on design. If ground is uneven, raycast down to find floor height before handing off to the character controller.

Side jump / release

Jump or back-input while climbing applies lateral impulse off the ladder plane and enters falling_off. Document whether i-frames apply; competitive games often leave climbers vulnerable. Pair with dodge only after dismount completes.

Forced eject

Damage, stagger, and explosion knockback should eject with a clear rule: cancel climb FSM, apply knockback vector blended with “away from ladder” component, and disable re-mount for 0.3–0.5 s to prevent mount loops.

Combat, camera and interaction policies

Ladders create readable risk-reward in PvE and PvP. Policy table teams should document:

  • Shooting — full aim (rare), restricted cone, or disabled; first-person shooters often allow hip-fire down-ladder only.
  • Melee — usually disabled or limited to a single upward strike; full combos break rung sync.
  • Reload and item use — allow or cancel climb; blocking heals on ladders is a common Soulslike pattern.
  • Camera — collision pull-in when back is against ladder; optional shoulder swap. Third-person games may zoom in while climbing.
  • Stamina — climb drain optional; if sprint stamina is shared, decide whether climbing counts as exertion in exploration vs combat.
  • Context prompts — show “Climb” only inside mount cone; hide when mounted to reduce UI noise.

Enemy AI should treat occupied ladders as predictable corridors: archers prioritize climbers, melee units hold bottom snap points. Without AI awareness, ladders become one-way safe zones that break encounter design.

Harbor Siege tower refactor (worked example)

Harbor Siege's watchtower ladder shipped with a single overlap volume and continuous upward velocity. Refactor changes:

  • Mount policy — forward input + 55-degree facing cone inside volume; interact button optional for accessibility.
  • Rung metadata — 0.32 m pitch, 14 rungs, explicit top_stand and bottom_stand transforms parented to the tower mesh.
  • Climb FSM — discrete rung index on server; climb speed 2.1 m/s continuous with snap correction under 4 cm error.
  • Top dismount — kinematic place at top_stand, 0.2 s animation, then enable controller; platform collider always active.
  • Combat — hip-fire pistols and crossbow only; reload allowed; melee disabled; 1.25x damage taken while climbing.
  • Side jump — jump exits with 4 m/s lateral + 2 m/s up; 0.4 s re-mount cooldown.
  • Camera — tighter collision capsule and 15% zoom while climbing; restored on dismount.

Tower capture time in raid sims dropped from 82 s median to 49 s; ladder bug tickets went from 47 per week to zero over two patch cycles.

Technique decision table

Approach Best for Weak when
Interact-only mount Stealth, immersive sims, dense urban levels Fast action where friction kills flow
Forward-in-cone auto-offer Action-adventure, third-person shooters Narrow corridors with many ladder props
Discrete rung stepping Stealth pacing, horror vertical shafts Tall towers; feels sluggish
Continuous climb velocity Raid arenas, multiplayer vertical lanes Requires strong snap and animation blend
Mantle instead of ladder Short 2–3 m climbs, organic ruins Repeatable farm routes; inconsistent timing
Grapple / wall-run instead High skill expression, open zones Low-skill onboarding paths; accessibility
Harbor-style cone mount + kinematic top Combat-heavy towers with readable risk Needs authored snap points per ladder prefab

Common pitfalls

  • Auto-mount on overlap — players snag ladders while strafing in combat; require intent via input or facing.
  • Wrong-facing mount — character climbs backward; enforce ladder normal dot player forward > threshold.
  • Physics drop on top exit — fall-through platforms; kinematic place at top_stand first.
  • Rung pitch mismatch — feet float or penetrate; bake pitch from animation or measure authored mesh.
  • Climb bypasses sprint stamina — players avoid ground drain by ladder-hopping; apply drain or ban ladder sprint chains.
  • Camera inside wall — ladder shafts need collision-aware camera pulls, not just player capsule fixes.
  • No knockback eject rule — hit reactions fight climb FSM; define single owner for displacement.
  • Multiplayer desync — client-only rung index drifts; replicate index or normalized height on server.
  • Ladder overlaps mantle volume — ambiguous prompts at ledges; priority rules: mantle wins within 1.5 m of ledge lip, ladder wins in shaft center.
  • Invisible ladder in PvP — if climbers are vulnerable, telegraph ladder lanes in level art and lighting.

Production checklist

  • Tag ladder meshes and prefabs with axis, normal, rung pitch, and snap transforms.
  • Choose mount policy: interact, forward-in-cone, or hybrid; document per platform.
  • Implement climb FSM with mounting, climbing, idle, dismounting, and fall-off states.
  • Snap player to ladder plane each frame; cap correction distance to avoid pops.
  • Author top_stand and bottom_stand on every ladder instance.
  • Top dismount: kinematic place then hand off to character controller.
  • Define side-jump impulse, re-mount cooldown, and damage vulnerability.
  • Document combat policy: aim, melee, reload, items, stamina drain.
  • Configure camera collision and optional zoom for climb mode.
  • Priority rules vs mantling, grapple, and wall-run at boundaries.
  • Knockback and stagger eject from climb with blended away-from-wall vector.
  • Network: server-authoritative rung index or height; client interpolation.
  • Playtest mount cones from all approach angles; log accidental mounts in analytics.

Key takeaways

  • Ladders need a dedicated climb FSM — ground locomotion rules do not survive vertical shafts unchanged.
  • Mount intent matters more than climb speed — facing cones and input gates prevent accidental snaps.
  • Top dismount is the highest-bug surface — kinematic snap points beat physics handoff.
  • Harbor Siege fixed tower capture by pairing cone mounts, rung metadata, and combat vulnerability on climbers.
  • Coordinate ladders with mantling, grapple, and wall-run via explicit boundary priority rules.

Related reading