Manual: Ladder Tiles and Ladder Climbing

Manual: Ladder Tiles and Grabbing Ladders

About This Manual

This manual explains the ladder functionality in ACTION GAME MAKER. It is created by combining three elements: tile-side settings, the execution action “Grab Ladder Tile (GrabLadderTile),” and the condition “Overlapping with Ladder Tile (ContactWithLadderTile).”

You can also create movements such as climbing to the top and standing on it, or descending from a standing position to grab the ladder (see the section “Standing on Top of the Ladder”).

Overview of Ladders in ACTION GAME MAKER

Ladders are created by combining the following three elements:

Element Role
Ladder Tile (Tile Settings) Determines which tiles are ladders and whether one can stand on the top edge.
Overlapping with Ladder Tile (ContactWithLadderTile) A condition that determines whether the player is in front of the ladder.
Grab Ladder Tile (GrabLadderTile) An execution action that creates movement while grabbing (stopping gravity, moving up/down) and actions for standing on the top edge or descending from it.

Transitions such as grabbing, letting go, or jumping off are created using transition conditions in the visual script. The ladder’s behavior itself is handled by the action, while the creator decides when to grab. This is a division of labor.

Creating Ladder Tiles

Set the tiles that will serve as ladders in the tile settings as follows:

  1. Open the tileset in the bottom panel and select the tile to be used as a ladder.
  2. Enable “Tile Effect.”
  3. Set “Collision Detection Pattern” to “Overlap.”
  4. Check “Ladder.”
  5. If you want the player to be able to stand on top of the ladder, also check “Can Stand on Top Edge of Ladder.”

“Overlap” is a setting that does not obstruct passage. Since ladders must be passable, they are placed as overlaps rather than walls. Consequently, collision detection does not run, so ladder detection is performed based on “whether it is overlapping.” Tiles set to “Contact” will not be detected as ladders.

“Ladder” can only be edited when “Collision Detection Pattern” is set to “Overlap,” and “Can Stand on Top Edge of Ladder” can only be edited when “Ladder” is checked (otherwise, they appear grayed out).

“Can Stand on Top Edge of Ladder”

For ladder tiles with this check enabled, a floor is automatically created on the top edge of the topmost tile in the ladder column during game execution. This floor is one-way (cannot be passed from below, can be stood on from above) and is invisible.

  • The floor is treated the same as wall-detection tiles, so grounding conditions such as “Touching Tile” or “Touching Collidable Object” can be used as-is.
  • The floor can be stood on not only by the player but also by other objects.
  • If a tile with collision detection (floor, wall, one-way tile) is already placed on the topmost tile or the tile immediately above it, no floor will be created for that ladder. This is to prevent duplication with floors placed manually. In this case, “Standing on Top of the Ladder” will not work for that ladder.
  • Do not check this for ladders that should not be standable, such as ladders floating in mid-air. If you want to distinguish between standable and non-standable ladders, prepare two types of tiles and paint them differently.

“Overlapping with Ladder Tile (ContactWithLadderTile)”

This is an additional condition. It is satisfied when overlapping with a ladder tile.

  • Detection Position: Choose where to look for the ladder.
    • Anywhere on the vertical centerline (Default): Satisfied if any part of the vertical line passing through the center of the object overlaps with the ladder, from the top edge of the wall detection to the feet. When jumping to grab, you will grab as soon as your head reaches the ladder. If you use the inverse of this condition as the release condition, you will not let go until the centerline completely leaves the ladder (for climbing up, until the feet pass the top edge).
    • Anywhere in the wall detection: Includes the left and right edges of the wall detection. This is a lenient detection that grabs even if the ladder is barely touched. When grabbed, the object is pulled horizontally to the center of the ladder column (moving more if only the edge of the body was overlapping). When ladders are arranged horizontally, you grab the column closest to the center.
    • Center of the Object: Detects based on the object’s origin. The inverse of this can detect “the center has passed the top edge,” which is useful for triggering climbing animations.
    • Ladder Immediately Below: Detects just below the bottom edge of the wall detection. This is used to check if the area below the feet is a ladder while standing on the floor at the top edge (as a condition for entering from the top edge to descend).

This is used as an entry condition for grabbing the ladder (e.g., combined with Up Input) and as a condition for determining when you have left the ladder (when this condition is no longer satisfied).

“Grab Ladder Tile (GrabLadderTile)”

This is an execution action. While this action is active, the object is in a grabbed state.

  • Climbing Speed: The speed at which the object climbs up and down the ladder (pixels per second).
  • Stand on Top of Ladder: When enabled, on ladders where “Can Stand on Top Edge of Ladder” is checked, upon reaching the top, the object will mount the top edge floor. If grabbed while on the top edge floor, the object will pass through the floor and descend the ladder.
  • Climb Key / Descend Key: Specify the keys used for climbing and descending. The default “Same as Movement Settings” uses the up/down keys defined in the object’s movement settings.

Movement while grabbed is as follows:

  • Gravity stops (vertical velocity is also canceled, allowing the object to remain stationary in the middle of the ladder).
  • No horizontal movement. The X coordinate of the center is locked to the center of the ladder column being grabbed. This prevents the appearance of hanging from the edge of the ladder while climbing.
  • Press Up to climb, press Down to descend.
  • If you transition to another state and this action is removed, the ladder state is automatically released. There is no need to place a release action.
  • If you transition to another state containing “Grab Ladder Tile” within the same frame, the ladder state continues without releasing (useful when separating states for climbing animations).

Reason for Specifying Climb/Descend Keys

If you enable the up/down keys in the movement settings in a side-view game, the object can move up and down using these keys even outside the ladder. However, disabling the up/down keys entirely would prevent climbing the ladder.

In such cases, keep the up/down keys in the movement settings disabled and specify the up/down keys in the “Climb Key” and “Descend Key” fields of “Grab Ladder Tile.” This allows vertical movement only while on the ladder.

Do not use the method of setting “Vertical Movement Amount” in the movement settings to 0. This would also stop vertical movement for actions that use “Reference Own Settings Value” for speed (such as knocking back the self, moving in the display direction, or moving objects).

Constructing the Visual Script

The minimum configuration consists of three states:

  1. Normal (Standing/Walking) State
  2. Ladder State (Place “Grab Ladder Tile”)
  3. Jump or Fall State

Example transition conditions:

  • Normal → Ladder: “Overlapping with Ladder Tile” + Up Input (All conditions must be met)
  • Ladder → Normal: Inverse of “Overlapping with Ladder Tile” (Left the ladder)
  • Ladder → Jump: Jump Button Input
  • Ladder → Normal (Descended Completely): “Touching Collidable Object (Down)” + Down Input (All conditions must be met)

The default detection position is “Anywhere on the vertical centerline.” Even for ladders jumped to grab, you will grab as soon as your head reaches the ladder.

If the transition “Switch Condition” remains at the default “Any condition met,” transitions will occur based on input alone (e.g., pressing Up in an area without a ladder will enter the ladder state). Please set links that combine input and conditions to “All conditions must be met.”

For landing after descending completely, combine “Touching Collidable Object (Down)” with Down Input. Immediately after grabbing from the ground, the feet are still considered to be touching the ground for one frame. If you use only “Touching” as the condition, you might return to the landing state the moment you start climbing.

Since horizontal movement is disabled while on the ladder, if you want to create a movement “Leaving Horizontally from Ladder,” make a transition to the normal state using horizontal input as the condition.

Standing on Top of the Ladder

This section explains how to create movements such as climbing to the top and standing on it, or descending from a standing position to grab the ladder.

Preparation

  • Set “Can Stand on Top Edge of Ladder” on the ladder tile.
  • Enable “Stand on Top of Ladder” in “Grab Ladder Tile.”

Transition Conditions

  • Normal → Ladder (From Below): “Overlapping with Ladder Tile (Detection Position: Anywhere on the vertical centerline)” + Up Input (All conditions must be met)
  • Normal → Ladder (Descending from Top Edge): “Overlapping with Ladder Tile (Detection Position: Ladder Immediately Below)” + Down Input (All conditions must be met)
  • Ladder → Normal: Inverse of “Overlapping with Ladder Tile (Detection Position: Anywhere on the vertical centerline)”
  • Ladder → Normal (Descended Completely): “Touching Collidable Object (Down)” + Down Input (All conditions must be met)

For the condition to leave the ladder, please keep the detection position as the default “Anywhere on the vertical centerline.” If you set it to “Center of the Object,” you will let go as soon as the center passes the top edge. This would cause the object to be instantly lifted onto the floor (about half the body height) and prevent descending from the top edge floor (because the condition to let go is met immediately after grabbing).

Movement

  • When you reach the top, your feet will cross the top edge, you will mount the floor, and you will return to the normal state.
  • If you press Down while on the top edge floor, you will pass through the floor, grab the ladder, and continue descending.
  • If there is a pass-through platform in the middle of the ladder, you will stand on it once while descending. By grabbing the ladder there using the same entry as descending from the top edge (“Ladder Immediately Below” + Down Input), you can pass through the floor and continue descending.
  • In places where the body cannot fit due to ceilings or walls, the object will not be placed on or removed from the floor.

Adding a Climbing Animation

Connect Ladder → “Climbing” State → Normal.

  • Ladder → Climbing: Inverse of “Overlapping with Ladder Tile (Detection Position: Center of the Object)” (Center has passed the top edge)
  • Climbing → Normal: Inverse of “Overlapping with Ladder Tile (Detection Position: Anywhere on the vertical centerline)”

Place “Grab Ladder Tile” with the same settings in the “Climbing” state and play the climbing animation. The animation plays in sync with the upward movement of the body. During the climb, you must continue holding the Up key to keep climbing.

Practical Examples

Ladder That Can Be Climbed Up and Down

  • Set “Tile Effect” → “Overlap” → “Ladder” on the tiles to be used as ladders.
  • Create a “Ladder” state for the player, place “Grab Ladder Tile,” and set the climbing speed to around 100.
  • Transition from the Normal state using “Overlapping with Ladder Tile + Up Input” (All conditions must be met), and return to the Normal state using “Touching Collidable Object (Down) + Down Input.”

Jumping Off the Ladder

  • Add a transition from the Jump Button Input condition to the Jump state in the “Ladder” state.
  • Since the ladder state is released as soon as you leave the state, if you apply velocity on the Jump side, you can jump off directly.

Climbing to the Top and Standing on It

  • Set up according to the “Standing on Top of the Ladder” chapter. There is no need to place a floor at the top edge.

Notes

  • Tiles with “Collision Detection Pattern” set to “Contact” will not be detected as ladders. Be sure to set them to “Overlap.” The shape of the collision detection drawn on the tile remains even if set to “Overlap.”
  • “Anywhere on the vertical centerline,” “Center of the Object,” and “Ladder Immediately Below” are not wide horizontal detections. They will not be detected if the center is not directly above the ladder column. If you want to grab even if you barely touch the edge, use “Anywhere in the wall detection.”
  • The locked X coordinate is determined by the center of the ladder column at the moment of grabbing. You cannot move to another column while still grabbing. If you want to change columns, you must let go of the ladder and grab again.
  • Horizontal movement is stopped while grabbing the ladder. If you need a movement to leave using horizontal input, create a transition condition.
  • While grabbing the ladder, it is not recorded as a “Platform.” In “Quick Restart” → “Return to Last Grounded Platform,” you will not return to the ladder position.
  • If ladder tile information cannot be retrieved, the object will snap to a position aligned with the tile grid (this is a fallback action assuming tile origins are aligned).
  • While passing through the top edge floor (when climbing up from below and passing through, or descending from the top edge), that floor is excluded from collision detection. Manually placed pass-through floors (PassThroughPlatform2D) are treated the same way.