# -*- coding: utf-8 -*- """Ordered story walkthrough for the 'Everything Run' plus the later passes.""" ROADMAP = [ dict(phase="Phase 0 — Before you play", intro="""

Do these first: they are free, and one of them changes how you do everything else.

""", steps=[ dict(id="r0-1", title="Read the Screenplay Book to the end", area="Master Collection launcher → MGS2 Screenplay", body="""

Free achievement (Cover-to-Cover Solid 2). Open the Screenplay from the launcher and page all the way to the last page.

"""), dict(id="r0-2", title="Decide your run order and never break it", area="Planning", body="""

You are going to play the game at least five times. Keep one save slot per run, and never overwrite a completed file — those are what carry the special items forward.

Runs 1–3 are the same route — the walkthrough below covers Run 1 in full and applies to all three.

"""), dict(id="r0-3", title="Turn ON 'Hide done' if you want a clean screen", area="This page's header", body="""

Use the header toggles. Export a backup of your progress before each playthrough so you can roll back a bad tap.

"""), ]), dict(phase="Run 1 · Tanker (Very Easy)", intro="""

Ordered by area. Everything here also applies to the Easy and Normal tag runs — the only difference is which guards have tags. Switch the Dog Tags tab to the matching difficulty as you go.

Set the difficulty to Very Easy and start a Tanker-Plant game (not Tanker only) — the special-item achievements expect a completed Tanker-Plant file.
""", steps=[ dict(id="r1-1", title="Aft Deck — arrival", area="Tanker · Aft Deck", shots=["Silence is Golden"], body="""

Nothing missable. Three guards carry tags here (Josh Spires, Tomomi Nasu, Stephen M Driver on Very Easy) — start practising your hold-ups.

Hold-up method: approach from behind, jam the gun into their back (Freeze!), keep aiming and run round to their front, then aim at the face.

Silence is Golden comes free here: while you are behind a guard, aim at the radio on his lower back and shoot it (non-lethal is fine) — you can do it to every guard you hold up.

"""), dict(id="r1-2", title="Deck-D, crew's quarters — Box 1 + the extinguisher", area="Tanker · Deck-D", shots=["Down in Smoke","Moving Day"], body="""

Three things here:

"""), dict(id="r1-3", title="Deck-A, crew's quarters — the locker room hat-trick", area="Tanker · Deck-A", shots=["Hurt Locker","Kissing Booth","Bye Bye Big Brother"], body="""

Do all three of these in one visit — this is the most commonly botched spot in the game.

  1. Hurt Locker — tranquillise the hallway guard, drag him into the locker room, open a locker and drag him in.
  2. Kissing Booth — find the locker with the pin-up poster inside the door, get in, and hold the first-person button until you hear a kiss.
  3. Snake Beater — get out, press first-person again and press right up against the poster, then open the codec and call Otacon.

There is also a wall camera nearby — leave it alone if you care about Big Boss mech damage later, otherwise shoot it for Bye Bye Big Brother.

"""), dict(id="r1-4", title="Deck-A, crew's lounge — Stun Grenades", area="Tanker · Deck-A lounge", body="""

Stun Grenades sit at the bottom of the stairs that lead down to the Engine Room, starboard side — you walk right past them during the story. Three tags here too.

"""), dict(id="r1-5", title="Deck-B, crew's quarters", area="Tanker · Deck-B", body="""

Two tags (Yuki Hongoh and one other on Very Easy). Nothing missable.

"""), dict(id="r1-6", title="Deck-C, crew's quarters — Chaff Grenades + first camera", area="Tanker · Deck-C", body="""

Chaff Grenades are in the locker left of the stairs after the first camera. This is also your first easy Bye Bye Big Brother camera — remember cameras need a lethal shot.

"""), dict(id="r1-7", title="Deck-2, port and starboard — the ambush", area="Tanker · Deck 2", shots=["Caution: Hot"], body="""

Three tags on Very Easy. Then the story triggers the soldiers hallway ambush.

This ambush is a forced alert and does not void Complete Stealth.

Caution: Hot is easiest right here: the ambush corridor is lined with pipes — shoot the pipes next to a soldier until he goes down.

"""), dict(id="r1-8", title="Engine Room — Hand Grenades, one-time guards + Steel Grip", area="Tanker · Engine Room", shots=["Steel Grip"], body="""

Grab the Hand Grenades in the bottom-left corner of the bottom level, near the exit at the foot of the stairs.

Two guards here are one-shot spawns: Jeff A Saylor Jr only appears the first time you enter the Engine Room, and Kazuki Tokunaga only appears in a cutscene when you approach the IR sensors. Both vanish if you leave the room. Get their tags before you exit.

⚙️ Do Steel Grip here — this is the guide-recommended spot

The Engine Room is called out as the best place for Steel Grip because it has two railings stacked one above the other, which is exactly what the fast method needs. You need two grip levels to reach the maximum (level 3), and each level is 100 pull-ups or 10 drop-and-catches — so take the shortcut.

  1. Flip over the railing so you are hanging, with the lower railing visible directly below you.
  2. Press the drop button, then immediately mash the grab/hang button to catch the lower railing.
  3. Climb up and repeat. One clean catch = 10 pull-ups, so 20 catches finishes it.
Do the two one-shot guard tags first. The count resets if you die without leaving the room, and the usual advice is to step out and back in every few drops to bank your progress — which is exactly what makes those two guards despawn. Tags first, then hang.
Why here and not later: the Tanker Holds come next, and the hidden marine tags in Hold No. 1 and No. 3 need long shimmies along ledges that drain your grip and health. Getting grip level 3 before you reach the Holds makes that tag hunt far less lethal.

Plain pull-ups work too (hold both triggers, 200 of them) — slower, but zero risk of falling. Never grind this on a Big Boss run: a single missed catch is a death, and that voids the codename.

"""), dict(id="r1-9", title="Navigational Deck, Wing — Olga + the Wet Box", area="Tanker · Deck-E bridge / Nav Deck", body="""

Boss: Olga GurlukovichLights Out. Shoot the spotlight and the tarp corners, and roll away from her shots.

Immediately after the fight:

"""), dict(id="r1-10", title="Holds 1–3 — marine tags, the ghost and the photo", area="Tanker · Holds", shots=["Who Ya Gonna Call?","Sexting"], body="""

The densest collectible section in the game, and a one-way trip. Save before you enter Hold No. 1.

Then photograph RAY and escape. Lady Fortune pops during the Fortune sequence on the way out.

"""), dict(id="r1-11", title="Finish the Tanker → make a COMPLETED save", area="Tanker · Results screen", body="""

Let the credits roll and save. Check Special → Dog Tag Viewer to confirm you have all 24 Very Easy tags before moving on.

Yorkie (50 tags) and Poodle (76 tags) will not pop until you finish a completed Tanker-Plant file that contains those totals — keep going into the Plant.
"""), ]), dict(phase="Run 1 · Plant (Very Easy)", intro="""

Same structure: work through the struts in order. The Plant is longer but its tags are more straightforward — the interesting ones are the conditional spawns (guards that only appear after Fatman, or after the Emma escort).

""", steps=[ dict(id="r2-1", title="Strut A, Deep Sea Dock — sea lice + a boss", area="Plant · Strut A", shots=["My Rations..."], body="""

Do My Rations… right away: grab a ration, then lie down near the bugs and wait for a louse to crawl onto it.

Two tags here (Brad I Lanning, Charles P Pinkerton), and later the Fortune fight happens in this same area → Lady Fortune.

"""), dict(id="r2-2", title="Strut A Roof + Pump Room", area="Plant · Strut A", body="""

Tags on the roof (Jason M Gillispie) and two in the Pump Room. The Box 1 cardboard box is in the Strut A pipe room — crawl under the pipes on your first right after the small stairs in the bottom-left, once you have the Lv. 1 Card.

"""), dict(id="r2-3", title="A-B bridge → Strut B, Transformer Room", area="Plant · Strut B", body="""

Two tags on the bridge, two in the transformer room. Grab the Lv. 1 Card along the way — it gates Box 1 and Box 2.

"""), dict(id="r2-4", title="B-C bridge → Strut C, Dining Hall", area="Plant · Strut C", body="""

One tag on the bridge, two in the dining hall. Simple area.

"""), dict(id="r2-5", title="C-D bridge → Strut D, Sediment Pool", area="Plant · Strut D", body="""

Two tags on the bridge and two to three in the sediment pool depending on difficulty.

Backup Steel Grip spot: if you skipped the pull-ups in the Tanker Engine Room, Strut D's railings are the other commonly recommended place — you can drop onto the level below and the stairs to climb back up are right there, so the loop is quick.

A soldier patrols Strut D and regularly radios in. If he goes down, a search party comes looking — so clear him quietly and tranquillise him again if he wakes up while you are grinding.
"""), dict(id="r2-6", title="D-E bridge → Strut E, Parcel Room", area="Plant · Strut E", body="""

Two tags on the bridge, two in the parcel room, and a wall camera.

"""), dict(id="r2-7", title="Strut E Heliport — Stillman, then Fatman", area="Plant · Strut E Heliport", body="""

Bomb Squad pops during Stillman's C4 tutorial.

Then the bomb-defusal section around the Big Shell, then boss: FatmanParty's Over.

After the Fatman fight, lift and drop Fatman's body for the Peter Stillman dog tag — this is the last tag on every Plant difficulty list and it is the one people miss.
Beating Fatman reopens weapon rooms in Strut F (AKS-74u on the bottom floor, M4 in the top-floor middle-left room). Go back for them.
"""), dict(id="r2-8", title="Strut F warehouse — the Book, Box 2 and the weapon sweep", area="Plant · Strut F", shots=["To Catch a Predator"], body="""

Strut F is the game's collectible hub. Do a full sweep now and again after you meet Ames.

"""), dict(id="r2-9", title="Strut E Heliport roof + Shell 1 Core 1F", area="Plant · Strut E / Shell 1", body="""

Box 3 is in the bottom-left corner of the Strut E rooftop helipad. Box 5 is on the conveyor belt in Strut E itself.

In Shell 1 Core 1F: several tags, the south lockers (Book / C-4 / Claymores / Stun Grenades), and cameras to shoot.

"""), dict(id="r2-10", title="Shell 1 Core B2 — Box 4 + the Directional Mic", area="Plant · Shell 1 B2 Computer Room", body="""

Box 4 sits across from the Radar Node on B2, near the Directional Mic and the parrot. The Directional Mic is story-required here — you will need it twice for Johnny on the Spot.

Four tags in the computer room.

"""), dict(id="r2-11", title="Ames + Johnny (mic location 1)", area="Plant · Shell 1 Core hostage room", shots=["Johnny on the Spot"], body="""

Johnny on the Spot #1. During the Ames scene you are told to mic Ocelot and Solidus. Aim the Directional Mic slightly left of that conversation until you hear Johnny in the bathroom, and keep it on him until he finishes.

Do not quit to the menu after this — do the second listen in the same session, or the achievement may not register.

After the Ames scene, alert mode is forced — it will not void Complete Stealth.

"""), dict(id="r2-12", title="Shell 1 Core elevator — wear the disguise, carry the AK", area="Plant · Shell 1 Core", body="""

The story requires you to use the disguise + AK-47 here. Even with Stealth Camo equipped, the camera will spot you if you try the elevator any other way.

This is the single exception to "stealth makes Complete Stealth free".

"""), dict(id="r2-13", title="President Johnson → Vamp", area="Plant · Shell 1 Core", body="""

Bohemian Candidate pops when you meet the President. Then boss: VampVampire Slayer.

Vamp strategy: M9 to the head; when he dives in the water, shoot the water with the Stinger to drain his O₂. Then hang off the platform edge to bait his attack and punch him twice when he comes close.

"""), dict(id="r2-14", title="Shell 2 Core — Emma + the Nikita", area="Plant · Shell 2 Core B1", body="""

I Think You Need a Hug, E pops when you find Emma. Swim underwater for the story-required Nikita.

Emma's locker in the B1 Filtration Chamber 2 holds a Book and C-4 — both count toward the weapon/box sweeps.

"""), dict(id="r2-15", title="Emma escort + oil fence — Johnny (mic location 2) + the camera", area="Plant · oil fence", shots=["Photo Finish","Johnny on the Spot"], body="""

Johnny on the Spot #2. While covering Emma, when she ducks behind the second platform, aim the Directional Mic at that platform and listen to her run into Johnny. Keep the mic on them until he leaves. The achievement pops here if you also did location 1.

Photo Finish — after the escort, when you climb the ladder into Strut E, look for the Level 5 door at the top of the small area (before the conveyor section) for the Digital Camera.

"""), dict(id="r2-16", title="Arsenal Gear — Snake's tag, Tengu, RAY", area="Arsenal Gear", body="""

In the Ascending Colon, knock out the man you meet, pick him up and drop him for the first tag on every Plant difficulty list (Iroquois Pliskin / Solid Snake / Liquid Snake / Hideo Kojima).

Then the Tengu fight (forced alert, safe) and boss: Metal Gear RAYNo Ray, José. About 20 RAYs — keep moving and cartwheel through the missile barrages.

Then the torture room. Beating it gives you the HF Blade from Snake.

"""), dict(id="r2-17", title="Solidus — and DO NOT SKIP THE CUTSCENE", area="Plant · rooftop", shots=["Vamp Eyer"], body="""

Boss: Solidus SnakeAnother Snake Bites the Dust.

Vamp Eyer: let the ending cinematic play. When Snake asks "By the way, what is that?" and Raiden answers "No, never heard the name before", hold the zoom button and look around — Vamp is standing in the street. Zoom in on him.
"""), dict(id="r2-18", title="Save a completed Tanker-Plant file", area="Results screen", body="""

Save after the credits. This single file is what proves your Tanker and Plant tag totals.

Check the totals: Tanker 24, Plant 43. Then open the Dog Tags tab and confirm the thresholds panel — Bandana 50 and Brown Wig 80 are already satisfied once you add the Easy-run tags; Yorkie will pop after Run 2 and Beagle during Run 2 as well.

"""), ]), dict(phase="Runs 2 & 3 — the dog-tag sweeps", intro="""

The same route as Run 1, on Easy then Normal, picking up the tags you do not have. Nothing new is missable — you are only here for numbers.

""", steps=[ dict(id="r3-1", title="Run 2 (Easy): sweep Tanker 26 + Plant 44", area="Easy difficulty", body="""

When you save a completed file after this run you should cross 50 Tanker (→ Yorkie / Bandana) and 80 Plant (→ Beagle / Brown Wig).

The achievements pop when the chapter is completed with the totals present, not when the last tag is collected.

"""), dict(id="r3-2", title="Run 3 (Normal): sweep Tanker 33 + Plant 49", area="Normal difficulty", body="""

This run crosses 76 Tanker (→ Poodle / Tanker stealth) and 120 Plant (→ Shiba Inu / Plant stealth).

After this run you have everything you need for the two challenge runs: Stealth Camo and the Bandana / Brown Wig (infinite ammo). Start Run 4 from a file that loads this cleared data.
"""), dict(id="r3-3", title="Optional: grab the last two wigs", area="Plant, all difficulties", body="""

The Orange Wig (160 Plant tags) and Blue Wig (200 Plant tags) are not required for any achievement. Only chase them if you want the Perfect/100% feel — Hard (52) + Extreme (54) = 106 more tags.

"""), ]), dict(phase="Run 4 — Pacifist Run + Complete Stealth together", intro="""

Both of these are "whole playthrough" challenges, so do them at the same time. With the items from Run 3 this is the easiest full playthrough you will ever do.

""", steps=[ dict(id="r4-1", title="Start Very Easy with Stealth Camo + Bandana loaded", area="New game from cleared data", body="""

Load the cleared save so the special items are in your inventory, then equip Stealth Camo permanently.

Equip the Bandana (or Brown Wig) for infinite non-lethal ammo.

"""), dict(id="r4-2", title="Kill nothing, anywhere", area="Whole run", body="""

Pacifist Run requires zero kills — this includes:

"""), dict(id="r4-3", title="Do the Shell 1 elevator properly", area="Shell 1 Core", body="""

Switch off stealth for this one moment and use the disguise + AK-47 as the story demands. Trying it in stealth gets you spotted and can void Complete Stealth.

"""), dict(id="r4-4", title="Save-and-reload discipline for alerts", area="Whole run", body="""

Save at the start of every new area. If the HUD ever turns red ALERT, reload immediately — the game only checks the flag on the final results screen.

Forced alerts that are safe: boss fights, the Tanker hallway ambush, the post-Ames alert, the Tengu fight.

"""), ]), dict(phase="Run 5 — Big Boss", intro="""

The final boss of the achievement list. Everything you have learned so far gets used at once. Full criteria, strategies and time checkpoints are in the Big Boss Run tab.

""", steps=[ dict(id="r5-1", title="Practise the boss fights before you commit", area="Any difficulty", body="""

Do a throwaway Extreme run just to learn Olga, Fatman, Harrier, Vamp and Solidus. The timer is unforgiving and you cannot afford to learn a fight mid-run.

"""), dict(id="r5-2", title="Start Extreme, Tanker→Plant, NO special items, NO radar", area="New game", body="""

Do not load the cleared save — special items and the radar are banned and will void the codename.

"""), dict(id="r5-3", title="Skip every cutscene and codec, ignore optional calls", area="Whole run", body="""

Cutscenes and codec conversations all count toward your 3-hour limit. Mash the skip button the instant each one starts.

"""), dict(id="r5-4", title="Hold the time checkpoints in the Big Boss tab", area="Whole run", body="""

Fortune 00:45 · Fatman 00:49 · Harrier 01:10 · Vamp 01:25 · oil fence 01:40 · Tengu 01:56 · RAY 02:08 · Solidus 02:22.

If you are more than a couple of minutes behind at any of these, restart — it is cheaper than finishing at 3:05.

"""), ]), dict(phase="Off-story cleanup", intro="""

Everything else is on the main menu and takes under an hour total.

""", steps=[ dict(id="r6-1", title="Snake Tales — complete any one", area="Main Menu", body="""

Tell Me a Tale. A Wrongdoing is the shortest of the five.

"""), dict(id="r6-2", title="Boss Survival — Raiden on Easy", area="Main Menu", body="""

No Boss of Mine. Raiden gets the HF Blade for Solidus; Snake does not.

"""), dict(id="r6-3", title="VR missions — one clear, then 50 first places", area="Main Menu", body="""

Piece of Cake (any single mission) then In It to Win It (place 1st in 50). Pick the shortest Sneaking missions and learn the target time.

"""), dict(id="r6-4", title="Casting Theater — Demo 8 body swap", area="Main Menu → Special", body="""

Casting Theater + Love Hurts: Demo 8, Raiden→Rose, Solidus→Raiden, watch it play out.

"""), dict(id="r6-5", title="Sweep the cumulative counters on any leftover run", area="Any playthrough", body="""

Hold Up-aholic (30), Don't Taze Me Bro (100), Nothing Personal (30), Rent Money (30) and Bye Bye Big Brother (5 cameras) all carry across playthroughs — check the Achievements tab to see what is still outstanding and farm it on a spare save.

Steel Grip is not on this list — do that one on-site in the Tanker Engine Room (or Strut D) where the stacked railings are, as covered in the Tanker walkthrough above.

"""), ]), ] BIGBOSS = dict( intro="""Three hours, no rations, no kills, no radar, no special items, on Extreme, with a mech-damage cap — and you must destroy about 20 Metal Gear RAYs inside that cap. This is the one achievement that decides whether you get 100%. Learn the route first, then execute it.""", reqs=[ "Chapter: Tanker-Plant (a full run, both chapters)", "Difficulty: Extreme", "Time: 3:00:00 or less", "Continues: 0", "Rations used: 0", "Kills: 0", "Alert mode: 3 times or fewer", "Shots fired: 700 or less", "Mech damage: under 60 — cameras, Cyphers and MG RAYs all count; you must destroy ~20 RAYs, so keep everything else under ~40", "Damage received: 10 health bars or less", "No special items (no Bandana, no Stealth, no wigs)", "No radar", ], heals=[ "After the Olga boss fight", "After the Fortune fight", "After the Fatman boss fight", "After the Vamp boss fight", "After the first torture", "After the Metal Gear RAYs boss fight", ], times=[ ["Fortune fight", "00:45:00"], ["Fatman fight", "00:49:00"], ["Harrier fight", "01:10:00"], ["Vamp fight", "01:25:00"], ["Cover Emma on the oil fence", "01:40:00"], ["Tengu soldiers", "01:56:00"], ["Metal Gear RAY fight", "02:08:00"], ["Solidus fight", "02:22:00"], ["Finish", "under 03:00:00"], ], saves=[ "Before the Fortune fight", "Before the Fatman fight", "Before destroying the Semtex on the bridge ahead of the Harrier fight", "Before the Vamp fight", "Before covering Emma as she crosses the oil fence", "Before the Tengu fight", "Before the Metal Gear RAY fight", "Before the Solidus fight", ], tips=[ "Cutscenes count toward the timer. Skip every cutscene and codec immediately, including codec conversations.", "Do not answer optional codec calls.", "Save immediately after entering a new area — reloading restarts you at the start of the area you saved in.", "If an elevator does not open right away, press the button a second time.", "Use Snake's roll and Raiden's cartwheel constantly to move faster.", "Do not hunt for ammo or items you do not need. You cannot kill or use rations, so almost everything is skippable.", "Getting caught voids the codename anyway, so you will rarely need health outside boss fights.", ], bosses=[ dict(name="Olga", body="""

Shoot the spotlight and the bottom corners of the tarp immediately. She shoots at your last known position, so roll to a blind side of her after each shot.

Taking damage here is fine — your health refills after the fight.

"""), dict(name="Fortune", body="""

Pure timing. Equip a cardboard box and walk back and forth along the very bottom of the arena.

As soon as her second shot resolves, turn around and go the other way. If you were heading left, go right. Repeat until the fight ends.

Watch for debris and exploding barrels. Her shots come fast — expect a few attempts to get the rhythm.

"""), dict(name="Fatman", body="""

Stay close to Fatman so you can freeze each bomb as it is planted rather than waiting for all of them.

"""), dict(name="Harrier", body=""" """), dict(name="Vamp", body="""

This one can be cheesed.

  1. Open with an M9 headshot. When he dives into the water, shoot the water with the Stinger to drain his O₂.
  2. Step slowly off the platform so Raiden hangs from the edge — do not fall in. Vamp walks over.
  3. Just before he crouches to attack, pull yourself up so the attack whiffs as you climb.
  4. Hit him with two melee punches. When he crouches, run left or right but stay close enough to punish the slash, then close in for two more punches. Repeat.
  5. If he returns to the water, Stinger the water and restart the loop.
"""), dict(name="Tengu soldiers", body="""

You have the sword now, but stick to non-lethal weapons — running around with the blade will cost you too much health.

Snake will take damage. You can stand in front of him and hold the sword block to deflect bullets, which protects him while he kills the enemies. You must stand still while blocking.

"""), dict(name="Metal Gear RAY", body="""

You fight about 20 RAYs. Be quick with your shots and listen for missile barrages from RAYs outside the arena.

Machine-gun fire and the single-missile attack are dodged by running left or right and cartwheeling as the rounds get close.

Every RAY you destroy counts toward your mech damage limit. Budget for ~20 and keep everything else (cameras, Cyphers) near zero.
"""), dict(name="Solidus", body="""

Phase 1: his melee and tentacle attacks can be blocked with the sword, and missiles can be cartwheeled or cut in half. Bait the melee, block it, land your hits, then step back and run in again.

Phase 2: hit him then run away — far enough that he stops sliding point-to-point and comes straight at you. Hold block to eat his elbow attack, deal damage, then disengage and repeat.

"""), ], )