Caterpillar Room

Room ID: 75

Wiki
Difficulty filter

From: 1
Top Left Door
To: 1
Top Left Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 5,
    "openEnd": 1
  }
}
From: 1
Top Left Door
To: 1
Top Left Door

Use the frozen Zero as a platform or other means to get up to the top half of the room. This takes about 3 minutes. The Zero only moves on camera and the camera scrolls when exiting the morph tunnel. Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit.

Requires:

"canBeVeryPatient"
"h_canFrozenEnemyRunway"
"Morph"

Exit condition:

{
  "leaveWithRunway": {
    "length": 6,
    "openEnd": 1
  }
}
From: 1
Top Left Door
To: 1
Top Left Door

Slow rolling or getting a fast mockball work equally well.

Requires:

{
  "canShineCharge": {
    "usedTiles": 17,
    "openEnd": 0
  }
}
"canShinechargeMovementTricky"
"Morph"
{
  "obstaclesCleared": [
    "A"
  ]
}
{
  "shinespark": {
    "frames": 22
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 1
Top Left Door
To: 1
Top Left Door

It takes around 3 minutes to get the Zero to this door. The Zero only moves on camera and the camera scrolls when exiting the morph tunnel. Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit.

Requires:

"canBeVeryPatient"
"Morph"
{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canTrickyUseFrozenEnemies",
    "canSpringBallJumpMidAir"
  ]
}

Exit condition:

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

It takes around 3 minutes to get the Zero to this door. Let the Zero climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform. The Zero only moves on camera and the camera scrolls when exiting the morph tunnel. Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit.

Requires:

"canBeVeryPatient"
"Morph"
"canNeutralDamageBoost"
"canTrickyJump"
"h_canCrouchJumpDownGrab"
{
  "enemyDamage": {
    "enemy": "Zero",
    "type": "contact",
    "hits": 1
  }
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 1
Top Left Door
To: 2
Middle Left Door

Entrance condition:

{
  "comeInShinecharging": {
    "length": 4,
    "openEnd": 1
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 35
  }
}
From: 1
Top Left Door
To: 2
Middle Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 160
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 1
Top Left Door
To: 4
Bottom Right Door

From: 1
Top Left Door
To: 4
Bottom Right Door

Entrance condition:

{
  "comeInShinecharging": {
    "length": 4,
    "openEnd": 1
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 80
  }
}
From: 1
Top Left Door
To: 4
Bottom Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 115
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 1
Top Left Door
To: 5
Top Right Door (Through Morph Tunnel)

Only doable if entering the room from 5 and backtracking. Only worthwhile to go kill the Zeros for PBs and Cacatacs for Supers.

Requires:

"Morph"
{
  "obstaclesCleared": [
    "A"
  ]
}
From: 1
Top Left Door
To: 5
Top Right Door (Through Morph Tunnel)

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphMovement",
    {
      "and": [
        "h_canArtificialMorphBombThings",
        "h_additionalBomb"
      ]
    }
  ]
}
From: 1
Top Left Door
To: 6
Elevator

From: 1
Top Left Door
To: 6
Elevator

Entrance condition:

{
  "comeInShinecharging": {
    "length": 4,
    "openEnd": 0
  }
}

Requires:

"HiJump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 80
  }
}
From: 1
Top Left Door
To: 6
Elevator

Entrance condition:

{
  "comeInShinecharging": {
    "length": 4,
    "openEnd": 0
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 60
  }
}
From: 1
Top Left Door
To: 6
Elevator

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 85
  }
}

Requires:

"HiJump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 1
Top Left Door
To: 6
Elevator

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 105
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 1
Top Left Door
To: 6
Elevator

Entrance condition:

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

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 2
Middle Left Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 160
  }
}

Requires:

"HiJump"
"canShinechargeMovementTricky"
{
  "shinespark": {
    "frames": 11
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 2
Middle Left Door
To: 2
Middle Left Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 4,
    "openEnd": 1
  }
}
From: 2
Middle Left Door
To: 2
Middle Left Door

Runway not usable if the shot blocks are broken. Those blocks are not an obstacle right now, but there's no need to destroy them except when travelling between nodes 2 and 3.

Requires:

{
  "obstaclesNotCleared": [
    "B"
  ]
}

Exit condition:

{
  "leaveWithRunway": {
    "length": 9,
    "openEnd": 0
  }
}
From: 2
Middle Left Door
To: 2
Middle Left Door

Use the frozen Zero as a platform or other means to get up to the top half of the room. This takes about 4 minutes, but fortunately isn't often necessary. The Zero only moves on camera and the camera scrolls when exiting the morph tunnel. Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit.

Requires:

"canBeVeryPatient"
"h_canFrozenEnemyRunway"
"Morph"

Exit condition:

{
  "leaveWithRunway": {
    "length": 5,
    "openEnd": 1
  }
}
From: 2
Middle Left Door
To: 2
Middle Left Door

Requires:

"h_canCrystalFlash"
From: 2
Middle Left Door
To: 2
Middle Left Door

It takes around 4 minutes to get the Zero to this door. The Zero only moves on camera and the camera scrolls when exiting the morph tunnel. Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit.

Requires:

"canBeVeryPatient"
"Morph"
{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canTrickyUseFrozenEnemies",
    "canSpringBallJumpMidAir"
  ]
}

Exit condition:

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

It takes around 4 minutes to get the Zero to this door. Let the Zero climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform. The Zero only moves on camera and the camera scrolls when exiting the morph tunnel. Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit.

Requires:

"canBeVeryPatient"
"Morph"
"canNeutralDamageBoost"
"canTrickyJump"
"h_canCrouchJumpDownGrab"
{
  "enemyDamage": {
    "enemy": "Zero",
    "type": "contact",
    "hits": 1
  }
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 2
Middle Left Door
To: 3
Bottom Left Door

Clears obstacles: B

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

Requires:

{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canSpringBallJumpMidAir"
  ]
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Let the Caterpillar out and freeze it as a platform.

Requires:

"canTrickyUseFrozenEnemies"
From: 2
Middle Left Door
To: 4
Bottom Right Door

Let the Caterpillar climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform.

Requires:

"Morph"
"canNeutralDamageBoost"
"canTrickyJump"
"canCrouchJump"
{
  "enemyDamage": {
    "enemy": "Zero",
    "type": "contact",
    "hits": 1
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Carefully kill the Cacatac, then it is possible to get up with just Speed Booster. With Samus's back against the door, jump just before hitting the right wall. This is not easier with the door open.

Requires:

"canTrickyDashJump"
{
  "obstaclesNotCleared": [
    "B"
  ]
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 7,
    "openEnd": 0
  }
}

Requires:

"HiJump"
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 80
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 7,
    "openEnd": 0
  }
}

Requires:

"canWalljump"
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 45
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 110
  }
}

Requires:

"HiJump"
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 145
  }
}

Requires:

"canWalljump"
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Diagonal shinespark on entry, or move to the right a bit first to save some Energy.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 1
  }
}

Requires:

{
  "shinespark": {
    "frames": 32,
    "excessFrames": 21
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

At this speed, sometimes Samus will still not jump high enough, but she should be able to get up most of the time.

Entrance condition:

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

Requires:

"canCarefulJump"
{
  "enemyDamage": {
    "enemy": "Cacatac",
    "type": "contact",
    "hits": 1
  }
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 90
  }
}

Requires:

"HiJump"
"canShinechargeMovementComplex"
{
  "shinespark": {
    "frames": 4
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you. If the shinespark wind-up is activated as early as possible, then a Cacatac spike hit will be taken.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 120
  }
}

Requires:

"canWalljump"
"canShinechargeMovementTricky"
{
  "enemyDamage": {
    "enemy": "Cacatac",
    "type": "spike",
    "hits": 1
  }
}
{
  "shinespark": {
    "frames": 6
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 2
Middle Left Door
To: 4
Bottom Right Door

Entrance condition:

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

Requires:

"h_canArtificialMorphIBJ"
From: 2
Middle Left Door
To: 5
Top Right Door (Through Morph Tunnel)

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    {
      "and": [
        "h_canArtificialMorphSpringBallBombJump",
        "h_additionalBomb"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        "HiJump"
      ]
    },
    {
      "and": [
        "Morph",
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canSpringBallJumpMidAir",
            {
              "and": [
                "canTrickyDashJump",
                "h_canCrouchJumpDownGrab"
              ]
            }
          ]
        }
      ]
    }
  ]
}
From: 2
Middle Left Door
To: 6
Elevator

Entrance condition:

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

Requires:

{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canSpringBallJumpMidAir",
    {
      "and": [
        "canTrickyDashJump",
        "h_canCrouchJumpDownGrab"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 2
Middle Left Door
To: 6
Elevator

Entrance condition:

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

Requires:

"h_canArtificialMorphIBJ"

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 3
Bottom Left Door
To: 2
Middle Left Door

Clears obstacles: B

From: 3
Bottom Left Door
To: 3
Bottom Left Door

Requires:

{
  "resetRoom": {
    "nodes": [
      3
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "PowerBomb"
  ]
}
From: 3
Bottom Left Door
To: 3
Bottom Left Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 4,
    "openEnd": 0
  }
}
From: 3
Bottom Left Door
To: 3
Bottom Left Door

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Requires:

{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly"
  ]
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Let the Caterpillar out and freeze it as a platform.

Requires:

"canTrickyUseFrozenEnemies"
From: 4
Bottom Right Door
To: 1
Top Left Door

Requires:

"h_canCrouchJumpDownGrab"
From: 4
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharging": {
    "length": 2,
    "openEnd": 0
  }
}

Requires:

"HiJump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 60
  }
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharging": {
    "length": 2,
    "openEnd": 0
  }
}

Requires:

"canWalljump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 25
  }
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 110
  }
}

Requires:

"HiJump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 155
  }
}

Requires:

"canWalljump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 85
  }
}

Requires:

"HiJump"
"canShinechargeMovementComplex"
{
  "shinespark": {
    "frames": 9
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 4
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 125
  }
}

Requires:

"canWalljump"
"canShinechargeMovementComplex"
{
  "shinespark": {
    "frames": 10
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 4
Bottom Right Door
To: 2
Middle Left Door

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

Entrance condition:

{
  "comeInShinecharging": {
    "length": 2,
    "openEnd": 1
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 75
  }
}
From: 4
Bottom Right Door
To: 2
Middle Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 110
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 4
Bottom Right Door
To: 4
Bottom Right Door

Requires:

{
  "resetRoom": {
    "nodes": [
      4
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "Energy",
    "Super"
  ]
}
From: 4
Bottom Right Door
To: 4
Bottom Right Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 3,
    "openEnd": 1
  }
}
From: 4
Bottom Right Door
To: 4
Bottom Right Door

Use the frozen caterpillar as a platform or other means to get up to the top half of the room.

Requires:

"h_canFrozenEnemyRunway"

Exit condition:

{
  "leaveWithRunway": {
    "length": 4,
    "openEnd": 1
  }
}
From: 4
Bottom Right Door
To: 4
Bottom Right Door

Requires:

"h_canCrystalFlash"
From: 4
Bottom Right Door
To: 4
Bottom Right Door

Requires:

{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canTrickyUseFrozenEnemies",
    "canSpringBallJumpMidAir"
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 4
Bottom Right Door
To: 4
Bottom Right Door

Let the Caterpillar climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform.

Requires:

"Morph"
"canNeutralDamageBoost"
"canTrickyJump"
"canCrouchJump"
{
  "enemyDamage": {
    "enemy": "Zero",
    "type": "contact",
    "hits": 1
  }
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 4
Bottom Right Door
To: 5
Top Right Door (Through Morph Tunnel)

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump",
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        "HiJump"
      ]
    },
    {
      "and": [
        "Morph",
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canSpringBallJumpMidAir",
            "h_canCrouchJumpDownGrab"
          ]
        }
      ]
    }
  ]
}
From: 4
Bottom Right Door
To: 6
Elevator

Entrance condition:

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

Requires:

{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canSpringBallJumpMidAir",
    "h_canCrouchJumpDownGrab"
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 1
Top Left Door

Requires:

"Morph"
{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "obstaclesCleared": [
        "A"
      ]
    }
  ]
}

Clears obstacles: A

From: 5
Top Right Door (Through Morph Tunnel)
To: 1
Top Left Door

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphMovement",
    "h_canArtificialMorphBombThings"
  ]
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 5
Top Right Door (Through Morph Tunnel)

Requires:

{
  "ammo": {
    "type": "Super",
    "count": 1
  }
}
"Morph"
{
  "or": [
    "canWalljump",
    "HiJump",
    "SpaceJump"
  ]
}
{
  "resetRoom": {
    "nodes": [
      5
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "Energy",
    "Super",
    "PowerBomb"
  ]
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 5
Top Right Door (Through Morph Tunnel)

Exit condition:

{
  "leaveWithRunway": {
    "length": 8,
    "openEnd": 0
  }
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 5
Top Right Door (Through Morph Tunnel)

Requires:

{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "obstaclesCleared": [
        "A"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithRunway": {
    "length": 18,
    "openEnd": 0
  }
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 5
Top Right Door (Through Morph Tunnel)

Requires:

"h_canCrystalFlash"
From: 5
Top Right Door (Through Morph Tunnel)
To: 5
Top Right Door (Through Morph Tunnel)

It takes around 2 minutes to get the Zero to this door.

Requires:

"canBePatient"
{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "obstaclesCleared": [
        "A"
      ]
    }
  ]
}
"Morph"
{
  "or": [
    "HiJump",
    "canWalljump",
    "h_canFly",
    "canTrickyUseFrozenEnemies",
    "canSpringBallJumpMidAir"
  ]
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 5
Top Right Door (Through Morph Tunnel)

It takes around 2 minutes to get the Zero to this door. Let the Zero climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform.

Requires:

"canBePatient"
{
  "or": [
    {
      "ammo": {
        "type": "Super",
        "count": 1
      }
    },
    {
      "obstaclesCleared": [
        "A"
      ]
    }
  ]
}
"Morph"
"canNeutralDamageBoost"
"canTrickyJump"
"h_canCrouchJumpDownGrab"
{
  "enemyDamage": {
    "enemy": "Zero",
    "type": "contact",
    "hits": 1
  }
}

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 5
Top Right Door (Through Morph Tunnel)
To: 6
Elevator

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphMovement",
    "h_canArtificialMorphBombThings"
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 6
Elevator
To: 1
Top Left Door

From: 6
Elevator
To: 1
Top Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 105
  }
}

Requires:

"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}
From: 6
Elevator
To: 5
Top Right Door (Through Morph Tunnel)

Entrance condition:

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

Requires:

"Morph"

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 75,
  "name": "Caterpillar Room",
  "area": "Brinstar",
  "subarea": "Red",
  "playable": true,
  "roomAddress": "0x7A322",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Top Left Door",
      "nodeType": "door",
      "nodeSubType": "green",
      "nodeAddress": "0x00190a2",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "locks": [
        {
          "name": "Caterpillar Room Top Left Green Lock (to Beta Power Bombs)",
          "lockType": "coloredDoor",
          "unlockStrats": [
            {
              "name": "Base",
              "notable": false,
              "requires": [
                "h_canOpenGreenDoors"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 2,
      "name": "Middle Left Door",
      "nodeType": "door",
      "nodeSubType": "yellow",
      "nodeAddress": "0x00190ae",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "locks": [
        {
          "name": "Caterpillar Room Yellow Lock (to Hellway)",
          "lockType": "coloredDoor",
          "unlockStrats": [
            {
              "name": "Base",
              "notable": false,
              "requires": [
                "h_canOpenYellowDoors"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 3,
      "name": "Bottom Left Door",
      "nodeType": "door",
      "nodeSubType": "green",
      "nodeAddress": "0x0019096",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "locks": [
        {
          "name": "Caterpillar Room Bottom Left Green Lock (to Alpha Power Bombs)",
          "lockType": "coloredDoor",
          "unlockStrats": [
            {
              "name": "Base",
              "notable": false,
              "requires": [
                "h_canOpenGreenDoors"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 4,
      "name": "Bottom Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x00190d2",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 5,
      "name": "Top Right Door (Through Morph Tunnel)",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x00190c6",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 6,
      "name": "Elevator",
      "nodeType": "door",
      "nodeSubType": "elevator",
      "nodeAddress": "0x00190ba"
    }
  ],
  "obstacles": [
    {
      "id": "A",
      "name": "Green Gate",
      "obstacleType": "inanimate"
    },
    {
      "id": "B",
      "name": "Shot Blocks",
      "obstacleType": "inanimate"
    }
  ],
  "enemies": [
    {
      "id": "e1",
      "groupName": "Caterpillar Room Cacatacs",
      "enemyName": "Cacatac",
      "quantity": 2,
      "homeNodes": [
        4
      ]
    },
    {
      "id": "e2",
      "groupName": "Caterpillar Room Zeros",
      "enemyName": "Zero",
      "quantity": 3,
      "homeNodes": [
        3
      ]
    }
  ],
  "links": [
    {
      "from": 1,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 4
        },
        {
          "id": 5
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 2,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 3,
      "to": [
        {
          "id": 2
        },
        {
          "id": 3
        }
      ]
    },
    {
      "from": 4,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 4
        },
        {
          "id": 5
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 5,
      "to": [
        {
          "id": 1
        },
        {
          "id": 5
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 6,
      "to": [
        {
          "id": 1
        },
        {
          "id": 5
        }
      ]
    }
  ],
  "strats": [
    {
      "link": [
        1,
        1
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 5,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Leave With Runway - Frozen Caterpillar",
      "requires": [
        "canBeVeryPatient",
        "h_canFrozenEnemyRunway",
        "Morph"
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 6,
          "openEnd": 1
        }
      },
      "note": [
        "Use the frozen Zero as a platform or other means to get up to the top half of the room. This takes about 3 minutes.",
        "The Zero only moves on camera and the camera scrolls when exiting the morph tunnel.",
        "Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit."
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Leave With Spark (Gate Open)",
      "requires": [
        {
          "canShineCharge": {
            "usedTiles": 17,
            "openEnd": 0
          }
        },
        "canShinechargeMovementTricky",
        "Morph",
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        {
          "shinespark": {
            "frames": 22
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "note": "Slow rolling or getting a fast mockball work equally well.",
      "devNote": [
        "One tile longer runway could be used if the door to the right of the gate were known to be unlocked"
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "G-Mode Setup - Get Hit By Zero",
      "notable": false,
      "requires": [
        "canBeVeryPatient",
        "Morph",
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canTrickyUseFrozenEnemies",
            "canSpringBallJumpMidAir"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": [
        "It takes around 3 minutes to get the Zero to this door.",
        "The Zero only moves on camera and the camera scrolls when exiting the morph tunnel.",
        "Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit."
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "G-Mode Setup - Get Hit By Zero (Damage Boost Up)",
      "notable": false,
      "requires": [
        "canBeVeryPatient",
        "Morph",
        "canNeutralDamageBoost",
        "canTrickyJump",
        "h_canCrouchJumpDownGrab",
        {
          "enemyDamage": {
            "enemy": "Zero",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": [
        "It takes around 3 minutes to get the Zero to this door.",
        "Let the Zero climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform.",
        "The Zero only moves on camera and the camera scrolls when exiting the morph tunnel.",
        "Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit."
      ]
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Come in Shinecharging, Leave Shinecharged",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 4,
          "openEnd": 1
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 35
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Carry Shinecharge",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 160
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Come in Shinecharging, Leave Shinecharged",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 4,
          "openEnd": 1
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 80
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Carry Shinecharge",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 115
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Backtrack",
      "requires": [
        "Morph",
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ],
      "note": [
        "Only doable if entering the room from 5 and backtracking.",
        "Only worthwhile to go kill the Zeros for PBs and Cacatacs for Supers."
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "G-Mode Morph Despawn the Gate",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphMovement",
            {
              "and": [
                "h_canArtificialMorphBombThings",
                "h_additionalBomb"
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        1,
        6
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        1,
        6
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (HiJump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 4,
          "openEnd": 0
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 80
        }
      }
    },
    {
      "link": [
        1,
        6
      ],
      "name": "Come in Shinecharging, Leave Shinecharged",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 4,
          "openEnd": 0
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 60
        }
      }
    },
    {
      "link": [
        1,
        6
      ],
      "name": "Carry Shinecharge (HiJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 85
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      }
    },
    {
      "link": [
        1,
        6
      ],
      "name": "Carry Shinecharge",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 105
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      }
    },
    {
      "link": [
        1,
        6
      ],
      "name": "Carry G-Mode Up Elevator",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        2,
        1
      ],
      "name": "Come in Shinecharged, Leave With Spark (HiJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 160
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementTricky",
        {
          "shinespark": {
            "frames": 11
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave With Runway (Shot Blocks Broken)",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave With Runway (Shot Blocks Intact)",
      "requires": [
        {
          "obstaclesNotCleared": [
            "B"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 9,
          "openEnd": 0
        }
      },
      "note": [
        "Runway not usable if the shot blocks are broken.",
        "Those blocks are not an obstacle right now, but there's no need to destroy them except when travelling between nodes 2 and 3."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave With Runway (Shot Blocks Broken) - Frozen Caterpillar",
      "requires": [
        "canBeVeryPatient",
        "h_canFrozenEnemyRunway",
        "Morph"
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 5,
          "openEnd": 1
        }
      },
      "note": [
        "Use the frozen Zero as a platform or other means to get up to the top half of the room.",
        "This takes about 4 minutes, but fortunately isn't often necessary.",
        "The Zero only moves on camera and the camera scrolls when exiting the morph tunnel.",
        "Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "G-Mode Setup - Get Hit By Zero",
      "notable": false,
      "requires": [
        "canBeVeryPatient",
        "Morph",
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canTrickyUseFrozenEnemies",
            "canSpringBallJumpMidAir"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": [
        "It takes around 4 minutes to get the Zero to this door.",
        "The Zero only moves on camera and the camera scrolls when exiting the morph tunnel.",
        "Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "G-Mode Setup - Get Hit By Zero (Damage Boost Up)",
      "notable": false,
      "requires": [
        "canBeVeryPatient",
        "Morph",
        "canNeutralDamageBoost",
        "canTrickyJump",
        "h_canCrouchJumpDownGrab",
        {
          "enemyDamage": {
            "enemy": "Zero",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": [
        "It takes around 4 minutes to get the Zero to this door.",
        "Let the Zero climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform.",
        "The Zero only moves on camera and the camera scrolls when exiting the morph tunnel.",
        "Let the Zero lead through the morph tunnel or wait for the it to get very close to Samus before touching the scroll block at the exit."
      ]
    },
    {
      "link": [
        2,
        3
      ],
      "name": "Base",
      "requires": [],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canSpringBallJumpMidAir"
          ]
        }
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Frozen Caterpillar",
      "requires": [
        "canTrickyUseFrozenEnemies"
      ],
      "note": "Let the Caterpillar out and freeze it as a platform."
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Caterpillar Boost",
      "requires": [
        "Morph",
        "canNeutralDamageBoost",
        "canTrickyJump",
        "canCrouchJump",
        {
          "enemyDamage": {
            "enemy": "Zero",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "note": "Let the Caterpillar climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform."
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Tricky Dash Jump",
      "requires": [
        "canTrickyDashJump",
        {
          "obstaclesNotCleared": [
            "B"
          ]
        }
      ],
      "note": [
        "Carefully kill the Cacatac, then it is possible to get up with just Speed Booster.",
        "With Samus's back against the door, jump just before hitting the right wall. This is not easier with the door open."
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (HiJump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 7,
          "openEnd": 0
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 80
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": [
        "Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you."
      ],
      "devNote": [
        "One runway tile is considered unusable, in order to be able quickly jump up (without turning around) after gaining a shinecharge."
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (Wall Jump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 7,
          "openEnd": 0
        }
      },
      "requires": [
        "canWalljump",
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 45
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": [
        "Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you."
      ],
      "devNote": [
        "One runway tile is considered unusable, in order to be able quickly jump up (without turning around) after gaining a shinecharge."
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Carry Shinecharge (HiJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 110
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": [
        "Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you."
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Carry Shinecharge (Wall Jump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 145
        }
      },
      "requires": [
        "canWalljump",
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": [
        "Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you."
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Shinespark, Come in Shinecharged",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 1
        }
      },
      "requires": [
        {
          "shinespark": {
            "frames": 32,
            "excessFrames": 21
          }
        }
      ],
      "note": "Diagonal shinespark on entry, or move to the right a bit first to save some Energy.",
      "devNote": "Shinesparking from the right a bit is not modeled as the Cacatacs can be farmed."
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Speedy Jump",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 12
        }
      },
      "requires": [
        "canCarefulJump",
        {
          "enemyDamage": {
            "enemy": "Cacatac",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "note": "At this speed, sometimes Samus will still not jump high enough, but she should be able to get up most of the time.",
      "devNote": "This is designed as a lower difficulty strat, there are still tricky dash jump effects at this speed, but Samus can get up most of the time."
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Come in Shinecharged, Leave With Spark (HiJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 90
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementComplex",
        {
          "shinespark": {
            "frames": 4
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "Come in Shinecharged, Leave With Spark (Wall Jump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 120
        }
      },
      "requires": [
        "canWalljump",
        "canShinechargeMovementTricky",
        {
          "enemyDamage": {
            "enemy": "Cacatac",
            "type": "spike",
            "hits": 1
          }
        },
        {
          "shinespark": {
            "frames": 6
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": [
        "Ledge grab precisely in front of the Cacatac, and jump immediately before it would hit you.",
        "If the shinespark wind-up is activated as early as possible, then a Cacatac spike hit will be taken."
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "G-Mode Morph IBJ",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        "h_canArtificialMorphIBJ"
      ]
    },
    {
      "link": [
        2,
        5
      ],
      "name": "G-Mode Morph Despawn the Gate",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            {
              "and": [
                "h_canArtificialMorphSpringBallBombJump",
                "h_additionalBomb"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                "HiJump"
              ]
            },
            {
              "and": [
                "Morph",
                {
                  "or": [
                    "HiJump",
                    "canWalljump",
                    "h_canFly",
                    "canSpringBallJumpMidAir",
                    {
                      "and": [
                        "canTrickyDashJump",
                        "h_canCrouchJumpDownGrab"
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        2,
        6
      ],
      "name": "G-Mode Up the Elevator",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canSpringBallJumpMidAir",
            {
              "and": [
                "canTrickyDashJump",
                "h_canCrouchJumpDownGrab"
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        2,
        6
      ],
      "name": "G-Mode Morph Up the Elevator",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        "h_canArtificialMorphIBJ"
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        3,
        2
      ],
      "name": "Base",
      "requires": [],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Zero Farm",
      "requires": [
        {
          "resetRoom": {
            "nodes": [
              3
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "PowerBomb"
          ]
        }
      ],
      "devNote": "FIXME: Other nodes could be used to reset the room, with additional requirements."
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 0
        }
      }
    },
    {
      "link": [
        3,
        3
      ],
      "name": "G-Mode Setup - Get Hit By Zero",
      "notable": false,
      "requires": [],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      }
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Frozen Caterpillar",
      "requires": [
        "canTrickyUseFrozenEnemies"
      ],
      "note": "Let the Caterpillar out and freeze it as a platform."
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Crouch Jump Down Grab",
      "requires": [
        "h_canCrouchJumpDownGrab"
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (HiJump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 60
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (Wall Jump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "canWalljump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 25
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Carry Shinecharge (HiJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 110
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Carry Shinecharge (Wall Jump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 155
        }
      },
      "requires": [
        "canWalljump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Come in Shinecharged, Leave With Spark (HiJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 85
        }
      },
      "requires": [
        "HiJump",
        "canShinechargeMovementComplex",
        {
          "shinespark": {
            "frames": 9
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Come in Shinecharged, Leave With Spark (Wall Jump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 125
        }
      },
      "requires": [
        "canWalljump",
        "canShinechargeMovementComplex",
        {
          "shinespark": {
            "frames": 10
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        2
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        4,
        2
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (HiJump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 1
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 75
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        2
      ],
      "name": "Carry Shinecharge",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 110
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Cacatac Farm",
      "requires": [
        {
          "resetRoom": {
            "nodes": [
              4
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "Energy",
            "Super"
          ]
        }
      ],
      "devNote": "FIXME: Other nodes could be used to reset the room, with additional requirements."
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 3,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Leave With Runway - Frozen Caterpillar",
      "requires": [
        "h_canFrozenEnemyRunway"
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      },
      "note": "Use the frozen caterpillar as a platform or other means to get up to the top half of the room."
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ]
    },
    {
      "link": [
        4,
        4
      ],
      "name": "G-Mode Setup - Get Hit By Zero",
      "notable": false,
      "requires": [
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canTrickyUseFrozenEnemies",
            "canSpringBallJumpMidAir"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "devNote": "It takes around 50 seconds to get the Zero to this door."
    },
    {
      "link": [
        4,
        4
      ],
      "name": "G-Mode Setup - Get Hit By Zero (Damage Boost Up to the Door)",
      "notable": false,
      "requires": [
        "Morph",
        "canNeutralDamageBoost",
        "canTrickyJump",
        "canCrouchJump",
        {
          "enemyDamage": {
            "enemy": "Zero",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": "Let the Caterpillar climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform.",
      "devNote": "It takes around 50 seconds to get the Zero to this door."
    },
    {
      "link": [
        4,
        5
      ],
      "name": "G-Mode Morph Despawn the Gate",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump",
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                "HiJump"
              ]
            },
            {
              "and": [
                "Morph",
                {
                  "or": [
                    "HiJump",
                    "canWalljump",
                    "h_canFly",
                    "canSpringBallJumpMidAir",
                    "h_canCrouchJumpDownGrab"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "G-Mode Up the Elevator",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canSpringBallJumpMidAir",
            "h_canCrouchJumpDownGrab"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        5,
        1
      ],
      "name": "Base",
      "requires": [
        "Morph",
        {
          "or": [
            {
              "ammo": {
                "type": "Super",
                "count": 1
              }
            },
            {
              "obstaclesCleared": [
                "A"
              ]
            }
          ]
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        5,
        1
      ],
      "name": "G-Mode Morph Despawn the Gate",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphMovement",
            "h_canArtificialMorphBombThings"
          ]
        }
      ]
    },
    {
      "link": [
        5,
        5
      ],
      "name": "Cacatac and Zero Farm",
      "requires": [
        {
          "ammo": {
            "type": "Super",
            "count": 1
          }
        },
        "Morph",
        {
          "or": [
            "canWalljump",
            "HiJump",
            "SpaceJump"
          ]
        },
        {
          "resetRoom": {
            "nodes": [
              5
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "Energy",
            "Super",
            "PowerBomb"
          ]
        }
      ]
    },
    {
      "link": [
        5,
        5
      ],
      "name": "Leave With Runway (Gate Closed)",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 8,
          "openEnd": 0
        }
      }
    },
    {
      "link": [
        5,
        5
      ],
      "name": "Leave With Runway (Gate Open)",
      "requires": [
        {
          "or": [
            {
              "ammo": {
                "type": "Super",
                "count": 1
              }
            },
            {
              "obstaclesCleared": [
                "A"
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 18,
          "openEnd": 0
        }
      }
    },
    {
      "link": [
        5,
        5
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ]
    },
    {
      "link": [
        5,
        5
      ],
      "name": "G-Mode Setup - Get Hit By Zero",
      "notable": false,
      "requires": [
        "canBePatient",
        {
          "or": [
            {
              "ammo": {
                "type": "Super",
                "count": 1
              }
            },
            {
              "obstaclesCleared": [
                "A"
              ]
            }
          ]
        },
        "Morph",
        {
          "or": [
            "HiJump",
            "canWalljump",
            "h_canFly",
            "canTrickyUseFrozenEnemies",
            "canSpringBallJumpMidAir"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": "It takes around 2 minutes to get the Zero to this door."
    },
    {
      "link": [
        5,
        5
      ],
      "name": "G-Mode Setup - Get Hit By Zero (Damage Boost Up)",
      "notable": false,
      "requires": [
        "canBePatient",
        {
          "or": [
            {
              "ammo": {
                "type": "Super",
                "count": 1
              }
            },
            {
              "obstaclesCleared": [
                "A"
              ]
            }
          ]
        },
        "Morph",
        "canNeutralDamageBoost",
        "canTrickyJump",
        "h_canCrouchJumpDownGrab",
        {
          "enemyDamage": {
            "enemy": "Zero",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": [
        "It takes around 2 minutes to get the Zero to this door.",
        "Let the Zero climb the right wall and jump on top of it in Morph Ball form to bounce up to the Cacatac platform."
      ]
    },
    {
      "link": [
        5,
        6
      ],
      "name": "G-Mode Morph Despawn Gate, Carry G-Mode Up Elevator",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphMovement",
            "h_canArtificialMorphBombThings"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        6,
        1
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        6,
        1
      ],
      "name": "Carry Shinecharge",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 105
        }
      },
      "requires": [
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        6,
        5
      ],
      "name": "G-Mode Despawn the Gate",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": false
        }
      },
      "requires": [
        "Morph"
      ]
    }
  ]
}