canDash (Implicit)

The ability to use the dash button to gain run speed.

Dev note: This is ability is very simple, but it is useful to model since dashing may not be possible in some contexts, such as while carrying a blue suit.

Difficulty filter

Strats ()

From: 2
Bottom Left Door
To: 5
Bottom Junction (Right of Boyons)

Jump at the last tile to make it through all of the Boyons.

Requires:

"ScrewAttack"
{
  "or": [
    "canCarefulJump",
    "SpaceJump",
    "h_speedDash"
  ]
}
From: 5
Bottom Junction (Right of Boyons)
To: 2
Bottom Left Door

Jump at the last tile to make it through all of the Boyons.

Requires:

"ScrewAttack"
{
  "or": [
    "canCarefulJump",
    "SpaceJump",
    "h_speedDash"
  ]
}
From: 1
Left Door
To: 1
Left Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, back into the corner at the start of runway.

Requires:

"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 38,
      "openEnd": 0
    },
    "obstruction": [
      5,
      2
    ]
  }
}

Dev note: Max extra run speed $6.5. Using the full runway, the momentum-conserving morph has a 4-frame window for the jump, and between a 2-frame and 5-frame window for the morph depending on the jump timing (with later jumps giving a bigger window for the morph); these windows can be more narrow depending on what is required in the next room. The momentum-conserving turnaround has a 2-frame window for the jump, and either a 3-frame or 5-frame for the turnaround (with the last-frame jump giving the larger window for the turnaround); again the windows can be more narrow depending on what is required in the next room. The aim-down method requires specific positioning to ensure Samus barely clears the door ledge with a frame-perfect jump.

From: 2
Right Door
To: 2
Right Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, avoid backing into the corner at the start of runway; instead press against it and turn around, to put Samus into a better position. An even better position is obtained by backing up an additional 8 to 12 pixels from the runway start (again, pressing forward into the corner, not backing into it), or equivalently, pressing and releasing an angle button 4 to 6 times to arm pump while running.

Requires:

"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 38,
      "openEnd": 0
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $6.1. Using the full runway (either backing into the corner or turning around from it), the momentum-conserving morph has a 5-frame window for the jump, and either a 2-frame window or 3-frame window for the morph depending on the jump timing; these windows can be more narrow depending on what is required in the next room. The momentum-conserving turnaround requires a frame-perfect (last-frame) jump and a frame-perfect turnaround. The aim-down method requires specific positioning to ensure Samus barely clears the door ledge with a frame-perfect jump.

From: 3
Top Right Door
To: 1
Top Left Door

Gain speed using the long runway at the top-right of room, do a big jump across the room into a mockball or speedball, then use controlled bounces to make it through the top-left door.

Requires:

{
  "obstaclesCleared": [
    "A",
    "C"
  ]
}
"h_speedDash"
"canInsaneJump"

Exit condition:

{
  "leaveWithSpringBallBounce": {
    "remoteRunway": {
      "length": 31,
      "openEnd": 1,
      "steepUpTiles": 9
    },
    "landingRunway": {
      "length": 3,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$4.9",
    "movementType": "controlled"
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[],"useImplicitRequires":false}

Dev note: Unlocking doors would be done ahead-of-time when the door is opened, i.e. when obstacle 'C' is set.

From: 1
Left Door
To: 4
Middle Junction (Left of Morph Tunnel)

Requires:

"canDash"
{
  "or": [
    "canCarefulJump",
    {
      "acidFrames": 35
    }
  ]
}
{
  "or": [
    "ScrewAttack",
    {
      "obstaclesCleared": [
        "A",
        "B"
      ]
    }
  ]
}

Clears obstacles: A, B

From: 1
Left Door
To: 4
Middle Junction (Left of Morph Tunnel)

When taking too much acid damage, it is always possible to return to the left and farm.

Requires:

"canDash"
{
  "or": [
    "canCarefulJump",
    {
      "acidFrames": 35
    }
  ]
}
"h_useMorphBombs"

Clears obstacles: A, B

From: 1
Left Door
To: 4
Middle Junction (Left of Morph Tunnel)

When taking too much acid damage, it is always possible to return to the left and farm.

Requires:

"canDash"
{
  "or": [
    "canCarefulJump",
    {
      "acidFrames": 35
    }
  ]
}
{
  "or": [
    {
      "and": [
        "Morph",
        {
          "ammo": {
            "type": "PowerBomb",
            "count": 2
          }
        }
      ]
    },
    {
      "obstaclesCleared": [
        "A"
      ]
    }
  ]
}
{
  "or": [
    "h_usePowerBomb",
    {
      "obstaclesCleared": [
        "B"
      ]
    }
  ]
}

Clears obstacles: A, B

From: 1
Left Door
To: 4
Middle Junction (Left of Morph Tunnel)

Requires:

"h_usePowerBomb"
"canDash"
{
  "useFlashSuit": {}
}
{
  "or": [
    {
      "and": [
        "canHorizontalShinespark",
        {
          "shinespark": {
            "frames": 28,
            "excessFrames": 0
          }
        }
      ]
    },
    {
      "and": [
        "h_additionalBomb",
        {
          "shinespark": {
            "frames": 1,
            "excessFrames": 1
          }
        }
      ]
    }
  ]
}

Clears obstacles: A, B

From: 4
Middle Junction (Left of Morph Tunnel)
To: 1
Left Door

Requires:

"canDash"
{
  "or": [
    "canCarefulJump",
    {
      "acidFrames": 35
    }
  ]
}
{
  "or": [
    "ScrewAttack",
    {
      "and": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        {
          "obstaclesCleared": [
            "B"
          ]
        }
      ]
    }
  ]
}

Clears obstacles: A, B

From: 4
Middle Junction (Left of Morph Tunnel)
To: 1
Left Door

After destroying a single bomb block, Samus can spin jump into its spot to quickly escape the acid. To avoid the acid completely, morph quickly at the right height and place a bomb.

Requires:

"canDash"
{
  "or": [
    "canCarefulJump",
    {
      "acidFrames": 35
    }
  ]
}
"h_useMorphBombs"
{
  "or": [
    "canTrickyJump",
    {
      "and": [
        "canCarefulJump",
        "canBombHorizontally",
        {
          "acidFrames": 35
        }
      ]
    },
    {
      "acidFrames": 100
    }
  ]
}
{
  "or": [
    {
      "and": [
        "canTrickyJump",
        "canTrickyWalljump"
      ]
    },
    {
      "and": [
        "canCarefulJump",
        {
          "acidFrames": 35
        }
      ]
    },
    {
      "acidFrames": 100
    }
  ]
}
"h_complexToCarryFlashSuit"

Clears obstacles: A, B

From: 4
Middle Junction (Left of Morph Tunnel)
To: 1
Left Door

Requires:

"canDash"
{
  "or": [
    "canCarefulJump",
    {
      "acidFrames": 35
    }
  ]
}
"Morph"
{
  "ammo": {
    "type": "PowerBomb",
    "count": 3
  }
}

Clears obstacles: A, B

From: 4
Middle Junction (Left of Morph Tunnel)
To: 1
Left Door

Requires:

"h_usePowerBomb"
"canHorizontalShinespark"
{
  "useFlashSuit": {}
}
{
  "or": [
    {
      "shinespark": {
        "frames": 58,
        "excessFrames": 21
      }
    },
    {
      "and": [
        "h_additionalBomb",
        "canDash",
        {
          "shinespark": {
            "frames": 30,
            "excessFrames": 27
          }
        }
      ]
    }
  ]
}

Clears obstacles: A, B

From: 1
Left Door
To: 1
Left Door

Requires:

{
  "resetRoom": {
    "nodes": [
      1
    ]
  }
}
{
  "or": [
    {
      "and": [
        "canDash",
        "ScrewAttack",
        "canDodgeWhileShooting",
        {
          "cycleFrames": 600
        }
      ]
    },
    {
      "and": [
        "canDash",
        "h_bombThings",
        "canTrickyDodgeEnemies",
        {
          "cycleFrames": 850
        }
      ]
    },
    {
      "and": [
        {
          "haveBlueSuit": {}
        },
        {
          "cycleFrames": 660
        }
      ]
    }
  ]
}

Resets obstacles: A

Farm cycle drops: 2 Waver

Dev note: There is a third Waver on the right side of the room, but generally it would not be worthwhile to cross the room for it.

From: 2
Right Door
To: 2
Right Door

Requires:

{
  "resetRoom": {
    "nodes": [
      2
    ]
  }
}
"canDodgeWhileShooting"
{
  "or": [
    {
      "and": [
        "canDash",
        "ScrewAttack",
        {
          "cycleFrames": 420
        }
      ]
    },
    {
      "and": [
        "canDash",
        "h_bombThings",
        "canTrickyDodgeEnemies",
        {
          "cycleFrames": 630
        }
      ]
    },
    {
      "and": [
        {
          "haveBlueSuit": {}
        },
        {
          "cycleFrames": 620
        }
      ]
    }
  ]
}

Resets obstacles: A

Farm cycle drops: 1 Waver

From: 4
Bottom Right Door
To: 2
Middle Right Door

FIXME: This could use a ledge grab tech to avoid the 4th pirate hit.

Requires:

"canDash"
"canUseIFrames"
"canTrickyJump"
{
  "enemyDamage": {
    "enemy": "Green Space Pirate (standing)",
    "type": "contact",
    "hits": 3
  }
}

Dev note: A shinespark could be used to kill the bottom two pirates.

From: 1
Left Door
To: 1
Left Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, back into the corner to use the full runway; it helps to use an arm pump to advance a single pixel while running. This can be done by holding an angle button before starting to move forward, then releasing angle while running.

Requires:

"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 45,
      "openEnd": 1
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $7.0. Using the full runway with a single-pixel arm pump, the momentum-conserving morph has a 4-frame window for the jump, and between a 3-frame and 5-frame window for the morph depending on the jump timing (with later jumps giving a bigger window for the morph); these windows will be more narrow if the ceiling in the next room extends past the door shell. The momentum-conserving turnaround requires a frame-perfect jump, with a 4-frame window for the turnaround, again possibly less depending on what is required in the next room. The aim-down method requires specific positioning to ensure Samus barely clears the door ledge with a frame-perfect jump.

From: 2
Right Door
To: 2
Right Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, back into the corner to use the full runway.

Requires:

"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 45,
      "openEnd": 1
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $7.0. The momentum-conserving morph has a 4-frame window for the jump, and between a 2-frame and 5-frame window for the morph depending on the jump timing (with later jumps giving a bigger window for the morph); these windows will be more narrow if the ceiling in the next room extends past the door shell. The momentum-conserving turnaround requires a frame-perfect jump, with a 4-frame window for the turnaround, again possibly less depending on what is required in the next room. The aim-down method requires specific positioning to ensure Samus barely clears the door ledge with a frame-perfect jump.

From: 1
Left Door
To: 1
Left Door

Requires:

{
  "or": [
    {
      "resetRoom": {
        "nodes": [
          1
        ]
      }
    },
    {
      "and": [
        {
          "resetRoom": {
            "nodes": [
              2
            ]
          }
        },
        {
          "cycleFrames": 60
        }
      ]
    }
  ]
}
{
  "or": [
    {
      "and": [
        {
          "or": [
            "Wave",
            "Spazer",
            "Plasma"
          ]
        },
        {
          "cycleFrames": 960
        }
      ]
    },
    {
      "cycleFrames": 1110
    }
  ]
}
{
  "or": [
    "canDash",
    {
      "cycleFrames": 400
    }
  ]
}

Farm cycle drops: 6 Geemer (blue), 3 Waver

From: 2
Right Door
To: 3
Item

Execution of this strat is non-trivial, and failing will lead to falling into the pit. Depending on item loadout, that could be a softlock.

Requires:

"canDisableEquipment"
"canCarefulJump"
{
  "or": [
    {
      "doorUnlockedAtNode": 2
    },
    "canTrickyJump",
    "canLateralMidAirMorph",
    "h_speedDash"
  ]
}

Collects items: 3

Dev note: Could use a failure definition?

From: 1
Bottom Left Door
To: 1
Bottom Left Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed between $5.2 and $5.4 and aiming down through the transition. For the first two methods, avoid backing into the corner; instead press against it and turn around, to put Samus into a better position. For the third method, use only the part of the runway in front of the Power Bomb blocks, or about a tile less.

Requires:

{
  "obstaclesCleared": [
    "C"
  ]
}
"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 42,
      "openEnd": 0
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $6.8. Using the full runway, the momentum-conserving morph has a 4-frame window for the jump, and between a 3-frame and 6-frame window for the morph depending on the jump timing (with later jumps giving a bigger window for the morph); The momentum-conserving turnaround has a 2-frame window for the jump, and either a 1-frame or 5-frame window for the turnaround depending on the jump (with the last-frame jump giving the larger window for the turnaround).

From: 1
Bottom Left Door
To: 1
Bottom Left Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping and aiming down through the transition. To maximize the lenience for the jump, back into the Power Bomb block corner, and while running perform a single-pixel arm pump (e.g. by firing a shot); this only matters in certain situations, but in all cases it won't hurt.

Requires:

"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 31,
      "openEnd": 0
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $5.4. The momentum-conserving morph has a 3-frame window for the jump, and between a 3-frame and 8-frame window for the morph depending on the jump timing (with later jumps giving a bigger window for the morph); these windows can be more narrow depending on what is required in the next room. The momentum-conserving turnaround has a 2-frame window for the jump: if jumping on the second-to-last possible frame, then there is a 4-frame window for the turnaround, while if jumping on the last frame, there is a 5-frame window for turning around before the transition or it can be buffered through the transition (or the turnaround could not be performed at all, to maintain forward and upward momentum by simply aiming down).

From: 1
Left Door
To: 1
Left Door

Requires:

{
  "obstaclesCleared": [
    "C"
  ]
}
"h_speedDash"
"canInsaneJump"
"canMomentumConservingMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 25,
      "openEnd": 0
    },
    "obstruction": [
      4,
      0
    ]
  }
}

Dev note: Max extra run speed $4.A. Using the full runway, this requires a last-frame jump, followed by a 2-frame window for the morph.

From: 1
Left Door
To: 2
Right Door

The only way the Wavers will get to the door is if the right crumble blocks are all broken. This assumes that Samus comes from the left with Speed, a mockball, or a crouch gate clip. After the crumbles are broken, shoot the ceiling block and wait by the door for the Waver to come. Note that if Samus takes more than 35 seconds after entering the room, before shooting the ceiling, the Waver will not come down.

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}
{
  "or": [
    "h_speedDash",
    "canMockball",
    {
      "and": [
        "canCrouchGateClip",
        {
          "or": [
            "canXRayTurnaround",
            "canMoonwalk"
          ]
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}
"h_speedDash"

Clears obstacles: A

From: 1
Top Left Door
To: 5
Junction The Left End of Morph Tube

Requires:

"h_speedDash"
"canTrickyJump"
"canLateralMidAirMorph"
"can4HighMidAirMorph"
From: 3
Bottom Right Door
To: 1
Top Left Door

Build up some run speed and then extend the Grapple Beam through the Blue Gate, while jumping, to open it from the wrong side.

Requires:

{
  "notable": "Grapple Gate Glitch"
}
"canPreciseGrapple"
"h_speedDash"
"canTrickyJump"

Clears obstacles: B

From: 3
Bottom Right Door
To: 3
Bottom Right Door

Open the gate (Wave Beam or gate glitch) and clear the Small Sidehoppers for a runway. Use respawning Geegas for energy.

Entrance condition:

{
  "comeInWithRMode": {}
}

Requires:

{
  "or": [
    "Wave",
    "h_blueGateGlitch",
    {
      "and": [
        {
          "notable": "Grapple Gate Glitch"
        },
        "canPreciseGrapple",
        "h_speedDash",
        "canTrickyJump"
      ]
    }
  ]
}
{
  "refill": [
    "Energy"
  ]
}
{
  "canShineCharge": {
    "usedTiles": 30,
    "openEnd": 0
  }
}
{
  "autoReserveTrigger": {}
}
"canRModeSparkInterrupt"

Clears obstacles: B

From: 2
Right Door
To: 2
Right Door

Requires:

"h_speedDash"
"canMomentumConservingMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 20,
      "openEnd": 0
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $3.F.

From: 2
Right Door
To: 1
Left Door

Use a Fireflea (or two) to quickly boost to the left, to be able to catch the Waver and boost off it on its first cycle, to cross the first gap. Take one or two more hits from the Wavers for i-frames; take the last hit close to the ground while holding forward. Then gain speed using Speed Booster to jump across the second gap. If the jump is slightly short, a wall jump can be used to get up.

Using the second Waver cycle leads to a bad pattern at the end, where the path of the speedy jump will be blocked by a Waver, which can still be avoided but only with great difficulty.

Requires:

"canHorizontalDamageBoost"
"canTrickyJump"
"canUseIFrames"
"h_speedDash"
{
  "or": [
    "canInsaneJump",
    {
      "and": [
        "canTrickyDodgeEnemies",
        {
          "enemyDamage": {
            "enemy": "Fireflea",
            "type": "contact",
            "hits": 1
          }
        }
      ]
    },
    {
      "enemyDamage": {
        "enemy": "Fireflea",
        "type": "contact",
        "hits": 2
      }
    }
  ]
}
{
  "or": [
    {
      "and": [
        "canInsaneJump",
        {
          "enemyDamage": {
            "enemy": "Waver",
            "type": "contact",
            "hits": 2
          }
        }
      ]
    },
    {
      "enemyDamage": {
        "enemy": "Waver",
        "type": "contact",
        "hits": 3
      }
    }
  ]
}
{
  "or": [
    "canWalljump",
    "canTrickyDodgeEnemies"
  ]
}

Dev note: FIXME: Patiently waiting for a different Waver cycle could be another way to avoid Fireflea damage. FIXME: gaining a shinecharge on the spikes (and hero shot sparking out the left door) is possible though extremely precise.

From: 1
Left Door
To: 1
Left Door

Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, avoid backing into the corner at the start of runway; instead press against it and turn around, to put Samus into a better position.

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    "canInsaneJump"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 45,
      "openEnd": 1
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $7.0. Using the full runway, there is a 4-frame window for the jump, then between a 1-frame and 4-frame window for the morph depending on the jump (with later jumps giving more frames for the morph). If there is a solid tile on the ceiling in the next room past the door frame, then the windows for the jump and morph are tighter. The momentum-conserving turnaround has a 3-frame window for the jump, and between a 1-frame or 4-frame for the turnaround (with later jumps giving a larger window for the turnaround); again the windows can be more narrow depending on what is required in the next room.

From: 2
Right Door
To: 2
Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"h_speedDash"
"canInsaneJump"
"canMomentumConservingMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 45,
      "openEnd": 1
    },
    "obstruction": [
      4,
      0
    ]
  }
}

Dev note: Max extra run speed $7.0. Press against the overhang left of the ceiling spikes, then perform 4 arm pumps to advance 8 pixels while running. There is a 2-frame window for the jump and a 2-frame window for the morph. These windows can be more narrow depending on what is required in the next room.

From: 1
Left Door
To: 1
Left Door

Requires:

{
  "or": [
    "f_DefeatedKraid",
    {
      "obstaclesCleared": [
        "f_DefeatedKraid"
      ]
    }
  ]
}
"h_speedDash"
"canInsaneJump"
"canMomentumConservingMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 24,
      "openEnd": 0
    },
    "obstruction": [
      4,
      0
    ]
  }
}

Dev note: Max extra run speed $4.4. Using the full runway, there is a 2-frame window for the jump, then a 1-frame or 2-frame window for the morph depending on the jump (with a last-frame jump giving a 2-frame morph window).

From: 2
Right Door
To: 2
Right Door

Requires:

{
  "or": [
    "f_DefeatedKraid",
    {
      "obstaclesCleared": [
        "f_DefeatedKraid"
      ]
    }
  ]
}
"h_speedDash"
"canInsaneJump"
"canMomentumConservingMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 24,
      "openEnd": 0
    },
    "obstruction": [
      4,
      0
    ]
  }
}

Dev note: Max extra run speed $4.4. Using the full runway, there is a 2-frame window for the jump, then a 1-frame or 2-frame window for the morph depending on the jump (with a last-frame jump giving a 2-frame morph window).

From: 1
Left Side - Top Door
To: 7
Top Right Door

King Cac can be killed by scrolling the camera before jumping across.

Requires:

"h_speedDash"
"canCarefulJump"
{
  "or": [
    {
      "doorUnlockedAtNode": 1
    },
    "canTrickyJump"
  ]
}
{
  "or": [
    "canCameraManip",
    {
      "and": [
        "canNeutralDamageBoost",
        {
          "enemyDamage": {
            "enemy": "Cacatac",
            "type": "contact",
            "hits": 1
          }
        }
      ]
    }
  ]
}
From: 4
Item
To: 3
Right Door

Requires:

"h_speedDash"
"canMomentumConservingMorph"
"canSpringFling"
{
  "heatFrames": 190
}
From: 1
Left Door
To: 1
Left Door

Requires:

"canDash"
{
  "resetRoom": {
    "nodes": [
      1
    ]
  }
}
"h_heatProof"
"Plasma"
{
  "or": [
    {
      "and": [
        "h_lavaProof",
        {
          "or": [
            {
              "and": [
                "Morph",
                {
                  "cycleFrames": 1170
                }
              ]
            },
            {
              "cycleFrames": 1500
            }
          ]
        }
      ]
    },
    {
      "and": [
        "SpaceJump",
        {
          "cycleFrames": 1440
        }
      ]
    },
    {
      "and": [
        "Grapple",
        {
          "cycleFrames": 1800
        }
      ]
    }
  ]
}

Farm cycle drops: 5 Sova, 4 Dragon

From: 1
Left Door
To: 1
Left Door

Partially cross the room until a Sova falls from the ceiling, follow it back and forth across the room. Alternatively, to save a lot of Energy, use a Super to knock off the first Sova after the one that falls, while it is on the right side of it's platform.

Requires:

{
  "or": [
    "canDash",
    {
      "heatFrames": 60
    }
  ]
}
{
  "heatFrames": 1500
}
{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "heatFrames": 2000
    }
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 1
Left Door
To: 1
Left Door

Requires:

"canDash"
"h_heatProof"
{
  "resetRoom": {
    "nodes": [
      1
    ]
  }
}
{
  "cycleFrames": 680
}
{
  "or": [
    "SpaceJump",
    {
      "cycleFrames": 40
    }
  ]
}
{
  "or": [
    "Wave",
    "Spazer",
    "Plasma",
    {
      "cycleFrames": 360
    }
  ]
}

Farm cycle drops: 4 Sova

From: 1
Left Door
To: 1
Left Door

Requires:

"canDash"
"h_heatProof"
"ScrewAttack"
{
  "or": [
    {
      "and": [
        {
          "resetRoom": {
            "nodes": [
              1
            ]
          }
        },
        {
          "cycleFrames": 340
        }
      ]
    },
    {
      "and": [
        {
          "resetRoom": {
            "nodes": [
              2
            ]
          }
        },
        {
          "cycleFrames": 900
        },
        {
          "or": [
            "SpaceJump",
            {
              "cycleFrames": 320
            }
          ]
        }
      ]
    }
  ]
}

Farm cycle drops: 2 Squeept

Dev note: With a blue suit, Screw Attack does not work against the Squeepts.

From: 1
Left Door
To: 2
Right Door

Cross the room while following the Sova that falls from the ceiling to the right door.

Requires:

{
  "or": [
    "canDash",
    {
      "heatFrames": 60
    }
  ]
}
{
  "heatFrames": 1390
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 1
Left Door
To: 2
Right Door

Requires:

"canDash"
{
  "or": [
    {
      "and": [
        "canTrickyJump",
        {
          "heatFrames": 540
        }
      ]
    },
    {
      "heatFrames": 660
    }
  ]
}
From: 1
Left Door
To: 2
Right Door

Entrance condition:

{
  "comeInNormally": {}
}

Requires:

"canDash"
"Morph"
{
  "enemyDamage": {
    "enemy": "Sova",
    "type": "contact",
    "hits": 1
  }
}
{
  "enemyDamage": {
    "enemy": "Dragon",
    "type": "contact",
    "hits": 1
  }
}
{
  "heatFrames": 480
}
From: 1
Left Door
To: 2
Right Door

Building run speed can speed up the room a noticable amount.

Requires:

"canDash"
"SpaceJump"
{
  "heatFrames": 460
}
From: 2
Right Door
To: 1
Left Door

Cross more than half way across the room until a Sova falls from the ceiling then follow it back and forth across the room. Alternatively, to save a lot of Energy, use a Super to knock off the Sova just before that, while it is on the right side of it's thin platform.

Requires:

{
  "or": [
    "canDash",
    {
      "heatFrames": 140
    }
  ]
}
{
  "heatFrames": 1780
}
{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "heatFrames": 2050
    }
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 2
Right Door
To: 1
Left Door

Build up run speed to travel farther when jumping.

Requires:

"canDash"
{
  "heatFrames": 540
}
{
  "or": [
    "canTrickyJump",
    {
      "heatFrames": 160
    }
  ]
}
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInNormally": {}
}

Requires:

"canDash"
"Gravity"
{
  "enemyDamage": {
    "enemy": "Dragon",
    "type": "contact",
    "hits": 1
  }
}
{
  "enemyDamage": {
    "enemy": "Sova",
    "type": "contact",
    "hits": 1
  }
}
{
  "heatFrames": 500
}
{
  "lavaFrames": 360
}
From: 2
Right Door
To: 1
Left Door

Requires:

"canDash"
"SpaceJump"
{
  "heatFrames": 450
}
From: 2
Right Door
To: 2
Right Door

Requires:

"canDash"
{
  "resetRoom": {
    "nodes": [
      2
    ]
  }
}
"h_heatProof"
"Plasma"
{
  "or": [
    {
      "and": [
        "h_lavaProof",
        {
          "or": [
            {
              "and": [
                "Morph",
                {
                  "cycleFrames": 930
                }
              ]
            },
            {
              "and": [
                "SpaceJump",
                {
                  "cycleFrames": 1100
                }
              ]
            },
            {
              "cycleFrames": 1290
            }
          ]
        }
      ]
    },
    {
      "and": [
        "SpaceJump",
        {
          "cycleFrames": 1230
        }
      ]
    },
    {
      "and": [
        "Grapple",
        {
          "cycleFrames": 1680
        }
      ]
    }
  ]
}

Farm cycle drops: 5 Sova, 4 Dragon

From: 2
Right Door
To: 2
Right Door

Cross more than half way across the room until a Sova falls from the ceiling. Alternatively, to save Energy, use a Super to knock off the second Sova from the right, while it is on the left side of it's platform.

Requires:

{
  "or": [
    "canDash",
    {
      "heatFrames": 140
    }
  ]
}
{
  "heatFrames": 1500
}
{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "heatFrames": 320
    }
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 2
Right Door
To: 2
Right Door

Requires:

"canDash"
"h_heatProof"
{
  "resetRoom": {
    "nodes": [
      2
    ]
  }
}
{
  "cycleFrames": 720
}
{
  "or": [
    "SpaceJump",
    {
      "cycleFrames": 30
    }
  ]
}
{
  "or": [
    "Wave",
    "Spazer",
    "Plasma",
    {
      "and": [
        "canFarmWhileShooting",
        {
          "cycleFrames": 30
        }
      ]
    }
  ]
}
{
  "or": [
    "canTrickyJump",
    {
      "cycleFrames": 60
    }
  ]
}

Farm cycle drops: 4 Sova

Dev note: Add canTrickyJump for catching the Sovas on their first cycles.

From: 1
Left Door
To: 1
Left Door

Requires:

"h_heatProof"
{
  "resetRoom": {
    "nodes": [
      1
    ]
  }
}
{
  "or": [
    "h_speedDash",
    {
      "cycleFrames": 225
    }
  ]
}
{
  "or": [
    {
      "and": [
        "Plasma",
        {
          "cycleFrames": 790
        }
      ]
    },
    {
      "and": [
        "Spazer",
        {
          "cycleFrames": 1020
        }
      ]
    },
    {
      "and": [
        "Wave",
        {
          "cycleFrames": 960
        }
      ]
    },
    {
      "and": [
        "Ice",
        {
          "cycleFrames": 930
        }
      ]
    },
    {
      "and": [
        "canPseudoScrew",
        {
          "cycleFrames": 930
        }
      ]
    },
    {
      "and": [
        "canDodgeWhileShooting",
        {
          "cycleFrames": 1350
        }
      ]
    }
  ]
}

Resets obstacles: A

Farm cycle drops: 3 Geruta

From: 1
Left Door
To: 2
Right Door

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}
"h_speedDash"
{
  "simpleHeatFrames": 310
}
{
  "heatFrames": 40
}

Clears obstacles: A

From: 1
Left Door
To: 2
Right Door

Shoot from the middle of the second set of crumble blocks from the left.

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}
"h_speedDash"
"canHeroShot"
{
  "simpleHeatFrames": 250
}
{
  "heatFrames": 40
}

Exit condition:

{
  "leaveWithRunway": {
    "length": 45,
    "openEnd": 1
  }
}

Unlocks doors:

{"types":["super"],"requires":[]}
{"types":["missiles","powerbomb"],"requires":["never"]}
From: 1
Left Door
To: 2
Right Door

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Requires:

{
  "or": [
    {
      "and": [
        {
          "simpleHeatFrames": 560
        },
        {
          "heatFrames": 60
        }
      ]
    },
    {
      "and": [
        "h_speedDash",
        {
          "simpleHeatFrames": 310
        },
        {
          "heatFrames": 40
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 1
Left Door
To: 2
Right Door

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Requires:

{
  "or": [
    {
      "and": [
        {
          "simpleHeatFrames": 560
        },
        {
          "heatFrames": 60
        }
      ]
    },
    {
      "and": [
        "h_speedDash",
        {
          "simpleHeatFrames": 310
        },
        {
          "heatFrames": 40
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 2
Right Door
To: 1
Left Door

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}
"h_speedDash"
{
  "simpleHeatFrames": 310
}
{
  "heatFrames": 40
}

Clears obstacles: A

From: 2
Right Door
To: 1
Left Door

Shoot while climbing the highest ramp for the shot to open the door.

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}
"h_speedDash"
"canHeroShot"
{
  "simpleHeatFrames": 250
}
{
  "heatFrames": 40
}

Exit condition:

{
  "leaveWithRunway": {
    "length": 45,
    "openEnd": 1
  }
}

Unlocks doors:

{"types":["super"],"requires":[]}
{"types":["missiles","powerbomb"],"requires":["never"]}
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Requires:

{
  "or": [
    {
      "heatFrames": 650
    },
    {
      "and": [
        "h_speedDash",
        {
          "heatFrames": 360
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Requires:

{
  "or": [
    {
      "heatFrames": 650
    },
    {
      "and": [
        "h_speedDash",
        {
          "heatFrames": 360
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 2
Right Door
To: 2
Right Door

Requires:

"h_heatProof"
{
  "resetRoom": {
    "nodes": [
      2
    ]
  }
}
{
  "or": [
    "h_speedDash",
    {
      "cycleFrames": 170
    }
  ]
}
{
  "or": [
    {
      "and": [
        "Plasma",
        {
          "cycleFrames": 790
        }
      ]
    },
    {
      "and": [
        "Spazer",
        {
          "cycleFrames": 1290
        }
      ]
    },
    {
      "and": [
        "Wave",
        {
          "cycleFrames": 1140
        }
      ]
    },
    {
      "and": [
        "Ice",
        {
          "cycleFrames": 1320
        }
      ]
    },
    {
      "and": [
        "ScrewAttack",
        {
          "cycleFrames": 1140
        }
      ]
    },
    {
      "and": [
        "canPseudoScrew",
        {
          "cycleFrames": 1200
        }
      ]
    },
    {
      "and": [
        "canDodgeWhileShooting",
        {
          "cycleFrames": 1500
        }
      ]
    }
  ]
}
{
  "or": [
    "canInsaneJump",
    {
      "and": [
        "canTrickyJump",
        "canWalljump",
        {
          "cycleFrames": 60
        }
      ]
    },
    {
      "and": [
        "h_lavaProof",
        {
          "cycleFrames": 180
        }
      ]
    }
  ]
}

Resets obstacles: A

Farm cycle drops: 3 Geruta

Dev note: FIXME: The rising lava event may make it impossible to reset at 2.

From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "indirect",
    "morphed": false
  }
}

Requires:

{
  "or": [
    "SpaceJump",
    {
      "and": [
        "HiJump",
        "canSpeedyJump",
        "canWalljump"
      ]
    },
    {
      "and": [
        "HiJump",
        "canSpringBallJumpMidAir"
      ]
    },
    {
      "and": [
        {
          "notable": "Spring Ball Bomb Boost"
        },
        "canSpringBallJumpMidAir",
        "canUnmorphBombBoost",
        "h_crouchJumpDownGrab",
        {
          "or": [
            "canInsaneJump",
            "h_additionalBomb"
          ]
        }
      ]
    },
    {
      "and": [
        "canHorizontalShinespark",
        {
          "canShineCharge": {
            "usedTiles": 15,
            "openEnd": 2
          }
        },
        {
          "shinespark": {
            "frames": 40,
            "excessFrames": 18
          }
        }
      ]
    },
    {
      "and": [
        {
          "notable": "Ceiling Mockball Spring Fling"
        },
        "h_speedDash",
        "canInsaneJump",
        "canMomentumConservingMorph",
        "canSpringFling"
      ]
    }
  ]
}
"h_heatedGModeOpenDifferentDoor"
From: 2
Right Door
To: 2
Right Door

Touch the item as little as possible in order to prevent PLMs from being overloaded, so the platforms below remain solid.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "direct",
    "morphed": false
  }
}

Requires:

"canComplexGMode"
{
  "or": [
    "SpaceJump",
    {
      "and": [
        "HiJump",
        "canSpeedyJump",
        "canWalljump"
      ]
    },
    {
      "and": [
        "HiJump",
        "canSpringBallJumpMidAir"
      ]
    },
    {
      "and": [
        {
          "notable": "Spring Ball Bomb Boost"
        },
        "canSpringBallJumpMidAir",
        "canUnmorphBombBoost",
        "h_crouchJumpDownGrab",
        "canInsaneJump"
      ]
    },
    {
      "and": [
        "canHorizontalShinespark",
        {
          "canShineCharge": {
            "usedTiles": 15,
            "openEnd": 2
          }
        },
        {
          "shinespark": {
            "frames": 40,
            "excessFrames": 18
          }
        }
      ]
    },
    {
      "and": [
        {
          "notable": "Ceiling Mockball Spring Fling"
        },
        "h_speedDash",
        "canInsaneJump",
        "canMomentumConservingMorph",
        "canSpringFling"
      ]
    }
  ]
}
"h_heatedDirectGModeLeaveSameDoor"

Collects items: 3

Dev note: There is no leniency option for using an extra Power Bomb, because it will contribute to PLM overload. (2 PBs is technically barely possible) FIXME: A variant with shinesparking can be added. (It would require energy free sparks)

From: 2
Right Door
To: 3
Item

Position at the end of the runway (or up to 4 pixels away) at the top-right of the room, gain run speed, perform a last-frame jump and ceiling mockball, then equip or unequip Spring Ball in order to reset Samus' vertical speed and just barely make it onto the ledge with the item.

Requires:

{
  "notable": "Ceiling Mockball Spring Fling"
}
"h_speedDash"
"canInsaneJump"
{
  "heatFrames": 500
}
"canMomentumConservingMorph"
"canSpringFling"
{
  "or": [
    "h_heatProof",
    "canBeVeryPatient"
  ]
}
From: 2
Right Door
To: 3
Item

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "indirect",
    "morphed": false
  }
}

Requires:

"h_heatedGMode"
{
  "or": [
    "SpaceJump",
    {
      "and": [
        "HiJump",
        "canSpeedyJump",
        "canWalljump"
      ]
    },
    {
      "and": [
        "HiJump",
        "canSpringBallJumpMidAir"
      ]
    },
    {
      "and": [
        {
          "notable": "Spring Ball Bomb Boost"
        },
        "canSpringBallJumpMidAir",
        "canUnmorphBombBoost",
        "h_crouchJumpDownGrab",
        {
          "or": [
            "canInsaneJump",
            "h_additionalBomb"
          ]
        }
      ]
    },
    {
      "and": [
        "canHorizontalShinespark",
        {
          "canShineCharge": {
            "usedTiles": 15,
            "openEnd": 2
          }
        },
        {
          "shinespark": {
            "frames": 40,
            "excessFrames": 18
          }
        }
      ]
    },
    {
      "and": [
        {
          "notable": "Ceiling Mockball Spring Fling"
        },
        "h_speedDash",
        "canInsaneJump",
        "canMomentumConservingMorph",
        "canSpringFling"
      ]
    }
  ]
}
{
  "heatFrames": 90
}

Clears obstacles: A

Dev note: Goes to 3 because opening the gate mostly only makes sense when going back to the right for a longer runway or obtaining the item. FIXME: Variants with shinesparking or Geruta damage boost can be added. (Energy from immobile, CF, or energy free sparks)

From: 2
Right Door
To: 3
Item

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Requires:

"h_heatedGMode"
{
  "or": [
    "SpaceJump",
    {
      "and": [
        "HiJump",
        "canSpeedyJump",
        "canWalljump"
      ]
    },
    {
      "and": [
        "HiJump",
        "canSpringBallJumpMidAir"
      ]
    },
    {
      "and": [
        {
          "notable": "Spring Ball Bomb Boost"
        },
        "canSpringBallJumpMidAir",
        "canUnmorphBombBoost",
        "h_crouchJumpDownGrab",
        {
          "or": [
            "canInsaneJump",
            "h_additionalBomb"
          ]
        }
      ]
    },
    {
      "and": [
        "canHorizontalShinespark",
        {
          "canShineCharge": {
            "usedTiles": 15,
            "openEnd": 2
          }
        },
        {
          "shinespark": {
            "frames": 40,
            "excessFrames": 18
          }
        }
      ]
    },
    {
      "and": [
        {
          "notable": "Ceiling Mockball Spring Fling"
        },
        "h_speedDash",
        "canInsaneJump",
        "canMomentumConservingMorph",
        "canSpringFling"
      ]
    }
  ]
}
{
  "heatFrames": 0
}

Dev note: FIXME: Variants with Geruta damage boost can be added. (Energy from immobile or CF)

From: 2
Far Left Door
To: 2
Far Left Door

Requires:

"h_heatProof"
"h_speedDash"
{
  "resetRoom": {
    "nodes": [
      2
    ]
  }
}
{
  "cycleFrames": 350
}
{
  "simpleCycleFrames": 800
}
{
  "or": [
    "Plasma",
    {
      "and": [
        "Wave",
        {
          "cycleFrames": 30
        }
      ]
    },
    {
      "and": [
        "Spazer",
        {
          "cycleFrames": 30
        }
      ]
    },
    {
      "and": [
        "Grapple",
        {
          "cycleFrames": 45
        }
      ]
    },
    {
      "cycleFrames": 120
    }
  ]
}

Clears obstacles: A

Farm cycle drops: 2 Cacatac

Dev note: Some frames added to account for spike RNG.

From: 2
Far Left Door
To: 2
Far Left Door

Lure the second Multiviola to the left door. The first one will require more time and heat damage.

Requires:

{
  "heatFrames": 600
}
{
  "or": [
    "h_speedDash",
    {
      "heatFrames": 65
    }
  ]
}
{
  "or": [
    "h_speedDash",
    "Plasma",
    "ScrewAttack",
    {
      "ammo": {
        "type": "Missile",
        "count": 2
      }
    },
    {
      "ammo": {
        "type": "Super",
        "count": 2
      }
    },
    {
      "and": [
        "Ice",
        "Wave",
        "Spazer"
      ]
    },
    {
      "and": [
        "canDodgeWhileShooting",
        {
          "or": [
            {
              "and": [
                "Ice",
                "Wave"
              ]
            },
            {
              "and": [
                "Ice",
                "Spazer"
              ]
            },
            {
              "and": [
                "Wave",
                "Spazer"
              ]
            }
          ]
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 2
Far Left Door
To: 2
Far Left Door

Drops do not linger long enough to kill every single Pirate.

Requires:

"h_heatProof"
{
  "resetRoom": {
    "nodes": [
      2
    ]
  }
}
{
  "cycleFrames": 60
}
{
  "simpleCycleFrames": 560
}
"h_speedDash"

Resets obstacles: A

Farm cycle drops: 1 Multiviola, 4 Red Space Pirate (standing)

From: 7
G-Mode Morph, Bottom Right (Started at Right)
To: 2
Far Left Door

The crumble bridge will be air. Either tank a spike hit, carefully Space Jump over it, or with SpeedBooster, use the full runway to run over the pit. Note that there is a slight incline just before the bridge, which can be used as an indicator for where to Space Jump.

Requires:

{
  "or": [
    {
      "and": [
        "canTrickyJump",
        "SpaceJump"
      ]
    },
    "h_speedDash",
    {
      "spikeHits": 1
    }
  ]
}
"h_heatedGModeOffCameraDoor"

Exit condition:

{
  "leaveNormally": {}
}

Unlocks doors:

{"types":["missiles"],"requires":[{"heatFrames":50}]}
{"types":["super"],"requires":[]}
{"types":["powerbomb"],"requires":[{"heatFrames":110}]}

Dev note: Requires leaving the room, as Samus is off camera and shouldn't be expected to do more in-room.

From: 4
Right Door
To: 2
Middle Left Door

Avoid the first two magic frames by briefly releasing dash, to avoid gaining blue speed until after Samus has run over the bomb blocks. Fire a shot while running, to open the door and run through.

Entrance condition:

{
  "comeInNormally": {}
}

Requires:

{
  "notable": "Anti-Short Charge Hero Shot"
}
"h_speedDash"
"canHeroShot"

Exit condition:

{
  "leaveWithRunway": {
    "length": 45,
    "openEnd": 1,
    "minExtraRunSpeed": "$5.9"
  }
}

Unlocks doors:

{"types":["super"],"requires":[]}
{"types":["missiles","powerbomb"],"requires":["never"]}
From: 4
Right Door
To: 2
Middle Left Door

Entrance condition:

{
  "comeInNormally": {}
}

Requires:

"h_speedDash"
From: 4
Right Door
To: 2
Middle Left Door

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Requires:

"h_speedDash"

Exit condition:

{
  "leaveWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 4
Right Door
To: 2
Middle Left Door

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Requires:

"h_speedDash"

Exit condition:

{
  "leaveWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Unlocks doors:

{"types":["missiles","super"],"requires":[]}
{"types":["powerbomb"],"requires":["never"]}
From: 4
Right Door
To: 4
Right Door

Requires:

{
  "resetRoom": {
    "nodes": [
      4
    ]
  }
}
"h_useMorphBombs"
{
  "cycleFrames": 630
}
{
  "or": [
    "h_speedDash",
    {
      "and": [
        "canMockball",
        {
          "cycleFrames": 50
        }
      ]
    }
  ]
}
{
  "or": [
    "ScrewAttack",
    {
      "and": [
        {
          "or": [
            "canMidAirMorph",
            "SpringBall"
          ]
        },
        {
          "cycleFrames": 120
        }
      ]
    }
  ]
}

Clears obstacles: A, B

Resets obstacles: C, D

Farm cycle drops: 1 Sova

From: 4
Right Door
To: 7
Junction Below Power Bomb Blocks

Run under the gates with Speed Booster but do not break the Bomb Blocks. Moonfall twice to clip through the Power Bomb blocks.

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 2
  }
}

Requires:

"h_speedDash"
"canMoonfall"
From: 8
Right of Left Shutter, Raised Right Shutter
To: 4
Right Door

Requires:

{
  "or": [
    "canDash",
    "Morph"
  ]
}
From: 8
Right of Left Shutter, Raised Right Shutter
To: 4
Right Door

Requires:

"canDash"
"canHeroShot"

Exit condition:

{
  "leaveWithRunway": {
    "length": 45,
    "openEnd": 1
  }
}

Unlocks doors:

{"types":["super"],"requires":[]}
{"types":["missiles","powerbomb"],"requires":["never"]}
From: 1
Left Door
To: 2
Right Door

Use the full runway in order to get a good jump.

Requires:

"canMidAirMorph"
"h_speedDash"
"canCarefulJump"
{
  "heatFrames": 275
}
From: 4
Central Junction
To: 3
Item

With a precise enough jump and a quick airball, it's possible to avoid acid damage without a shinespark or wall jump.

Requires:

{
  "or": [
    "f_DefeatedCrocomire",
    {
      "obstaclesCleared": [
        "f_DefeatedCrocomire"
      ]
    }
  ]
}
"h_speedDash"
"canInsaneJump"
"canLateralMidAirMorph"
From: 4
Central Junction
To: 3
Item

With a precise enough jump, it's possible to avoid acid damage without a shinespark.

Requires:

{
  "or": [
    "f_DefeatedCrocomire",
    {
      "obstaclesCleared": [
        "f_DefeatedCrocomire"
      ]
    }
  ]
}
"h_speedDash"
"canTrickyJump"
"canWalljump"
From: 4
Central Junction
To: 3
Item

Jump and spark horizontally, or with a big speedy jump, spark diagonally to the item.

Requires:

{
  "useFlashSuit": {}
}
{
  "or": [
    {
      "and": [
        "canDash",
        {
          "shinespark": {
            "frames": 31,
            "excessFrames": 7
          }
        }
      ]
    },
    {
      "and": [
        "h_speedDash",
        {
          "shinespark": {
            "frames": 6,
            "excessFrames": 4
          }
        }
      ]
    }
  ]
}
From: 4
Center Platform Junction
To: 3
Junction Left of Green Gate

Requires:

"canCarefulJump"
"canLateralMidAirMorph"
"canSpringFling"
"h_speedDash"
From: 4
Center Platform Junction
To: 3
Junction Left of Green Gate

Run and jump at the very edge of the center platform. Wait for the water level to begin lowering to walljump on the far edge. An airball may be a little easier.

Requires:

"canTrickyJump"
{
  "or": [
    "canLateralMidAirMorph",
    "canInsaneWalljump",
    {
      "and": [
        "h_speedDash",
        "canPreciseWalljump"
      ]
    }
  ]
}
From: 2
Right Vertical Door
To: 1
Left Door

Requires:

{
  "or": [
    {
      "and": [
        "canSpeedyJump",
        "canCarefulJump"
      ]
    },
    {
      "and": [
        "h_speedDash",
        "HiJump"
      ]
    }
  ]
}
{
  "obstaclesCleared": [
    "A",
    "B"
  ]
}

Dev note: With HiJump we don't require canSpeedyJump tech here because the jump is 'trivial': it is intended in the vanilla game, telegraphed by the ramp, and is very lenient.

From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        "h_speedDash",
        {
          "heatFrames": 265
        },
        {
          "acidFrames": 112
        }
      ]
    },
    {
      "and": [
        {
          "heatFrames": 300
        },
        {
          "acidFrames": 145
        }
      ]
    }
  ]
}
"Gravity"
"canSuitlessLavaDive"
From: 1
Left Door
To: 1
Left Door

Requires:

{
  "not": "f_DefeatedPhantoon"
}
"h_speedDash"
"canInsaneJump"
"canMomentumConservingMorph"
"canInsaneMidAirMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 45,
      "openEnd": 1
    },
    "obstruction": [
      5,
      0
    ]
  }
}

Dev note: Max extra run speed $7.0. The obstruction (from the Workrobot) actually extends between 4 and 5 tiles.

From: 1
Left Door
To: 1
Left Door

Requires:

"f_DefeatedPhantoon"
"h_speedDash"
{
  "or": [
    "canMomentumConservingMorph",
    {
      "and": [
        "canMomentumConservingTurnaround",
        "canInsaneJump"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 45,
      "openEnd": 1
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $7.0.

From: 3
Right Door
To: 3
Right Door

Requires:

"h_speedDash"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 5,
      "openEnd": 0
    },
    "obstruction": [
      4,
      2
    ]
  }
}

Dev note: Max extra run speed $1.3. This strat is included for completeness, though it apparently doesn't have any applications.

From: 2
Middle Left Door
To: 6
Bowling Chozo Statue

A bit easier than 2-hit bowling

Requires:

"canUseIFrames"
"h_speedDash"
{
  "spikeHits": 2
}
From: 2
Middle Left Door
To: 7
Bowling In G-Mode

Ride the statue, which will not take Samus down, and will instead drop her off in the spike pit somewhat near the door.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Requires:

"canComplexGMode"
"f_DefeatedPhantoon"
"Morph"
{
  "or": [
    "SpaceJump",
    {
      "and": [
        "canUseIFrames",
        {
          "spikeHits": 2
        },
        {
          "or": [
            "canHorizontalDamageBoost",
            "canInsaneJump",
            "h_speedDash",
            {
              "spikeHits": 1
            }
          ]
        }
      ]
    }
  ]
}
From: 2
Middle Left Door
To: 7
Bowling In G-Mode

Crystal Flash then pause abuse to cross the spikeway with minimal Energy loss. Ride the statue, which will not take Samus down, and will instead drop her off in the spike pit somewhat near the door.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Requires:

"canComplexGMode"
"f_DefeatedPhantoon"
"h_CrystalFlash"
{
  "or": [
    "SpaceJump",
    {
      "and": [
        "canUseIFrames",
        "h_pauseAbuseMinimalReserveRefill",
        "h_pauseAbuseMinimalReserveRefill",
        "h_pauseAbuseMinimalReserveRefill"
      ]
    },
    {
      "and": [
        "canUseIFrames",
        "h_speedDash",
        "h_pauseAbuseMinimalReserveRefill",
        "h_pauseAbuseMinimalReserveRefill"
      ]
    }
  ]
}
From: 2
Bottom Right Door
To: 2
Bottom Right Door

Requires:

"Gravity"
"h_speedDash"
"canInsaneJump"
"canMomentumConservingMorph"
"canInsaneMidAirMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 17,
      "openEnd": 0,
      "steepDownTiles": 2,
      "startingDownTiles": 1
    },
    "obstruction": [
      4,
      0
    ]
  }
}

Dev note: Max extra run speed $3.9. This strat is included for completeness, though it apparently doesn't have any applications.

From: 2
Bottom Left Door
To: 1
Middle Left Door

Use double spring ball jumps to reach the top-right of the room with temporary blue. To cross the two gaps at the top of the room to the left while chaining temporary blue, use spring ball jumps with HiJump disabled; in each case, perform a stationary lateral mid-air morph or a spring fling (or both);

Entrance condition:

{
  "comeInRunning": {
    "speedBooster": true,
    "minTiles": 0.4375
  }
}

Requires:

"h_waterGetBlueSpeed"
"HiJump"
"canLongChainTemporaryBlue"
"canBeExtremelyPatient"
"canXRayTurnaround"
"canDoubleSpringBallJumpMidAir"
"canTrickySpringBallJump"
{
  "or": [
    "canStationaryLateralMidAirMorph",
    "canSpringFling"
  ]
}
"can4HighMidAirMorph"
From: 2
Bottom Left Door
To: 7
Top Right Left Item

Use a double spring ball jump to reach the Speed blocks below the items while chaining temporary blue. Perform a spring ball jump and immediately unmorph and continue holding up, to break some of the Speed blocks while passing up through them. Leave one of the bottom Speed blocks unbroken to use as a platform. The top speed blocks will respawn; clip through them either using a snail clip with X-Ray or a Crystal Flash clip; In the case of a Crystal Flash clip, menu to Grapple before the Crystal Flash ends and mash shoot while holding down.

Entrance condition:

{
  "comeInRunning": {
    "speedBooster": true,
    "minTiles": 0.4375
  }
}

Requires:

{
  "notable": "Suitless Temporary Blue To Items"
}
"canSuitlessMaridia"
"h_waterGetBlueSpeed"
"h_doubleSpringBallJumpWithHiJump"
"canChainTemporaryBlue"
{
  "or": [
    "canXRayCeilingClip",
    {
      "and": [
        "h_jumpIntoCrystalFlashClip",
        "Grapple"
      ]
    }
  ]
}
From: 5
Right Door
To: 1
Middle Left Door

Gain blue speed by running right-to-left on the 20-tile runway below the items. Then use Space Jump to carry it across the top of the room to break the bomb blocks. To cross the room most easily, blue speed can be gained with low momentum by pressing pause, running a few tiles, stuttering just before the pause hits, disabling Gravity suit, continuing to run left, then re-enabling Gravity suit before jumping. Alternatively, a regular shortcharge can be used in combination with either HiJump or a precise amount of extra run speed ($2.0 or $2.1), to cross the room at higher speed.

Requires:

{
  "notable": "Blue Space Jump"
}
"Gravity"
"canPreciseSpaceJump"
{
  "or": [
    {
      "and": [
        "canDisableEquipment",
        "h_stutterWaterGetBlueSpeed"
      ]
    },
    {
      "and": [
        {
          "getBlueSpeed": {
            "usedTiles": 20,
            "openEnd": 2
          }
        },
        {
          "or": [
            "HiJump",
            "canTrickyDashJump"
          ]
        }
      ]
    }
  ]
}
From: 1
Left Door
To: 1
Left Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"Gravity"
"h_speedDash"
"canInsaneJump"
{
  "or": [
    {
      "and": [
        "canMomentumConservingMorph",
        "canInsaneMidAirMorph"
      ]
    },
    "canMomentumConservingTurnaround"
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 1,
    "runway": {
      "length": 36,
      "openEnd": 1,
      "gentleUpTiles": 2
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $6.3.

From: 4
Right Door
To: 7
Right of Sand with Blue Speed

Entrance condition:

{
  "comeInGettingBlueSpeed": {
    "length": 6,
    "openEnd": 1
  }
}

Requires:

"h_waterGetBlueSpeed"

Dev note: This is just a rough estimate of the minimum number of tiles that this runway can represent. It is designed for a skill level that won't be able to use canStutterWaterShineCharge.

From: 1
Left Door
To: 1
Left Door

It is best to start 4 or 5 pixels from the end of the runway; equivalently, start at the end of the runway and use arm pumps to advance 4 or 5 pixels while running.

Requires:

"h_speedDash"
{
  "or": [
    "canMetroidAvoid",
    "Ice",
    {
      "or": [
        "f_KilledMetroidRoom1",
        {
          "obstaclesCleared": [
            "f_KilledMetroidRoom1"
          ]
        }
      ]
    }
  ]
}
{
  "or": [
    "canMomentumConservingMorph",
    {
      "and": [
        "canMomentumConservingTurnaround",
        "canInsaneJump"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 31,
      "openEnd": 1
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $5.7.

From: 2
Right Door
To: 1
Left Door

Requires:

"h_speedDash"
"canCarefulJump"
{
  "or": [
    "canPreciseWalljump",
    "canTrickyJump"
  ]
}
{
  "or": [
    {
      "or": [
        "f_KilledMetroidRoom1",
        {
          "obstaclesCleared": [
            "f_KilledMetroidRoom1"
          ]
        }
      ]
    },
    "Ice",
    "canMetroidAvoid",
    {
      "metroidFrames": 200
    }
  ]
}
{
  "or": [
    "canTrickyJump",
    {
      "acidFrames": 27
    },
    {
      "and": [
        {
          "acidFrames": 16
        },
        "canPreciseWalljump"
      ]
    },
    {
      "and": [
        {
          "acidFrames": 16
        },
        "Gravity"
      ]
    }
  ]
}
From: 2
Right Door
To: 2
Right Door

Requires:

"h_speedDash"
{
  "or": [
    "canMetroidAvoid",
    {
      "or": [
        "f_KilledMetroidRoom1",
        {
          "obstaclesCleared": [
            "f_KilledMetroidRoom1"
          ]
        }
      ]
    }
  ]
}
{
  "or": [
    "canMomentumConservingMorph",
    {
      "and": [
        "canMomentumConservingTurnaround",
        "canInsaneJump"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 2,
    "runway": {
      "length": 23,
      "openEnd": 1
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $4.7. Using almost the full runway (between 3 and 6 pixels from the edge), the momentum conserving turnaround has a 2-frame window for the jump, and a 1-frame or 3-frame window for the turnaround, depending on the jump (with a last-frame jump giving the larger window).

From: 2
Bottom Right Door
To: 2
Bottom Right Door

Requires:

"h_speedDash"
{
  "or": [
    "canMetroidAvoid",
    {
      "or": [
        "f_KilledMetroidRoom2",
        {
          "obstaclesCleared": [
            "f_KilledMetroidRoom2"
          ]
        }
      ]
    }
  ]
}
"canInsaneJump"
"canMomentumConservingMorph"

Exit condition:

{
  "leaveWithSidePlatform": {
    "height": 3,
    "runway": {
      "length": 11,
      "openEnd": 0
    },
    "obstruction": [
      3,
      0
    ]
  }
}

Dev note: Max extra run speed $2.6 This strat is included for completeness, though it apparently doesn't have any applications.