Green Hill Zone

Room ID: 54

Wiki
Difficulty filter

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

Exit condition:

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

Use the runway below the bug pipe to gain a shinecharge. Use HiJump to reach the door with shinecharge frames remaining.

Requires:

"HiJump"
{
  "canShineCharge": {
    "usedTiles": 17,
    "openEnd": 1
  }
}
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 50
  }
}
From: 1
Top Left Door
To: 1
Top Left Door

Use the runway below the bug pipe to gain a shinecharge. Use a wall jump to reach the door with shinecharge frames remaining.

Requires:

"canWalljump"
{
  "canShineCharge": {
    "usedTiles": 17,
    "openEnd": 1
  }
}
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 10
  }
}
From: 1
Top Left Door
To: 1
Top Left Door

Use the runway below the bug pipe to gain a shinecharge. Use precise ledge grabs to barely reach the door with shinecharge frames remaining.

Requires:

{
  "canShineCharge": {
    "usedTiles": 17,
    "openEnd": 1
  }
}
"canShinechargeMovementTricky"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 5
  }
}
From: 1
Top Left Door
To: 1
Top Left Door

Requires:

{
  "refill": [
    "Energy",
    "Missile",
    "Super"
  ]
}
{
  "obstaclesNotCleared": [
    "A"
  ]
}
From: 1
Top Left Door
To: 1
Top Left Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}

Resets obstacles: A

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

Requires:

{
  "or": [
    "h_canFly",
    "HiJump",
    "canSpringBallJumpMidAir",
    {
      "and": [
        "SpeedBooster",
        "canWalljump"
      ]
    }
  ]
}
From: 1
Top Left Door
To: 2
Top Right Door

Notable: true

Wall jump on the top half of the Geega pipe, then on the overhang.

Requires:

"canPreciseWalljump"
From: 1
Top Left Door
To: 2
Top Right Door

Requires:

"canUseFrozenEnemies"
From: 1
Top Left Door
To: 2
Top Right Door

Requires:

"canShinechargeMovement"
{
  "canShineCharge": {
    "usedTiles": 18,
    "openEnd": 1
  }
}
{
  "shinespark": {
    "frames": 9,
    "excessFrames": 5
  }
}
From: 1
Top Left Door
To: 2
Top Right Door

Entrance condition:

{
  "comeInWithSpark": {}
}

Requires:

{
  "shinespark": {
    "frames": 42,
    "excessFrames": 14
  }
}
From: 1
Top Left Door
To: 2
Top Right Door

Requires an adjacent runway of at least 26 tiles. Jump immediately before the transition.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 26
  }
}

Requires:

"canTrickyJump"
From: 1
Top Left Door
To: 2
Top Right Door

Entrance condition:

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

Requires:

"canTrickyJump"
"canLateralMidAirMorph"
From: 1
Top Left Door
To: 2
Top Right Door

Kill or spring ball over the first bug. IBJ or bomb boost spring ball jump up to the door.

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump"
  ]
}
From: 1
Top Left Door
To: 3
Bottom Right Door

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

Requires:

{
  "canShineCharge": {
    "usedTiles": 30,
    "openEnd": 0
  }
}
"canShinechargeMovement"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 120
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Top Left Door
To: 4
Item (Through the Pipe)

Spark flush against the right wall (diagonal helps) then quickly down grab or down back after to barely get into the pipe.

Requires:

"Morph"
"canDownGrab"
"canShinechargeMovementComplex"
{
  "canShineCharge": {
    "usedTiles": 18,
    "openEnd": 1
  }
}
{
  "shinespark": {
    "frames": 15
  }
}
From: 1
Top Left Door
To: 4
Item (Through the Pipe)

Roll under the first bug, wait for the second to spawn before rolling off the ledge. IBJ, bomb boost spring ball jump, or HiJump Spring Fling into the pipe.

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump",
    {
      "and": [
        "HiJump",
        "h_canArtificialMorphSpringBall"
      ]
    }
  ]
}
From: 1
Top Left Door
To: 4
Item (Through the Pipe)

Roll under the first bug, wait for the second to spawn before rolling off the ledge. IBJ or bomb boost spring ball jump into the pipe.

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump"
  ]
}

Clears obstacles: A

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

Requires:

{
  "or": [
    "HiJump",
    "h_canFly",
    "canWalljump",
    "canUseFrozenEnemies",
    "canSpringBallJumpMidAir"
  ]
}
Airball (Very Hard)
Green Hill Zone
From: 1
Top Left Door
To: 5
Junction The Left End of Morph Tube

Requires:

"SpeedBooster"
"canTrickyJump"
"canLateralMidAirMorph"
"can4HighMidAirMorph"
From: 1
Top Left Door
To: 5
Junction The Left End of Morph Tube

Spark flush against the right wall (diagonal helps) then quickly down back to barely get into the pipe.

Requires:

"canDownBack"
"canShinechargeMovementComplex"
{
  "canShineCharge": {
    "usedTiles": 18,
    "openEnd": 1
  }
}
{
  "shinespark": {
    "frames": 15
  }
}
From: 2
Top Right Door
To: 1
Top Left Door

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

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ],
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

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

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Bypasses door shell: true

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

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

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

Exit the previous room with Samus in a standing pose (while grappled). After teleporting, press right to release Grapple while staying standing (not being forced into a crouch). Then X-ray climb to get up to the door transition, without needing to open the door. Samus will not be visible during the climb.

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        18
      ],
      [
        2,
        19
      ],
      [
        2,
        28
      ],
      [
        2,
        29
      ],
      [
        2,
        34
      ]
    ]
  }
}

Requires:

"canXRayClimb"

Bypasses door shell: true

From: 2
Top Right Door
To: 2
Top Right Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 11,
    "openEnd": 1
  }
}
From: 2
Top Right Door
To: 2
Top Right Door

Use the runway below the bug pipe to gain a shinecharge. Use HiJump to reach the door with shinecharge frames remaining.

Requires:

"HiJump"
{
  "canShineCharge": {
    "usedTiles": 17,
    "openEnd": 1
  }
}
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 25
  }
}
From: 2
Top Right Door
To: 2
Top Right Door

Use the runway below the bug pipe to gain a shinecharge. Then walljump off the bomb blocks and the bug pipe to approach the door and spark out.

Requires:

"canPreciseWalljump"
{
  "canShineCharge": {
    "usedTiles": 17,
    "openEnd": 1
  }
}
"canShinechargeMovementTricky"
{
  "shinespark": {
    "frames": 19
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 2
Top Right Door
To: 2
Top Right Door

Requires:

"h_canCrystalFlash"
From: 2
Top Right Door
To: 4
Item (Through the Pipe)

Fall past the first bug, wait for the second to spawn before rolling off the ledge. IBJ or bomb boost spring ball jump into the pipe.

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump"
  ]
}
From: 2
Top Right Door
To: 4
Item (Through the Pipe)

Fall past the first bug, wait for the second to spawn before rolling off the ledge. IBJ, bomb boost spring ball jump, or HiJump Spring Fling into the pipe.

Entrance condition:

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

Requires:

{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump",
    {
      "and": [
        "HiJump",
        "h_canArtificialMorphSpringBall"
      ]
    }
  ]
}

Clears obstacles: A

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

Requires:

"Wave"
From: 3
Bottom Right Door
To: 1
Top Left Door

Requires:

"h_canBlueGateGlitch"
From: 3
Bottom Right Door
To: 1
Top Left Door

Notable: true

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:

"Grapple"
"SpeedBooster"
"canTrickyJump"
From: 3
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "indirect",
    "morphed": false
  }
}
From: 3
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        5,
        3
      ],
      [
        7,
        2
      ]
    ]
  }
}
From: 3
Bottom Right Door
To: 1
Top Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ],
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

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

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Bypasses door shell: true

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

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

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

Exit the previous room with Samus in a standing pose (while grappled). After teleporting, press right to release Grapple while staying standing (not being forced into a crouch). Then X-ray climb to get up to the door transition, without needing to open the door. Samus will not be visible during the climb.

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        18
      ],
      [
        2,
        19
      ],
      [
        2,
        28
      ],
      [
        2,
        29
      ]
    ]
  }
}

Requires:

"canXRayClimb"

Bypasses door shell: true

From: 3
Bottom Right Door
To: 2
Top Right Door

Use a Power Bombs to kill the first three hoppers, or carefully dodge them by quickly rolling between the first two tall flowers and waiting for the hopper to jump over Samus. The middle hopper can be killed safely with many Bombs by staying on the top left of the raised ground, without overhanging or the hopper can hit Samus. Alternatively, lure and spring ball jump past it. Killing the bugs in their pipes is possible without getting hit, or use spring ball to jump past them. Once the bugs are killed once they will stop respawning. The last hopper can be carefully killed with Bombs, killed with a Power Bomb, or dodged and lured off the edge. IBJ or bomb boost spring ball jump up to the top right door.

Entrance condition:

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

Requires:

{
  "or": [
    "canTrickyJump",
    {
      "and": [
        "h_canArtificialMorphBombs",
        "h_canArtificialMorphPowerBomb"
      ]
    },
    {
      "ammo": {
        "type": "PowerBomb",
        "count": 3
      }
    }
  ]
}
{
  "or": [
    "h_canArtificialMorphIBJ",
    {
      "and": [
        "h_canArtificialMorphSpringBallBombJump",
        "h_additionalBomb"
      ]
    }
  ]
}
From: 3
Bottom Right Door
To: 2
Top Right Door

Notable: true

After teleporting, extend the Grapple, and swing back and forth to fix the camera and then to gain momentum. A precisely timed release of Grapple will allow Samus to fling onto the ledge on the right.

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        7,
        2
      ]
    ]
  }
}

Requires:

"canInsaneJump"

Notable: true

After teleporting, swing back and forth to fix the camera. Swing to the right by soft-bouncing against the door followed by fully extending the Grapple Beam. Release grapple low, but not too low, to get enough momentum while also leaving enough space to gain more height with a grapple jump to reach the ledge. Holding jump just before releasing Grapple may help prevent losing momentum.

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        5,
        3
      ]
    ]
  }
}

Requires:

"canTrickyGrappleJump"
"canInsaneJump"
From: 3
Bottom Right Door
To: 3
Bottom Right Door

Exit condition:

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

Requires:

{
  "canShineCharge": {
    "usedTiles": 22,
    "openEnd": 0
  }
}
"canShinechargeMovement"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 140
  }
}
From: 3
Bottom Right Door
To: 3
Bottom Right Door

Requires:

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

Exit condition:

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

Requires:

{
  "enemyDamage": {
    "enemy": "Sm. Sidehopper",
    "type": "contact",
    "hits": 1
  }
}
From: 3
Bottom Right Door
To: 4
Item (Through the Pipe)

Use a Power Bombs to kill the first three hoppers, or carefully dodge them by quickly rolling between the first two tall flowers and waiting for the hopper to jump over Samus. The middle hopper can be killed safely with many Bombs by staying on the top left of the raised ground, without overhanging or the hopper can hit Samus. Alternatively, lure and spring ball jump past it. Killing the bugs in their pipes is possible without getting hit, or use spring ball to jump past them. Once the bugs are killed once they will stop respawning. The last hopper can be carefully killed with Bombs, or killed with a Power Bomb, or dodged and lured off the edge. IBJ, bomb boost spring ball jump, or HiJump Spring Fling up to the pipe.

Entrance condition:

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

Requires:

{
  "or": [
    "canTrickyJump",
    {
      "and": [
        "h_canArtificialMorphBombs",
        "h_canArtificialMorphPowerBomb"
      ]
    },
    {
      "ammo": {
        "type": "PowerBomb",
        "count": 3
      }
    }
  ]
}
{
  "or": [
    "h_canArtificialMorphIBJ",
    "h_canArtificialMorphSpringBallBombJump",
    {
      "and": [
        "HiJump",
        "h_canArtificialMorphSpringBall"
      ]
    }
  ]
}
From: 4
Item (Through the Pipe)
To: 2
Top Right Door

While in g-mode, touch the item, roll out of the pipe, then get to the top right door before exiting g-mode and obtaining the item.

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
{
  "or": [
    "h_canArtificialMorphIBJ",
    {
      "and": [
        "h_canArtificialMorphSpringBallBombJump",
        "h_additionalBomb"
      ]
    }
  ]
}
From: 4
Item (Through the Pipe)
To: 5
Junction The Left End of Morph Tube

Requires:

"Morph"
From: 4
Item (Through the Pipe)
To: 5
Junction The Left End of Morph Tube

Notable: true

It's a long Wiggle, but you can see the item before going in too far.

Requires:

"canXRayTurnaround"
From: 4
Item (Through the Pipe)
To: 5
Junction The Left End of Morph Tube

Notable: true

It's a long Tunnel Crawl, so there's a heavy softlock risk.

Requires:

"canTunnelCrawl"
From: 4
Item (Through the Pipe)
To: 5
Junction The Left End of Morph Tube

While in g-mode, touch the item, roll out of the pipe, then exit g-mode to obtain the item.

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
From: 5
Junction The Left End of Morph Tube
To: 1
Top Left Door

From: 5
Junction The Left End of Morph Tube
To: 4
Item (Through the Pipe)

Requires:

"Morph"
From: 5
Junction The Left End of Morph Tube
To: 4
Item (Through the Pipe)

It takes Morph or a Tunnel Crawl to get back out.

Requires:

"canTurnaroundAimCancel"
From: 5
Junction The Left End of Morph Tube
To: 4
Item (Through the Pipe)

Notable: true

It's a long Wiggle, but you can see the item before going in too far. Spin jumping directly into the tube will disable X-Ray, so enter aiming down to standup first.

Requires:

"canTwoTileSqueeze"
"canXRayTurnaround"
From: 5
Junction The Left End of Morph Tube
To: 4
Item (Through the Pipe)

Notable: true

It's a long Tunnel Crawl, so there's a heavy softlock risk.

Requires:

"canTunnelCrawl"

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 54,
  "name": "Green Hill Zone",
  "area": "Brinstar",
  "subarea": "Green",
  "playable": true,
  "roomAddress": "0x79E52",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Top Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0018e7a",
      "doorOrientation": "left",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 2,
      "name": "Top Right Door",
      "nodeType": "door",
      "nodeSubType": "yellow",
      "nodeAddress": "0x0018e86",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 3,
      "name": "Bottom Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0018e92",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 4,
      "name": "Item (Through the Pipe)",
      "nodeType": "item",
      "nodeSubType": "visible",
      "nodeItem": "Missile",
      "nodeAddress": "0x78676",
      "devNote": "Z3M3: Pink Brin",
      "locks": [
        {
          "name": "Dummy Item Lock",
          "lockType": "gameFlag",
          "unlockStrats": [
            {
              "name": "Base (Collect Item)",
              "notable": false,
              "requires": []
            }
          ]
        }
      ]
    },
    {
      "id": 5,
      "name": "Junction The Left End of Morph Tube",
      "nodeType": "junction",
      "nodeSubType": "junction"
    }
  ],
  "obstacles": [
    {
      "id": "A",
      "name": "G-Mode Morph - Remote Acquire the item",
      "obstacleType": "abstract"
    }
  ],
  "enemies": [
    {
      "id": "e1",
      "groupName": "Green Hill Zone Top Geega",
      "enemyName": "Geega",
      "quantity": 1,
      "homeNodes": [
        1
      ],
      "farmCycles": [
        {
          "name": "Single Geega Farm",
          "cycleFrames": 160,
          "requires": []
        }
      ]
    },
    {
      "id": "e2",
      "groupName": "Green Hill Zone Top-Middle Geega",
      "enemyName": "Geega",
      "quantity": 1,
      "homeNodes": [
        1
      ],
      "farmCycles": [
        {
          "name": "Single Geega Farm",
          "cycleFrames": 160,
          "requires": []
        }
      ]
    },
    {
      "id": "e3",
      "groupName": "Green Hill Zone Middle Geega",
      "enemyName": "Geega",
      "quantity": 1,
      "homeNodes": [
        1
      ],
      "farmCycles": [
        {
          "name": "Single Geega Farm",
          "cycleFrames": 160,
          "requires": []
        }
      ]
    },
    {
      "id": "e4",
      "groupName": "Green Hill Zone Bottom-Middle Geega",
      "enemyName": "Geega",
      "quantity": 1,
      "homeNodes": [
        1
      ],
      "farmCycles": [
        {
          "name": "Single Geega Farm",
          "cycleFrames": 160,
          "requires": []
        }
      ]
    },
    {
      "id": "e5",
      "groupName": "Green Hill Zone Bottom Geega",
      "enemyName": "Geega",
      "quantity": 1,
      "homeNodes": [
        1
      ],
      "farmCycles": [
        {
          "name": "Single Geega Farm",
          "cycleFrames": 160,
          "requires": []
        }
      ]
    },
    {
      "id": "e6",
      "groupName": "Green Hill Zone Left Small Sidehoppers",
      "enemyName": "Sm. Sidehopper",
      "quantity": 2,
      "homeNodes": [
        1
      ]
    },
    {
      "id": "e7",
      "groupName": "Green Hill Zone Right Small Sidehoppers",
      "enemyName": "Sm. Sidehopper",
      "quantity": 3,
      "homeNodes": [
        3
      ]
    }
  ],
  "reusableRoomwideNotable": [
    {
      "name": "Green Hill Zone Tunnel Crawl",
      "note": "It's a long Tunnel Crawl, so there's a heavy softlock risk."
    },
    {
      "name": "Green Hill Zone X-Ray Wiggle",
      "note": [
        "It's a long Wiggle, but you can see the item before going in too far.",
        "Spin jumping directly into the tube will disable X-Ray, so enter aiming down to standup first."
      ]
    }
  ],
  "links": [
    {
      "from": 1,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 2,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 4
        }
      ]
    },
    {
      "from": 3,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        }
      ]
    },
    {
      "from": 4,
      "to": [
        {
          "id": 2
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 5,
      "to": [
        {
          "id": 1
        },
        {
          "id": 4
        }
      ]
    }
  ],
  "strats": [
    {
      "link": [
        1,
        1
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 3,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Leave Shinecharged (HiJump)",
      "requires": [
        "HiJump",
        {
          "canShineCharge": {
            "usedTiles": 17,
            "openEnd": 1
          }
        },
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 50
        }
      },
      "note": [
        "Use the runway below the bug pipe to gain a shinecharge.",
        "Use HiJump to reach the door with shinecharge frames remaining."
      ],
      "devNote": [
        "One tile of runway is considered unusable in order to have space to quickly jump up onto the bomb blocks above.",
        "It could also be possible to break the bomb blocks, but this doesn't seem very worth considering."
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Leave Shinecharged (Wall Jump)",
      "requires": [
        "canWalljump",
        {
          "canShineCharge": {
            "usedTiles": 17,
            "openEnd": 1
          }
        },
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 10
        }
      },
      "note": [
        "Use the runway below the bug pipe to gain a shinecharge.",
        "Use a wall jump to reach the door with shinecharge frames remaining."
      ],
      "devNote": [
        "One tile of runway is considered unusable in order to have space to quickly jump up onto the bomb blocks above.",
        "It could also be possible to break the bomb blocks, potentially increasing the framesRemaining slightly."
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Leave Shinecharged (Ledge Grabs)",
      "requires": [
        {
          "canShineCharge": {
            "usedTiles": 17,
            "openEnd": 1
          }
        },
        "canShinechargeMovementTricky"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 5
        }
      },
      "note": [
        "Use the runway below the bug pipe to gain a shinecharge.",
        "Use precise ledge grabs to barely reach the door with shinecharge frames remaining."
      ],
      "devNote": [
        "One tile of runway is considered unusable in order to have space to quickly jump up onto the bomb blocks above.",
        "It could also be possible to break the bomb blocks, potentially increasing the framesRemaining slightly."
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Geega Farm",
      "requires": [
        {
          "refill": [
            "Energy",
            "Missile",
            "Super"
          ]
        },
        {
          "obstaclesNotCleared": [
            "A"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Exit G-Mode",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ],
      "resetsObstacles": [
        "A"
      ],
      "devNote": "This is important in order to farm before leaving, but not being able to continue using artificial morph strats."
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "h_canFly",
            "HiJump",
            "canSpringBallJumpMidAir",
            {
              "and": [
                "SpeedBooster",
                "canWalljump"
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Green Hill Zone Wall Jump to Top Right Door",
      "notable": true,
      "requires": [
        "canPreciseWalljump"
      ],
      "note": "Wall jump on the top half of the Geega pipe, then on the overhang."
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Use Frozen Enemy",
      "requires": [
        "canUseFrozenEnemies"
      ]
    },
    {
      "link": [
        1,
        2
      ],
      "name": "In Room Shinespark",
      "requires": [
        "canShinechargeMovement",
        {
          "canShineCharge": {
            "usedTiles": 18,
            "openEnd": 1
          }
        },
        {
          "shinespark": {
            "frames": 9,
            "excessFrames": 5
          }
        }
      ]
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInWithSpark": {}
      },
      "requires": [
        {
          "shinespark": {
            "frames": 42,
            "excessFrames": 14
          }
        }
      ]
    },
    {
      "link": [
        1,
        2
      ],
      "name": "High Speed Jump",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 26
        }
      },
      "requires": [
        "canTrickyJump"
      ],
      "note": "Requires an adjacent runway of at least 26 tiles. Jump immediately before the transition."
    },
    {
      "link": [
        1,
        2
      ],
      "name": "High Speed Air Ball",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 15
        }
      },
      "requires": [
        "canTrickyJump",
        "canLateralMidAirMorph"
      ],
      "devNote": "Requires an adjacent runway of at least 15 tiles. Jump immediately after the transition."
    },
    {
      "link": [
        1,
        2
      ],
      "name": "G-Mode Morph",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump"
          ]
        }
      ],
      "note": "Kill or spring ball over the first bug. IBJ or bomb boost spring ball jump up to the door."
    },
    {
      "link": [
        1,
        3
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        1,
        3
      ],
      "name": "Leave Shinecharged (Open Gate)",
      "requires": [
        {
          "canShineCharge": {
            "usedTiles": 30,
            "openEnd": 0
          }
        },
        "canShinechargeMovement"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 120
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Shinespark Down Grab",
      "requires": [
        "Morph",
        "canDownGrab",
        "canShinechargeMovementComplex",
        {
          "canShineCharge": {
            "usedTiles": 18,
            "openEnd": 1
          }
        },
        {
          "shinespark": {
            "frames": 15
          }
        }
      ],
      "note": "Spark flush against the right wall (diagonal helps) then quickly down grab or down back after to barely get into the pipe.",
      "devNote": [
        "This only gets one pixel into the pipe, so a wiggle isn't possible without doing the down back.",
        "Assumes sparking from the ground, since there is an accessible farm before and after this strat."
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "G-Mode Morph",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump",
            {
              "and": [
                "HiJump",
                "h_canArtificialMorphSpringBall"
              ]
            }
          ]
        }
      ],
      "note": "Roll under the first bug, wait for the second to spawn before rolling off the ledge. IBJ, bomb boost spring ball jump, or HiJump Spring Fling into the pipe.",
      "devNote": "FIXME: Add springFling tech."
    },
    {
      "link": [
        1,
        4
      ],
      "name": "G-Mode Morph Remote Acquire",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump"
          ]
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Roll under the first bug, wait for the second to spawn before rolling off the ledge. IBJ or bomb boost spring ball jump into the pipe."
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "HiJump",
            "h_canFly",
            "canWalljump",
            "canUseFrozenEnemies",
            "canSpringBallJumpMidAir"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Airball",
      "requires": [
        "SpeedBooster",
        "canTrickyJump",
        "canLateralMidAirMorph",
        "can4HighMidAirMorph"
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Shinespark Down Back",
      "requires": [
        "canDownBack",
        "canShinechargeMovementComplex",
        {
          "canShineCharge": {
            "usedTiles": 18,
            "openEnd": 1
          }
        },
        {
          "shinespark": {
            "frames": 15
          }
        }
      ],
      "note": "Spark flush against the right wall (diagonal helps) then quickly down back to barely get into the pipe.",
      "devNote": "Assumes sparking from the ground, since there is an accessible farm before and after this strat."
    },
    {
      "link": [
        2,
        1
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      }
    },
    {
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      }
    },
    {
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport X-Ray Climb",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              18
            ],
            [
              2,
              19
            ],
            [
              2,
              28
            ],
            [
              2,
              29
            ],
            [
              2,
              34
            ]
          ]
        }
      },
      "requires": [
        "canXRayClimb"
      ],
      "bypassesDoorShell": true,
      "note": [
        "Exit the previous room with Samus in a standing pose (while grappled).",
        "After teleporting, press right to release Grapple while staying standing (not being forced into a crouch).",
        "Then X-ray climb to get up to the door transition, without needing to open the door.",
        "Samus will not be visible during the climb."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 11,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave Shinecharged (HiJump)",
      "requires": [
        "HiJump",
        {
          "canShineCharge": {
            "usedTiles": 17,
            "openEnd": 1
          }
        },
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 25
        }
      },
      "note": [
        "Use the runway below the bug pipe to gain a shinecharge.",
        "Use HiJump to reach the door with shinecharge frames remaining."
      ],
      "devNote": [
        "One tile of runway is considered unusable in order to have space to quickly jump up onto the bomb blocks above.",
        "It could also be possible to break the bomb blocks, but this doesn't seem very worth considering."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave With Spark",
      "requires": [
        "canPreciseWalljump",
        {
          "canShineCharge": {
            "usedTiles": 17,
            "openEnd": 1
          }
        },
        "canShinechargeMovementTricky",
        {
          "shinespark": {
            "frames": 19
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "note": [
        "Use the runway below the bug pipe to gain a shinecharge.",
        "Then walljump off the bomb blocks and the bug pipe to approach the door and spark out."
      ],
      "devNote": [
        "One tile of runway is considered unusable in order to have space to quickly jump up to the bomb blocks above.",
        "It could also be possible to break the bomb blocks, but this doesn't seem very worth considering."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ]
    },
    {
      "link": [
        2,
        4
      ],
      "name": "G-Mode Morph",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump"
          ]
        }
      ],
      "note": "Fall past the first bug, wait for the second to spawn before rolling off the ledge. IBJ or bomb boost spring ball jump into the pipe."
    },
    {
      "link": [
        2,
        4
      ],
      "name": "G-Mode Morph Remote Acquire",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump",
            {
              "and": [
                "HiJump",
                "h_canArtificialMorphSpringBall"
              ]
            }
          ]
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Fall past the first bug, wait for the second to spawn before rolling off the ledge. IBJ, bomb boost spring ball jump, or HiJump Spring Fling into the pipe."
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Wave",
      "requires": [
        "Wave"
      ]
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Gate Glitch",
      "requires": [
        "h_canBlueGateGlitch"
      ]
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Green Hills Grapple Gate Glitch",
      "notable": true,
      "requires": [
        "Grapple",
        "SpeedBooster",
        "canTrickyJump"
      ],
      "note": [
        "Build up some run speed and then extend the Grapple Beam through the Blue Gate, while jumping, to open it from the wrong side."
      ]
    },
    {
      "link": [
        3,
        1
      ],
      "name": "G-Mode Indirect Despawn Gate",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": false
        }
      },
      "requires": []
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              5,
              3
            ],
            [
              7,
              2
            ]
          ]
        }
      },
      "requires": []
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      }
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      }
    },
    {
      "link": [
        3,
        1
      ],
      "name": "Grapple Teleport X-Ray Climb",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              18
            ],
            [
              2,
              19
            ],
            [
              2,
              28
            ],
            [
              2,
              29
            ]
          ]
        }
      },
      "requires": [
        "canXRayClimb"
      ],
      "bypassesDoorShell": true,
      "note": [
        "Exit the previous room with Samus in a standing pose (while grappled).",
        "After teleporting, press right to release Grapple while staying standing (not being forced into a crouch).",
        "Then X-ray climb to get up to the door transition, without needing to open the door.",
        "Samus will not be visible during the climb."
      ]
    },
    {
      "link": [
        3,
        2
      ],
      "name": "G-Mode Morph Indirect Despawn Gate - To the Top Right Door",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "canTrickyJump",
            {
              "and": [
                "h_canArtificialMorphBombs",
                "h_canArtificialMorphPowerBomb"
              ]
            },
            {
              "ammo": {
                "type": "PowerBomb",
                "count": 3
              }
            }
          ]
        },
        {
          "or": [
            "h_canArtificialMorphIBJ",
            {
              "and": [
                "h_canArtificialMorphSpringBallBombJump",
                "h_additionalBomb"
              ]
            }
          ]
        }
      ],
      "note": [
        "Use a Power Bombs to kill the first three hoppers,",
        "or carefully dodge them by quickly rolling between the first two tall flowers and waiting for the hopper to jump over Samus.",
        "The middle hopper can be killed safely with many Bombs by staying on the top left of the raised ground,",
        "without overhanging or the hopper can hit Samus. Alternatively, lure and spring ball jump past it.",
        "Killing the bugs in their pipes is possible without getting hit, or use spring ball to jump past them.",
        "Once the bugs are killed once they will stop respawning.",
        "The last hopper can be carefully killed with Bombs, killed with a Power Bomb, or dodged and lured off the edge.",
        "IBJ or bomb boost spring ball jump up to the top right door."
      ],
      "devNote": "The canTrickyJump is used for rolling into a precise location, dodging hoppers while rolling, and spring ball jumping past enemies."
    },
    {
      "link": [
        3,
        2
      ],
      "name": "Green Hills Grapple Teleport Fling to Right (from Moat)",
      "notable": true,
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              7,
              2
            ]
          ]
        }
      },
      "requires": [
        "canInsaneJump"
      ],
      "note": [
        "After teleporting, extend the Grapple, and swing back and forth to fix the camera and then to gain momentum.",
        "A precisely timed release of Grapple will allow Samus to fling onto the ledge on the right."
      ]
    },
    {
      "link": [
        3,
        2
      ],
      "name": "Green Hills Grapple Teleport into Grapple Jump (from Red Brinstar Firefleas)",
      "notable": true,
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              5,
              3
            ]
          ]
        }
      },
      "requires": [
        "canTrickyGrappleJump",
        "canInsaneJump"
      ],
      "note": [
        "After teleporting, swing back and forth to fix the camera.",
        "Swing to the right by soft-bouncing against the door followed by fully extending the Grapple Beam.",
        "Release grapple low, but not too low, to get enough momentum while also leaving enough space to gain more height with a grapple jump to reach the ledge.",
        "Holding jump just before releasing Grapple may help prevent losing momentum."
      ]
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Leave Shinecharged",
      "requires": [
        {
          "canShineCharge": {
            "usedTiles": 22,
            "openEnd": 0
          }
        },
        "canShinechargeMovement"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 140
        }
      }
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ]
    },
    {
      "link": [
        3,
        3
      ],
      "name": "G-Mode Setup - Get Hit By Sidehopper",
      "notable": false,
      "requires": [],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      }
    },
    {
      "link": [
        3,
        3
      ],
      "name": "G-Mode Regain Mobility",
      "requires": [
        {
          "enemyDamage": {
            "enemy": "Sm. Sidehopper",
            "type": "contact",
            "hits": 1
          }
        }
      ],
      "gModeRegainMobility": {}
    },
    {
      "link": [
        3,
        4
      ],
      "name": "G-Mode Morph Indirect Despawn Gate - Into the Pipe",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "indirect",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "canTrickyJump",
            {
              "and": [
                "h_canArtificialMorphBombs",
                "h_canArtificialMorphPowerBomb"
              ]
            },
            {
              "ammo": {
                "type": "PowerBomb",
                "count": 3
              }
            }
          ]
        },
        {
          "or": [
            "h_canArtificialMorphIBJ",
            "h_canArtificialMorphSpringBallBombJump",
            {
              "and": [
                "HiJump",
                "h_canArtificialMorphSpringBall"
              ]
            }
          ]
        }
      ],
      "note": [
        "Use a Power Bombs to kill the first three hoppers,",
        "or carefully dodge them by quickly rolling between the first two tall flowers and waiting for the hopper to jump over Samus.",
        "The middle hopper can be killed safely with many Bombs by staying on the top left of the raised ground,",
        "without overhanging or the hopper can hit Samus. Alternatively, lure and spring ball jump past it.",
        "Killing the bugs in their pipes is possible without getting hit, or use spring ball to jump past them.",
        "Once the bugs are killed once they will stop respawning.",
        "The last hopper can be carefully killed with Bombs, or killed with a Power Bomb, or dodged and lured off the edge.",
        "IBJ, bomb boost spring ball jump, or HiJump Spring Fling up to the pipe."
      ],
      "devNote": [
        "The canTrickyJump is used for rolling into a precise location, dodging hoppers while rolling, and spring ball jumping past enemies.",
        "This cannot be used to obtain the item remotely, as the item only spawns in direct g-mode."
      ]
    },
    {
      "link": [
        4,
        2
      ],
      "name": "G-mode Morph Remote Acquire at the Top Right Door",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        {
          "or": [
            "h_canArtificialMorphIBJ",
            {
              "and": [
                "h_canArtificialMorphSpringBallBombJump",
                "h_additionalBomb"
              ]
            }
          ]
        }
      ],
      "note": "While in g-mode, touch the item, roll out of the pipe, then get to the top right door before exiting g-mode and obtaining the item.",
      "devNote": "FIXME: Need these items without counting the item at 4."
    },
    {
      "link": [
        4,
        5
      ],
      "name": "Base",
      "requires": [
        "Morph"
      ]
    },
    {
      "link": [
        4,
        5
      ],
      "name": "Green Hill Zone X-Ray Wiggle (Out)",
      "notable": true,
      "requires": [
        "canXRayTurnaround"
      ],
      "reusableRoomwideNotable": "Green Hill Zone X-Ray Wiggle",
      "note": "It's a long Wiggle, but you can see the item before going in too far."
    },
    {
      "link": [
        4,
        5
      ],
      "name": "Green Hill Zone Tunnel Crawl (Out)",
      "notable": true,
      "requires": [
        "canTunnelCrawl"
      ],
      "reusableRoomwideNotable": "Green Hill Zone Tunnel Crawl",
      "note": "It's a long Tunnel Crawl, so there's a heavy softlock risk."
    },
    {
      "link": [
        4,
        5
      ],
      "name": "G-mode Morph Remote Acquire",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ],
      "note": "While in g-mode, touch the item, roll out of the pipe, then exit g-mode to obtain the item.",
      "devNote": "This technically goes to 1, but 5->1 is free, and this will make the room diagram cleaner."
    },
    {
      "link": [
        5,
        1
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        5,
        4
      ],
      "name": "Base",
      "requires": [
        "Morph"
      ]
    },
    {
      "link": [
        5,
        4
      ],
      "name": "Turnaround Aim Cancel",
      "requires": [
        "canTurnaroundAimCancel"
      ],
      "note": "It takes Morph or a Tunnel Crawl to get back out."
    },
    {
      "link": [
        5,
        4
      ],
      "name": "Green Hill Zone X-Ray Wiggle (In)",
      "notable": true,
      "requires": [
        "canTwoTileSqueeze",
        "canXRayTurnaround"
      ],
      "reusableRoomwideNotable": "Green Hill Zone X-Ray Wiggle",
      "note": [
        "It's a long Wiggle, but you can see the item before going in too far.",
        "Spin jumping directly into the tube will disable X-Ray, so enter aiming down to standup first."
      ]
    },
    {
      "link": [
        5,
        4
      ],
      "name": "Green Hill Zone Tunnel Crawl (In)",
      "notable": true,
      "requires": [
        "canTunnelCrawl"
      ],
      "reusableRoomwideNotable": "Green Hill Zone Tunnel Crawl",
      "note": "It's a long Tunnel Crawl, so there's a heavy softlock risk."
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "name": "Base (Collect Item)",
      "notable": false,
      "requires": [],
      "link": [
        4,
        4
      ],
      "collectsItems": [
        4
      ]
    }
  ]
}