A multi-universe randomizer for Rabi-Ribi. Multi universe will attempt to randomize locations such that multiple players must work together to find each others' items, which then unlocks new paths in each player's world. A separate client will allow playe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
MultiworldRando/constraints.txt

2159 lines
43 KiB

# Area 0: SOUTHERN_WOODLAND
0"FOREST_START" : 'CG-24',
1"FOREST_EAST_ABOVE_SPRING" : "CO-22",
2"FOREST_UPPER_EAST" : 'CQ-19',
3"FOREST_UPPER_RIVERBANK_EXIT" : 'CQ-22',
4"FOREST_LOWER_RIVERBANK_EXIT" : 'CQ-24',
5"FOREST_LIGHT_ORB_ROOM" : 'CL-19',
6"FOREST_UPPER_EAST_EGG_LEDGE" : 'CN-21',
7"FOREST_COCOA_ROOM" : "CM-23",
8"FOREST_NORTH_HP_UP_ROOM" : 'CI-20',
9"FOREST_NIGHT_TOXIC_STRIKE" : 'CE-22',
10"FOREST_NIGHT_NORTH_EAST" : 'CE-20',
11"FOREST_NIGHT_WEST" : 'BZ-22',
12"FOREST_NIGHT_ATK_UP_ROOM" : 'CC-23',
13"CAVE_ENTRANCE" : 'CD-26',
14"CAVE_COCOA" : 'CJ-27',
15"SPECTRAL_UPPER" : 'CE-28',
16"SPECTRAL_MID" : 'CG-29',
17"SPECTRAL_WEST" : 'CD-30',
18"SPECTRAL_WEST_EGG_ROOM" : 'CC-29',
19"SPECTRAL_WARP" : 'CL-30',
20"SPECTRAL_CICINI_LEDGE" : 'CP-30',
21"SPECTRAL_CICINI_ROOM" : 'CQ-30',
# Area 1: WESTERN_COAST
0"BEACH_MAIN" : 'BO-22',
1"BEACH_FOREST_ENTRANCE" : 'BW-24',
2"BEACH_UNDERWATER_ENTRANCE" : 'BC-27',
3"BEACH_VOLCANIC_ENTRANCE" : 'BH-26',
4"PYRAMID_MAIN" : 'BP-25',
5"PYRAMID_HOURGLASS_ROOM" : 'BT-26',
6"PYRAMID_WARP_ROOM" : 'BS-27',
7"PYRAMID_SOUTHWEST_ROOM" : 'BM-28',
8"PYRAMID_LOWER" : 'BQ-29',
9"PYRAMID_CHAOS_ROD_ROOM" : 'BO-28',
10"GRAVEYARD_TOP_OF_BRIDGE" : 'BB-13',
11"GRAVEYARD_MAIN" : 'BE-14',
12"GRAVEYARD_KOTRI" : 'BM-15',
13"GRAVEYARD_UPPER" : 'BF-12',
14"SKY_ISLAND_MAIN" : 'BV-14',
15"SKY_ISLAND_UPPER" : 'BU-10',
16"HALLOWEEN_UPPER" : 'BF-11',
17"HALLOWEEN_DARK_SHAFT" : 'BC-16',
18"HALLOWEEN_CENTRAL" : 'BG-16',
19"HALLOWEEN_FLOODED" : 'BE-17',
20"HALLOWEEN_PUMPKIN_HALL" : 'BL-16',
21"HALLOWEEN_EXIT" : 'BP-16',
22"HALLOWEEN_PAST_PILLARS": 'BQ-17',
# Area 2: ISLAND_CORE
0"RAVINE_LOWER" : 'AR-25',
1"RAVINE_UPPER_EAST" : 'AT-21',
2"RAVINE_UPPER_WEST" : 'AQ-19',
3"RAVINE_MANA_SURGE" : 'AT-23',
4"RAVINE_NORTH_ATTACK_UP_ROOM" : "AR-20",
5"RAVINE_CHOCOLATE" : 'AP-24',
6"RAVINE_TOWN_ENTRANCE" : 'AM-26',
7"RAVINE_BEACH_ENTRANCE" : 'AU-24',
8"PARK_MAIN" : 'AA-24',
9"PARK_KOTRI" : 'AD-26',
10"PARK_TOWN_ENTRANCE" : 'AI-26',
11"PARK_UPPER" : 'AB-18',
12"UPRPRC_BASE" : 'AE-23',
13"SKY_BRIDGE_MAIN" : 'AE-13',
14"SKY_BRIDGE_EAST" : 'AM-13',
15"SKY_BRIDGE_EAST_LOWER" : 'AO-14',
16"SKY_BRIDGE_DARK_AREA" : 'AE-17',
17"SKY_BRIDGE_HEALTH_SURGE_ROOM" : 'AD-15',
18"SKY_BRIDGE_REGEN_UP_LEDGE" : 'AI-19',
19"SKY_BRIDGE_SLIDE_AREA" : 'AH-17',
# Area 3: NORTHERN_TUNDRA
0"SNOWLAND_EAST" : 'W-25',
1"SNOWLAND_MID" : "P-24",
2"SNOWLAND_RITA" : "M-24",
3"SNOWLAND_LAKE" : "T-27",
4"SNOWLAND_WEST" : 'G-24',
5"SNOWLAND_EVERNIGHT_ENTRANCE" : 'C-24',
6"SNOWLAND_CHRISTMAS_TREE" : 'K-23',
7"PALACE_WARP_LEVEL_1_2" : "C-22",
8"PALACE_ATTACK_UP_TUNNEL" : "E-20",
9"PALACE_LEVEL_3" : "G-19",
10"PALACE_LEVEL_4" : "E-18",
11"PALACE_LEVEL_5" : "F-17",
12"ICY_SUMMIT_MAIN" : 'P-22',
13"ICY_SUMMIT_UPPER" : 'Q-18',
14"ICY_SUMMIT_NIXIE" : 'N-20',
15"AQUARIUM_TOP_ENTRANCE" : 'N-27',
16"AQUARIUM_MID" : 'O-29',
17"AQUARIUM_EAST" : 'S-30',
18"AQUARIUM_WEST" : 'I-30',
19"AQUARIUM_WATER_TOWER" : 'J-27',
20"AQUARIUM_ORB_SLIDE_MAZE" : 'W-28',
21"AQUARIUM_BOMB_WALLED_AREA" : 'V-29',
22"AQUARIUM_BEACH_ENTRANCE" : 'Y-29',
# Area 4: EASTERN_HIGHLANDS
0"RIVERBANK_MAIN_LEVEL1" : "CW-22",
1"RIVERBANK_LEVEL2" : "CY-21",
2"RIVERBANK_LEVEL3" : "CX-20",
3"RIVERBANK_LOWER_LEFT" : "CX-25",
4"RIVERBANK_LOWER_MID" : "DB-25",
5"RIVERBANK_LOWER_RIGHT" : "DE-25",
6"RIVERBANK_LOWER_HEALTH_UP_ROOM" : "DD-24",
7"RIVERBANK_PACK_UP_ROOM" : 'CT-23',
8"RIVERBANK_LOWER_FOREST_ENTRANCE" : 'CT-24',
9"RIVERBANK_UNDERGROUND" : 'CU-26',
10"EVERNIGHT_WEST_ENTRANCE" : "DG-19",
11"EVERNIGHT_NORTHWEST" : "DI-17",
12"EVERNIGHT_SPIKE_BARRIER_ROOM" : 'DE-16',
13"EVERNIGHT_WARP" : 'DK-20',
14"EVERNIGHT_SAYA" : 'DN-15',
15"EVERNIGHT_CORRIDOR_BELOW_SAYA" : 'DO-16',
16"EVERNIGHT_EAST_OF_WARP" : 'DO-18',
17"EVERNIGHT_LOWER" : 'DK-22',
18"LAB_ENTRANCE" : 'DL-25',
19"LAB_MID" : 'DI-26',
20"LAB_WEST" : 'DC-27',
21"LAB_EAST" : 'DN-28',
22"LAB_EAST_PACK_UP_ROOM" : 'DP-27',
23"LAB_SLIDING_POWDER_ROOM" : 'DG-28',
24"LAB_COMPUTER_ROOM" : 'DJ-28',
# Area 5: RABI_RABI_TOWN
0"TOWN_MAIN" : 'AK-35',
1"TOWN_SHOP" : 'AI-33',
# Area 6: PLURKWOOD
0"PLURKWOOD_MAIN" : 'CK-9',
# Area 7: SUBTERRANEAN_AREA
0"VOLCANIC_MAIN" : 'BM-32',
1"VOLCANIC_BEACH_ENTRANCE" : 'AY-33',
# Area 8: WARP_DESTINATION
# Area 9: SYSTEM_INTERIOR
0"SYSTEM_INTERIOR_MAIN" : 'DJ-35',
# Extra
"UNREACHABLE_LOCATION" : 'A-1',
// .---------------------'
// | Area 0 : Southern Woodland
// '---------------------.
// Starting Forest
{
"edge": "FOREST_START -> FOREST_EAST_ABOVE_SPRING",
"prereq": "NONE",
}
{
"edge": "FOREST_EAST_ABOVE_SPRING -> FOREST_START",
"prereq": "NONE",
}
{
"edge": "FOREST_START -> FOREST_COCOA_ROOM",
"prereq": "NONE",
}
{
"edge": "FOREST_COCOA_ROOM -> FOREST_START",
"prereq": "NONE",
}
{
"edge": "FOREST_EAST_ABOVE_SPRING -> FOREST_UPPER_EAST",
"prereq": "ITM_HARD | (SPEED1 & ITM) | AIR_DASH | AIR_JUMP",
}
{
"edge": "FOREST_UPPER_EAST -> FOREST_EAST_ABOVE_SPRING",
"prereq": "NONE",
}
{
"edge": "FOREST_UPPER_EAST -> FOREST_LIGHT_ORB_ROOM",
"prereq": "EXPLOSIVES_ENEMY & SLIDING_POWDER & PROLOGUE_TRIGGER",
}
{
"edge": "FOREST_LIGHT_ORB_ROOM -> FOREST_UPPER_EAST",
"prereq": "
DARKNESS & (
(EXPLOSIVES & (SLIDING_POWDER | HAMMER_ROLL_ZIP) & PROLOGUE_TRIGGER)
| (ADV_VHARD & EXPLOSIVES_ENEMY & SLIDE_ZIP)
)",
}
{
"edge": "FOREST_UPPER_EAST -> FOREST_UPPER_EAST_EGG_LEDGE",
"prereq": "EXPLOSIVES_ENEMY",
}
{
"edge": "FOREST_UPPER_EAST_EGG_LEDGE -> FOREST_UPPER_EAST",
"prereq": "
(EXPLOSIVES_ENEMY | SLIDE_ZIP)
& (
ADV_VHARD
| (ITM_HARD & AMULET_FOOD)
| WHIRL_BONK | RABI_SLIPPERS | BUNNY_STRIKE | AIR_JUMP | AIR_DASH
)
",
}
{
"edge": "FOREST_LIGHT_ORB_ROOM -> FOREST_UPPER_EAST_EGG_LEDGE",
"prereq": "
DARKNESS & (
(EXPLOSIVES & (SLIDING_POWDER | HAMMER_ROLL_ZIP) & PROLOGUE_TRIGGER)
| (ADV_VHARD & SLIDE_ZIP)
)",
}
{
"edge": "FOREST_UPPER_EAST_EGG_LEDGE -> FOREST_LIGHT_ORB_ROOM",
"prereq": "
EXPLOSIVES_ENEMY & SLIDING_POWDER & PROLOGUE_TRIGGER &
(ADV_VHARD
| (ITM_HARD & (AMULET_FOOD | RABI_SLIPPERS))
| WHIRL_BONK | BUNNY_STRIKE | AIR_JUMP | AIR_DASH)
",
}
{
"edge": "FOREST_EAST_ABOVE_SPRING -> FOREST_UPPER_EAST_EGG_LEDGE",
"prereq": "
(WALL_JUMP_LV2 & (AIR_JUMP | WHIRL_BONK_CANCEL))
// jump into hole to reset duck, then hammer roll bonk duck
| (ADV_VHARD & HAMMER_ROLL & (AIR_JUMP | (WALL_JUMP_LV2 & AIR_DASH)))
",
}
{
"edge": "FOREST_UPPER_EAST_EGG_LEDGE -> FOREST_EAST_ABOVE_SPRING",
"prereq": "NONE",
}
{
"edge": "FOREST_NORTH_HP_UP_ROOM -> FOREST_LIGHT_ORB_ROOM",
"prereq": "(EXPLOSIVES_ENEMY & (SLIDING_POWDER | HAMMER_ROLL_ZIP) & PROLOGUE_TRIGGER) | (ADV_VHARD & SLIDE_ZIP)",
}
{
"edge": "FOREST_LIGHT_ORB_ROOM -> FOREST_NORTH_HP_UP_ROOM",
"prereq": "DARKNESS & EXPLOSIVES & SLIDING_POWDER & PROLOGUE_TRIGGER",
}
{
"edge": "FOREST_NORTH_HP_UP_ROOM -> FOREST_START",
"prereq": "NONE",
}
{
"edge": "FOREST_START -> FOREST_NORTH_HP_UP_ROOM",
"prereq": "
(
RABI_SLIPPERS
| AIR_JUMP
| (SLIDING_POWDER & ADV_STUPID)
| BUNNY_STRIKE
| AIR_DASH
| WHIRL_BONK
) & (SLIDING_POWDER | HAMMER_ROLL_ZIP)",
}
{
"edge": "FOREST_EAST_ABOVE_SPRING -> FOREST_UPPER_RIVERBANK_EXIT",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "FOREST_UPPER_RIVERBANK_EXIT -> FOREST_EAST_ABOVE_SPRING",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "FOREST_START -> FOREST_LOWER_RIVERBANK_EXIT",
"prereq": "SLIDE_ZIP",
}
{
"edge": "FOREST_EAST_ABOVE_SPRING -> FOREST_LOWER_RIVERBANK_EXIT",
"prereq": "DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "FOREST_LOWER_RIVERBANK_EXIT -> FOREST_EAST_ABOVE_SPRING",
"prereq": "NONE",
}
// Forest Night
{
"edge": "FOREST_START -> FOREST_NIGHT_ATK_UP_ROOM",
"prereq": "
ITM & (
(AIR_JUMP & (RABI_SLIPPERS | (HARD & WALL_JUMP)))
| (WHIRL_BONK_CANCEL)
| (SLIDE_JUMP_BUNSTRIKE_CANCEL & (
AIR_JUMP
| (WALL_JUMP_LV2 & (AIR_DASH | ADV_STUPID))
))
| (ADV_HARD & HAMMER_ROLL & (
AIR_JUMP
| WALL_JUMP_LV2
))
| (ADV_STUPID & (
// slide bonk
(SLIDING_POWDER & BUNNY_AMULET & WALL_JUMP_LV2)
// 4 tile zip. amulet cancel needed for wall jump. consumables don't work.
| (SLIDE_ZIP & (AIR_JUMP | (BUNNY_AMULET & WALL_JUMP_LV2)))
// get bee into hole, airjump into hole and whirlbonk bee
| (WHIRL_BONK & AIR_JUMP)
))
)
",
}
{
"edge": "FOREST_NIGHT_ATK_UP_ROOM -> FOREST_START",
"prereq": "NONE",
}
{
"edge": "FOREST_START -> FOREST_NIGHT_TOXIC_STRIKE",
"prereq": "NONE",
}
{
"edge": "FOREST_NIGHT_TOXIC_STRIKE -> FOREST_START",
"prereq": "NONE",
}
{
"edge": "FOREST_NIGHT_WEST -> FOREST_NIGHT_ATK_UP_ROOM",
"prereq": "EXPLOSIVES_ENEMY",
}
{
"edge": "FOREST_NIGHT_ATK_UP_ROOM -> FOREST_NIGHT_WEST",
"prereq": "DARKNESS & (CARROT_SHOOTER | (CARROT_BOMB & BACKTRACK_1))",
}
{
"edge": "FOREST_NIGHT_WEST -> FOREST_START",
"prereq": "IMPOSSIBLE", // dummy edge for template constraint
}
{
"edge": "FOREST_NORTH_HP_UP_ROOM -> FOREST_NIGHT_NORTH_EAST",
"prereq": "DARKNESS & PROLOGUE_TRIGGER & SLIDING_POWDER",
}
{
"edge": "FOREST_NIGHT_NORTH_EAST -> FOREST_NORTH_HP_UP_ROOM",
"prereq": "PROLOGUE_TRIGGER & (SLIDING_POWDER | HAMMER_ROLL_ZIP)",
}
{
"edge": "FOREST_NIGHT_TOXIC_STRIKE -> FOREST_NIGHT_NORTH_EAST",
"prereq": "
ITM & DARKNESS & (
AIR_JUMP
| (WALL_JUMP_LV2 & (
RABI_SLIPPERS
| (ITM_HARD & SLIDING_POWDER)
| (ADV_HARD & SPEED1)
| AIR_DASH
| ADV_VHARD)
)
| WHIRL_BONK_CANCEL
| SLIDE_JUMP_BUNSTRIKE_CANCEL
| (ADV_VHARD & (SLIDING_POWDER | WHIRL_BONK))
| (ADV_STUPID & SPEED5)
)",
}
{
"edge": "FOREST_NIGHT_NORTH_EAST -> FOREST_NIGHT_TOXIC_STRIKE",
"prereq": "NONE",
}
{
"edge": "FOREST_NIGHT_TOXIC_STRIKE -> FOREST_NIGHT_WEST",
"prereq": "DARKNESS & PROLOGUE_TRIGGER",
}
{
"edge": "FOREST_NIGHT_WEST -> FOREST_NIGHT_TOXIC_STRIKE",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "FOREST_NIGHT_NORTH_EAST -> FOREST_NIGHT_WEST",
"prereq": "DARKNESS & DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "FOREST_NIGHT_WEST -> FOREST_NIGHT_NORTH_EAST",
"prereq": "NONE",
}
// Cave
{
"edge": "FOREST_START -> CAVE_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "CAVE_ENTRANCE -> FOREST_START",
"prereq": "NONE",
}
{
"edge": "CAVE_ENTRANCE -> CAVE_COCOA",
"prereq": "KOTRI_1 & COCOA_1 & CHAPTER_1",
}
{
"edge": "CAVE_COCOA -> CAVE_ENTRANCE",
"prereq": "NONE",
}
// Spectral
{
"edge": "CAVE_ENTRANCE -> SPECTRAL_UPPER",
"prereq": "NONE",
}
{
"edge": "SPECTRAL_UPPER -> CAVE_ENTRANCE",
"prereq": "
SLIDING_POWDER
| HAMMER_ROLL_ZIP
| WHIRL_BONK_CANCEL
| (RABI_SLIPPERS & (WALL_JUMP_LV2 | AIR_JUMP))
| (AIR_JUMP & WALL_JUMP)
",
}
{
"edge": "SPECTRAL_UPPER -> SPECTRAL_WARP",
"prereq": "NONE",
}
{
"edge": "SPECTRAL_WARP -> SPECTRAL_UPPER",
"prereq": "
(AIR_JUMP & (RABI_SLIPPERS | AIR_DASH | ITM_HARD))
| (BUNNY_STRIKE & ITM_HARD)
| AIR_DASH_LV3
| WHIRL_BONK
",
}
{
"edge": "SPECTRAL_WARP -> SPECTRAL_CICINI_LEDGE",
"prereq": "
// standing on the edge of the ledge to avoid the prologue trigger is ADV_HARD
(PROLOGUE_TRIGGER | ADV_HARD) & (
RABI_SLIPPERS | AIR_JUMP | AIR_DASH | SLIDE_JUMP_BUNSTRIKE
| (COCOA_1 & KOTRI_1 & CHAPTER_1)
| ADV_VHARD
)
"
}
{
"edge": "SPECTRAL_CICINI_LEDGE -> SPECTRAL_WARP",
"prereq": "NONE",
}
////////////////////
{
"edge": "SPECTRAL_CICINI_LEDGE -> SPECTRAL_CICINI_ROOM",
"prereq": "PROLOGUE_TRIGGER"
}
{
"edge": "SPECTRAL_CICINI_ROOM -> SPECTRAL_CICINI_LEDGE",
"prereq": "NONE",
}
{
"edge": "SPECTRAL_UPPER -> SPECTRAL_MID",
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP",
}
{
"edge": "SPECTRAL_MID -> SPECTRAL_UPPER",
"prereq": "SLIDING_POWDER",
}
{
"edge": "SPECTRAL_MID -> SPECTRAL_WARP",
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP",
}
{
"edge": "SPECTRAL_WARP -> SPECTRAL_MID",
"prereq": "SLIDE_ZIP",
}
{
"edge": "SPECTRAL_WEST_EGG_ROOM -> SPECTRAL_MID",
"prereq": "
PROLOGUE_TRIGGER & (
(AIR_JUMP & (
AIR_DASH
| (SPEED5 & ADV_HARD)
| (BUNNY_STRIKE & ITM_HARD)
| ADV_STUPID
))
| (AIR_DASH_LV3 & ADV_VHARD) // buffered wall launch
| (BUNNY_STRIKE & RABI_SLIPPERS & AIR_DASH & ADV_VHARD)
| (SLIDE_JUMP_BUNSTRIKE_CANCEL & RABI_SLIPPERS & AIR_DASH_LV3)
| (SLIDE_JUMP_BUNSTRIKE & BUNNY_AMULET & ADV_STUPID)
)",
}
{
"edge": "SPECTRAL_MID -> SPECTRAL_WEST_EGG_ROOM",
"prereq": "PROLOGUE_TRIGGER & (
AIR_DASH & (
ITM_VHARD // launch off a 1 tile wall
| (SLIDING_POWDER & ITM_HARD) // slide jump into quickdrop airdash
)
| (ITM_HARD & AIR_DASH_LV3) // quickdrop airdash or launch off the lower wall
| SLIDE_JUMP_BUNSTRIKE
| AIR_JUMP
)",
}
{
"edge": "SPECTRAL_WEST_EGG_ROOM -> SPECTRAL_WEST",
"prereq": "NONE",
}
{
"edge": "SPECTRAL_WEST -> SPECTRAL_WEST_EGG_ROOM",
"prereq": "
AIR_JUMP
| WHIRL_BONK_CANCEL
| (SLIDE_JUMP_BUNSTRIKE_CANCEL & RABI_SLIPPERS)
| (ADV_STUPID & SLIDING_POWDER) // slide bonk off bunny and wallkick up the hole
",
}
{
"edge": "SPECTRAL_MID -> SPECTRAL_WEST",
"prereq": "PROLOGUE_TRIGGER",
}
// .---------------------'
// | Area 1 : Western Coast
// '---------------------.
// Beach and Pyramid
{
"edge": "BEACH_MAIN -> BEACH_FOREST_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "BEACH_FOREST_ENTRANCE -> BEACH_MAIN",
"prereq": "NONE",
}
{
"edge": "BEACH_MAIN -> BEACH_UNDERWATER_ENTRANCE",
"prereq": "DOWNDRILL_SEMISOLID_CLIP | EXPLOSIVES_ENEMY",
}
{
"edge": "BEACH_UNDERWATER_ENTRANCE -> BEACH_MAIN",
"prereq": "NONE",
}
{
"edge": "BEACH_MAIN -> BEACH_VOLCANIC_ENTRANCE",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "BEACH_VOLCANIC_ENTRANCE -> BEACH_MAIN",
"prereq": "PROLOGUE_TRIGGER &
(AIR_JUMP | SLIDE_JUMP_BUNSTRIKE_CANCEL | WALL_JUMP_LV2 | (RABI_SLIPPERS & WALL_JUMP))
",
}
{
"edge": "BEACH_MAIN -> PYRAMID_MAIN",
"prereq": "PROLOGUE_TRIGGER | SLIDE_ZIP",
}
{
"edge": "PYRAMID_MAIN -> BEACH_MAIN",
"prereq": "PROLOGUE_TRIGGER | EXPLOSIVES",
}
{
"edge": "PYRAMID_MAIN -> PYRAMID_WARP_ROOM",
"prereq": "NONE",
}
{
"edge": "PYRAMID_WARP_ROOM -> PYRAMID_MAIN",
"prereq": "NONE",
}
{
"edge": "PYRAMID_MAIN -> PYRAMID_HOURGLASS_ROOM",
"prereq": "NONE",
}
{
"edge": "PYRAMID_HOURGLASS_ROOM -> PYRAMID_MAIN",
"prereq": "ITM_HARD | AIR_JUMP | WALL_JUMP | RABI_SLIPPERS",
}
{
"edge": "PYRAMID_HOURGLASS_ROOM -> PYRAMID_WARP_ROOM",
"prereq": "NONE",
}
{
"edge": "PYRAMID_WARP_ROOM -> PYRAMID_HOURGLASS_ROOM",
"prereq": "
(AIR_JUMP & (
RABI_SLIPPERS
| SLIDE_JUMP_BUNSTRIKE_CANCEL
| WALL_JUMP_LV2
)) | (RABI_SLIPPERS & WALL_JUMP_LV2 & SLIDE_JUMP_BUNSTRIKE_CANCEL)
",
}
{
"edge": "PYRAMID_WARP_ROOM -> PYRAMID_LOWER",
"prereq": "
AIR_JUMP
| AIR_DASH
| (RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE)
| ADV_VHARD
",
}
{
"edge": "PYRAMID_LOWER -> PYRAMID_WARP_ROOM",
"prereq": "NONE",
}
{
"edge": "PYRAMID_LOWER -> PYRAMID_CHAOS_ROD_ROOM",
"prereq": "
SLIDING_POWDER & (
AIR_JUMP
| (AIR_DASH & (RABI_SLIPPERS | ITM_HARD))
| ADV_VHARD
)
",
}
{
"edge": "PYRAMID_CHAOS_ROD_ROOM -> PYRAMID_LOWER",
"prereq": "
SLIDING_POWDER &
(EXPLOSIVES | DOWNDRILL_SEMISOLID_CLIP)
",
}
{
"edge": "PYRAMID_CHAOS_ROD_ROOM -> PYRAMID_SOUTHWEST_ROOM",
"prereq": "TM_PANDORA & SLIDE_ZIP",
}
{
"edge": "PYRAMID_SOUTHWEST_ROOM -> PYRAMID_CHAOS_ROD_ROOM",
"prereq": "(TM_PANDORA & SLIDING_POWDER) | SLIDE_ZIP | HAMMER_ROLL_ZIP",
}
{
"edge": "PYRAMID_SOUTHWEST_ROOM -> PYRAMID_MAIN",
"prereq": "NONE",
}
{
"edge": "PYRAMID_MAIN -> PYRAMID_SOUTHWEST_ROOM",
"prereq": "DOWNDRILL_SEMISOLID_CLIP | EXPLOSIVES",
}
// Graveyard and Sky Island
{
"edge": "GRAVEYARD_MAIN -> GRAVEYARD_UPPER",
"prereq": "
(
// First jump
AIR_JUMP
| (RABI_SLIPPERS & (SLIDE_JUMP_BUNSTRIKE | (ADV_VHARD & AMULET_FOOD)))
| WHIRL_BONK
| (AIR_DASH & (ITM_HARD | RABI_SLIPPERS))
// slide bonk
| (SLIDING_POWDER & ADV_VHARD)
// damage boost
| ADV_STUPID
) & (
// Second jump
AIR_JUMP
| RABI_SLIPPERS
| (WALL_JUMP & ITM_HARD)
| WHIRL_BONK_CANCEL
| SLIDE_JUMP_BUNSTRIKE_CANCEL
// never ever slide bonk
| (ADV_STUPID & (SLIDING_POWDER | WHIRL_BONK))
)
",
}
{
"edge": "GRAVEYARD_UPPER -> GRAVEYARD_MAIN",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_UPPER -> GRAVEYARD_TOP_OF_BRIDGE",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_TOP_OF_BRIDGE -> GRAVEYARD_UPPER",
"prereq": "AIR_JUMP & RABI_SLIPPERS & (SPEED1 | AIR_DASH)",
}
{
"edge": "GRAVEYARD_MAIN -> GRAVEYARD_TOP_OF_BRIDGE",
"prereq": "WHIRL_BONK | (RABI_SLIPPERS & AIR_JUMP & (AIR_DASH | ADV_VHARD))",
}
{
"edge": "GRAVEYARD_TOP_OF_BRIDGE -> GRAVEYARD_MAIN",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_MAIN -> GRAVEYARD_KOTRI",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_KOTRI -> GRAVEYARD_MAIN",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_KOTRI -> SKY_ISLAND_MAIN",
"prereq": "NONE",
}
{
"edge": "SKY_ISLAND_MAIN -> GRAVEYARD_KOTRI",
"prereq": "NONE",
}
{
"edge": "SKY_ISLAND_MAIN -> SKY_ISLAND_UPPER",
"prereq": "
(BUNNY_STRIKE & ITM_HARD)
| (AIR_JUMP & ((RABI_SLIPPERS & SPEED1) | AIR_DASH | WALL_JUMP | ITM_HARD))
| (AIR_DASH_LV3 & (WALL_JUMP | ADV_HARD))
",
}
{
"edge": "SKY_ISLAND_UPPER -> SKY_ISLAND_MAIN",
"prereq": "NONE",
}
{
"edge": "SKY_ISLAND_MAIN -> BEACH_MAIN",
"prereq": "EXPLOSIVES",
}
// Halloween
{
"edge": "GRAVEYARD_UPPER -> HALLOWEEN_UPPER",
"prereq": "
HALLOWEEN & EXPLOSIVES_ENEMY
& (
WHIRL_BONK
| (SLIDING_POWDER & ADV_STUPID)
| (AIR_JUMP & (
ITM_HARD
| RABI_SLIPPERS
| SLIDE_JUMP_BUNSTRIKE_CANCEL
| BUNNY_WHIRL
| AIR_DASH
) )
)
",
}
// important nonsense - no explosives necessary
{
"edge": "SKY_ISLAND_UPPER -> HALLOWEEN_UPPER",
"prereq": "HALLOWEEN & RABI_SLIPPERS & AIR_JUMP & WALL_JUMP_LV2 & BUNNY_STRIKE & BUNNY_AMULET_LV2 & AIR_DASH & ADV_STUPID",
}
{
"edge": "HALLOWEEN_UPPER -> GRAVEYARD_UPPER",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_MAIN -> HALLOWEEN_DARK_SHAFT",
"prereq": "
HALLOWEEN & DARKNESS
// Divided by room
& (BUNNY_WHIRL | (CARROT_SHOOTER & BOOST))
& (
BUNNY_WHIRL
| (SLIDING_POWDER & ADV_HARD)
| (AIR_DASH & (RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE_CANCEL))
| (RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE)
| ADV_STUPID
) & EXPLOSIVES
",
}
{
"edge": "HALLOWEEN_DARK_SHAFT -> GRAVEYARD_MAIN",
"prereq": "
DARKNESS & EXPLOSIVES
& (
AIR_JUMP
| WALL_JUMP_LV2
| (BUNNY_WHIRL & (RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE_CANCEL))
) & (
BUNNY_WHIRL
| (SLIDING_POWDER & ADV_HARD)
| (AIR_DASH & (RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE_CANCEL))
| (RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE)
| ADV_STUPID
)
",
}
{
"edge": "HALLOWEEN_DARK_SHAFT -> HALLOWEEN_CENTRAL",
"prereq": "
DARKNESS
& (
(AIR_JUMP & WALL_JUMP_LV2)
| (AIR_JUMP & BUNNY_WHIRL & RABI_SLIPPERS)
| (AIR_JUMP & BUNNY_WHIRL & SLIDE_JUMP_BUNSTRIKE_CANCEL)
| (AIR_JUMP & RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE_CANCEL)
| (WHIRL_BONK_CANCEL & (WALL_JUMP_LV2 | ADV_VHARD))
)
",
}
{
"edge": "HALLOWEEN_CENTRAL -> HALLOWEEN_DARK_SHAFT",
"prereq": "DARKNESS",
}
{
"edge": "GRAVEYARD_MAIN -> HALLOWEEN_CENTRAL",
"prereq": "HALLOWEEN & SLIDE_ZIP",
}
{
"edge": "HALLOWEEN_CENTRAL -> HALLOWEEN_FLOODED",
"prereq": "SLIDING_POWDER & BUNNY_WHIRL & (CARROT_BOMB | (CARROT_SHOOTER & BOOST_MANY))",
}
//This edge does not provide a particularly useful path
//{
//"edge": "HALLOWEEN_FLOODED -> HALLOWEEN_CENTRAL",
//"prereq": "(CARROT_SHOOTER & BOOST) & SLIDE_ZIP & HAMMER_ROLL_ZIP & ADV_STUPID & AMULET_FOOD",
//}
{
"edge": "HALLOWEEN_FLOODED -> HALLOWEEN_PUMPKIN_HALL",
"prereq": "(EXPLOSIVES & SLIDING_POWDER & BUNNY_WHIRL) | (EXPLOSIVES & SLIDE_ZIP & ADV_STUPID)",
}
{
"edge": "HALLOWEEN_FLOODED -> BEACH_MAIN",
"prereq": "WATER_ORB & HAMMER_ROLL_ZIP",
}
{
"edge": "HALLOWEEN_CENTRAL -> HALLOWEEN_PUMPKIN_HALL",
"prereq": "
(SLIDING_POWDER & DOWNDRILL_SEMISOLID_CLIP & EXPLOSIVES)
| (HAMMER_ROLL_ZIP & EXPLOSIVES)
| (SLIDE_ZIP & (CARROT_BOMB | (CARROT_SHOOTER & BOOST & ADV_STUPID)))
",
}
{
"edge": "HALLOWEEN_PUMPKIN_HALL -> HALLOWEEN_CENTRAL",
"prereq": "CARROT_BOMB | (CARROT_SHOOTER & BOOST_MANY)",
}
{
"edge": "HALLOWEEN_PUMPKIN_HALL -> HALLOWEEN_EXIT",
"prereq": "
(CARROT_BOMB | (CARROT_SHOOTER & BOOST_MANY & ADV)) &
(
WHIRL_BONK
| SLIDE_JUMP_BUNSTRIKE
| (AIR_JUMP & (ADV_VHARD | RABI_SLIPPERS))
| (RABI_SLIPPERS & AIR_DASH_LV3)
) & (SLIDE_ZIP | BUNNY_WHIRL)
",
}
{
"edge": "HALLOWEEN_EXIT -> GRAVEYARD_KOTRI",
"prereq": "NONE",
}
{
"edge": "GRAVEYARD_KOTRI -> HALLOWEEN_EXIT",
"prereq": "HALLOWEEN & DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "HALLOWEEN_EXIT -> HALLOWEEN_PAST_PILLARS",
"prereq": "
// RIBBON &
AIR_JUMP
| AIR_DASH
| RABI_SLIPPERS
| SLIDE_JUMP_BUNSTRIKE
| BUNNY_WHIRL
| (ADV_VHARD & AMULET_FOOD)
| WALL_JUMP
",
}
{
"edge": "HALLOWEEN_PAST_PILLARS -> HALLOWEEN_EXIT",
"prereq": "NONE",
}
// .---------------------'
// | Area 2 : Island Core
// '---------------------.
// Ravine
{
"edge": "RAVINE_BEACH_ENTRANCE -> RAVINE_LOWER",
"prereq": "NONE",
}
{
"edge": "RAVINE_LOWER -> RAVINE_BEACH_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "RAVINE_LOWER -> RAVINE_TOWN_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "RAVINE_TOWN_ENTRANCE -> RAVINE_LOWER",
"prereq": "NONE",
}
{
"edge": "RAVINE_LOWER -> RAVINE_MANA_SURGE",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "RAVINE_MANA_SURGE -> RAVINE_LOWER",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "RAVINE_UPPER_EAST -> RAVINE_MANA_SURGE",
"prereq": "SLIDING_POWDER & DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "RAVINE_MANA_SURGE -> RAVINE_UPPER_EAST",
"prereq": "NONE",
}
{
"edge": "RAVINE_LOWER -> RAVINE_UPPER_EAST",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "RAVINE_UPPER_EAST -> RAVINE_LOWER",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "RAVINE_LOWER -> RAVINE_UPPER_WEST",
"prereq": "(SLIDING_POWDER | PROLOGUE_TRIGGER) & (
// going up the long chasm
WALL_JUMP_LV2 & (AIR_JUMP | (ADV_VHARD & WHIRL_BONK_CANCEL))
)",
}
{
"edge": "RAVINE_UPPER_WEST -> RAVINE_LOWER",
"prereq": "NONE", // semisolid
}
{
"edge": "RAVINE_UPPER_EAST -> RAVINE_UPPER_WEST",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "RAVINE_UPPER_WEST -> RAVINE_UPPER_EAST",
"prereq": "PROLOGUE_TRIGGER",
}
{
"edge": "RAVINE_UPPER_EAST -> RAVINE_NORTH_ATTACK_UP_ROOM",
"prereq": "
// Jumping up the chasm
(ADV_VHARD & WALL_JUMP_LV2 & AIR_JUMP & (SLIDING_POWDER | SPEED5))
| (ADV_STUPID & SLIDE_JUMP_BUNSTRIKE_CANCEL & RABI_SLIPPERS & (WALL_JUMP_LV2 | (WALL_JUMP & AIR_JUMP)))
",
}
{
"edge": "RAVINE_NORTH_ATTACK_UP_ROOM -> RAVINE_UPPER_EAST",
"prereq": "NONE",
}
{
"edge": "RAVINE_UPPER_WEST -> RAVINE_NORTH_ATTACK_UP_ROOM",
"prereq": "SLIDING_POWDER",
}
{
"edge": "RAVINE_NORTH_ATTACK_UP_ROOM -> RAVINE_UPPER_WEST",
"prereq": "SLIDING_POWDER & 8TILE_WALLJUMP",
}
{
"edge": "RAVINE_UPPER_WEST -> RAVINE_CHOCOLATE",
"prereq": "NONE",
}
{
"edge": "RAVINE_CHOCOLATE -> RAVINE_UPPER_WEST",
"prereq": "
// From save room up to ledge below egg
(
(ITM & RABI_SLIPPERS & ((AIR_DASH & ADV_VHARD) | AIR_DASH_LV3))
| (AIR_JUMP & (ITM_HARD | RABI_SLIPPERS))
| (ADV_VHARD & SLIDE_JUMP_BUNSTRIKE & RABI_SLIPPERS)
)
// From ledge below egg to flower ledge
& (AIR_DASH | AIR_JUMP | RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE | ADV_VHARD)
// Jumping up hole above chocolate arena
& (
((AIR_JUMP | WALL_JUMP_LV2) & (RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE))
| (AIR_JUMP & WALL_JUMP_LV2)
| (AIR_JUMP & WALL_JUMP & AIR_DASH)
| TM_CHOCOLATE
)
",
}
{
"edge": "RAVINE_CHOCOLATE -> RAVINE_LOWER",
"prereq": "NONE",
}
{
"edge": "RAVINE_LOWER -> RAVINE_CHOCOLATE",
"prereq": "
(AIR_JUMP & ((ITM & SPEED1) | AIR_DASH | ADV_VHARD))
| WHIRL_BONK
| (ADV_STUPID & RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE_CANCEL & AIR_DASH & BUNNY_AMULET_LV2)
| (ADV_HARD & RABI_SLIPPERS & WALL_JUMP & AIR_DASH & (SLIDING_POWDER | SPEED5))
",
}
// Park and Sky Bridge
{
"edge": "PARK_MAIN -> PARK_KOTRI",
"prereq": "NONE",
}
{
"edge": "PARK_KOTRI -> PARK_MAIN",
"prereq": "NONE",
}
{
"edge": "PARK_KOTRI -> PARK_TOWN_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "PARK_TOWN_ENTRANCE -> PARK_KOTRI",
"prereq": "NONE",
}
{
"edge": "PARK_MAIN -> UPRPRC_BASE",
"prereq": "NONE",
}
{
"edge": "UPRPRC_BASE -> PARK_MAIN",
"prereq": "NONE",
}
{
"edge": "PARK_MAIN -> PARK_UPPER",
"prereq": "NONE",
}
{
"edge": "PARK_UPPER -> PARK_MAIN",
"prereq": "NONE",
}
{
"edge": "PARK_UPPER -> SKY_BRIDGE_MAIN",
"prereq": "NONE",
}
{
"edge": "PARK_MAIN -> SKY_BRIDGE_SLIDE_AREA",
// consumables do not work due to screen transition
"prereq": "ADV_STUPID & SLIDE_ZIP & BUNNY_AMULET",
}
{
"edge": "SKY_BRIDGE_MAIN -> PARK_UPPER",
"prereq": "NONE",
}
{
"edge": "SKY_BRIDGE_MAIN -> SKY_BRIDGE_EAST",
"prereq": "NONE",
}
{
"edge": "SKY_BRIDGE_EAST -> SKY_BRIDGE_MAIN",
"prereq": "NONE",
}
{
"edge": "SKY_BRIDGE_EAST -> SKY_BRIDGE_EAST_LOWER",
"prereq": "NONE",
}
{
"edge": "SKY_BRIDGE_EAST_LOWER -> SKY_BRIDGE_EAST",
"prereq": "NONE",
}
{
"edge": "SKY_BRIDGE_MAIN -> SKY_BRIDGE_DARK_AREA",
"prereq": "DARKNESS",
}
{
"edge": "SKY_BRIDGE_DARK_AREA -> SKY_BRIDGE_MAIN",
"prereq": "DARKNESS",
}
{
"edge": "SKY_BRIDGE_DARK_AREA -> SKY_BRIDGE_HEALTH_SURGE_ROOM",
"prereq": "
DARKNESS & (
EXPLOSIVES
| (ADV_VHARD & AIR_JUMP & WALL_JUMP_LV2)
| (ADV_STUPID & (
(WHIRL_BONK_CANCEL & WALL_JUMP)
| (AIR_JUMP & SLIDE_JUMP_BUNSTRIKE_CANCEL)
))
)
",
}
{
"edge": "SKY_BRIDGE_HEALTH_SURGE_ROOM -> SKY_BRIDGE_DARK_AREA",
"prereq": "DARKNESS",
}
{
"edge": "SKY_BRIDGE_MAIN -> SKY_BRIDGE_HEALTH_SURGE_ROOM",
"prereq": "IMPOSSIBLE",
}
{
"edge": "SKY_BRIDGE_HEALTH_SURGE_ROOM -> SKY_BRIDGE_MAIN",
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP",
}
{
"edge": "SKY_BRIDGE_DARK_AREA -> SKY_BRIDGE_SLIDE_AREA",
"prereq": "SLIDE_ZIP | HAMMER_ROLL_ZIP",
}
{
"edge": "SKY_BRIDGE_SLIDE_AREA -> SKY_BRIDGE_DARK_AREA",
"prereq": "SLIDING_POWDER",
}
{
"edge": "SKY_BRIDGE_MAIN -> SKY_BRIDGE_REGEN_UP_LEDGE",
"prereq": "
AIR_DASH
| AIR_JUMP
| ((ADV_HARD | (ITM_HARD & BUNNY_AMULET)) & (
SLIDING_POWDER
| HAMMER_ROLL_ZIP
| (ADV_VHARD & (RABI_SLIPPERS & AMULET_FOOD))
| (ADV_STUPID & WALL_JUMP_LV2 & 2_AMULET_FOOD)
))
",
}
{
"edge": "SKY_BRIDGE_REGEN_UP_LEDGE -> PARK_TOWN_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "SKY_BRIDGE_SLIDE_AREA -> SKY_BRIDGE_REGEN_UP_LEDGE",
"prereq": "
DARKNESS & (
((SLIDING_POWDER | HAMMER_ROLL_ZIP) & (
AIR_JUMP
| AIR_DASH
| (ADV_HARD | (ITM_HARD & BUNNY_AMULET))
))
| (SLIDING_POWDER & EXPLOSIVES)
)
",
}
{
"edge": "SKY_BRIDGE_REGEN_UP_LEDGE -> SKY_BRIDGE_SLIDE_AREA",
"prereq": "CARROT_BOMB & SLIDING_POWDER",
}
{
"edge": "SKY_BRIDGE_MAIN -> SKY_BRIDGE_SLIDE_AREA",
"prereq": "DARKNESS & SLIDE_ZIP",
}
{
"edge": "SKY_BRIDGE_MAIN -> PARK_TOWN_ENTRANCE",
"prereq": "
AIR_DASH
| AIR_JUMP
| SLIDING_POWDER
| HAMMER_ROLL_ZIP
| (ADV_VHARD & (RABI_SLIPPERS & AMULET_FOOD))
| (ADV_STUPID & WALL_JUMP_LV2 & 2_AMULET_FOOD)
",
}
{
"edge": "SKY_BRIDGE_SLIDE_AREA -> PARK_TOWN_ENTRANCE",
// technically goes through SKY_BRIDGE_MAIN, but not really important
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP",
}
{
"edge": "PARK_UPPER -> SKY_BRIDGE_SLIDE_AREA",
"prereq": "SLIDE_ZIP",
}
// .---------------------'
// | Area 3 : Northern Tundra
// '---------------------.
// Snowland, Palace and Icy Summit
{
"edge": "SNOWLAND_EAST -> SNOWLAND_MID",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_MID -> SNOWLAND_EAST",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_EAST -> SNOWLAND_LAKE",
"prereq": "UNDERWATER",
}
{
"edge": "SNOWLAND_LAKE -> SNOWLAND_EAST",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_LAKE -> SNOWLAND_MID",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_MID -> SNOWLAND_LAKE",
"prereq": "UNDERWATER",
}
{
"edge": "SNOWLAND_MID -> SNOWLAND_RITA",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_RITA -> SNOWLAND_MID",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_WEST -> SNOWLAND_RITA",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_RITA -> SNOWLAND_WEST",
"prereq": "SLIDING_POWDER",
}
{
"edge": "SNOWLAND_RITA -> SNOWLAND_CHRISTMAS_TREE",
"prereq": "EXPLOSIVES & SLIDING_POWDER",
}
{
"edge": "SNOWLAND_CHRISTMAS_TREE -> SNOWLAND_RITA",
"prereq": "EXPLOSIVES & (SLIDING_POWDER | HAMMER_ROLL_ZIP)",
}
{
"edge": "SNOWLAND_WEST -> SNOWLAND_CHRISTMAS_TREE",
"prereq": "
(AIR_JUMP & AIR_DASH)
| (AIR_JUMP & SLIDE_JUMP_BUNSTRIKE_CANCEL)
| (ADV_STUPID & SLIDE_JUMP_BUNSTRIKE_CANCEL & BUNNY_AMULET_LV2 & WALL_JUMP & AIR_DASH)
| (WHIRL_BONK & (ADV_VHARD | AIR_JUMP))
",
}
{
"edge": "SNOWLAND_CHRISTMAS_TREE -> SNOWLAND_WEST",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_MID -> ICY_SUMMIT_MAIN",
"prereq": "NONE",
}
{
"edge": "ICY_SUMMIT_MAIN -> SNOWLAND_MID",
"prereq": "NONE",
}
{
"edge": "ICY_SUMMIT_MAIN -> ICY_SUMMIT_UPPER",
"prereq": "NONE",
}
{
"edge": "ICY_SUMMIT_UPPER -> ICY_SUMMIT_MAIN",
"prereq": "NONE",
}
{
"edge": "ICY_SUMMIT_MAIN -> ICY_SUMMIT_NIXIE",
"prereq": "
WHIRL_BONK_CANCEL
| (AIR_JUMP & (
((RABI_SLIPPERS | (SLIDE_JUMP_BUNSTRIKE_CANCEL & ADV_VHARD)) & AIR_DASH)
| (WALL_JUMP_LV2)
| (ADV_STUPID & (RABI_SLIPPERS | SLIDING_POWDER)) // damage boost + maybe slide bonk
))"
}
{
"edge": "ICY_SUMMIT_NIXIE -> ICY_SUMMIT_MAIN",
"prereq": "NONE",
}
{
"edge": "ICY_SUMMIT_UPPER -> ICY_SUMMIT_NIXIE",
"prereq": "NONE",
}
{
"edge": "ICY_SUMMIT_NIXIE -> ICY_SUMMIT_UPPER",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_WEST -> PALACE_WARP_LEVEL_1_2",
"prereq": "NONE",
}
{
"edge": "PALACE_WARP_LEVEL_1_2 -> SNOWLAND_WEST",
"prereq": "NONE",
}
{
"edge": "PALACE_WARP_LEVEL_1_2 -> PALACE_LEVEL_3",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_3 -> PALACE_WARP_LEVEL_1_2",
"prereq": "NONE",
}
{
"edge": "PALACE_WARP_LEVEL_1_2 -> PALACE_ATTACK_UP_TUNNEL",
"prereq": "
AIR_JUMP
| (WALL_JUMP_LV2 & (ITM_HARD | RABI_SLIPPERS))
| ((RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE_CANCEL) & AIR_DASH)
// can probably be done with lower level items, haven't done it successfully yet.
| (SPEED3 & AIR_DASH_LV3 & ADV_STUPID)
| (ADV_HARD & WHIRL_BONK)
",
}
{
"edge": "PALACE_ATTACK_UP_TUNNEL -> PALACE_WARP_LEVEL_1_2",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_3 -> PALACE_ATTACK_UP_TUNNEL",
"prereq": "NONE",
}
{
"edge": "PALACE_ATTACK_UP_TUNNEL -> PALACE_LEVEL_3",
"prereq": "
AIR_JUMP
| (WALL_JUMP_LV2 & (ITM_HARD | RABI_SLIPPERS))
| (RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE_CANCEL & BUNNY_AMULET_LV2)
| (WHIRL_BONK_CANCEL)
",
}
{
"edge": "PALACE_LEVEL_3 -> PALACE_LEVEL_4",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_4 -> PALACE_LEVEL_3",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_4 -> PALACE_LEVEL_5",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_5 -> PALACE_LEVEL_4",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_5 -> SNOWLAND_WEST",
"prereq": "NONE",
}
{
"edge": "PALACE_LEVEL_5 -> SNOWLAND_CHRISTMAS_TREE",
"prereq": "ITM | AIR_JUMP | AIR_DASH",
}
{
"edge": "SNOWLAND_WEST -> SNOWLAND_EVERNIGHT_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "SNOWLAND_EVERNIGHT_ENTRANCE -> SNOWLAND_WEST",
"prereq": "NONE",
}
// Aquarium
{
"edge": "SNOWLAND_WEST -> AQUARIUM_TOP_ENTRANCE",
"prereq": "UNDERWATER",
}
{
"edge": "AQUARIUM_TOP_ENTRANCE -> SNOWLAND_WEST",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_TOP_ENTRANCE -> AQUARIUM_MID",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_MID -> AQUARIUM_TOP_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_TOP_ENTRANCE -> AQUARIUM_WEST",
"prereq": "DARKNESS",
}
{
"edge": "AQUARIUM_WEST -> AQUARIUM_TOP_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_MID -> AQUARIUM_EAST",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_EAST -> AQUARIUM_MID",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_WEST -> AQUARIUM_EAST",
"prereq": "NONE",
}
{
"edge": "AQUARIUM_EAST -> AQUARIUM_WEST",
"prereq": "DARKNESS",
}
{
"edge": "SNOWLAND_LAKE -> AQUARIUM_MID",
"prereq": "FIRE_ORB",
}
{
"edge": "AQUARIUM_MID -> SNOWLAND_LAKE",
"prereq": "FIRE_ORB",
}
{
"edge": "AQUARIUM_WEST -> AQUARIUM_WATER_TOWER",
"prereq": "
WATER_ORB & EXPLOSIVES &
(
(WALL_JUMP_LV2 & RABI_SLIPPERS & ITM_HARD) // you need to disable speed boost
| (WALL_JUMP & RABI_SLIPPERS & AIR_JUMP)
| (WALL_JUMP_LV2 & AIR_JUMP)
| (WALL_JUMP_LV2 & WHIRL_BONK_CANCEL)
| (WHIRL_BONK_CANCEL & AIR_JUMP & RABI_SLIPPERS & ADV_HARD)
| (WHIRL_BONK_CANCEL & ADV_STUPID)
)
",
}
{
"edge": "AQUARIUM_WATER_TOWER -> AQUARIUM_WEST",
"prereq": "
DARKNESS & WATER_ORB & (
WALL_JUMP_LV2
| (RABI_SLIPPERS & AIR_DASH_LV3 & ITM_HARD)
| (AIR_JUMP & (
WALL_JUMP
| RABI_SLIPPERS
// airdash to opposite wall and wallkick off it
| (AIR_DASH & ITM_HARD)
// aj, rwj, qd, amulet, wk
| ADV_HARD
// wimpy, bounce
| ADV_STUPID
))
)
",
}
{
"edge": "AQUARIUM_EAST -> AQUARIUM_BOMB_WALLED_AREA",
"prereq": "EXPLOSIVES | (WATER_ORB & HAMMER_ROLL_ZIP)",
}
{
"edge": "AQUARIUM_BOMB_WALLED_AREA -> AQUARIUM_EAST",
"prereq": "EXPLOSIVES_ENEMY",
}
{
"edge": "AQUARIUM_EAST -> AQUARIUM_ORB_SLIDE_MAZE",
"prereq": "EXPLOSIVES_ENEMY",
}
{
"edge": "AQUARIUM_ORB_SLIDE_MAZE -> AQUARIUM_EAST",
"prereq": "EXPLOSIVES",
}
{
"edge": "AQUARIUM_ORB_SLIDE_MAZE -> AQUARIUM_BOMB_WALLED_AREA",
"prereq": "EXPLOSIVES",
}
{
"edge": "AQUARIUM_BOMB_WALLED_AREA -> AQUARIUM_ORB_SLIDE_MAZE",
"prereq": "IMPOSSIBLE",
}
{
"edge": "AQUARIUM_BOMB_WALLED_AREA -> AQUARIUM_BEACH_ENTRANCE",
"prereq": "EXPLOSIVES",
}
{
"edge": "AQUARIUM_BEACH_ENTRANCE -> AQUARIUM_BOMB_WALLED_AREA",
"prereq": "UNDERWATER & ((CARROT_SHOOTER & BOOST) | (CARROT_BOMB & SLIDING_POWDER))",
}
// .---------------------'
// | Area 4 : Eastern Highlands
// '---------------------.
// Riverbank
{
"edge": "RIVERBANK_MAIN_LEVEL1 -> RIVERBANK_LOWER_LEFT",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LOWER_LEFT -> RIVERBANK_MAIN_LEVEL1",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_MAIN_LEVEL1 -> RIVERBANK_LOWER_MID",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LOWER_MID -> RIVERBANK_MAIN_LEVEL1",
"prereq": "AIR_JUMP | WHIRL_BONK_CANCEL",
}
{
"edge": "RIVERBANK_LOWER_LEFT -> RIVERBANK_LOWER_MID",
"prereq": "DOWNDRILL_SEMISOLID_CLIP | (PIKO_HAMMER_LEVELED & RABI_SLIPPERS) | BUNNY_WHIRL | AIR_DASH | (EXPLOSIVES_ENEMY & BACKTRACK_3)",
}
{
"edge": "RIVERBANK_LOWER_MID -> RIVERBANK_LOWER_LEFT",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LOWER_MID -> RIVERBANK_LOWER_RIGHT",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LOWER_RIGHT -> RIVERBANK_LOWER_MID",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_MAIN_LEVEL1 -> RIVERBANK_LOWER_HEALTH_UP_ROOM",
"prereq": "DOWNDRILL_SEMISOLID_CLIP & (SLIDING_POWDER | HAMMER_ROLL_ZIP)",
}
{
"edge": "RIVERBANK_LOWER_HEALTH_UP_ROOM -> RIVERBANK_MAIN_LEVEL1",
"prereq": "SLIDING_POWDER",
}
{
"edge": "RIVERBANK_LOWER_RIGHT -> RIVERBANK_LOWER_HEALTH_UP_ROOM",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LOWER_HEALTH_UP_ROOM -> RIVERBANK_LOWER_RIGHT",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_MAIN_LEVEL1 -> RIVERBANK_PACK_UP_ROOM",
"prereq": "SLIDING_POWDER & EXPLOSIVES",
}
{
"edge": "RIVERBANK_MAIN_LEVEL1 -> RIVERBANK_LOWER_FOREST_ENTRANCE",
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP | (ADV_STUPID & EXPLOSIVES & AIR_DASH_LV3)",
}
{
"edge": "RIVERBANK_PACK_UP_ROOM -> RIVERBANK_LOWER_FOREST_ENTRANCE",
"prereq": "EXPLOSIVES",
}
{
"edge": "RIVERBANK_LOWER_FOREST_ENTRANCE -> RIVERBANK_PACK_UP_ROOM",
"prereq": "CARROT_SHOOTER & BOOST",
}
{
"edge": "RIVERBANK_LOWER_LEFT -> RIVERBANK_LOWER_FOREST_ENTRANCE",
"prereq": "
SLIDING_POWDER
| AIR_JUMP
| (AIR_DASH & (RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE_CANCEL))
| WHIRL_BONK
| (RABI_SLIPPERS & ADV_STUPID) // damage boost off spider bullets
",
}
{
"edge": "RIVERBANK_LOWER_FOREST_ENTRANCE -> RIVERBANK_LOWER_LEFT",
"prereq": "
SLIDING_POWDER
| AIR_DASH
| AIR_JUMP
| WHIRL_BONK
| (ADV_VHARD & RABI_SLIPPERS & BUNNY_AMULET)
",
}
{
"edge": "RIVERBANK_LOWER_FOREST_ENTRANCE -> RIVERBANK_UNDERGROUND",
"prereq": "EXPLOSIVES",
}
{
"edge": "RIVERBANK_UNDERGROUND -> RIVERBANK_LOWER_LEFT",
"prereq": "EXPLOSIVES",
}
{
"edge": "RIVERBANK_MAIN_LEVEL1 -> RIVERBANK_LEVEL2",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LEVEL2 -> RIVERBANK_MAIN_LEVEL1",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LEVEL2 -> RIVERBANK_LEVEL3",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LEVEL3 -> RIVERBANK_LEVEL2",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LEVEL3 -> RIVERBANK_LOWER_HEALTH_UP_ROOM",
"prereq": "EXPLOSIVES_ENEMY & HAMMER_ROLL_ZIP",
}
// Evernight
{
"edge": "RIVERBANK_LEVEL3 -> EVERNIGHT_WEST_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_WEST_ENTRANCE -> RIVERBANK_LEVEL3",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_WEST_ENTRANCE -> EVERNIGHT_NORTHWEST",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_NORTHWEST -> EVERNIGHT_WEST_ENTRANCE",
"prereq": "NONE",
}
{
"edge": "RIVERBANK_LEVEL3 -> EVERNIGHT_WARP",
"prereq": "SLIDE_ZIP & ADV",
}
{
"edge": "EVERNIGHT_NORTHWEST -> EVERNIGHT_SPIKE_BARRIER_ROOM",
"prereq": "
AIR_JUMP
| BUNNY_STRIKE
| AIR_DASH
| WHIRL_BONK
| (SLIDING_POWDER & (ITM_HARD | RABI_SLIPPERS))
| (ADV_VHARD & AMULET_FOOD)
| (ADV_STUPID & RABI_SLIPPERS & SPEED5)
",
}
{
"edge": "EVERNIGHT_SPIKE_BARRIER_ROOM -> EVERNIGHT_NORTHWEST",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_SPIKE_BARRIER_ROOM -> RIVERBANK_LEVEL3",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_NORTHWEST -> EVERNIGHT_SAYA",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_SAYA -> EVERNIGHT_NORTHWEST",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_SAYA -> EVERNIGHT_CORRIDOR_BELOW_SAYA",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_CORRIDOR_BELOW_SAYA -> EVERNIGHT_SAYA",
"prereq": "
FIRE_ORB
| (WHIRL_BONK_CANCEL & (ADV_VHARD | WALL_JUMP_LV2))
| (AIR_JUMP & (WALL_JUMP_LV2 | (HAMMER_ROLL & ITM_HARD)))
| (SLIDE_JUMP_BUNSTRIKE_CANCEL & RABI_SLIPPERS & WALL_JUMP_LV2)
| (SLIDE_JUMP_BUNSTRIKE_CANCEL & RABI_SLIPPERS & AIR_JUMP & (WALL_JUMP | SPEED1))
",
}
{
"edge": "EVERNIGHT_CORRIDOR_BELOW_SAYA -> EVERNIGHT_EAST_OF_WARP",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_EAST_OF_WARP -> EVERNIGHT_CORRIDOR_BELOW_SAYA",
"prereq": "
(FIRE_ORB & (
RABI_SLIPPERS
| AIR_JUMP
| (ITM_HARD & (SLIDING_POWDER | AIR_DASH | SPEED1))
| (V_HARD & WHIRL_BONK)
))
| (AIR_JUMP & (
RABI_SLIPPERS
| SLIDE_JUMP_BUNSTRIKE_CANCEL
| (ITM_HARD & HAMMER_ROLL)
| (ADV_STUPID & (
SLIDING_POWDER // slide bonk off bunny
| WALL_JUMP_LV2 // buffered wimpy
))
| (ADV_VHARD & AIR_DASH_LV3) // airdash from step
))
| (ADV_STUPID & RABI_SLIPPERS & WALL_JUMP_LV2) // extremely tight
| WHIRL_BONK_CANCEL
",
}
{
"edge": "EVERNIGHT_EAST_OF_WARP -> EVERNIGHT_LOWER",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_LOWER -> EVERNIGHT_EAST_OF_WARP",
"prereq": "
(AIR_JUMP & (ADV_VHARD | AIR_DASH | (ITM & SLIDING_POWDER)))
| (AIR_DASH_LV3 & AMULET_FOOD & ADV_HARD)
",
}
{
"edge": "EVERNIGHT_WEST_ENTRANCE -> EVERNIGHT_WARP",
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP | EXPLOSIVES",
}
{
"edge": "EVERNIGHT_WARP -> EVERNIGHT_WEST_ENTRANCE",
"prereq": "SLIDING_POWDER",
}
{
"edge": "EVERNIGHT_WARP -> EVERNIGHT_EAST_OF_WARP",
"prereq": "FIRE_ORB | (
(SLIDING_POWDER | HAMMER_ROLL_ZIP) & (
// Methods to get up on the ledge
RABI_SLIPPERS | AIR_JUMP | AIR_DASH | SLIDE_JUMP_BUNSTRIKE
// sliding powder: slide bonk off bunny to get up on the ledge
// hammer roll zip: whirl bonk off falling bunny to get on the ledge
// both these tricks are ADV_VHARD, so they can be merged like this
| ADV_VHARD
// damage boost, not required.
// | ADV_STUPID
)
)",
}
{
"edge": "EVERNIGHT_EAST_OF_WARP -> EVERNIGHT_WARP",
"prereq": "SLIDING_POWDER | FIRE_ORB",
}
{
"edge": "EVERNIGHT_WARP -> EVERNIGHT_LOWER",
"prereq": "SLIDING_POWDER | HAMMER_ROLL_ZIP | DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "EVERNIGHT_LOWER -> EVERNIGHT_WARP",
"prereq": "NONE",
}
{
"edge": "EVERNIGHT_LOWER -> RIVERBANK_LOWER_RIGHT",
"prereq": "NONE",
}
// Lab
{
"edge": "RIVERBANK_LOWER_RIGHT -> LAB_ENTRANCE",
"prereq": "TM_CICINI & CHAPTER_2",
}
{
"edge": "LAB_ENTRANCE -> RIVERBANK_LOWER_RIGHT",
"prereq": "NONE",
}
{
"edge": "LAB_ENTRANCE -> LAB_MID",
"prereq": "NONE",
}
{
"edge": "LAB_MID -> LAB_ENTRANCE",
"prereq": "DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "LAB_MID -> LAB_SLIDING_POWDER_ROOM",
"prereq": "ITM_HARD | EXPLOSIVES_ENEMY",
}
{
"edge": "LAB_SLIDING_POWDER_ROOM -> LAB_MID",
"prereq": "
(WALL_JUMP_LV2 & (
AIR_JUMP
| (ADV_VHARD & SLIDE_JUMP_BUNSTRIKE_CANCEL & (AIR_DASH | RABI_SLIPPERS | SPEED5 | (STUPID & SPEED3)))
| (ADV_HARD & SLIDE_JUMP_BUNSTRIKE_CANCEL & (AIR_DASH & RABI_SLIPPERS))
))
| (ITM_HARD & AIR_JUMP & (
((RABI_SLIPPERS | SLIDE_JUMP_BUNSTRIKE_CANCEL) & (SPEED3 | AIR_DASH))
| (RABI_SLIPPERS & SLIDE_JUMP_BUNSTRIKE_CANCEL)
))
",
}
{
"edge": "LAB_SLIDING_POWDER_ROOM -> LAB_WEST",
"prereq": "SLIDING_POWDER",
}
{
"edge": "LAB_WEST -> LAB_SLIDING_POWDER_ROOM",
"prereq": "SLIDING_POWDER",
}
{
"edge": "LAB_SLIDING_POWDER_ROOM -> LAB_EAST",
// bomb attack up hole, go to sliding powder room and hammer roll zip out (backtrack)
"prereq": "EXPLOSIVES & HAMMER_ROLL_ZIP & ADVANCED & BACKTRACK_2",
}
{
"edge": "LAB_WEST -> LAB_MID",
"prereq": "SLIDING_POWDER",
}
{
"edge": "LAB_MID -> LAB_WEST",
"prereq": "SLIDING_POWDER",
}
{
"edge": "LAB_MID -> LAB_EAST",
"prereq": "NONE",
}
{
"edge": "LAB_EAST -> LAB_MID",
"prereq": "NONE",
}
{
"edge": "LAB_EAST -> LAB_COMPUTER_ROOM",
"prereq": "NONE",
}
{
"edge": "LAB_ENTRANCE -> LAB_EAST",
"prereq": "SLIDING_POWDER",
}
{
"edge": "LAB_COMPUTER_ROOM -> LAB_EAST",
"prereq": "NONE",
}
{
"edge": "LAB_EAST -> LAB_EAST_PACK_UP_ROOM",
"prereq": "EXPLOSIVES",
}
{
"edge": "LAB_EAST_PACK_UP_ROOM -> LAB_EAST",
"prereq": "EXPLOSIVES",
}
{
"edge": "LAB_ENTRANCE -> LAB_EAST_PACK_UP_ROOM",
"prereq": "DOWNDRILL_SEMISOLID_CLIP",
}
{
"edge": "LAB_EAST_PACK_UP_ROOM -> LAB_ENTRANCE",
"prereq": "NONE",
}
// .---------------------'
// | Area 5 : Rabi Rabi Town
// '---------------------.
{
"edge": "TOWN_MAIN -> TOWN_SHOP",
"prereq": "NONE",
}
{
"edge": "TOWN_SHOP -> TOWN_MAIN",
"prereq": "NONE",
}
// .---------------------'
// | Area 6 : Plurkwood
// '---------------------.
// .---------------------'
// | Area 7 : Subterranean Area
// '---------------------.
{
"edge": "VOLCANIC_MAIN -> VOLCANIC_BEACH_ENTRANCE",
"prereq": "ADV_VHARD | RABI_SLIPPERS | AIR_DASH | AIR_JUMP | SLIDE_JUMP_BUNSTRIKE",
}
{
"edge": "VOLCANIC_BEACH_ENTRANCE -> VOLCANIC_MAIN",
"prereq": "NONE",
}
// .---------------------'
// | Area 8 : Warp Destination
// '---------------------.
// .---------------------'
// | Area 9 : System Interior
// '---------------------.
// .---------------------'
// | Map Transition Constraints
// '---------------------.
{
"edge": "FOREST_NIGHT_NORTH_EAST -> PLURKWOOD_MAIN",
"prereq": "PLURKWOOD",
}
{
"edge": "PLURKWOOD_MAIN -> FOREST_NIGHT_NORTH_EAST",
"prereq": "NONE",
}
{
"edge": "LAB_COMPUTER_ROOM -> SYSTEM_INTERIOR_MAIN",
"prereq": "CHAPTER_3",
}
{
"edge": "SYSTEM_INTERIOR_MAIN -> LAB_COMPUTER_ROOM",
"prereq": "NONE",
}
// .---------------------'
// | Event Warp Constraints
// '---------------------.
{
"edge": "SPECTRAL_CICINI_ROOM -> RAVINE_TOWN_ENTRANCE",
"prereq": "EVENT_WARP & TM_CICINI",
}
{
"edge": "TOWN_MAIN -> RIVERBANK_MAIN_LEVEL1",
"prereq": "EVENT_WARP & TM_CICINI & CHAPTER_2",
}
{
"edge": "FOREST_START -> BEACH_FOREST_ENTRANCE",
"prereq": "EVENT_WARP & BOSS_RIBBON",
}
{
"edge": "PLURKWOOD_MAIN -> TOWN_MAIN",
"prereq": "EVENT_WARP & BOSS_KEKE_BUNNY",
}