diff --git a/README.md b/README.md index c5e1cb5..809a064 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,35 @@ A single-file, offline-friendly companion page for 100%-ing **Metal Gear Solid 2 | `index.html` | The whole guide. Self-contained — data, styles, logic and your progress all live in this one file. | | `steam-sync.py` | Optional local helper. Serves this folder **and** proxies Steam achievement lookups so the page can auto-tick what you already own. | | `steam-proxy-worker.js` | Optional Cloudflare Worker. Same job as the Python helper, but for when the page is **hosted** somewhere instead of run locally. | +| `build/` | The sources. `index.html` is generated from these, so edit here rather than in the built file. | +| `deploy.sh` | Rebuilds and pushes to `pages` in one step. | ## Hosting it (GitHub Pages, Netlify, Cloudflare Pages, Neocities…) **This copy is deployed at **, served from the `pages` branch of . +### Updating the live site + +```bash +./deploy.sh "what you changed" +``` + +That rebuilds `index.html` from `build/`, commits, and pushes to `pages`. The Pages site redeploys itself in about 15 seconds — no separate publish step. + +**Edit the sources in `build/`, not the built `index.html`.** The built file is generated: `build/template.html` holds the page, `build/*_src.py` the written content, and `build/*.json` the extracted data (achievements, dog tags, maps, photo pins). `build/build.py` stitches them together. + +### Steam sync on the deployed site + +A hosted page cannot read Steam directly — the achievement page sends no CORS headers. So the deployed page talks to **`steam-sync.py` running on your own machine**: + +```bash +nohup python3 ~/Desktop/la-li-lu-le-lo/steam-sync.py > /tmp/steam-sync.log 2>&1 & +``` + +Then sync just works on the Pages site. `steam-sync.py` answers the Private Network Access preflight that Chrome requires when a public page calls into `127.0.0.1`; without that header the request is blocked before it is sent. If the helper is not running you get a message saying so, and everything except sync still works. + +If you would rather not keep the helper running, deploy `steam-proxy-worker.js` to Cloudflare and put its URL in `STEAM_PROXY` at the top of the page's script — `ALLOW_ORIGIN` in the Worker is already pinned to the Pages origin. + **The page itself hosts fine as-is.** It is one static HTML file with all the guide data, the 10 area maps and the colour coding baked in, and it stores progress in the browser's `localStorage`. Drop it in a repo, enable Pages, done. No build step, no dependencies. Two things behave differently on a static host: @@ -71,7 +95,7 @@ Double-click `index.html`. Everything works except live Steam sync. Note that op - It re-syncs automatically every time the page loads. - Achievements you already own get a `STEAM ✓` badge and a blue edge, and are counted as done. - Use the **⬇ Missing on Steam** filter on the Achievements tab to see only what is left. -- No profile is pre-filled in the public repo — type yours on the Steam Sync tab once and it is remembered in this browser. +- No profile is pre-filled in the public repo — type yours on the Steam Sync tab once and it is remembered in this browser (per origin, so the Pages site and a local copy keep separate memories). **If it fails,** the page tells you why. The usual cause is a private profile: Steam → your profile → **Edit Profile → Privacy Settings → Game details → Public**. diff --git a/build/ach_icons.json b/build/ach_icons.json new file mode 100644 index 0000000..e100c71 --- /dev/null +++ b/build/ach_icons.json @@ -0,0 +1,252 @@ +{ + "Lights Out": { + "num": 1, + "icon": "https://images.steamusercontent.com/ugc/2140958177135754992/33483A2517679F2105D029F5821418DD1D233281/", + "desc": "Defeat Olga Gurlukovich" + }, + "Spaghetti Cinema": { + "num": 2, + "icon": "https://images.steamusercontent.com/ugc/2140958177135758321/BC72F568064E5D5C268D200F6382B0BD3F8DEE6B/", + "desc": "Meet Revolver" + }, + "Bomb Squad": { + "num": 3, + "icon": "https://images.steamusercontent.com/ugc/2140958177135758930/E64E34B9E08B8F9C96C34C6DA45AE5CF6D0B7003/", + "desc": "Learn how to defuse C4 bombs from Peter Stillman" + }, + "Lady Fortune": { + "num": 4, + "icon": "https://images.steamusercontent.com/ugc/2140958177135759201/550DD6E41F6D40451134C4E847DFFEA44601734D/", + "desc": "Survive Fortune\u2019s Attack" + }, + "Party\u2019s Over": { + "num": 5, + "icon": "https://images.steamusercontent.com/ugc/2140958177135759509/74E791DB6ECD619EED7313A2F4382FEBB3AFCFBC/", + "desc": "Defeat Fatman" + }, + "Thanks, Ames": { + "num": 6, + "icon": "https://images.steamusercontent.com/ugc/2140958177135760558/5E46A25E5B0BDFF0F26E93F657376EE5C6C24F3E/", + "desc": "Learn the location of the president" + }, + "No-Fly Zone": { + "num": 7, + "icon": "https://images.steamusercontent.com/ugc/2140958177135760933/A22BC99C672ED7BD5A5170FC1A0E46DD41C3AB61/", + "desc": "Destroy the AV-88 Harrier II" + }, + "Bohemian Candidate": { + "num": 8, + "icon": "https://images.steamusercontent.com/ugc/2140958177135776614/4D20C2252E95CFF4AE279DFB381B6498B5315F69/", + "desc": "Meet President James Johnson" + }, + "Vampire Slayer": { + "num": 9, + "icon": "https://images.steamusercontent.com/ugc/2140958177135776885/0BE932AFDA4A9C857046DDBC27EE74B16A804B8F/", + "desc": "Defeat Vamp" + }, + "I Think You Need a Hug, E": { + "num": 10, + "icon": "https://images.steamusercontent.com/ugc/2140958177135778904/EB4EF236A1B364E861F8CCF0588F1FACE5CD86A3/", + "desc": "Find Emma Emmerich" + }, + "Sharing Is Caring": { + "num": 11, + "icon": "https://images.steamusercontent.com/ugc/2140958177135780873/BD7DCD2395C79925B68C7006CC63AE6402E75A06/", + "desc": "Befriend Olga Gurlukovich" + }, + "No Ray, Jos\u00e9": { + "num": 12, + "icon": "https://images.steamusercontent.com/ugc/2140958177135781258/EFE5274E4CE35FA4FEA13CF93A2A191C2B0EDB57/", + "desc": "Defeat Metal Gear RAY" + }, + "Another Snake Bites the Dust": { + "num": 13, + "icon": "https://images.steamusercontent.com/ugc/2140958177135781716/8304A788B9099C1CBE87D963BCA7EB3B15EB1EC6/", + "desc": "Defeat Solidus Snake" + }, + "A Cut Above": { + "num": 14, + "icon": "https://images.steamusercontent.com/ugc/2140958177135784329/36F89E61EC5808EDCD35952C2C4C44C30CE0AD69/", + "desc": "Beat the Tanker and Plant chapters on any difficulty" + }, + "Animal Control": { + "num": 15, + "icon": "https://images.steamusercontent.com/ugc/2140958177135755392/B1B11990A2D6A38E90E06B774C13E66EE2DEE53A/", + "desc": "Collect a dog tag" + }, + "Weapon Completionist: Tanker": { + "num": 16, + "icon": "https://images.steamusercontent.com/ugc/2140958177135759832/1ADADF954660E5DD90C4857F582F714F2E826A55/", + "desc": "Collect every type of weapon on the Tanker" + }, + "Weapon Completionist: Plant": { + "num": 17, + "icon": "https://images.steamusercontent.com/ugc/2140958177135910792/AFD91F876679EC04919CD822C55ECD25807C8799/", + "desc": "Collect every type of weapon in the Plant" + }, + "Moving Day": { + "num": 18, + "icon": "https://images.steamusercontent.com/ugc/2140958177135784031/D5F815103756B9D3C747BB2B7ABB0762D94FB272/", + "desc": "Collect all boxes" + }, + "Yorkie": { + "num": 19, + "icon": "https://images.steamusercontent.com/ugc/2140958177136173819/87F0A2B539658DE6AEDD4A48A62840315333C6E7/", + "desc": "Get the bandana" + }, + "Poodle": { + "num": 20, + "icon": "https://images.steamusercontent.com/ugc/2140958177136232954/7E891DAD15B9202482027D5A02AF944D6D942C03/", + "desc": "Get the Tanker stealth suit" + }, + "Beagle": { + "num": 21, + "icon": "https://images.steamusercontent.com/ugc/2140958177136250486/E2E2E06267E608248851BAEE451A0EFDDC0DFF87/", + "desc": "Obtain the Infinity Wig" + }, + "Shiba Inu": { + "num": 22, + "icon": "https://images.steamusercontent.com/ugc/2140958177136279127/EF5FC86EA9713C79B5BBF9C4FCFC71BFEE6BA7FB/", + "desc": "Get the Plant stealth suit" + }, + "Photo Finish": { + "num": 23, + "icon": "https://images.steamusercontent.com/ugc/2140958177135761686/D8EA3BF271A12B099620C980884D31DD5BCA502B/", + "desc": "Acquire the digital camera" + }, + "Hurt Locker": { + "num": 24, + "icon": "https://images.steamusercontent.com/ugc/2140958177135758651/CDA5624B4684415250A23CE2B51E04538F92A0B0/", + "desc": "Put an enemy in a locker" + }, + "To Catch a Predator": { + "num": 25, + "icon": "https://images.steamusercontent.com/ugc/2140958177136326152/97E4F9B9244F5F45AF5283BEEF19BA0D47ADB04D/", + "desc": "Lure a guard with a girlie magazine" + }, + "Bye Bye Big Brother": { + "num": 26, + "icon": "https://images.steamusercontent.com/ugc/2140958177136369228/0DF7F365A8755CF88FF86A8276B9222FDBB82F57/", + "desc": "Destroy 5 cameras" + }, + "Down in Smoke": { + "num": 27, + "icon": "https://images.steamusercontent.com/ugc/2140958177136463315/0A4BFB811C061E224D76C168346036A56B6DF9D9/", + "desc": "Disorient an enemy with a cloud of smoke from a fire extinguisher" + }, + "Silence is Golden": { + "num": 28, + "icon": "https://images.steamusercontent.com/ugc/2140958177135758074/4144C41DE9B6FD8F4E20EC85A2DA7FFA654E457B/", + "desc": "Shoot an enemy radio" + }, + "Caution: Hot": { + "num": 29, + "icon": "https://images.steamusercontent.com/ugc/2140958177136533725/FD82DCC80A0091EFFC0B4807550E4C572FF3BD69/", + "desc": "Down an enemy with steam from a pipe." + }, + "Kissing Booth": { + "num": 30, + "icon": "https://images.steamusercontent.com/ugc/2140958177135760330/59252565727727DAB7F995D692CC70B850F1F560/", + "desc": "Kiss a poster in a locker" + }, + "Snake Beater": { + "num": 31, + "icon": "https://images.steamusercontent.com/ugc/2140958177136595643/2EBC1BBBFB7363D23750458BB71B2C0E327E90F5/", + "desc": "Get caught by Otacon stimulating yourself" + }, + "Who Ya Gonna Call?": { + "num": 32, + "icon": "https://images.steamusercontent.com/ugc/2140958177138681898/A576D1518491AF79CF79B72240F7647D13218F49/", + "desc": "Take a clear photograph of the ghost image in Hold No. 2" + }, + "Sexting": { + "num": 33, + "icon": "https://images.steamusercontent.com/ugc/2140958177138684378/C931BF409EF81B2769A57AA30B2C480F433130E6/", + "desc": "Send Otacon a picture of the marine with no pants" + }, + "My Rations\u2026": { + "num": 34, + "icon": "https://images.steamusercontent.com/ugc/2140958177138713012/FFC33FEA695E0CFC0A4E588A6DA8D2DD2738E8DF/", + "desc": "Find a sea louse in your rations" + }, + "Johnny on the Spot": { + "num": 35, + "icon": "https://images.steamusercontent.com/ugc/2140958177138827859/F04B8B21FD970B720B3EFE532CCF0E3F09A8711D/", + "desc": "Hear Johnny\u2019s bowel noises in two locations" + }, + "Vamp Eyer": { + "num": 36, + "icon": "https://images.steamusercontent.com/ugc/2140958177138834182/41AC554FB65132522963BBB74570611C47C434F4/", + "desc": "Catch a glimpse of Vamp standing in the streets of New York during the end cinematic" + }, + "Love Hurts": { + "num": 37, + "icon": "https://images.steamusercontent.com/ugc/2140958177138847978/D047A74CFC1DC5B02053E446B2EFF5E1EC5FBEB3/", + "desc": "Watch Rose kill Raiden on a rooftop" + }, + "Don\u2019t Taze Me, Bro": { + "num": 38, + "icon": "https://images.steamusercontent.com/ugc/2140958177138861862/96200A814B27AA8D4FE8666F01B16A3389055910/", + "desc": "Tranquilize 100 enemies" + }, + "Nothing Personal": { + "num": 39, + "icon": "https://images.steamusercontent.com/ugc/2140958177138871847/614116AEBDFB99D916609B7AFBEA36D21DA70C92/", + "desc": "Break the neck of 30 enemies" + }, + "Rent Money": { + "num": 40, + "icon": "https://images.steamusercontent.com/ugc/2140958177138871847/614116AEBDFB99D916609B7AFBEA36D21DA70C92/", + "desc": "Beat 30 enemies unconscious" + }, + "Steel Grip": { + "num": 41, + "icon": "https://images.steamusercontent.com/ugc/2140958177138885772/862A012B7336607FE22DC16ED700EA766190DE85/", + "desc": "Attain grip level 3" + }, + "Casting Theater": { + "num": 42, + "icon": "https://images.steamusercontent.com/ugc/2140958177138962742/92C53189E3353645067850DDF1F6F5A4E128FAAF/", + "desc": "Watch something in the Casting Theater" + }, + "No Boss of Mine": { + "num": 43, + "icon": "https://images.steamusercontent.com/ugc/2140958177139102828/A866CC1EB85E9E5803E45D49B79AF7A4138BEAA6/", + "desc": "Complete Boss Survival" + }, + "Tell Me a Tale": { + "num": 44, + "icon": "https://images.steamusercontent.com/ugc/2140958177139112017/DD9E4F8043B10C1EFD5B907461D3215214221EB0/", + "desc": "Complete at least one of the Snake Tales" + }, + "Piece of Cake": { + "num": 45, + "icon": "https://images.steamusercontent.com/ugc/2140958177135761356/16A503FABA4B31252AA95DB1AF36B9BFE048E616/", + "desc": "Complete a VR or Alternative mission" + }, + "In It to Win It": { + "num": 46, + "icon": "https://images.steamusercontent.com/ugc/2140958177139142157/9013B6B054ED165E9C8E33E7120454611D0D9AA9/", + "desc": "Place first in 50 different VR/Alternative missions" + }, + "Pacifist Run": { + "num": 47, + "icon": "https://images.steamusercontent.com/ugc/2140958177139129560/253AF7994FDBE98D9BE471BF43F2382832B8F001/", + "desc": "Clear the game without killing anyone." + }, + "Complete Stealth": { + "num": 49, + "icon": "https://images.steamusercontent.com/ugc/2140958177139132973/BEF78F1D1BD36AE986D90E28DE4711BA1AAC5588/", + "desc": "Clear the game without entering alert mode (not including events where alert mode is mandatory)" + }, + "Cover-to-Cover Solid 2: Books of the Patriots": { + "num": 50, + "icon": "https://images.steamusercontent.com/ugc/2198379706926301353/7508D70EC3C479089F0462DCC63E51F65D830320/", + "desc": "Read all the pages in the Screenplay Book" + }, + "Big Boss": { + "num": 51, + "icon": "https://images.steamusercontent.com/ugc/2140958177139160810/3D2648816435D33E890BD394EFBF190981BFAE0A/", + "desc": "Earn the title of Big Boss" + } +} \ No newline at end of file diff --git a/build/achievements_src.py b/build/achievements_src.py new file mode 100644 index 0000000..ebe397e --- /dev/null +++ b/build/achievements_src.py @@ -0,0 +1,493 @@ +# -*- coding: utf-8 -*- +"""Hand-written guide content for the 51 MGS2 Master Collection achievements. +Keyed by Steam apiname so official icons/names can be merged automatically.""" + +ACH = { +# ---------------------------------------------------------------- STORY (14) +"ach_002_001": dict(cat="story", guide=""" +

Unmissable. Defeat Olga Gurlukovich on the Navigational Deck, Wing at the end of the Tanker chapter.

+"""), + +"ach_002_002": dict(cat="story", guide=""" +

Unmissable. Pops during the Tanker story when Revolver Ocelot makes his entrance. Nothing to do.

"""), + +"ach_002_003": dict(cat="story", guide=""" +

Unmissable. Pops when Peter Stillman teaches you how to defuse C4 in the Strut E Heliport at the start of the Plant chapter.

+
Pay attention here — the coolant/sensor mechanics you learn are the same ones you need for Party's Over and the whole bomb-defusal section.
"""), + +"ach_002_004": dict(cat="story", guide=""" +

Unmissable. You do not have to beat Fortune — you only have to survive her attack sequence. It ends on its own.

+"""), + +"ach_002_005": dict(cat="story", guide=""" +

Unmissable. Defeat Fatman on the Big Shell helipad.

+"""), + +"ach_002_006": dict(cat="story", guide=""" +

Unmissable. Pops after you interrogate Ames in the Shell 1 Core hostage room and learn where the President is.

"""), + +"ach_002_007": dict(cat="story", guide=""" +

Unmissable. Destroy the AV-88 Harrier II.

+"""), + +"ach_002_008": dict(cat="story", guide=""" +

Unmissable. Pops when you meet President James Johnson in the Shell 1 Core.

"""), + +"ach_002_009": dict(cat="story", guide=""" +

Unmissable. Defeat Vamp.

+"""), + +"ach_002_010": dict(cat="story", guide=""" +

Unmissable. Pops when you find Emma Emmerich in the Shell 2 Core filtration chamber.

"""), + +"ach_002_011": dict(cat="story", guide=""" +

Unmissable. Pops during the Arsenal Gear sequence when Olga turns on Solidus and helps you.

"""), + +"ach_002_012": dict(cat="story", guide=""" +

Unmissable. Defeat Metal Gear RAY.

+"""), + +"ach_002_013": dict(cat="story", guide=""" +

Unmissable. Defeat Solidus Snake on the rooftop. See the Big Boss tab for the block-and-punish strategy.

+
Do NOT skip the cutscene that follows. You need it for Vamp Eyer.
"""), + +"ach_002_014": dict(cat="story", guide=""" +

Unmissable. Pops when you finish both chapters on any difficulty. See the Roadmap tab.

"""), + +# ------------------------------------------------- MISC / MISSABLE (window) +"ach_002_015": dict(cat="misc", miss=True, + where="Tanker — Deck-A, crew's quarters (lockers)", window="Any time in the Tanker/Plant", + guide=""" +

Put an enemy inside a locker. Easiest in the Tanker, Deck-A Crew's Quarters.

+
    +
  1. Tranquillise or kill the guard patrolling the hallway.
  2. +
  3. Drag him (grab button) into the room with the lockers.
  4. +
  5. Open a locker, then drag him into it — Snake automatically stuffs him in and shuts the door.
  6. +
+

Works as both Snake and Raiden, so this is one of the easiest to pick up in the first 5 minutes of the run.

"""), + +"ach_002_016": dict(cat="misc", miss=True, + where="Plant — Strut F warehouse (Book), place in a guard's path", window="After Fatman for the safest Book route", + guide=""" +

Lure a guard with the Book (the girlie magazine).

+
    +
  1. Get the Book in Strut F: on the top floor, lean on the railing, flip over it, shimmy right until you are above the stack of crates, drop down and pick it up. (Also found in the Shell 1 Core 1F south lockers and in Emma's locker in Shell 2 Core B1.)
  2. +
  3. Equip the Book and drop it in a guard's patrol path.
  4. +
  5. When he stops to stare, the achievement pops.
  6. +
"""), + +"ach_002_017": dict(cat="coll", miss=True, + where="Any chapter — hold up any guard or boss", window="First opportunist moment", + guide=""" +

Collect a single dog tag. This is the first of the collectible chain and pops almost immediately.

+

How to hold up a guard:

+
    +
  1. Approach from behind, equip the M9/SOCOM, hold the aim button while pressing the fire button so the gun is pressed into their back — Snake shouts "Freeze!".
  2. +
  3. Keep the gun raised and run around to their front while still aiming.
  4. +
  5. Aim at their face; they shake and drop the tag.
  6. +
  7. If they refuse, shoot their hand or foot with a lethal weapon to scare them, then tranquillise them.
  8. +
+
The full 394-tag checklist with guard names, areas and conditional-spawn notes is in the Dog Tags tab.
"""), + +"ach_002_018": dict(cat="misc", miss=True, cum=True, + where="Anywhere — cameras in story, Snake Tales and VR", window="Cumulative", + guide=""" +

Destroy 5 wall-mounted cameras (cumulative across story, Snake Tales and VR missions).

+ +
If you are going for Big Boss, remember every camera you destroy counts toward your mech-damage limit. Do this achievement on a non-Big-Boss run.
"""), + +"ach_002_019": dict(cat="misc", miss=True, + where="Tanker — Deck-D, crew's quarters (fire extinguisher)", window="Tanker, before the Holds", + guide=""" +

Disorient a guard with a fire extinguisher cloud.

+
    +
  1. Go to Deck-D Crew's Quarters, near the kitchen/food storeroom and the laser trap hallway.
  2. +
  3. Stand across from the laser trap and wait for the patrolling guard to stop next to the fire extinguisher.
  4. +
  5. Shoot the extinguisher (non-lethal works) so the cloud engulfs him.
  6. +
"""), + +"ach_002_020": dict(cat="misc", miss=True, cum=True, + where="Anywhere — shoot the radio on a guard's back", window="Cumulative", + guide=""" +

Shoot an enemy's radio.

+"""), + +"ach_002_021": dict(cat="misc", miss=True, + where="Tanker — pipe-lined hallways", window="Tanker", + guide=""" +

Down an enemy with steam from a burst pipe.

+
    +
  1. Hold up (or drag) a guard next to a wall pipe, then shoot the pipe. Steam jets out.
  2. +
  3. Keep shooting the pipe until the guard dies — you can tell it is working because he waves a hand in front of his face.
  4. +
  5. Alternatively, during the Tanker ambush hallway (narrow corridor lined with pipes) just shoot the pipes next to the soldiers.
  6. +
+
Caution: Hot requires a kill. If you are attempting Pacifist Run or Big Boss in the same session, do not trigger this on that file.
"""), + +"ach_002_022": dict(cat="misc", miss=True, + where="Tanker — Deck-A, crew's quarters (poster locker)", window="Tanker", + guide=""" +

Kiss the poster inside a locker.

+
    +
  1. In Deck-A Crew's Quarters, open lockers until you find the one with a pin-up poster on the inside of the door.
  2. +
  3. Get inside the locker. The door closes behind you and the poster is right in your face.
  4. +
  5. Hold the aim/first-person button until you hear a kissing noise.
  6. +
+

Do this back-to-back with Snake Beater.

"""), + +"ach_002_023": dict(cat="misc", miss=True, + where="Tanker — same locker as Kissing Booth", window="Tanker, right after Kissing Booth", + guide=""" +

Get caught by Otacon while "stimulating yourself".

+
    +
  1. After Kissing Booth, get out of the locker and press the first-person button to stare at the poster again — you must be right up against it.
  2. +
  3. While still in first-person staring at the poster, open the codec and call Otacon.
  4. +
  5. The achievement pops on the call.
  6. +
"""), + +"ach_002_024": dict(cat="misc", miss=True, + where="Tanker — Hold No. 2 (projector screens)", window="Tanker Holds — one-shot area", + guide=""" +

Photograph the ghost image in Hold No. 2.

+
    +
  1. Late in the Tanker you sneak through the marine holds. In Hold No. 2 there are two projector screens the marines flip between.
  2. +
  3. Use the camera Otacon gave you (not the Digital Camera special item) and photograph the right-hand screen.
  4. +
  5. If the ghost image is not up, interact with the projector to switch to it.
  6. +
+
The Holds are a one-way trip — grab this and Sexting before you leave.
"""), + +"ach_002_025": dict(cat="misc", miss=True, + where="Tanker — Hold No. 3 (computer, bottom-right)", window="Tanker Holds — before photographing RAY", + guide=""" +

Send Otacon a picture of the pantsless marine.

+
    +
  1. In the holds, find the marine in the crowd with no trousers and photograph him with Otacon's camera — the Digital Camera special item does not work.
  2. +
  3. Continue to Hold No. 3 (where RAY is) and use the computer in the bottom-right corner to send the photo.
  4. +
+
Send it before you take the RAY photographs, or you will have to replay the Tanker.
"""), + +"ach_002_026": dict(cat="misc", miss=True, + where="Plant — Strut A (lie near the sea lice)", window="Start of the Plant chapter", + guide=""" +

Get sea lice all over your rations.

+
    +
  1. At the very start of the Plant, pick up a ration.
  2. +
  3. Lie down on the ground near the little bugs (Strut A area) and wait — a louse crawls onto your rations in your inventory.
  4. +
+

To get rid of it afterwards, hold your inventory open and cycle the ration up and down quickly.

"""), + +"ach_002_027": dict(cat="misc", miss=True, + where="Plant — Shell 1 Core (Ames) and the oil fence", window="Two separate story moments", + guide=""" +

Hear Johnny's bowel noises in two locations, both in the Plant chapter, using the Directional Mic.

+
    +
  1. Location 1 — Ames' hostage room. During the scene Ames tells you to mic Ocelot and Solidus. Aim the Directional Mic slightly left of that conversation until you pick up Johnny talking to himself in the bathroom. Keep it on him until he finishes.
  2. +
  3. Location 2 — the oil fence. While covering Emma, when she ducks behind the second platform, aim the mic at that platform. You will hear Emma bump into Johnny. Keep the mic on them until he leaves.
  4. +
+
Community reports say the two listens must happen in the same game session — do not quit to the menu between them. Some players needed to load a save made just before the sniper section and re-listen.
"""), + +"ach_002_028": dict(cat="misc", miss=True, + where="End of the game — rooftop epilogue cutscene", window="Final cutscene — DO NOT SKIP", + guide=""" +

Catch a glimpse of Vamp standing in the streets of New York during the end cinematic.

+
    +
  1. Do not skip the final cutscene. This is the single most commonly missed achievement in the game.
  2. +
  3. When Snake asks Raiden "By the way, what is that?" and Raiden answers "No, never heard the name before", immediately hold the zoom button (R2/L2 on PS, RT on Xbox) and look around with the stick.
  4. +
  5. Vamp is standing in the background. Zoom in on him and the achievement pops.
  6. +
"""), + +"ach_002_029": dict(cat="misc", + where="Main Menu → Special → Casting Theater (after beating the game)", window="After completing the game", + guide=""" +

Watch Rose kill Raiden on a rooftop using the Casting Theater.

+
    +
  1. Beat the game once to unlock Casting Theater.
  2. +
  3. Go to Main Menu → Special → Casting Theater.
  4. +
  5. Select Demo 8.
  6. +
  7. Replace Raiden with Rose and Solidus with Raiden.
  8. +
  9. Watch the scene — this pops Love Hurts and Casting Theater together.
  10. +
"""), + +# --------------------------------------------------------- CUMULATIVE +"ach_002_030": dict(cat="misc", cum=True, + where="Anywhere — hold up enemies", window="Cumulative, carries across runs", + guide=""" +

Hold up 30 enemies (cumulative).

+

This comes for free while hunting dog tags — you will hold up well over 30 guards across the Tanker and Plant tag runs. +The counter persists across playthroughs, so it is effectively impossible to miss.

"""), + +"ach_002_031": dict(cat="misc", cum=True, + where="Anywhere — M9 / PSG1-T", window="Cumulative, carries across runs", + guide=""" +

Tranquilise 100 enemies (cumulative).

+"""), + +"ach_002_032": dict(cat="misc", cum=True, + where="Anywhere — grab from behind, tap the grab button", window="Cumulative, carries across runs", + guide=""" +

Break the neck of 30 enemies (cumulative).

+
    +
  1. Get behind an enemy and grab them.
  2. +
  3. Keep tapping the grab button until the neck snaps.
  4. +
+
Neck breaks are kills — they void Pacifist Run and Big Boss. Farm this on a normal tag run.
"""), + +"ach_002_033": dict(cat="misc", cum=True, + where="Anywhere — melee combos / groin punch / HF Blade stun side", window="Cumulative, carries across runs", + guide=""" +

Knock 30 enemies unconscious (cumulative). An unconscious enemy has stars above their head.

+"""), + +"ach_002_034": dict(cat="misc", cum=True, + where="Tanker — Engine Room · Plant — Strut D or FA Connecting Bridge", window="Cumulative, carries across runs", + guide=""" +

Attain grip level 3 (the maximum). You need two grip levels, and each level is +100 pull-ups or 10 drop-and-catches — so the full job is 200 pull-ups or 20 catches.

+

Where to do it

+ +

The two methods

+ +
Progress resets if you die without leaving the room, so step out and back in every few drops to bank +it. In the Tanker Engine Room specifically, take the two one-shot guard tags (Jeff A Saylor Jr, +Kazuki Tokunaga) first — they despawn the moment you leave the room.
+
Do this in the Tanker so it is finished before the Holds — the hidden marine tags in Hold No. 1 and +No. 3 need long ledge shimmies that drain grip and health, and grip level 3 makes that far safer.
+
Never grind this on a Big Boss run: one missed catch is a death, and that voids the codename.
"""), + +# --------------------------------------------------------- COLLECTIBLE +"ach_002_035": dict(cat="coll", miss=True, + where="Plant — Strut E conveyor (Box 5) or end of game", window="Plant chapter", + guide=""" +

Acquire the digital camera. Three routes:

+"""), + +"ach_002_036": dict(cat="coll", miss=True, + where="Tanker — 6 weapon types", window="Tanker chapter", + guide=""" +

Collect all 6 weapon types on the Tanker:

+ + + + + + + + +
WeaponHow / where
M9Default starting weapon.
USPAutomatic — given to you after beating Olga.
Chaff GrenadesDeck-C, crew's quarters — in the locker left of the stairs after the first camera.
Stun GrenadesDeck-A crew's lounge — at the bottom of the stairs leading to the Engine Room, starboard. You pass them during the story.
Hand GrenadesEngine Room — bottom level, bottom-left corner near the exit at the foot of the stairs.
MagazineAutomatic — you get it the first time you reload a weapon.
+
Must be done in a single Tanker playthrough; the game only checks the weapon types you have held at once.
"""), + +"ach_002_037": dict(cat="coll", miss=True, + where="Plant — every weapon type (~18 items)", window="Plant chapter", + guide=""" +

Collect every weapon type in the Plant. You only need one of each grenade type. Listed in the order they become available:

+ + + + + + + + + + + + + + + + + + + + +
WeaponWhere
Chaff GrenadesStrut A Roof · FA connecting bridge · Strut F · Shell 1 Core 1F · Strut L Perimeter · KL connecting bridge
M9Strut F — top floor, room on the right after entering from the FA top-floor bridge (also near the start on Very Easy).
MagazineAutomatic when you reload a weapon.
CoolantGiven by Stillman during the story.
BookStrut F — hang over the top-floor railing and drop onto the crates. Also Shell 1 Core 1F south lockers, and Emma's locker in Shell 2 Core B1 Filtration Chamber 2.
Stun GrenadesStrut F bottom floor · Strut E · DE connecting bridge · Shell 1 Core B1 lockers.
Claymore MinesEF connecting bridge (crawl across to collect) · Strut E Heliport · Strut A Roof after the Fortune fight · Shell 1 Core 1F south lockers.
AKS-74uStrut F bottom floor, after the Fatman fight.
M4Strut F top floor, middle-left room, after the Fatman fight.
C-4Strut F top floor top-right room (locker) · Shell 1 Core 1F south lockers · Emma's locker in Shell 2 Core B1.
Directional MicShell 1 Core B2 Computer Room — story-required item.
RGB6Strut F, after meeting Ames — top floor, top-left room.
PSG-1Strut F, after meeting Ames — top floor, middle-right room.
PSG-1TSame room as the PSG-1 — crawl into the vent.
GrenadesStrut F, after meeting Ames — top floor, bottom-left room.
StingerAutomatic during the Harrier fight.
NikitaShell 2 Core B1 — story-required; swim underwater to find it.
HF BladeAutomatic — given by Snake after you escape the torture room.
+
Most Strut F weapon rooms only open up after the Fatman fight and again after meeting Ames — do a full sweep of Strut F at each of those points.
"""), + +"ach_002_038": dict(cat="coll", miss=True, + where="Tanker (2 boxes) + Plant (5 boxes)", window="Both chapters", + guide=""" +

Collect all 7 cardboard boxes.

+

Tanker

+ +

Plant

+"""), + +"ach_002_044": dict(cat="coll", miss=True, + where="Tanker — 50 tags", window="End of a completed chapter", + guide=""" +

Get the Bandana (infinite ammo) — requires 50 Tanker dog tags.

+

All Very Easy (24) + all Easy (26) = exactly 50. Finish the chapter and save a completed file so the item carries over.

"""), + +"ach_002_045": dict(cat="coll", miss=True, + where="Tanker — 76 tags", window="End of a completed chapter", + guide=""" +

Get the Tanker stealth suit — requires 76 Tanker dog tags.

+

Very Easy (24) + Easy (26) + Normal (33) = 83, so 76 arrives partway through the Normal tag sweep. Finish the chapter and save a completed file.

"""), + +"ach_002_046": dict(cat="coll", miss=True, + where="Plant — 80 tags", window="End of a completed chapter", + guide=""" +

Get the Brown Wig (infinite ammo) — requires 80 Plant dog tags.

+

Very Easy (43) + Easy (44) = 87, so this lands during the Easy sweep. Finish the chapter and save a completed file.

"""), + +"ach_002_047": dict(cat="coll", miss=True, + where="Plant — 120 tags", window="End of a completed chapter", + guide=""" +

Get the Plant stealth suit — requires 120 Plant dog tags.

+

Very Easy (43) + Easy (44) + Normal (49) = 136, so 120 arrives partway through the Normal sweep. This is the item that makes Pacifist Run and Complete Stealth trivial, so do it before those runs.

"""), + +# --------------------------------------------------------- CHALLENGE +"ach_002_048": dict(cat="chal", miss=True, + where="Any completed playthrough", window="Whole run", + guide=""" +

Clear the game without killing anyone.

+ +
Easiest route: do this on Very Easy with the Bandana equipped (infinite tranq ammo) after you have unlocked it. Community reports also confirm you can earn it with a Tanker-only run if you started one.
+
Do not press the neck-break prompt, do not shoot explosive barrels into enemies, and do not let the steam pipe kill anyone on this file.
"""), + +"ach_002_049": dict(cat="chal", miss=True, + where="Any completed playthrough", window="Whole run", + guide=""" +

Clear the game without entering Alert mode (mandatory alert events excluded).

+ +
The one exception: the Shell 1 Core elevator requires you to wear the disguise and equip the AK-47. The camera will spot you even with stealth equipped if you try it any other way — do it properly and you stay safe.
+

The following forced alert sequences do not void the achievement:

+ +

Save often and reload if the HUD goes red. Pair this with Pacifist Run on the same playthrough — both are trivial with stealth + bandana on Very Easy.

"""), + +"ach_002_050": dict(cat="chal", miss=True, + where="Extreme difficulty, Tanker → Plant", window="Whole run", + guide=""" +

Earn the title of Big Boss. This is the hardest achievement in the game — see the dedicated +Big Boss Run tab for full criteria, boss strategies, save points and time checkpoints.

+

Complete the game on Extreme, Tanker→Plant, with:

+"""), + +# --------------------------------------------------------- MODES / EXTRA +"ach_002_039": dict(cat="mode", + where="Main Menu → Special → Casting Theater", window="After completing the game", + guide=""" +

Watch anything in the Casting Theater. Pops automatically while earning Love Hurts.

+

Main Menu → Special → Casting Theater → pick any demo and let it play.

"""), + +"ach_002_040": dict(cat="mode", + where="Main Menu → Boss Survival", window="Unlocked after beating the game", + guide=""" +

Complete Boss Survival — all bosses from both chapters back to back:

+

Olga → Tanker ambush soldiers → Fatman → Harrier → Vamp → Tengu soldiers → Metal Gear RAYs → Solidus

+
Pick Raiden on Easy. Raiden has the HF Blade for the Solidus fight; Snake only gets a melee attack, which makes the last fight far harder. You can also change the difficulty of Boss Survival independently.
"""), + +"ach_002_041": dict(cat="mode", + where="Main Menu → Snake Tales", window="Any time", + guide=""" +

Complete at least one of the five Snake Tales: A Wrongdoing, Big Shell Evil, Confidential Legacy, +Dead Man, External Gazer.

+

The Master Collection only requires one (the 2011 HD release required all five). Pick whichever you like — A Wrongdoing is the shortest.

"""), + +"ach_002_042": dict(cat="mode", + where="Main Menu → VR Missions / Alternative Missions", window="Any time", + guide=""" +

Complete any single VR or Alternative mission. One and done — pick the shortest Sneaking mission you can find.

"""), + +"ach_002_043": dict(cat="mode", + where="Main Menu → VR Missions / Alternative Missions", window="Any time", + guide=""" +

Place first in 50 different VR/Alternative missions (beat the target time).

+"""), + +"ach_002_051": dict(cat="extra", + where="Master Collection launcher → MGS2 Screenplay Book", window="Any time", + guide=""" +

Read all pages in the Screenplay Book.

+
    +
  1. From the Master Collection launcher, open the MGS2 Screenplay.
  2. +
  3. Tab/page all the way to the end — the achievement pops when you reach the last page.
  4. +
+
Free achievement — do it from the main menu before you even start playing.
"""), +} diff --git a/build/build.py b/build/build.py new file mode 100644 index 0000000..5090d0a --- /dev/null +++ b/build/build.py @@ -0,0 +1,467 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Assembles the single-file MGS2 companion from the collected sources.""" +import json, os, sys, re, html, shutil + +HERE = os.path.dirname(os.path.abspath(__file__)) +OUT = os.path.dirname(HERE) # repo root, one level above build/ + +sys.path.insert(0, HERE) +from achievements_src import ACH +from roadmap_src import ROADMAP, BIGBOSS + +official = json.load(open(os.path.join(HERE, "steam_official.json"))) +vc = json.load(open(os.path.join(HERE, "dogtags_vc.json"))) +notes = json.load(open(os.path.join(HERE, "dogtag_notes.json"))) +maps = json.load(open(os.path.join(HERE, "maps.json"))) + +# ---------------------------------------------------------------- achievements +ach_list = [] +missing_guide = [] +for o in official: + api = o["api"] + src = ACH.get(api) + if not src: + missing_guide.append(api) + src = dict(cat="misc", guide="

No notes yet.

") + entry = { + "id": api, + "api": api, + "name": o["name"], + "desc": o["desc"], + "icon": o["icon"], + "icoLocked": o["iconLocked"], + "cat": src.get("cat", "misc"), + } + if src.get("miss"): entry["miss"] = True + if src.get("cum"): entry["cum"] = True + if src.get("where"): entry["where"] = src["where"] + if src.get("window"): entry["window"] = src["window"] + entry["guide"] = src.get("guide", "

") + ach_list.append(entry) + +if missing_guide: + print("!! achievements without hand-written notes:", missing_guide) + +# ------------------------------------------------- in-game location screenshots +# Two sources, both hot-linked (their CDNs serve any referrer): +# steam - the Steam Community achievement guide +# dayngl - Dayngl's Guides MGS2 trophy guide (descriptive filenames, close-up shots) +# Button-prompt glyphs, trophy icons, the section divider and box-art are excluded. +guide_imgs = json.load(open(os.path.join(HERE, "steam_imgs_by_ach.json"))) +guide_meta = json.load(open(os.path.join(HERE, "ach_icons.json"))) +dayngl_imgs = json.load(open(os.path.join(HERE, "dayngl_real.json"))) + +def norm(s): + return "".join(ch for ch in s.lower() if ch.isalnum()) + +name_to_api = {norm(o["name"]): o["api"] for o in official} + +TINY = { + "03A5065DF1B5316CC3828CACFE80ED88308EE8D7","30A3C27578B65038D6A638BD24B09419F47519BF", + "3E2512E8BE55F3A14A9C2C96819B2DB46D8B3674","4E29A232BE1405A43384DCE389E660672860E038", + "539C603F19D06579B9DD671E39E313B9E8494525","675A6525F9933AEBBA3596F7288F01A1A36A46BB", + "7B48927D0A89321440B0D9B9B32E46D9D331828B","A810C37F28E4C51A9EE589511B9614070046B9FB", + "B31F84B091C9C019AA9F35EEA761092D81A4B028","BFEE9C0D8F085A3F91285784B09666747771931A", + "D3886DAA8B8B4108625D7AC48FA19663E3823408","E2CDBD01848B7ADBEA4CE42C54199F1385E13FD6", + "FC08EA78D73A06C58AA304C6DAA576D3AC56C483"} +DIVIDER = "DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4" + +shots = {} +for gname, info in guide_meta.items(): + api = name_to_api.get(norm(gname)) + if not api: + continue + keep = [] + for u in guide_imgs.get(str(info["num"]), []): + h = u.rstrip("/").split("/")[-1] + if h in TINY or h == DIVIDER or u == info["icon"]: + continue + keep.append({"u": u, "s": "steam"}) + if keep: + shots.setdefault(api, []).extend(keep) + +unmatched = set() +for x in dayngl_imgs: + api = name_to_api.get(norm(x["ach"])) + if not api: + unmatched.add(x["ach"]); continue + shots.setdefault(api, []).append({"u": x["url"], "s": "dayngl"}) + +# (per-step cap below keeps any single step from becoming a photo wall) + +## --- photos that are the SAME SHOT as a Steam one, detected by perceptual hash +## (dHash on 16x16 greyscale, Hamming distance <= 14/240). Dayngl's guide reuses the +## same screenshots as the Steam guide, so these showed the same picture twice. +DUP_DAYNGL = { + "Screenshot-metal-gear-solid-2-book-2.png", "Screenshot-metal-gear-solid-2-book-3.png", + "Screenshot-metal-gear-solid-2-book.png", "Screenshot-metal-gear-solid-2-box-3-2.png", + "Screenshot-metal-gear-solid-2-box-3-3.png", "Screenshot-metal-gear-solid-2-box-3.png", + "Screenshot-metal-gear-solid-2-camera.png", "Screenshot-metal-gear-solid-2-ghost.png", + "Screenshot-metal-gear-solid-2-locker-poster.png", "Screenshot-metal-gear-solid-2-orange-box-2.png", + "Screenshot-metal-gear-solid-2-orange-box-4.png", "Screenshot-metal-gear-solid-2-snake-beater-2.png", + "Screenshot-mgs2-sea-louse-2.png", "Screenshot-mgs2-sea-louse.png", + "Snapshot_192.png", "Snapshot_194.png", "Snapshot_195.png", "Snapshot_196.png", "Snapshot_197.png", + "Snapshot_203.png", "Snapshot_204.png", "Snapshot_208.png", +} + +# --- achievements whose pictures span SEVERAL locations: each photo is pinned to one step. +# Order taken from the sequence the guides present them in (text, then its screenshot). +PHOTO_STEP = { + # Moving Day - the seven boxes live all over both chapters; each shot shows one box + "5B7C3B4E8BF3379814E8C185D356BED511BFE81D": "r1-2", # Box 1, Tanker Deck-D + "orange-box.png": "r1-2", + "1A140671AAFEBEF9A706AACA000D1756E09B5225": "r1-9", # Wet Box, Nav Deck + "0155C94B62BD63D9892146E0255F7F685202E9E5": "r1-9", + "orange-box-3.png": "r1-9", + "420301D5428D7150DAD254BB90EFF9637DBDAA07": "r2-2", # Box 1, Strut A + "strut-a-box-2": "r2-2", + "7D577E665B40A901FCCA3326640653EB5C4C6E65": "r2-8", # Box 2, Strut F + "strut-a-box-3": "r2-8", + "2E0EB1DD4C769654138A04B9DE6DC58804D1B735": "r2-9", # Box 5, Strut E conveyor + "D5931E8F90958DE3CA75693F016767AAC02C9E34": "r2-9", # Box 3, Strut E rooftop + "box-4.png": "r2-9", + "ACA684EB5386F44862EF3A34DA0056C7D8ED509B": "r2-10", # Box 4, Shell 1 Core B2 + "box-4-2.png": "r2-10", + # Photo Finish - the conveyor method (Strut E) vs the Level 5 door pickup + "A0B74949CFCC8D0058DD0FF5ED6E362DBC65D94B": "r2-9", + "F446514EA80167FC12D5816BA2D7854D6628E4F5": "r2-9", + "ACC84EFADCDAE266D93B6B6FD5CEF82A8B66E22E": "r2-9", + "225FFD74A14296925890B40193A5578B1299DFB6": "r2-15", # Level 5 door + # Johnny on the Spot - mic location 1 (Ames) vs location 2 (oil fence) + "F99FE3B53E49D8AD5837E7842ACE632A2F0051D0": "r2-11", + "Snapshot_205.png": "r2-11", + "06754D9C8F7CF65B9D0C74F17FBC54E6FA8071CE": "r2-15", + "Snapshot_206.png": "r2-15", +} +SPLIT_APIS = {"ach_002_027", "ach_002_035", "ach_002_038"} # Johnny / Photo Finish / Moving Day + +# strip the perceptual duplicates +before = sum(len(v) for v in shots.values()) +for api in shots: + shots[api] = [x for x in shots[api] if x["u"].split("/")[-1] not in DUP_DAYNGL] +after = sum(len(v) for v in shots.values()) +print("dropped %d duplicate photos (%d -> %d)" % (before - after, before, after)) + +for e in ach_list: + if e["api"] in shots: + e["shots"] = shots[e["api"]] +n_steam = sum(1 for v in shots.values() for x in v if x["s"] == "steam") +n_dayngl = sum(1 for v in shots.values() for x in v if x["s"] == "dayngl") +print("with screenshots: %d achievements (%d images: %d steam + %d dayngl)" + % (len(shots), n_steam + n_dayngl, n_steam, n_dayngl)) +if unmatched: + print("!! dayngl images with no matching achievement:", sorted(unmatched)) + +# ------------------------------------------------- road-map colour coding +# The walkthrough is written by hand with for "the thing you interact with" and +# for guard names. Here we classify each of those and attach a semantic class so +# dog tags, items, achievements (missable especially) and bosses are visually distinct. + +TAGNAMES = set() +for blk in vc: + for t in blk["tags"]: + TAGNAMES.add(norm(t["name"])) + +ACH_MISS = {norm(e["name"]) for e in ach_list if e.get("miss")} +ACH_ANY = {norm(e["name"]) for e in ach_list} + +BOSSES = ["olga gurlukovich","olga","fortune","fatman","harrier","vamp","solidus snake", + "solidus","metal gear ray","metal gear rays","rays","tengu","tengu soldiers"] +BOSS_NORM = {norm(b) for b in BOSSES} + +ITEMS = {norm(x) for x in [ + "stun grenades","chaff grenades","hand grenades","grenades","claymore mines","c4","m9","socom", + "psg-1","psg1","psg1t","rgb6","aks-74u","aks74u","m4","nikita","stinger","hf blade","coolant", + "directional mic","book","magazine","digital camera","camera","cardboard box","box","box 1","box 2", + "box 3","box 4","box 5","wet box","lv. 1 card","lv. 5 card","lv. 5 door","level 5 door","ration", + "rations","bandana","stealth camo","brown wig","orange wig","blue wig","sensor a","disguise", + "ak-47","ak","body armor","thermal goggles","mine detector","scope","night vision","cigarettes", + "radar","radar node","nikita","psg-1t","coolant spray","sensor","card","tag", +]} + +AREAS = {norm(x) for x in [ + "aft deck","deck-a","deck-b","deck-c","deck-d","deck-e","deck 2","deck-2","hold no. 1","hold no. 2", + "hold no. 3","holds","strut a","strut b","strut c","strut d","strut e","strut f","strut l", + "shell 1 core","shell 2 core","shell 1 core 1f","shell 1 core b1","shell 1 core b2", + "shell 2 core 1f","shell 2 core b1","arsenal gear","ascending colon","engine room", + "navigational deck","oil fence","big shell","tanker","plant","heliport","sediment pool", + "pump room","transformer room","dining hall","parcel room","warehouse","computer room", + "deep sea dock","connecting bridge","sewage treatment facility","air purification room","rooftop", +]} + +def core_of(txt): + t = re.sub(r"\s*\(.*?\)\s*$", "", txt) # trailing "(Moving Day)" + t = re.sub(r"#\s*\d+\s*\.?$", "", t) # trailing "#1" + t = re.sub(r"[\s:.!]+$", "", t) + return t.strip() + +def _ach_class(n): + if n in ACH_MISS: return "k-miss" + if n in ACH_ANY: return "k-ach" + if len(n) >= 12: # "Cover-to-Cover Solid 2" -> full title + for full in ACH_ANY: + if full.startswith(n): + return "k-miss" if full in ACH_MISS else "k-ach" + return None + +def _item_class(n): + if n in ITEMS: return "k-item" + if len(n) >= 5 and any(i.startswith(n) for i in ITEMS if len(i) >= 5): + return "k-item" # "Bandana 50", "Brown Wig 80" + return None + +def colourise_b(txt): + core = core_of(txt) + # compound labels like "disguise + AK-47" or "Bandana / Brown Wig" + if re.search(r"[+/]", core): + parts = [core_of(p) for p in re.split(r"[+/]", core)] + parts = [norm(p) for p in parts if p.strip()] + if parts and all(_item_class(p) == "k-item" for p in parts): + return "k-item" + n = norm(core) + for fn in (_ach_class, _item_class): + r = fn(n) + if r: return r + if n in BOSS_NORM or any(n.startswith(b) for b in BOSS_NORM if len(b) >= 6): + return "k-boss" # "Olga's body", "Fatman's body" + if n in AREAS: + return "k-area" + return None + +def colourise_i(txt): + parts = [norm(p) for p in re.split(r"[,/]", txt)] + parts = [p for p in parts if p] + if not parts: + return None + hits = sum(1 for p in parts if p in TAGNAMES) + return "k-tag" if hits >= max(1, len(parts) * 0.6) else None + +def colourise(html): + def rep_b(m): + cls = colourise_b(m.group(1)) + return '%s' % (cls, m.group(1)) if cls else m.group(0) + def rep_i(m): + cls = colourise_i(m.group(1)) + return '%s' % (cls, m.group(1)) if cls else m.group(0) + html = re.sub(r"(.*?)", rep_b, html, flags=re.S) + html = re.sub(r"(.*?)", rep_i, html, flags=re.S) + return html + +n_col = 0 +for ph in ROADMAP: + for st in ph["steps"]: + before = st["body"] + st["body"] = colourise(before) + n_col += len(re.findall(r'class="k-', st["body"])) +for bx in BIGBOSS["bosses"]: + bx["body"] = colourise(bx["body"]) +print("colour-coded spans in roadmap: %d" % n_col) + +# ------------------------------------------------- step sub-checklists +# Which dog-tag areas belong to which walkthrough step. Every area must appear +# exactly once or the build complains, so nothing can silently go missing. +TAGMAP = { + "r1-1": ["Aft deck"], + "r1-2": ["Deck-D, crew's quarters"], + "r1-3": ["Deck-A, crew's quarters"], + "r1-4": ["Deck-A, crew's lounge"], + "r1-5": ["Deck-B, crew's quarters"], + "r1-6": ["Deck-C, crew's quarters"], + "r1-7": ["Deck-2, port"], + "r1-8": ["Engine room"], + "r1-9": ["Navigational deck, wing"], + "r1-10": ["Hold No.1", "Hold No.2", "Hold No.3"], + "r2-1": ["Strut A Deep Sea Dock"], + "r2-2": ["Strut A roof", "Strut A Pump Room"], + "r2-3": ["AB connecting bridge", "Strut B Transformer Room"], + "r2-4": ["BC connecting bridge", "Strut C Dining Hall"], + "r2-5": ["CD connecting bridge", "Strut D Sediment Pool"], + "r2-6": ["DE connecting bridge", "Strut E Parcel Room"], + "r2-7": ["Strut E heliport"], + "r2-8": ["Strut F warehouse", "FA connecting bridge"], + "r2-9": ["Shell 1 Core, 1F"], + "r2-10": ["Shell 1 Core, B2 Computer Room"], + "r2-11": ["Shell 1 Core, B1"], + "r2-12": ["Strut L Sewage Treatment Facility"], + "r2-14": ["Shell 2 Core, 1F Air Purification Room"], + "r2-15": ["KL connecting bridge"], + "r2-16": ["Arsenal Gear-Ascending Colon"], +} +# sanity: every tag area is claimed exactly once, and no step claims a bogus area +all_areas = {} +for blk in vc: + for t in blk["tags"]: + all_areas.setdefault((blk["chapter"], t["area"]), 0) + all_areas[(blk["chapter"], t["area"])] += 0 +claimed = {} +for sid, areas in TAGMAP.items(): + for a in areas: + claimed[a] = claimed.get(a, 0) + 1 +known = {a for (_, a) in all_areas} +missing = sorted(known - set(claimed)) +dupes = sorted(a for a, n in claimed.items() if n > 1) +bogus = sorted(set(claimed) - known) +assert not missing, "tag areas not mapped to any step: %s" % missing +assert not dupes, "tag areas mapped to more than one step: %s" % dupes +assert not bogus, "TAGMAP references unknown areas: %s" % bogus +print("tag areas mapped: %d (all covered, no duplicates)" % len(known)) + +api_by_norm = {norm(e["name"]): e["api"] for e in ach_list} +canon = {e["api"]: e["name"] for e in ach_list} +n_sub = 0 +for ph in ROADMAP: + for st in ph["steps"]: + ach, items, seen = [], [], set() + for cls, txt in re.findall(r'(.*?)', st["body"], re.S): + label = re.sub(r"\s+", " ", txt).strip() + if cls in ("ach", "miss"): + api = api_by_norm.get(norm(core_of(label))) + if api and api not in seen: + seen.add(api); ach.append(api) + else: + if label not in seen: + seen.add(label); items.append(label) + st["gets"] = {"ach": ach, "item": items} + if st["id"] in TAGMAP: + st["areas"] = TAGMAP[st["id"]] + n_sub += len(ach) + len(items) +print("sub-items extracted: %d achievements + %d item labels" + % (sum(len(ph2["gets"]["ach"]) for ph2 in + [s for ph in ROADMAP for s in ph["steps"]]), + n_sub - sum(len(ph2["gets"]["ach"]) for ph2 in + [s for ph in ROADMAP for s in ph["steps"]]))) +needs_split = [s["id"] for ph in ROADMAP for s in ph["steps"] + if "areas" not in s and s["gets"]["ach"] == [] and s["gets"]["item"] == []] +if needs_split: + print("steps with no sub-items at all:", ", ".join(needs_split)) + +# every pin must match at least one real photo, and each photo may match only one pin +_all_photo_urls = [x["u"] for v in shots.values() for x in v] +for k in PHOTO_STEP: + hits = [u for u in _all_photo_urls if k in u] + assert hits, "PHOTO_STEP key matches no photo: %s" % k + +def photo_step(url): + best = None + for k, sid in PHOTO_STEP.items(): + if k in url and (best is None or len(k) > len(best[0])): + best = (k, sid) + return best[1] if best else None + +# every photo of a split achievement must be pinned, or it would land in the wrong place +for api in SPLIT_APIS: + for x in shots.get(api, []): + assert photo_step(x["u"]), "unpinned photo for %s: %s" % (api, x["u"]) + +# any achievement referenced by more than one step must be split explicitly +refs = {} +for ph in ROADMAP: + for st in ph["steps"]: + for api in st["gets"]["ach"]: + refs.setdefault(api, set()).add(st["id"]) +unsplit = sorted(a for a, s in refs.items() if len(s) > 1 and shots.get(a) and a not in SPLIT_APIS) +assert not unsplit, "achievement photos span several steps but are not pinned: %s" % unsplit + +# attach the photos to the steps, not the achievements +placed = set() +for ph in ROADMAP: + for st in ph["steps"]: + out, seen = [], set() + # (a) everything belonging to an achievement this step talks about + for api in st["gets"]["ach"]: + if api in SPLIT_APIS: + continue # these are pinned per-photo below + for x in shots.get(api, []): + if x["u"] in seen: continue + seen.add(x["u"]); out.append({"u": x["u"], "s": x["s"], "cap": canon[api]}) + # (b) photos pinned to this step by PHOTO_STEP, even if the step never names the achievement + for api in SPLIT_APIS: + for x in shots.get(api, []): + if photo_step(x["u"]) == st["id"] and x["u"] not in seen: + seen.add(x["u"]); out.append({"u": x["u"], "s": x["s"], "cap": canon[api]}) + st["photos"] = out[:8] + for x in st["photos"]: placed.add(x["u"]) + if len(out) > 8: + print(" note: %s had %d photos, capped to 8" % (st["id"], len(out))) + +all_used = {x["u"] for v in shots.values() for x in v} +left = all_used - placed +print("photos placed in steps: %d of %d" % (len(placed), len(all_used))) +if left: + print(" !! unplaced photos:") + for u in sorted(left): print(" ", u) +# ---------------------------------------------------------------- dog tags +BLURB = { + ("Tanker","Very Easy"): "Your first pass. Guards are relaxed and there are only 24 tags — a gentle introduction to hold-ups.", + ("Tanker","Easy"): "Same route, two more tags. The last two Tanker lists are what push you past the 50 and 76 thresholds.", + ("Tanker","Normal"): "33 tags. Reaching 76 total Tanker tags happens partway through this list — that is the Tanker Stealth unlock.", + ("Tanker","Hard"): "35 tags. Not needed for any achievement — only chase these for the Orange/Blue wigs on the Plant side or for completion's sake.", + ("Tanker","Extreme"): "34 tags, and the guards hit far harder. Purely optional for achievement purposes.", + ("Plant","Very Easy"): "43 tags. Watch for the conditional spawns — several guards only appear after the Fatman fight or after the Emma escort.", + ("Plant","Easy"): "44 tags. This list alone pushes the Plant total past 80 for the Brown Wig.", + ("Plant","Normal"): "49 tags. Crossing 120 Plant tags happens partway through here — that is the Plant Stealth unlock and the end of the required tag grind.", + ("Plant","Hard"): "52 tags. Optional — needed only for the 160/200 wig thresholds.", + ("Plant","Extreme"): "54 tags, including Hideo Kojima himself. Optional for achievements.", +} +tags_out = [] +for i, blk in enumerate(vc): + key = (blk["chapter"], blk["difficulty"]) + n = notes.get("|".join(key), {}) + tags = [] + for t in blk["tags"]: + e = {"name": t["name"], "area": t["area"]} + if n.get(t["name"]): + e["note"] = n[t["name"]] + tags.append(e) + tags_out.append({ + "id": f"{blk['chapter'][:1].lower()}{i}", + "chapter": blk["chapter"], + "difficulty": blk["difficulty"], + "blurb": BLURB.get(key, ""), + "tags": tags, + }) + +TOTALS = { + "tanker": sum(len(l["tags"]) for l in tags_out if l["chapter"] == "Tanker"), + "plant": sum(len(l["tags"]) for l in tags_out if l["chapter"] == "Plant"), + "grand": sum(len(l["tags"]) for l in tags_out), +} + +# ---------------------------------------------------------------- inject +def js(o): + s = json.dumps(o, ensure_ascii=False, separators=(",", ":")) + return s.replace("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.

+
    +
  • Run 1 — Very Easy, Tanker→Plant. Every misc/missable achievement + all 67 tags.
  • +
  • Run 2 — Easy. All 70 tags.
  • +
  • Run 3 — Normal. All 82 tags (you only need up to 76 Tanker / 120 Plant, but take them all).
  • +
  • Run 4 — Very Easy with Stealth Camo + Bandana. Pacifist Run + Complete Stealth together.
  • +
  • Run 5 — Extreme, no special items, no radar. Big Boss.
  • +
+

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:

+
    +
  • Box 1 (Moving Day) — inside the food storage room, to the right of the stairs you come up.
  • +
  • Down in Smoke — stand across from the laser trap in the hallway; the patrolling guard stops next to a + fire extinguisher. Shoot the extinguisher when he is beside it.
  • +
  • Tags: Miguel Luis Cunha (moves after the Olga fight) and Eiji Senke, who only turns up while you are + inside the storeroom.
  • +
"""), + 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. +
  3. 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.
  4. +
  5. Snake Beater — get out, press first-person again and press right up against the poster, then open the + codec and call Otacon.
  6. +
+

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. +
  3. Press the drop button, then immediately mash the grab/hang button to catch the lower railing.
  4. +
  5. Climb up and repeat. One clean catch = 10 pull-ups, so 20 catches finishes it.
  6. +
+
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:

+
    +
  • Pick up and drop Olga's body for her dog tag.
  • +
  • Grab the Wet Box (Moving Day) on the Navigational Deck, Wing — it is up by the spotlight near where the + guard emerges.
  • +
  • Brendan McLeod spawns when you approach the starboard side.
  • +
"""), + 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.

+
    +
  • Who Ya Gonna Call? — in Hold No. 2, photograph the right-hand projector screen with Otacon's camera. + If the ghost is not up, interact with the projector to switch screens.
  • +
  • Sexting — photograph the marine with no pants, then send it from the computer in the bottom-right of + Hold No. 3. Do this before you photograph RAY.
  • +
  • Hidden marine tags: after going down the first ladder, shimmy along the ledges — there are guards tucked away + in Hold No. 1 and Hold No. 3. For the boxers marine in the middle of the crowd, tranquillise and drag the marines beside him.
  • +
  • Max out rations first — shimmying drains health.
  • +
+

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.

+
    +
  • To Catch a Predator — the Book is on the bottom floor on top of some crates. From the top floor, flip over + the railing, shimmy right until you are above the crates, drop and pick it up. Then drop it in a guard's path.
  • +
  • Box 2 — bottom floor, bottom-left room with the Radar Node (needs Lv. 1 Card).
  • +
  • M9 — top floor, room on the right after entering from the FA top-floor bridge.
  • +
  • Bottom floor after Fatman: AKS-74u. Top-floor middle-left: M4. Top-floor top-right locker: C-4. + Bottom floor: Stun Grenades.
  • +
"""), + 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:

+
    +
  • No neck breaks, no lethal weapons, no explosive barrels killing anyone.
  • +
  • No steam-pipe kills, no falling deaths you caused.
  • +
  • Bosses with a stamina bar (Olga, Fatman, Harrier, Vamp, Solidus) must be drained on stamina, not health.
  • +
  • For Solidus, flip the HF Blade to the blue non-lethal side.
  • +
"""), + 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.

+
    +
  • When he is planting, melee him to knock him down, then freeze the bomb while he is on the floor.
  • +
  • Melee him as he skates past, then M9 to the head while he gets up.
  • +
  • From range, shoot him with the SOCOM to knock him down (little health damage), then M9 to the head.
  • +
  • If you are fast, M9 him in the head the instant he falls and again on the way down.
  • +
"""), + dict(name="Harrier", body=""" +
    +
  • Pick up the Stinger immediately and fire as many shots as you can at the start.
  • +
  • While it circles the perimeter you can land a shot or two.
  • +
  • When it flies straight out, follow the contrails, wait for the flash, fire, then take cover fast.
  • +
  • When it hovers to burn you with thrusters, spam the Stinger at the middle of the jet — no lock-on needed.
  • +
  • Bombs from above: drop to the bottom level.
  • +
  • Rockets: go far left up the stairs, then cartwheel right as it fires.
  • +
  • Close-range gun runs: get to the bottom floor behind the big grey box and move around it as the Harrier repositions.
  • +
"""), + 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. +
  3. Step slowly off the platform so Raiden hangs from the edge — do not fall in. Vamp walks over.
  4. +
  5. Just before he crouches to attack, pull yourself up so the attack whiffs as you climb.
  6. +
  7. 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.
  8. +
  9. If he returns to the water, Stinger the water and restart the loop.
  10. +
"""), + 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.

"""), + ], +) diff --git a/build/steam-proxy-worker.js b/build/steam-proxy-worker.js new file mode 100644 index 0000000..a423b8d --- /dev/null +++ b/build/steam-proxy-worker.js @@ -0,0 +1,138 @@ +/** + * steam-proxy-worker.js — Cloudflare Worker that gives a *hosted* copy of + * la-li-lu-le-lo (the MGS2 Master Collection 100% companion) working Steam sync. + * + * WHY THIS EXISTS + * --------------- + * The companion reads a public Steam Community page to find out which achievements an + * account already has. That page is served as XML and sends no CORS headers, so a browser + * cannot fetch it from another origin. Running steam-sync.py locally solves this on your own + * machine; this Worker solves it once the page is hosted on GitHub Pages / Netlify / Vercel / + * Cloudflare Pages. + * + * DEPLOY (free tier is plenty — this is a handful of requests per page load) + * ------------------------------------------------------------------------- + * 1. https://dash.cloudflare.com -> Workers & Pages -> Create -> Worker + * 2. Paste this whole file in, replacing the starter code. Deploy. + * 3. Copy the worker URL (e.g. https://mgs2-steam-proxy.YOURNAME.workers.dev) + * 4. In index.html, set: const STEAM_PROXY = 'https://mgs2-steam-proxy.YOURNAME.workers.dev'; + * 5. Done — the page will use it automatically when it is not running on localhost. + * + * ALLOW_ORIGIN below is already pinned to the deploying page's origin, so nobody else + * can point their own page at this Worker. Add more origins to the list if you need to. + * + * The Worker makes exactly one outbound request, to the public Steam Community page for the + * profile it is asked about. It stores nothing and logs nothing. + */ + +const APPID = '2131640'; +const ALLOW_ORIGIN = 'https://rain.pages.melonbread.xyz'; // only this page may call the Worker +const UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36'; + +function cors(res) { + res.headers.set('Access-Control-Allow-Origin', ALLOW_ORIGIN); + res.headers.set('Access-Control-Allow-Headers', '*'); + res.headers.set('Access-Control-Allow-Methods', 'GET, OPTIONS'); + res.headers.set('Cache-Control', 'no-store'); + return res; +} +function json(obj) { + return new Response(JSON.stringify(obj), { + status: 200, + headers: { 'Content-Type': 'application/json; charset=utf-8' }, + }); +} +function cdata(block, tag) { + const m = block.match(new RegExp('<' + tag + '>')); + return m ? m[1].trim() : ''; +} + +export default { + async fetch(request) { + const url = new URL(request.url); + + if (request.method === 'OPTIONS') return cors(new Response(null, { status: 204 })); + if (url.pathname.replace(/\/$/, '') !== '/api/steam') { + return cors(new Response('Not found — this Worker only serves /api/steam', { status: 404 })); + } + + const profile = (url.searchParams.get('profile') || '').trim(); + if (!profile) { + return cors(json({ ok: false, error: 'No profile given.', hint: 'Enter a vanity name or SteamID64.' })); + } + + const target = /^\d{17}$/.test(profile) + ? 'https://steamcommunity.com/profiles/' + profile + '/stats/' + APPID + '/?tab=achievements&xml=1' + : 'https://steamcommunity.com/id/' + encodeURIComponent(profile) + '/stats/' + APPID + '/?tab=achievements&xml=1'; + + let xml; + try { + const r = await fetch(target, { headers: { 'User-Agent': UA, 'Accept-Language': 'en' } }); + xml = await r.text(); + } catch (e) { + return cors(json({ ok: false, error: 'Could not reach Steam.', hint: 'Try again in a moment.' })); + } + + const err = xml.match(/<\/error>/); + if (err) { + return cors(json({ + ok: false, + error: err[1].trim(), + hint: 'Check the spelling, or paste the whole profile URL.', + })); + } + const privacy = (xml.match(/(.*?)<\/privacyState>/) || [, ''])[1].trim(); + if (privacy && privacy !== 'public') { + return cors(json({ + ok: false, + error: 'That profile is ' + privacy + '.', + hint: "Steam > Edit Profile > Privacy Settings > set 'Game details' to Public, then sync again.", + })); + } + + const achievements = []; + const re = /([\s\S]*?)<\/achievement>/g; + let m; + while ((m = re.exec(xml)) !== null) { + const body = m[2]; + achievements.push({ + api: cdata(body, 'apiname'), + name: cdata(body, 'name'), + desc: cdata(body, 'description'), + unlocked: m[1] === '1', + icon: cdata(body, 'iconOpen'), + iconLocked: cdata(body, 'iconClosed'), + }); + } + + if (!achievements.length) { + return cors(json({ + ok: false, + error: 'No MGS2 Master Collection stats on that account.', + hint: 'The account must own the game (appid ' + APPID + ') and have launched it at least once.', + })); + } + + const id64 = (xml.match(/(\d+)<\/steamID64>/) || [, ''])[1]; + // This XML carries no persona name, only steamID64 and customURL, so fall back sensibly. + let persona = ''; + const pm = xml.match(/(?:)?<\/steamID>/); + if (pm && pm[1].trim()) persona = pm[1].trim(); + if (!persona) { + const cm = xml.match(/<\/customURL>/); + if (cm && cm[1].trim()) persona = cm[1].trim(); + } + if (!persona) persona = profile; + + return cors(json({ + ok: true, + game: 'METAL GEAR SOLID 2: Sons of Liberty - Master Collection Version', + appid: APPID, + steamid64: id64, + persona: persona, + unlockedCount: achievements.filter((a) => a.unlocked).length, + total: achievements.length, + achievements: achievements, + })); + }, +}; diff --git a/build/steam-sync.py b/build/steam-sync.py new file mode 100644 index 0000000..1dc0469 --- /dev/null +++ b/build/steam-sync.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +steam-sync.py — tiny local helper for la-li-lu-le-lo, the MGS2 Master Collection +100% companion. + +It does two things: + 1. serves the folder it lives in over http://127.0.0.1:8765/ (so the page gets a + real origin and localStorage saves reliably) + 2. exposes /api/steam?profile= which fetches that profile's + public MGS2 Master Collection achievements from Steam and returns them as JSON + +No API key. No third-party packages. Only one outbound request, to the public +Steam Community page for the profile you ask for. + + python3 steam-sync.py # then open http://127.0.0.1:8765/ + python3 steam-sync.py --open # ...and open the browser for you + PORT=9000 python3 steam-sync.py # different port +""" +import http.server +import json +import os +import re +import socket +import socketserver +import sys +import urllib.error +import urllib.parse +import urllib.request +import webbrowser +from xml.etree import ElementTree as ET + +APPID = "2131640" +GAME = "METAL GEAR SOLID 2: Sons of Liberty - Master Collection Version" +PORT = int(os.environ.get("PORT", "8765")) +ROOT = os.path.dirname(os.path.abspath(__file__)) +UA = ("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " + "(KHTML, like Gecko) Chrome/120.0 Safari/537.36") + + +def steam_url(profile): + profile = profile.strip() + if re.fullmatch(r"\d{17}", profile): + return "https://steamcommunity.com/profiles/%s/stats/%s/?tab=achievements&xml=1" % (profile, APPID) + return "https://steamcommunity.com/id/%s/stats/%s/?tab=achievements&xml=1" % ( + urllib.parse.quote(profile), APPID) + + +def fetch_steam(profile): + url = steam_url(profile) + req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept-Language": "en"}) + try: + with urllib.request.urlopen(req, timeout=25) as r: + raw = r.read() + except urllib.error.HTTPError as e: + return {"ok": False, "error": "Steam returned HTTP %s." % e.code, + "hint": "Try again in a moment; Steam rate-limits rapid requests."} + except Exception as e: + return {"ok": False, "error": "Could not reach Steam: %s" % e, + "hint": "Check your internet connection."} + + try: + root = ET.fromstring(raw) + except ET.ParseError: + return {"ok": False, "error": "Steam sent something unreadable.", + "hint": "The profile may be private or Steam may be rate-limiting."} + + err = root.find("error") + if err is not None and (err.text or "").strip(): + msg = err.text.strip() + hint = "Check the spelling, or paste the whole profile URL." + if "private" in msg.lower(): + hint = "Steam > your profile > Edit Profile > Privacy Settings > set 'Game details' to Public." + return {"ok": False, "error": msg, "hint": hint} + + privacy = (root.findtext("privacyState") or "").strip() + if privacy and privacy != "public": + return {"ok": False, + "error": "That profile is %s." % privacy, + "hint": "Steam > Edit Profile > Privacy Settings > set 'Game details' to Public, then sync again."} + + ach_nodes = root.findall("./achievements/achievement") + if not ach_nodes: + return {"ok": False, + "error": "No MGS2 Master Collection stats on that account.", + "hint": "The account must own the game (appid %s) and have launched it at least once." % APPID} + + out = [] + for a in ach_nodes: + out.append({ + "api": (a.findtext("apiname") or "").strip(), + "name": (a.findtext("name") or "").strip(), + "desc": (a.findtext("description") or "").strip(), + "unlocked": a.get("closed") == "1", + "icon": (a.findtext("iconOpen") or "").strip(), + "iconLocked": (a.findtext("iconClosed") or "").strip(), + }) + + return { + "ok": True, + "game": GAME, + "appid": APPID, + "steamid64": (root.findtext("./player/steamID64") or "").strip(), + # This XML carries no persona name, only steamID64 and customURL. + "persona": ((root.findtext("./player/steamID") + or root.findtext("./player/customURL") + or profile) or "").strip(), + "unlockedCount": sum(1 for a in out if a["unlocked"]), + "total": len(out), + "achievements": out, + } + + +class Handler(http.server.SimpleHTTPRequestHandler): + def __init__(self, *args, **kw): + super().__init__(*args, directory=ROOT, **kw) + + def log_message(self, fmt, *args): + # Never let a closed/dead output pipe (e.g. when run in the background) + # take the whole server down with it. + if "/api/" not in (self.path or ""): + return + try: + sys.stderr.write(" steam-sync: %s %s\n" % (self.command, self.path.split("?")[0])) + sys.stderr.flush() + except Exception: + pass + + def _cors(self): + self.send_header("Access-Control-Allow-Origin", "*") + self.send_header("Access-Control-Allow-Headers", "*") + self.send_header("Access-Control-Allow-Methods", "GET, OPTIONS") + # Chrome asks for this when a public https page (e.g. the Pages deployment) + # calls into 127.0.0.1. Without it the request is blocked before it is sent. + self.send_header("Access-Control-Allow-Private-Network", "true") + + def do_OPTIONS(self): + self.send_response(204) + self._cors() + self.end_headers() + + def do_GET(self): + if self.path.split("?")[0] != "/api/steam": + return super().do_GET() + + qs = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query) + profile = (qs.get("profile") or [""])[0].strip() + if not profile: + payload = {"ok": False, "error": "No profile given.", + "hint": "Enter a vanity name or SteamID64."} + else: + try: + payload = fetch_steam(profile) + except Exception as e: # never 500 on the user + payload = {"ok": False, "error": "Unexpected error: %s" % e, "hint": ""} + + body = json.dumps(payload, ensure_ascii=False).encode("utf-8") + self.send_response(200) + self.send_header("Content-Type", "application/json; charset=utf-8") + self.send_header("Content-Length", str(len(body))) + self.send_header("Cache-Control", "no-store") + self._cors() + self.end_headers() + self.wfile.write(body) + + +class Server(socketserver.ThreadingTCPServer): + allow_reuse_address = True + daemon_threads = True + + +def main(): + # A stalled connection to Steam can never hang a handler thread forever. + socket.setdefaulttimeout(30) + if not os.path.exists(os.path.join(ROOT, "index.html")): + print("!! index.html is not in %s — keep steam-sync.py next to it." % ROOT) + try: + httpd = Server(("127.0.0.1", PORT), Handler) + except OSError as e: + print("!! Could not bind port %d: %s" % (PORT, e)) + print(" Another copy may already be running, or set PORT= and retry.") + return 1 + url = "http://127.0.0.1:%d/" % PORT + print("=" * 66) + print(" la-li-lu-le-lo — MGS2 100% companion (local helper)") + print("=" * 66) + print(" serving : %s" % ROOT) + print(" page : %s" % url) + print(" api : %sapi/steam?profile=" % url) + print(" stop : Ctrl+C") + print("-" * 66) + if "--open" in sys.argv: + webbrowser.open(url) + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\n stopped.") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/build/steam_imgs_by_ach.json b/build/steam_imgs_by_ach.json new file mode 100644 index 0000000..007fec0 --- /dev/null +++ b/build/steam_imgs_by_ach.json @@ -0,0 +1,241 @@ +{ + "1": [ + "https://images.steamusercontent.com/ugc/2140958177135754992/33483A2517679F2105D029F5821418DD1D233281/" + ], + "2": [ + "https://images.steamusercontent.com/ugc/2140958177135758321/BC72F568064E5D5C268D200F6382B0BD3F8DEE6B/" + ], + "3": [ + "https://images.steamusercontent.com/ugc/2140958177135758930/E64E34B9E08B8F9C96C34C6DA45AE5CF6D0B7003/" + ], + "4": [ + "https://images.steamusercontent.com/ugc/2140958177135759201/550DD6E41F6D40451134C4E847DFFEA44601734D/" + ], + "5": [ + "https://images.steamusercontent.com/ugc/2140958177135759509/74E791DB6ECD619EED7313A2F4382FEBB3AFCFBC/" + ], + "6": [ + "https://images.steamusercontent.com/ugc/2140958177135760558/5E46A25E5B0BDFF0F26E93F657376EE5C6C24F3E/" + ], + "7": [ + "https://images.steamusercontent.com/ugc/2140958177135760933/A22BC99C672ED7BD5A5170FC1A0E46DD41C3AB61/" + ], + "8": [ + "https://images.steamusercontent.com/ugc/2140958177135776614/4D20C2252E95CFF4AE279DFB381B6498B5315F69/" + ], + "9": [ + "https://images.steamusercontent.com/ugc/2140958177135776885/0BE932AFDA4A9C857046DDBC27EE74B16A804B8F/" + ], + "10": [ + "https://images.steamusercontent.com/ugc/2140958177135778904/EB4EF236A1B364E861F8CCF0588F1FACE5CD86A3/" + ], + "11": [ + "https://images.steamusercontent.com/ugc/2140958177135780873/BD7DCD2395C79925B68C7006CC63AE6402E75A06/" + ], + "12": [ + "https://images.steamusercontent.com/ugc/2140958177135781258/EFE5274E4CE35FA4FEA13CF93A2A191C2B0EDB57/" + ], + "13": [ + "https://images.steamusercontent.com/ugc/2140958177135781716/8304A788B9099C1CBE87D963BCA7EB3B15EB1EC6/" + ], + "14": [ + "https://images.steamusercontent.com/ugc/2140958177135784329/36F89E61EC5808EDCD35952C2C4C44C30CE0AD69/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/", + "https://images.steamusercontent.com/ugc/2140958177136556309/FC08EA78D73A06C58AA304C6DAA576D3AC56C483/" + ], + "15": [ + "https://images.steamusercontent.com/ugc/2140958177135755392/B1B11990A2D6A38E90E06B774C13E66EE2DEE53A/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "16": [ + "https://images.steamusercontent.com/ugc/2140958177135759832/1ADADF954660E5DD90C4857F582F714F2E826A55/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "17": [ + "https://images.steamusercontent.com/ugc/2140958177135910792/AFD91F876679EC04919CD822C55ECD25807C8799/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "18": [ + "https://images.steamusercontent.com/ugc/2140958177135784031/D5F815103756B9D3C747BB2B7ABB0762D94FB272/", + "https://images.steamusercontent.com/ugc/2140958177136046914/5B7C3B4E8BF3379814E8C185D356BED511BFE81D/", + "https://images.steamusercontent.com/ugc/2140958177136069618/1A140671AAFEBEF9A706AACA000D1756E09B5225/", + "https://images.steamusercontent.com/ugc/2140958177136070097/0155C94B62BD63D9892146E0255F7F685202E9E5/", + "https://images.steamusercontent.com/ugc/2140958177136101138/420301D5428D7150DAD254BB90EFF9637DBDAA07/", + "https://images.steamusercontent.com/ugc/2140958177136102181/7D577E665B40A901FCCA3326640653EB5C4C6E65/", + "https://images.steamusercontent.com/ugc/2140958177136111275/2E0EB1DD4C769654138A04B9DE6DC58804D1B735/", + "https://images.steamusercontent.com/ugc/2140958177136114037/D5931E8F90958DE3CA75693F016767AAC02C9E34/", + "https://images.steamusercontent.com/ugc/2140958177136115730/ACA684EB5386F44862EF3A34DA0056C7D8ED509B/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "19": [ + "https://images.steamusercontent.com/ugc/2140958177136173819/87F0A2B539658DE6AEDD4A48A62840315333C6E7/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "20": [ + "https://images.steamusercontent.com/ugc/2140958177136232954/7E891DAD15B9202482027D5A02AF944D6D942C03/" + ], + "21": [ + "https://images.steamusercontent.com/ugc/2140958177136250486/E2E2E06267E608248851BAEE451A0EFDDC0DFF87/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "22": [ + "https://images.steamusercontent.com/ugc/2140958177136279127/EF5FC86EA9713C79B5BBF9C4FCFC71BFEE6BA7FB/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "23": [ + "https://images.steamusercontent.com/ugc/2140958177135761686/D8EA3BF271A12B099620C980884D31DD5BCA502B/", + "https://images.steamusercontent.com/ugc/2140958177138938509/A0B74949CFCC8D0058DD0FF5ED6E362DBC65D94B/", + "https://images.steamusercontent.com/ugc/2140958177138939198/F446514EA80167FC12D5816BA2D7854D6628E4F5/", + "https://images.steamusercontent.com/ugc/2140958177138939645/ACC84EFADCDAE266D93B6B6FD5CEF82A8B66E22E/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/", + "https://images.steamusercontent.com/ugc/2140958177136556762/225FFD74A14296925890B40193A5578B1299DFB6/" + ], + "24": [ + "https://images.steamusercontent.com/ugc/2140958177135758651/CDA5624B4684415250A23CE2B51E04538F92A0B0/", + "https://images.steamusercontent.com/ugc/2140958177136306499/D3886DAA8B8B4108625D7AC48FA19663E3823408/", + "https://images.steamusercontent.com/ugc/2140958177136317575/731B3D9EC271731F38832D933D2C219CC0059073/", + "https://images.steamusercontent.com/ugc/2140958177136318173/884F0C35125943218F3D5BB4553360F037C65C33/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "25": [ + "https://images.steamusercontent.com/ugc/2140958177136326152/97E4F9B9244F5F45AF5283BEEF19BA0D47ADB04D/", + "https://images.steamusercontent.com/ugc/2140958177136335574/4E29A232BE1405A43384DCE389E660672860E038/", + "https://images.steamusercontent.com/ugc/2140958177136335302/A810C37F28E4C51A9EE589511B9614070046B9FB/", + "https://images.steamusercontent.com/ugc/2140958177136335818/539C603F19D06579B9DD671E39E313B9E8494525/", + "https://images.steamusercontent.com/ugc/2140958177136340818/30A3C27578B65038D6A638BD24B09419F47519BF/", + "https://images.steamusercontent.com/ugc/2140958177136357008/CD39D24C0551AFE497908F3663503831165EED68/", + "https://images.steamusercontent.com/ugc/2140958177136357970/CFA864B252691461EFBE45AB970DCE13E7190AEE/", + "https://images.steamusercontent.com/ugc/2140958177136359533/70AC04F772E0D0855F9D8B040F28FE619F508967/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "26": [ + "https://images.steamusercontent.com/ugc/2140958177136369228/0DF7F365A8755CF88FF86A8276B9222FDBB82F57/", + "https://images.steamusercontent.com/ugc/2140958177136376202/6D3E8B726071028CA7BE0046277E41411C57BB99/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "27": [ + "https://images.steamusercontent.com/ugc/2140958177136463315/0A4BFB811C061E224D76C168346036A56B6DF9D9/", + "https://images.steamusercontent.com/ugc/2140958177136469704/2AF929A85B11F984104CDBFDF20F2337525BF2E4/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "28": [ + "https://images.steamusercontent.com/ugc/2140958177135758074/4144C41DE9B6FD8F4E20EC85A2DA7FFA654E457B/", + "https://images.steamusercontent.com/ugc/2140958177136481153/1A7A6CF09BDB63377C45F49CD8B82FF16C27F78B/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "29": [ + "https://images.steamusercontent.com/ugc/2140958177136533725/FD82DCC80A0091EFFC0B4807550E4C572FF3BD69/", + "https://images.steamusercontent.com/ugc/2140958177136495694/9F18A7132965C9D3D4794711C7CA1F1C67663692/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "30": [ + "https://images.steamusercontent.com/ugc/2140958177135760330/59252565727727DAB7F995D692CC70B850F1F560/", + "https://images.steamusercontent.com/ugc/2140958177136517688/03B517E0FDA1DD9AEEEA02746BDEEBAE2101B0B7/", + "https://images.steamusercontent.com/ugc/2140958177136521561/BFEE9C0D8F085A3F91285784B09666747771931A/", + "https://images.steamusercontent.com/ugc/2140958177136521741/03A5065DF1B5316CC3828CACFE80ED88308EE8D7/", + "https://images.steamusercontent.com/ugc/2140958177136591521/D6C0DD6A85100F4B701CC90790A90547FFE8A5C5/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "31": [ + "https://images.steamusercontent.com/ugc/2140958177136595643/2EBC1BBBFB7363D23750458BB71B2C0E327E90F5/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "32": [ + "https://images.steamusercontent.com/ugc/2140958177138681898/A576D1518491AF79CF79B72240F7647D13218F49/", + "https://images.steamusercontent.com/ugc/2140958177138675405/CA3D98BBD57FEAAA9E343E3449AF8E0EAA237602/", + "https://images.steamusercontent.com/ugc/2140958177138675738/247C45C6B1D55E086BCEA51AB712A20197511926/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "33": [ + "https://images.steamusercontent.com/ugc/2140958177138684378/C931BF409EF81B2769A57AA30B2C480F433130E6/", + "https://images.steamusercontent.com/ugc/2140958177138700455/5284F920FDA6CA85D8099980CFDDE2DD3B0F0A43/", + "https://images.steamusercontent.com/ugc/2140958177138706115/7EECB9B33A9782D91924A7439974031104E6D2EF/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "34": [ + "https://images.steamusercontent.com/ugc/2140958177138713012/FFC33FEA695E0CFC0A4E588A6DA8D2DD2738E8DF/", + "https://images.steamusercontent.com/ugc/2140958177138720963/30C6653838DC5FBD89363D226FB6B43FCD1CD789/", + "https://images.steamusercontent.com/ugc/2140958177138721348/D981984D99AE45EA46C75361043AD3E53C7139AE/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "35": [ + "https://images.steamusercontent.com/ugc/2140958177138827859/F04B8B21FD970B720B3EFE532CCF0E3F09A8711D/", + "https://images.steamusercontent.com/ugc/2140958177138823423/F99FE3B53E49D8AD5837E7842ACE632A2F0051D0/", + "https://images.steamusercontent.com/ugc/2140958177138823748/06754D9C8F7CF65B9D0C74F17FBC54E6FA8071CE/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "36": [ + "https://images.steamusercontent.com/ugc/2140958177138834182/41AC554FB65132522963BBB74570611C47C434F4/", + "https://images.steamusercontent.com/ugc/2140958177136521561/BFEE9C0D8F085A3F91285784B09666747771931A/", + "https://images.steamusercontent.com/ugc/2140958177136521741/03A5065DF1B5316CC3828CACFE80ED88308EE8D7/", + "https://images.steamusercontent.com/ugc/2140958177138843407/93DB80DBDAFEF28683EC5E536DDD8DB20CBFD5AE/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "37": [ + "https://images.steamusercontent.com/ugc/2140958177138847978/D047A74CFC1DC5B02053E446B2EFF5E1EC5FBEB3/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "38": [ + "https://images.steamusercontent.com/ugc/2140958177138861862/96200A814B27AA8D4FE8666F01B16A3389055910/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "39": [ + "https://images.steamusercontent.com/ugc/2140958177138871847/614116AEBDFB99D916609B7AFBEA36D21DA70C92/", + "https://images.steamusercontent.com/ugc/2140958177136306499/D3886DAA8B8B4108625D7AC48FA19663E3823408/", + "https://images.steamusercontent.com/ugc/2140958177136335818/539C603F19D06579B9DD671E39E313B9E8494525/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "40": [ + "https://images.steamusercontent.com/ugc/2140958177138871847/614116AEBDFB99D916609B7AFBEA36D21DA70C92/", + "https://images.steamusercontent.com/ugc/2140958177136306499/D3886DAA8B8B4108625D7AC48FA19663E3823408/", + "https://images.steamusercontent.com/ugc/2140958177136335818/539C603F19D06579B9DD671E39E313B9E8494525/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "41": [ + "https://images.steamusercontent.com/ugc/2140958177138885772/862A012B7336607FE22DC16ED700EA766190DE85/", + "https://images.steamusercontent.com/ugc/2140958177138891780/B31F84B091C9C019AA9F35EEA761092D81A4B028/", + "https://images.steamusercontent.com/ugc/2140958177138892370/7B48927D0A89321440B0D9B9B32E46D9D331828B/", + "https://images.steamusercontent.com/ugc/2140958177138892832/675A6525F9933AEBBA3596F7288F01A1A36A46BB/", + "https://images.steamusercontent.com/ugc/2140958177138893175/3E2512E8BE55F3A14A9C2C96819B2DB46D8B3674/", + "https://images.steamusercontent.com/ugc/2140958177136335574/4E29A232BE1405A43384DCE389E660672860E038/", + "https://images.steamusercontent.com/ugc/2140958177136335302/A810C37F28E4C51A9EE589511B9614070046B9FB/", + "https://images.steamusercontent.com/ugc/2140958177136335818/539C603F19D06579B9DD671E39E313B9E8494525/", + "https://images.steamusercontent.com/ugc/2140958177136340818/30A3C27578B65038D6A638BD24B09419F47519BF/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "42": [ + "https://images.steamusercontent.com/ugc/2140958177138962742/92C53189E3353645067850DDF1F6F5A4E128FAAF/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "43": [ + "https://images.steamusercontent.com/ugc/2140958177139102828/A866CC1EB85E9E5803E45D49B79AF7A4138BEAA6/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "44": [ + "https://images.steamusercontent.com/ugc/2140958177139112017/DD9E4F8043B10C1EFD5B907461D3215214221EB0/" + ], + "45": [ + "https://images.steamusercontent.com/ugc/2140958177135761356/16A503FABA4B31252AA95DB1AF36B9BFE048E616/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "46": [ + "https://images.steamusercontent.com/ugc/2140958177139142157/9013B6B054ED165E9C8E33E7120454611D0D9AA9/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "47": [ + "https://images.steamusercontent.com/ugc/2140958177139129560/253AF7994FDBE98D9BE471BF43F2382832B8F001/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "49": [ + "https://images.steamusercontent.com/ugc/2140958177139132973/BEF78F1D1BD36AE986D90E28DE4711BA1AAC5588/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "50": [ + "https://images.steamusercontent.com/ugc/2198379706926301353/7508D70EC3C479089F0462DCC63E51F65D830320/", + "https://images.steamusercontent.com/ugc/2140958177136160240/DB3FB14642EB5F120A00CB0AF5FC3EBA45B219D4/" + ], + "51": [ + "https://images.steamusercontent.com/ugc/2140958177139160810/3D2648816435D33E890BD394EFBF190981BFAE0A/", + "https://images.steamusercontent.com/ugc/2140958177139206166/E2CDBD01848B7ADBEA4CE42C54199F1385E13FD6/" + ] +} \ No newline at end of file diff --git a/build/steam_official.json b/build/steam_official.json new file mode 100644 index 0000000..7449ee7 --- /dev/null +++ b/build/steam_official.json @@ -0,0 +1,359 @@ +[ + { + "api": "ach_002_001", + "name": "Lights Out", + "desc": "Defeat Olga Gurlukovich", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/fdb31584a0dfda90d7f2cbdd8a5a3b5d95a5c898.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/b4c69dfb9f308c80d5e142328e029f80a25e4a2d.jpg" + }, + { + "api": "ach_002_002", + "name": "Spaghetti Cinema", + "desc": "Meet Revolver Ocelot", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/68871078209c6c7dfd55865cf043a0aa2e9efd62.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e8b643bf3e0d8eb8b8ee346a4a5e378c10cb6192.jpg" + }, + { + "api": "ach_002_003", + "name": "Bomb Squad", + "desc": "Learn how to defuse C4 bombs from Peter Stillman", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a4e9e79259ba5dc1bea26dc1005c33a8d427b1bd.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/130ec44733537766bb51e9141df427a82ce981a7.jpg" + }, + { + "api": "ach_002_004", + "name": "Lady Fortune", + "desc": "Survive Fortune's attack", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/3762f2a56bdf3b369932f454b8eab419efa3e2a7.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/96b1986f22e9ebe1101f0c83c66450e664214a70.jpg" + }, + { + "api": "ach_002_005", + "name": "Party's Over", + "desc": "Defeat Fatman", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/347ec4ab6c5b03a8d3f91ba3bbc0c53038e2bfad.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/252e984a3d3493beef544687d31276fe612cf1b1.jpg" + }, + { + "api": "ach_002_006", + "name": "Thanks, Ames", + "desc": "Learn the location of the president", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a692b1b7ab0bff687b1e0208c86fc612e39c05da.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/23cf3525669772383cf66b1e57bea37ab12082f1.jpg" + }, + { + "api": "ach_002_007", + "name": "No-Fly Zone", + "desc": "Destroy the AV-88 Harrier II", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/399da5a7a516d3c54b7421aac4bcf8f3e82d8da8.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce801c180cefd4c5ab609cbbc75cbdcc2b58fa08.jpg" + }, + { + "api": "ach_002_008", + "name": "Bohemian Candidate", + "desc": "Meet President James Johnson", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/1183dfba0aa94cbe242a333ee42f42ebb8b5eb92.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/21464bb7546b0a59f1cccf6fcd8c8611d77f2aab.jpg" + }, + { + "api": "ach_002_009", + "name": "Vampire Slayer", + "desc": "Defeat Vamp", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4ddbe2cc6dbb8be07b577b594d4d611cf7267285.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/703a8e589aa527dd49b31eaf4a7b530cea10b0e8.jpg" + }, + { + "api": "ach_002_010", + "name": "I Think You Need a Hug, E", + "desc": "Find Emma Emmerich", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce94d72fe726f63ab8c39b87d37079100b27ed64.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/015b984d648f63678a252a1fac8919fa5526407b.jpg" + }, + { + "api": "ach_002_011", + "name": "Sharing Is Caring", + "desc": "Befriend Olga Gurlukovich", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/71bfeca4f68ab6284e06ebb89e6d924974756def.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e0bd8c1b35b21f111bcf228ec81254a810fd89c3.jpg" + }, + { + "api": "ach_002_012", + "name": "No Ray, Jos\u00e9", + "desc": "Defeat Metal Gear RAY", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d2465273af8ccb1f9d18c81dbe3c78dc2809e0ad.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4c7471a58d991cef47f13936bcfa18b0fb235568.jpg" + }, + { + "api": "ach_002_013", + "name": "Another Snake Bites the Dust", + "desc": "Defeat Solidus Snake", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/1597d98426911867db9181733daf80dcf6aa2ef5.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0cafb503d1113a8a25fe013f7f7ed6059e25bf81.jpg" + }, + { + "api": "ach_002_014", + "name": "A Cut Above", + "desc": "Beat the Tanker and Plant chapters on any difficulty", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d47b5e4375d622de4f1ed6a75cc25b94f250631a.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2516839f772deb2d9f90d6252883cec316026019.jpg" + }, + { + "api": "ach_002_015", + "name": "Hurt Locker", + "desc": "Put an enemy in a locker", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5ddefa0aab0bda7e443a6c1bc71aadcacc272afc.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/632a7ae849c31088c0c94ee025faf1ebd2d64826.jpg" + }, + { + "api": "ach_002_016", + "name": "To Catch a Predator", + "desc": "Lure a guard with a girlie magazine", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/65e9e9ea191e67401199a0684b1e7f5d74f56c70.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5af6f19eaa57648f32d2a673c8648dbbbd89b3b4.jpg" + }, + { + "api": "ach_002_017", + "name": "Animal Control", + "desc": "Collect a dog tag", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a41d9c387924efbccd2e393e28e027e8173cc919.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/58f95276b2060ed23503d3029be6955d566ebdc9.jpg" + }, + { + "api": "ach_002_018", + "name": "Bye Bye Big Brother", + "desc": "Destroy 5 cameras", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/478c9da91a1d51a70ef0128e063e79fa6e375fa3.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/93924a6b6973e87744d2fc513912afa4ee1e0429.jpg" + }, + { + "api": "ach_002_019", + "name": "Down in Smoke", + "desc": "Disorient an enemy with a cloud of smoke from a fire extinguisher", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/809aafc45e32bcb2b0eb2920a849a48382d2c2ef.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce6f7ef705d1a03a7b7858bda07dca519705f280.jpg" + }, + { + "api": "ach_002_020", + "name": "Silence is Golden", + "desc": "Shoot an enemy radio", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/7215add8e22790ff333261a873031392708b3c39.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/7ee1d3dd747c43a4c92bf0c5608ad439cf211509.jpg" + }, + { + "api": "ach_002_021", + "name": "Caution: Hot", + "desc": "Down an enemy with steam from a pipe", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/b6a6c5205ee79aadd29635a13bb24f9f0b682572.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/496b3a748d86af160ea395147b0a1354bf71b154.jpg" + }, + { + "api": "ach_002_022", + "name": "Kissing Booth", + "desc": "Kiss a poster in a locker", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/9549ec76129179205a1f04956739127732c2d1c7.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c38059bec39ef2b44ffd4bb596dc5a623b9d461b.jpg" + }, + { + "api": "ach_002_023", + "name": "Snake Beater", + "desc": "Get caught by Otacon stimulating yourself", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/9529ccf40a625cf889ed14390b8cb22d9b062f52.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/96300d1fb720d7b58a33d13c163a4c89ff2ca04a.jpg" + }, + { + "api": "ach_002_024", + "name": "Who Ya Gonna Call?", + "desc": "Take a clear photograph of the ghost image in Hold No. 2", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce7918e70cb624ff586d6b4140f64b7699ff861b.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/6f8340f4578a853a636ecada74700344d289bf50.jpg" + }, + { + "api": "ach_002_025", + "name": "Sexting", + "desc": "Send Otacon a picture of the marine with no pants", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a5102d12a6af702c2b00e5dbf4d0f9ff6216e51d.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c2c05a07037b8efd3314366925c478705fd595af.jpg" + }, + { + "api": "ach_002_026", + "name": "My Rations...", + "desc": "Get sea lice all over your rations", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2f89e97c000a86cbc727140c6814d4dff52222f6.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2ce4dbf73f55e341a6d1f590d7397798d52b0563.jpg" + }, + { + "api": "ach_002_027", + "name": "Johnny on the Spot", + "desc": "Hear Johnny's bowel noises in two locations", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/01613f9d4e3e383041991d6b35ccceb5e1e8329d.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a219a7872544e9204279ac48a0a40aa742d66cfe.jpg" + }, + { + "api": "ach_002_028", + "name": "Vamp Eyer", + "desc": "Catch a glimpse of Vamp standing in the streets of New York during the end cinematic", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/43f497d0a44802fb02aa8a67ac36fea673410103.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d23f29e71307ddacbef81d7e8296c99802477931.jpg" + }, + { + "api": "ach_002_029", + "name": "Love Hurts", + "desc": "Watch Rose kill Raiden on a rooftop", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a237e2444cd8a18ff6304d900706d398abeb0975.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/f332074bcbfc00709ff95ff342610ed46486d4ec.jpg" + }, + { + "api": "ach_002_030", + "name": "Hold Up-aholic", + "desc": "Hold up 30 enemies", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/01a022d0275fc32c962c181cc4e6e6c8e5d5bdd4.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/390d39ecf9b5556aed88dca4232e4c146d5f7fed.jpg" + }, + { + "api": "ach_002_031", + "name": "Don't Taze Me, Bro", + "desc": "Tranquilize 100 enemies", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/dec9ece268f240d43a4b98f54f3885697cfbdb52.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/7fc5429ed921eb4230b9734562b5f11d89c91a3e.jpg" + }, + { + "api": "ach_002_032", + "name": "Nothing Personal", + "desc": "Break the neck of 30 enemies", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/f80f2904fc26a0f9117acdd457612aa74d736204.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/eb13d7e61966699c9487d18e52ef35233008d7bd.jpg" + }, + { + "api": "ach_002_033", + "name": "Rent Money", + "desc": "Beat 30 enemies unconscious", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/63dd05f9c0a389207b3cf6598f8b933828536b7b.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/1edaaae68cb2dbe636b6908e85110f86672ab30e.jpg" + }, + { + "api": "ach_002_034", + "name": "Steel Grip", + "desc": "Attain grip level 3", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4fc9f8e76dd89b2562a91f401e5e01d46fb94275.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/023d543945379f7c72fc43b707bc8aea6dd08592.jpg" + }, + { + "api": "ach_002_035", + "name": "Photo Finish", + "desc": "Acquire the digital camera", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c7957f06b5a10675d9dc8dd120f6ac767abd00a6.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e56f1438a03dfc191d6d392df717cb82d0547bea.jpg" + }, + { + "api": "ach_002_036", + "name": "Weapon Completionist: Tanker", + "desc": "Collect every type of weapon on the Tanker", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0bee432cd0a2e3e155b80e4707f22fec2cd4622c.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/51e17e215e4ad597765e7bb149e05ef47b811db5.jpg" + }, + { + "api": "ach_002_037", + "name": "Weapon Completionist: Plant", + "desc": "Collect every type of weapon in the Plant", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/39cd0e9c033be1c3f35bd9766db91b2212fbbbff.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/38fec5a6dfd55c407d1c47209c64241faab09d47.jpg" + }, + { + "api": "ach_002_038", + "name": "Moving Day", + "desc": "Collect all boxes", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2191f938c7f6f8f8859c5b7ef7270b160b58f721.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/507b962bfc9510a624693b1de707b7f85a15c7c0.jpg" + }, + { + "api": "ach_002_039", + "name": "Casting Theater", + "desc": "Watch something in the Casting Theater", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/eee75e572b90f25084d80366a404a99e556c4ca2.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4e5e23b8e806d28f0878bb7c9864bda910448de2.jpg" + }, + { + "api": "ach_002_040", + "name": "No Boss of Mine", + "desc": "Complete Boss Survival", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c3e5316d317ccf5034e4890154f8ca0c609c2035.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/01740255166cdc3d7c718af089673e71bfd582f5.jpg" + }, + { + "api": "ach_002_041", + "name": "Tell Me a Tale", + "desc": "Complete at least one of the Snake Tales", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d08eaf1921b4a0577a45dbbf4fb6d57558119b50.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5cfedcb12514038d53e000ab845e82887e09232a.jpg" + }, + { + "api": "ach_002_042", + "name": "Piece of Cake", + "desc": "Complete a VR or Alternative mission", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5cde39f4f9d31b01892f97af7900b458976b9745.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/bdc4edf9b9f27e6e04552c63aac178cd42e7e66f.jpg" + }, + { + "api": "ach_002_043", + "name": "In It to Win It", + "desc": "Place first in 50 different VR/Alternative missions", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/499a68ad66798e03878b97c533c2916ce1a99267.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/673969ecc766e29ead32e4cc7062c5a1119531f5.jpg" + }, + { + "api": "ach_002_044", + "name": "Yorkie", + "desc": "Get the bandana", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/61a98b9e851cd7fbfa2881fa4db78142711dd645.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5bb81962cf1854a2263fdf6d4c0b2ec39a2ada9f.jpg" + }, + { + "api": "ach_002_045", + "name": "Poodle", + "desc": "Get the Tanker stealth suit", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0f5bfb26ee2815729f3da6439617b8f5dc2d1a0a.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/6b9a433c6fb860461968a720eb5847a6db6dabab.jpg" + }, + { + "api": "ach_002_046", + "name": "Beagle", + "desc": "Get the infinity wig", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a39a765308506f9e6357494a2562eb70fa0bb1e2.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/56aad902b7864f16474a720c03dac4c511b9627d.jpg" + }, + { + "api": "ach_002_047", + "name": "Shiba Inu", + "desc": "Get the Plant stealth suit", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/8828a75f84b0d205b40ea0df59f2f0a7191081fd.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e38e65ae480313a31c3b90d209ea1616dcc6c2de.jpg" + }, + { + "api": "ach_002_048", + "name": "Pacifist Run", + "desc": "Clear the game without killing anyone", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/701310b71e1cf13325280599ff63f615735649fe.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d6706e31b8f95986c2724d628d2363da8f1f2012.jpg" + }, + { + "api": "ach_002_049", + "name": "Complete Stealth", + "desc": "Clear the game without entering Alert Mode (not including events where Alert Mode is mandatory)", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ddddc67b62ecf346e3fa6538975b84106dbdbf4a.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0b60f6b99b2bdce2ec5532b92e93c2a69ca2c9fa.jpg" + }, + { + "api": "ach_002_050", + "name": "Big Boss", + "desc": "Earn the title of Big Boss", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/77f0da41c2df32a10f211b40e924cb8d9b262b0a.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/fa74a0fa7d43970f6c01e706216f6cd775154025.jpg" + }, + { + "api": "ach_002_051", + "name": "Cover-to-Cover Solid 2: Books of the Patriots", + "desc": "Read all the pages in the Screenplay Book", + "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/6dfaffcb025712c398b5017e3edc6c730e8e9abf.jpg", + "iconLocked": "https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/00f81475056260510b0c9bb54b93952f289b3b70.jpg" + } +] \ No newline at end of file diff --git a/build/template.html b/build/template.html new file mode 100644 index 0000000..e627580 --- /dev/null +++ b/build/template.html @@ -0,0 +1,1582 @@ + + + + + +la-li-lu-le-lo — MGS2 Master Collection 100% Companion + + + + + + +
+
+
+
+ la-li-lu-le-lo +
+

MGS2 Master Collection — 100% Companion

+ METAL GEAR SOLID 2: Sons of Liberty — Master Collection  ·  51 achievements +
+
+
+ + + + + + + +
+
+
+ ACH 0/51 + TAGS 0/394 + ROADMAP 0/0 + saved locally +
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+

Unofficial fan-made companion for personal use. Metal Gear Solid 2: Sons of Liberty — Master Collection Version © Konami. + Achievement icons and screenshots are hot-linked from their original sources (Steam Community, Video Chums, Dayngl's Guides); + progress is stored only in this browser's local storage.

+
+ +
+ + + + + + diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..7395046 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# +# Rebuild the companion and publish it to the Pages branch. +# +# ./deploy.sh commit as "Update companion" +# ./deploy.sh "fix dog tags" custom commit message +# +# The Pages site rebuilds itself from the pushed branch, usually within ~15s: +# https://rain.pages.melonbread.xyz/la-li-lu-le-lo/ +# +set -euo pipefail +cd "$(dirname "$0")" + +echo "==> building" +python3 build/build.py + +if git diff --quiet && git diff --cached --quiet; then + echo "==> nothing changed, nothing to publish" + exit 0 +fi + +echo "==> committing" +git add -A +git commit -m "${1:-Update companion}" + +echo "==> pushing" +git push origin pages + +echo +echo "done. live at https://rain.pages.melonbread.xyz/la-li-lu-le-lo/" +echo "(Pages usually picks it up within ~15 seconds)" diff --git a/index.html b/index.html index 3855eae..e56ec39 100644 --- a/index.html +++ b/index.html @@ -476,7 +476,7 @@ footer{max-width:1400px;margin:0 auto;padding:0 16px 50px;color:var(--dim2);font DATA ============================================================ */ const ACHIEVEMENTS = [{"id":"ach_002_001","api":"ach_002_001","name":"Lights Out","desc":"Defeat Olga Gurlukovich","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/fdb31584a0dfda90d7f2cbdd8a5a3b5d95a5c898.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/b4c69dfb9f308c80d5e142328e029f80a25e4a2d.jpg","cat":"story","guide":"\n

Unmissable.<\/b> Defeat Olga Gurlukovich on the Navigational Deck, Wing at the end of the Tanker chapter.<\/p>\n

    \n
  • Shoot the spotlight<\/b> and the bottom corners of the tarp<\/b> as soon as the fight starts.<\/li>\n
  • She fires at your last known position<\/i> — roll to a blind side after every shot.<\/li>\n
  • Taking damage here is fine: your health is refilled after the fight.<\/li>\n<\/ul>"},{"id":"ach_002_002","api":"ach_002_002","name":"Spaghetti Cinema","desc":"Meet Revolver Ocelot","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/68871078209c6c7dfd55865cf043a0aa2e9efd62.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e8b643bf3e0d8eb8b8ee346a4a5e378c10cb6192.jpg","cat":"story","guide":"\n

    Unmissable.<\/b> Pops during the Tanker story when Revolver Ocelot makes his entrance. Nothing to do.<\/p>"},{"id":"ach_002_003","api":"ach_002_003","name":"Bomb Squad","desc":"Learn how to defuse C4 bombs from Peter Stillman","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a4e9e79259ba5dc1bea26dc1005c33a8d427b1bd.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/130ec44733537766bb51e9141df427a82ce981a7.jpg","cat":"story","guide":"\n

    Unmissable.<\/b> Pops when Peter Stillman teaches you how to defuse C4 in the Strut E Heliport at the start of the Plant chapter.<\/p>\n

    Pay attention here — the coolant/sensor mechanics you learn are the same ones you need for Party's Over<\/b> and the whole bomb-defusal section.<\/div>"},{"id":"ach_002_004","api":"ach_002_004","name":"Lady Fortune","desc":"Survive Fortune's attack","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/3762f2a56bdf3b369932f454b8eab419efa3e2a7.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/96b1986f22e9ebe1101f0c83c66450e664214a70.jpg","cat":"story","guide":"\n

    Unmissable.<\/b> You do not have to beat Fortune — you only have to survive<\/b> her attack sequence. It ends on its own.<\/p>\n

      \n
    • Her rail gun tracks a fixed pattern; stay behind cover and keep moving.<\/li>\n
    • If you are doing the Big Boss run, see the Fortune strategy in the Big Boss Run<\/b> tab (walk left/right in a cardboard box at the bottom of the arena).<\/li>\n<\/ul>"},{"id":"ach_002_005","api":"ach_002_005","name":"Party's Over","desc":"Defeat Fatman","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/347ec4ab6c5b03a8d3f91ba3bbc0c53038e2bfad.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/252e984a3d3493beef544687d31276fe612cf1b1.jpg","cat":"story","guide":"\n

      Unmissable.<\/b> Defeat Fatman on the Big Shell helipad.<\/p>\n

        \n
      • Equip the Sensor A<\/b> coolant and prioritise freezing the bombs he plants<\/b> — do not wait for all of them to be planted.<\/li>\n
      • Melee him as he skates past to knock him down, then shoot him in the head with the M9<\/b> while he is getting up.<\/li>\n
      • From range, shoot him with the SOCOM to knock him down, then M9 to the head.<\/li>\n<\/ul>"},{"id":"ach_002_006","api":"ach_002_006","name":"Thanks, Ames","desc":"Learn the location of the president","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a692b1b7ab0bff687b1e0208c86fc612e39c05da.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/23cf3525669772383cf66b1e57bea37ab12082f1.jpg","cat":"story","guide":"\n

        Unmissable.<\/b> Pops after you interrogate Ames in the Shell 1 Core hostage room and learn where the President is.<\/p>"},{"id":"ach_002_007","api":"ach_002_007","name":"No-Fly Zone","desc":"Destroy the AV-88 Harrier II","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/399da5a7a516d3c54b7421aac4bcf8f3e82d8da8.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce801c180cefd4c5ab609cbbc75cbdcc2b58fa08.jpg","cat":"story","guide":"\n

        Unmissable.<\/b> Destroy the AV-88 Harrier II.<\/p>\n

          \n
        • Pick up the Stinger<\/b> the moment the fight starts and fire as fast as you can.<\/li>\n
        • When it flies straight out, follow the contrails — wait for the flash<\/b>, then fire and take cover.<\/li>\n
        • When it hovers above you, spam the Stinger at the middle of the jet; you do not need a lock-on.<\/li>\n
        • Rockets: run to the far left up the stairs, then cartwheel right as it fires. Get behind the big grey container when it closes in.<\/li>\n<\/ul>"},{"id":"ach_002_008","api":"ach_002_008","name":"Bohemian Candidate","desc":"Meet President James Johnson","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/1183dfba0aa94cbe242a333ee42f42ebb8b5eb92.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/21464bb7546b0a59f1cccf6fcd8c8611d77f2aab.jpg","cat":"story","guide":"\n

          Unmissable.<\/b> Pops when you meet President James Johnson in the Shell 1 Core.<\/p>"},{"id":"ach_002_009","api":"ach_002_009","name":"Vampire Slayer","desc":"Defeat Vamp","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4ddbe2cc6dbb8be07b577b594d4d611cf7267285.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/703a8e589aa527dd49b31eaf4a7b530cea10b0e8.jpg","cat":"story","guide":"\n

          Unmissable.<\/b> Defeat Vamp.<\/p>\n

            \n
          • M9 to the head, then when he dives into the water shoot the water<\/b> with the Stinger to drain his O₂.<\/li>\n
          • Classic cheese: step off the platform so Raiden hangs from the edge, let Vamp walk over, then pull up as he attacks. Punch twice, back off, repeat.<\/li>\n<\/ul>"},{"id":"ach_002_010","api":"ach_002_010","name":"I Think You Need a Hug, E","desc":"Find Emma Emmerich","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce94d72fe726f63ab8c39b87d37079100b27ed64.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/015b984d648f63678a252a1fac8919fa5526407b.jpg","cat":"story","guide":"\n

            Unmissable.<\/b> Pops when you find Emma Emmerich in the Shell 2 Core filtration chamber.<\/p>"},{"id":"ach_002_011","api":"ach_002_011","name":"Sharing Is Caring","desc":"Befriend Olga Gurlukovich","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/71bfeca4f68ab6284e06ebb89e6d924974756def.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e0bd8c1b35b21f111bcf228ec81254a810fd89c3.jpg","cat":"story","guide":"\n

            Unmissable.<\/b> Pops during the Arsenal Gear sequence when Olga turns on Solidus and helps you.<\/p>"},{"id":"ach_002_012","api":"ach_002_012","name":"No Ray, José","desc":"Defeat Metal Gear RAY","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d2465273af8ccb1f9d18c81dbe3c78dc2809e0ad.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4c7471a58d991cef47f13936bcfa18b0fb235568.jpg","cat":"story","guide":"\n

            Unmissable.<\/b> Defeat Metal Gear RAY.<\/p>\n

              \n
            • You fight roughly 20 RAYs<\/b>. Be quick with shots and listen for missile barrages from RAYs outside the arena.<\/li>\n
            • Dodge machine-gun fire and single missiles by running left/right and cartwheeling as they get close.<\/li>\n
            • Big Boss note:<\/b> each RAY destruction counts as mech damage — see the Big Boss tab.<\/li>\n<\/ul>"},{"id":"ach_002_013","api":"ach_002_013","name":"Another Snake Bites the Dust","desc":"Defeat Solidus Snake","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/1597d98426911867db9181733daf80dcf6aa2ef5.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0cafb503d1113a8a25fe013f7f7ed6059e25bf81.jpg","cat":"story","guide":"\n

              Unmissable.<\/b> Defeat Solidus Snake on the rooftop. See the Big Boss tab for the block-and-punish strategy.<\/p>\n

              Do NOT skip the cutscene that follows.<\/b> You need it for Vamp Eyer<\/b>.<\/div>"},{"id":"ach_002_014","api":"ach_002_014","name":"A Cut Above","desc":"Beat the Tanker and Plant chapters on any difficulty","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d47b5e4375d622de4f1ed6a75cc25b94f250631a.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2516839f772deb2d9f90d6252883cec316026019.jpg","cat":"story","guide":"\n

              Unmissable.<\/b> Pops when you finish both chapters on any difficulty. See the Roadmap<\/b> tab.<\/p>"},{"id":"ach_002_015","api":"ach_002_015","name":"Hurt Locker","desc":"Put an enemy in a locker","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5ddefa0aab0bda7e443a6c1bc71aadcacc272afc.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/632a7ae849c31088c0c94ee025faf1ebd2d64826.jpg","cat":"misc","miss":true,"where":"Tanker — Deck-A, crew's quarters (lockers)","window":"Any time in the Tanker/Plant","guide":"\n

              Put an enemy inside a locker. Easiest in the Tanker, Deck-A Crew's Quarters<\/b>.<\/p>\n

                \n
              1. Tranquillise or kill the guard patrolling the hallway.<\/li>\n
              2. Drag him (grab button) into the room with the lockers.<\/li>\n
              3. Open a locker, then drag him into it — Snake automatically stuffs him in and shuts the door.<\/li>\n<\/ol>\n

                Works as both Snake and Raiden, so this is one of the easiest to pick up in the first 5 minutes of the run.<\/p>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136317575/731B3D9EC271731F38832D933D2C219CC0059073/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136318173/884F0C35125943218F3D5BB4553360F037C65C33/","s":"steam"}]},{"id":"ach_002_016","api":"ach_002_016","name":"To Catch a Predator","desc":"Lure a guard with a girlie magazine","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/65e9e9ea191e67401199a0684b1e7f5d74f56c70.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5af6f19eaa57648f32d2a673c8648dbbbd89b3b4.jpg","cat":"misc","miss":true,"where":"Plant — Strut F warehouse (Book), place in a guard's path","window":"After Fatman for the safest Book route","guide":"\n

                Lure a guard with the Book<\/b> (the girlie magazine).<\/p>\n

                  \n
                1. Get the Book<\/b> in Strut F<\/b>: on the top floor, lean on the railing, flip over it, shimmy right until you are above the stack of crates, drop down and pick it up. (Also found in the Shell 1 Core 1F south lockers and in Emma's locker in Shell 2 Core B1.)<\/li>\n
                2. Equip the Book and drop it in a guard's patrol path.<\/li>\n
                3. When he stops to stare, the achievement pops.<\/li>\n<\/ol>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136357008/CD39D24C0551AFE497908F3663503831165EED68/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136357970/CFA864B252691461EFBE45AB970DCE13E7190AEE/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136359533/70AC04F772E0D0855F9D8B040F28FE619F508967/","s":"steam"}]},{"id":"ach_002_017","api":"ach_002_017","name":"Animal Control","desc":"Collect a dog tag","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a41d9c387924efbccd2e393e28e027e8173cc919.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/58f95276b2060ed23503d3029be6955d566ebdc9.jpg","cat":"coll","miss":true,"where":"Any chapter — hold up any guard or boss","window":"First opportunist moment","guide":"\n

                  Collect a single dog tag. This is the first of the collectible chain and pops almost immediately.<\/p>\n

                  How to hold up a guard:<\/b><\/p>\n

                    \n
                  1. Approach from behind<\/b>, equip the M9/SOCOM, hold the aim button while pressing the fire button so the gun is pressed into their back — Snake shouts \"Freeze!\"<\/i>.<\/li>\n
                  2. Keep the gun raised and run around to their front<\/b> while still aiming.<\/li>\n
                  3. Aim at their face<\/b>; they shake and drop the tag.<\/li>\n
                  4. If they refuse, shoot their hand or foot with a lethal weapon<\/b> to scare them, then tranquillise them.<\/li>\n<\/ol>\n
                    The full 394-tag checklist with guard names, areas and conditional-spawn notes is in the Dog Tags<\/b> tab.<\/div>"},{"id":"ach_002_018","api":"ach_002_018","name":"Bye Bye Big Brother","desc":"Destroy 5 cameras","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/478c9da91a1d51a70ef0128e063e79fa6e375fa3.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/93924a6b6973e87744d2fc513912afa4ee1e0429.jpg","cat":"misc","miss":true,"cum":true,"where":"Anywhere — cameras in story, Snake Tales and VR","window":"Cumulative","guide":"\n

                    Destroy 5 wall-mounted cameras<\/b> (cumulative across story, Snake Tales and VR missions).<\/p>\n

                      \n
                    • You must use a lethal<\/b> weapon — tranquiliser shots do not break cameras.<\/li>\n
                    • Cyphers do NOT count<\/b> — only the cameras mounted on walls.<\/li>\n
                    • The Tanker has several easy ones (Deck-C, Deck-D) and the Plant has them all over the Shell cores.<\/li>\n<\/ul>\n
                      If you are going for Big Boss<\/b>, remember every camera you destroy counts toward your mech-damage limit. Do this achievement on a non-Big-Boss run.<\/div>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136376202/6D3E8B726071028CA7BE0046277E41411C57BB99/","s":"steam"}]},{"id":"ach_002_019","api":"ach_002_019","name":"Down in Smoke","desc":"Disorient an enemy with a cloud of smoke from a fire extinguisher","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/809aafc45e32bcb2b0eb2920a849a48382d2c2ef.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce6f7ef705d1a03a7b7858bda07dca519705f280.jpg","cat":"misc","miss":true,"where":"Tanker — Deck-D, crew's quarters (fire extinguisher)","window":"Tanker, before the Holds","guide":"\n

                      Disorient a guard with a fire extinguisher cloud.<\/p>\n

                        \n
                      1. Go to Deck-D Crew's Quarters<\/b>, near the kitchen/food storeroom and the laser trap hallway.<\/li>\n
                      2. Stand across from the laser trap and wait for the patrolling guard to stop next to the fire extinguisher.<\/li>\n
                      3. Shoot the extinguisher<\/b> (non-lethal works) so the cloud engulfs him.<\/li>\n<\/ol>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136469704/2AF929A85B11F984104CDBFDF20F2337525BF2E4/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_193.png","s":"dayngl"}]},{"id":"ach_002_020","api":"ach_002_020","name":"Silence is Golden","desc":"Shoot an enemy radio","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/7215add8e22790ff333261a873031392708b3c39.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/7ee1d3dd747c43a4c92bf0c5608ad439cf211509.jpg","cat":"misc","miss":true,"cum":true,"where":"Anywhere — shoot the radio on a guard's back","window":"Cumulative","guide":"\n

                        Shoot an enemy's radio.<\/p>\n

                          \n
                        • Stand behind a guard and aim at the radio on their lower back<\/b>. You will see sparks when you hit it.<\/li>\n
                        • Non-lethal weapons work, so you can do this while farming dog tags.<\/li>\n<\/ul>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136481153/1A7A6CF09BDB63377C45F49CD8B82FF16C27F78B/","s":"steam"}]},{"id":"ach_002_021","api":"ach_002_021","name":"Caution: Hot","desc":"Down an enemy with steam from a pipe","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/b6a6c5205ee79aadd29635a13bb24f9f0b682572.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/496b3a748d86af160ea395147b0a1354bf71b154.jpg","cat":"misc","miss":true,"where":"Tanker — pipe-lined hallways","window":"Tanker","guide":"\n

                          Down an enemy with steam from a burst pipe.<\/p>\n

                            \n
                          1. Hold up (or drag) a guard next to a wall pipe, then shoot the pipe. Steam jets out.<\/li>\n
                          2. Keep shooting the pipe until the guard dies — you can tell it is working because he waves a hand in front of his face.<\/li>\n
                          3. Alternatively, during the Tanker ambush hallway<\/b> (narrow corridor lined with pipes) just shoot the pipes next to the soldiers.<\/li>\n<\/ol>\n
                            Caution: Hot requires a kill.<\/b> If you are attempting Pacifist Run or Big Boss in the same session, do not trigger this on that file.<\/div>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136495694/9F18A7132965C9D3D4794711C7CA1F1C67663692/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-mgs2-steam-shootout-9.png","s":"dayngl"}]},{"id":"ach_002_022","api":"ach_002_022","name":"Kissing Booth","desc":"Kiss a poster in a locker","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/9549ec76129179205a1f04956739127732c2d1c7.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c38059bec39ef2b44ffd4bb596dc5a623b9d461b.jpg","cat":"misc","miss":true,"where":"Tanker — Deck-A, crew's quarters (poster locker)","window":"Tanker","guide":"\n

                            Kiss the poster inside a locker.<\/p>\n

                              \n
                            1. In Deck-A Crew's Quarters<\/b>, open lockers until you find the one with a pin-up poster<\/b> on the inside of the door.<\/li>\n
                            2. Get inside the locker. The door closes behind you and the poster is right in your face.<\/li>\n
                            3. Hold the aim/first-person button until you hear a kissing noise<\/b>.<\/li>\n<\/ol>\n

                              Do this back-to-back with Snake Beater<\/b>.<\/p>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136517688/03B517E0FDA1DD9AEEEA02746BDEEBAE2101B0B7/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136591521/D6C0DD6A85100F4B701CC90790A90547FFE8A5C5/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-snake-beater-3.png","s":"dayngl"}]},{"id":"ach_002_023","api":"ach_002_023","name":"Snake Beater","desc":"Get caught by Otacon stimulating yourself","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/9529ccf40a625cf889ed14390b8cb22d9b062f52.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/96300d1fb720d7b58a33d13c163a4c89ff2ca04a.jpg","cat":"misc","miss":true,"where":"Tanker — same locker as Kissing Booth","window":"Tanker, right after Kissing Booth","guide":"\n

                              Get caught by Otacon while \"stimulating yourself\".<\/p>\n

                                \n
                              1. After Kissing Booth<\/b>, get out of the locker and press the first-person button to stare at the poster again — you must be right up against it<\/b>.<\/li>\n
                              2. While still in first-person staring at the poster, open the codec<\/b> and call Otacon<\/b>.<\/li>\n
                              3. The achievement pops on the call.<\/li>\n<\/ol>"},{"id":"ach_002_024","api":"ach_002_024","name":"Who Ya Gonna Call?","desc":"Take a clear photograph of the ghost image in Hold No. 2","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ce7918e70cb624ff586d6b4140f64b7699ff861b.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/6f8340f4578a853a636ecada74700344d289bf50.jpg","cat":"misc","miss":true,"where":"Tanker — Hold No. 2 (projector screens)","window":"Tanker Holds — one-shot area","guide":"\n

                                Photograph the ghost image in Hold No. 2.<\/p>\n

                                  \n
                                1. Late in the Tanker you sneak through the marine holds. In Hold No. 2<\/b> there are two projector screens the marines flip between.<\/li>\n
                                2. Use the camera Otacon gave you<\/b> (not the Digital Camera special item) and photograph the right-hand screen<\/b>.<\/li>\n
                                3. If the ghost image is not up, interact with the projector<\/b> to switch to it.<\/li>\n<\/ol>\n
                                  The Holds are a one-way trip — grab this and Sexting<\/b> before you leave.<\/div>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177138675405/CA3D98BBD57FEAAA9E343E3449AF8E0EAA237602/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177138675738/247C45C6B1D55E086BCEA51AB712A20197511926/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_202.png","s":"dayngl"}]},{"id":"ach_002_025","api":"ach_002_025","name":"Sexting","desc":"Send Otacon a picture of the marine with no pants","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a5102d12a6af702c2b00e5dbf4d0f9ff6216e51d.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c2c05a07037b8efd3314366925c478705fd595af.jpg","cat":"misc","miss":true,"where":"Tanker — Hold No. 3 (computer, bottom-right)","window":"Tanker Holds — before photographing RAY","guide":"\n

                                  Send Otacon a picture of the pantsless marine.<\/p>\n

                                    \n
                                  1. In the holds, find the marine in the crowd with no trousers<\/b> and photograph him with Otacon's camera<\/b> — the Digital Camera special item does not<\/b> work.<\/li>\n
                                  2. Continue to Hold No. 3<\/b> (where RAY is) and use the computer in the bottom-right corner<\/b> to send the photo.<\/li>\n<\/ol>\n
                                    Send it before<\/b> you take the RAY photographs, or you will have to replay the Tanker.<\/div>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177138700455/5284F920FDA6CA85D8099980CFDDE2DD3B0F0A43/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177138706115/7EECB9B33A9782D91924A7439974031104E6D2EF/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-sexting-2.png","s":"dayngl"}]},{"id":"ach_002_026","api":"ach_002_026","name":"My Rations...","desc":"Get sea lice all over your rations","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2f89e97c000a86cbc727140c6814d4dff52222f6.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2ce4dbf73f55e341a6d1f590d7397798d52b0563.jpg","cat":"misc","miss":true,"where":"Plant — Strut A (lie near the sea lice)","window":"Start of the Plant chapter","guide":"\n

                                    Get sea lice all over your rations.<\/p>\n

                                      \n
                                    1. At the very start of the Plant, pick up a ration<\/b>.<\/li>\n
                                    2. Lie down on the ground near the little bugs (Strut A area) and wait — a louse crawls onto your rations in your inventory.<\/li>\n<\/ol>\n

                                      To get rid of it afterwards, hold your inventory open and cycle the ration up and down quickly.<\/p>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177138720963/30C6653838DC5FBD89363D226FB6B43FCD1CD789/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177138721348/D981984D99AE45EA46C75361043AD3E53C7139AE/","s":"steam"}]},{"id":"ach_002_027","api":"ach_002_027","name":"Johnny on the Spot","desc":"Hear Johnny's bowel noises in two locations","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/01613f9d4e3e383041991d6b35ccceb5e1e8329d.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a219a7872544e9204279ac48a0a40aa742d66cfe.jpg","cat":"misc","miss":true,"where":"Plant — Shell 1 Core (Ames) and the oil fence","window":"Two separate story moments","guide":"\n

                                      Hear Johnny's bowel noises in two<\/b> locations, both in the Plant chapter, using the Directional Mic<\/b>.<\/p>\n

                                        \n
                                      1. Location 1 — Ames' hostage room.<\/b> During the scene Ames tells you to mic Ocelot and Solidus. Aim the Directional Mic slightly left<\/b> of that conversation until you pick up Johnny talking to himself in the bathroom. Keep it on him until he finishes.<\/li>\n
                                      2. Location 2 — the oil fence.<\/b> While covering Emma, when she ducks behind the second platform<\/b>, aim the mic at that platform. You will hear Emma bump into Johnny. Keep the mic on them until he leaves.<\/li>\n<\/ol>\n
                                        Community reports say the two listens must happen in the same game session<\/b> — do not quit to the menu between them. Some players needed to load a save made just before the sniper section and re-listen.<\/div>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177138823423/F99FE3B53E49D8AD5837E7842ACE632A2F0051D0/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177138823748/06754D9C8F7CF65B9D0C74F17FBC54E6FA8071CE/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_205.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_206.png","s":"dayngl"}]},{"id":"ach_002_028","api":"ach_002_028","name":"Vamp Eyer","desc":"Catch a glimpse of Vamp standing in the streets of New York during the end cinematic","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/43f497d0a44802fb02aa8a67ac36fea673410103.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d23f29e71307ddacbef81d7e8296c99802477931.jpg","cat":"misc","miss":true,"where":"End of the game — rooftop epilogue cutscene","window":"Final cutscene — DO NOT SKIP","guide":"\n

                                        Catch a glimpse of Vamp standing in the streets of New York during the end cinematic.<\/p>\n

                                          \n
                                        1. Do not skip the final cutscene.<\/b> This is the single most commonly missed achievement in the game.<\/li>\n
                                        2. When Snake asks Raiden \"By the way, what is that?\"<\/i> and Raiden answers \"No, never heard the name before\"<\/i>, immediately hold the zoom button<\/b> (R2/L2 on PS, RT on Xbox) and look around with the stick.<\/li>\n
                                        3. Vamp is standing in the background. Zoom in on him and the achievement pops.<\/li>\n<\/ol>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177138843407/93DB80DBDAFEF28683EC5E536DDD8DB20CBFD5AE/","s":"steam"}]},{"id":"ach_002_029","api":"ach_002_029","name":"Love Hurts","desc":"Watch Rose kill Raiden on a rooftop","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a237e2444cd8a18ff6304d900706d398abeb0975.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/f332074bcbfc00709ff95ff342610ed46486d4ec.jpg","cat":"misc","where":"Main Menu → Special → Casting Theater (after beating the game)","window":"After completing the game","guide":"\n

                                          Watch Rose kill Raiden on a rooftop using the Casting Theater.<\/p>\n

                                            \n
                                          1. Beat the game once to unlock Casting Theater.<\/li>\n
                                          2. Go to Main Menu → Special → Casting Theater<\/b>.<\/li>\n
                                          3. Select Demo 8<\/b>.<\/li>\n
                                          4. Replace Raiden with Rose<\/b> and Solidus with Raiden<\/b>.<\/li>\n
                                          5. Watch the scene — this pops Love Hurts<\/b> and Casting Theater<\/b> together.<\/li>\n<\/ol>"},{"id":"ach_002_030","api":"ach_002_030","name":"Hold Up-aholic","desc":"Hold up 30 enemies","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/01a022d0275fc32c962c181cc4e6e6c8e5d5bdd4.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/390d39ecf9b5556aed88dca4232e4c146d5f7fed.jpg","cat":"misc","cum":true,"where":"Anywhere — hold up enemies","window":"Cumulative, carries across runs","guide":"\n

                                            Hold up 30 enemies<\/b> (cumulative).<\/p>\n

                                            This comes for free while hunting dog tags — you will hold up well over 30 guards across the Tanker and Plant tag runs.\nThe counter persists across playthroughs, so it is effectively impossible to miss.<\/p>"},{"id":"ach_002_031","api":"ach_002_031","name":"Don't Taze Me, Bro","desc":"Tranquilize 100 enemies","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/dec9ece268f240d43a4b98f54f3885697cfbdb52.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/7fc5429ed921eb4230b9734562b5f11d89c91a3e.jpg","cat":"misc","cum":true,"where":"Anywhere — M9 / PSG1-T","window":"Cumulative, carries across runs","guide":"\n

                                            Tranquilise 100 enemies<\/b> (cumulative).<\/p>\n

                                              \n
                                            • Use the M9<\/b> or PSG1-T<\/b>. A tranquilised enemy shows \"Z\"s<\/b> floating above them.<\/li>\n
                                            • You should finish this naturally during the dog-tag runs — always tranquillise after taking a tag.<\/li>\n
                                            • Bodies wake up eventually; tranq the same guard again after he gets up if you need volume.<\/li>\n<\/ul>"},{"id":"ach_002_032","api":"ach_002_032","name":"Nothing Personal","desc":"Break the neck of 30 enemies","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/f80f2904fc26a0f9117acdd457612aa74d736204.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/eb13d7e61966699c9487d18e52ef35233008d7bd.jpg","cat":"misc","cum":true,"where":"Anywhere — grab from behind, tap the grab button","window":"Cumulative, carries across runs","guide":"\n

                                              Break the neck of 30 enemies<\/b> (cumulative).<\/p>\n

                                                \n
                                              1. Get behind an enemy and grab them.<\/li>\n
                                              2. Keep tapping the grab button until the neck snaps.<\/li>\n<\/ol>\n
                                                Neck breaks are kills<\/b> — they void Pacifist Run<\/b> and Big Boss<\/b>. Farm this on a normal tag run.<\/div>"},{"id":"ach_002_033","api":"ach_002_033","name":"Rent Money","desc":"Beat 30 enemies unconscious","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/63dd05f9c0a389207b3cf6598f8b933828536b7b.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/1edaaae68cb2dbe636b6908e85110f86672ab30e.jpg","cat":"misc","cum":true,"where":"Anywhere — melee combos / groin punch / HF Blade stun side","window":"Cumulative, carries across runs","guide":"\n

                                                Knock 30 enemies unconscious<\/b> (cumulative). An unconscious enemy has stars<\/b> above their head.<\/p>\n

                                                  \n
                                                • Land repeated melee hits until they pass out.<\/li>\n
                                                • Fastest method: hold a guard up, aim at his groin<\/b> and punch — a clean hit knocks him out in one blow.<\/li>\n
                                                • Late in the game you get the HF Blade<\/b>. Open the inventory on it and press the swap button to flip it to the non-lethal side<\/b> (the icon turns blue<\/b>) — that side knocks enemies out instead of killing.<\/li>\n<\/ul>"},{"id":"ach_002_034","api":"ach_002_034","name":"Steel Grip","desc":"Attain grip level 3","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4fc9f8e76dd89b2562a91f401e5e01d46fb94275.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/023d543945379f7c72fc43b707bc8aea6dd08592.jpg","cat":"misc","cum":true,"where":"Tanker — Engine Room · Plant — Strut D or FA Connecting Bridge","window":"Cumulative, carries across runs","guide":"\n

                                                  Attain grip level 3<\/b> (the maximum). You need two<\/b> grip levels, and each level is\n100 pull-ups<\/b> or<\/i> 10 drop-and-catches<\/b> — so the full job is 200 pull-ups<\/b> or 20 catches<\/b>.<\/p>\n

                                                  Where to do it<\/h3>\n
                                                    \n
                                                  • Tanker — Engine Room<\/b> (the guide-recommended spot): two railings sit stacked directly one above the other.\nHang on the upper one, drop, and immediately mash the grab button to catch the lower one.<\/li>\n
                                                  • Plant — Strut D, Sediment Pool:<\/b> hang off the railing, drop to the level below, and the stairs back up are right\nbeside you, so the loop is quick.<\/li>\n
                                                  • Plant — FA Connecting Bridge:<\/b> also has a railing directly below the one you hang from.<\/li>\n<\/ul>\n

                                                    The two methods<\/h3>\n
                                                      \n
                                                    • Drop and catch (fast):<\/b> flip over the railing, press drop<\/b>, then mash the grab/hang<\/b> button to catch the\nrailing below. One catch = 10 pull-ups<\/b>, so 20 catches<\/b> finishes it. If you miss, you fall and die.<\/li>\n
                                                    • Pull-ups (safe):<\/b> hang from any railing and hold both shoulder buttons<\/b> to do a pull-up; repeat 200 times,\nclimbing back up when your grip meter runs low. Slower, but you cannot fall.<\/li>\n<\/ul>\n
                                                      Progress resets if you die<\/b> without leaving the room, so step out and back in every few drops to bank\nit. In the Tanker Engine Room<\/b> specifically, take the two one-shot guard tags (Jeff A Saylor Jr<\/i>,\nKazuki Tokunaga<\/i>) first<\/b> — they despawn the moment you leave the room.<\/div>\n
                                                      Do this in the Tanker so it is finished before the Holds<\/b> — the hidden marine tags in Hold No. 1 and\nNo. 3 need long ledge shimmies that drain grip and health, and grip level 3 makes that far safer.<\/div>\n
                                                      Never<\/b> grind this on a Big Boss run: one missed catch is a death, and that voids the codename.<\/div>","shots":[{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_199.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_198.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_200.png","s":"dayngl"}]},{"id":"ach_002_035","api":"ach_002_035","name":"Photo Finish","desc":"Acquire the digital camera","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c7957f06b5a10675d9dc8dd120f6ac767abd00a6.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e56f1438a03dfc191d6d392df717cb82d0547bea.jpg","cat":"coll","miss":true,"where":"Plant — Strut E conveyor (Box 5) or end of game","window":"Plant chapter","guide":"\n

                                                      Acquire the digital camera. Three routes:<\/p>\n

                                                        \n
                                                      • Beat the game<\/b> — you are given it automatically. Simplest.<\/li>\n
                                                      • Box 5 conveyor ride:<\/b> get Cardboard Box 5 in Strut E, equip it and stand on the conveyor belt. The belt stops, then carries you down into a room containing the camera.<\/li>\n
                                                      • After escorting Emma:<\/b> head for Snake, climb the ladder into Strut E, and immediately look for the Level 5 door<\/b> at the top of the small area before the conveyor section. The camera is inside.<\/li>\n<\/ul>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177138938509/A0B74949CFCC8D0058DD0FF5ED6E362DBC65D94B/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177138939198/F446514EA80167FC12D5816BA2D7854D6628E4F5/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177138939645/ACC84EFADCDAE266D93B6B6FD5CEF82A8B66E22E/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136556762/225FFD74A14296925890B40193A5578B1299DFB6/","s":"steam"}]},{"id":"ach_002_036","api":"ach_002_036","name":"Weapon Completionist: Tanker","desc":"Collect every type of weapon on the Tanker","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0bee432cd0a2e3e155b80e4707f22fec2cd4622c.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/51e17e215e4ad597765e7bb149e05ef47b811db5.jpg","cat":"coll","miss":true,"where":"Tanker — 6 weapon types","window":"Tanker chapter","guide":"\n

                                                        Collect all 6<\/b> weapon types on the Tanker:<\/p>\n\n
                                                        Weapon<\/th>How / where<\/th><\/tr>\n
                                                        M9<\/td>Default starting weapon.<\/td><\/tr>\n
                                                        USP<\/td>Automatic — given to you after beating Olga.<\/td><\/tr>\n
                                                        Chaff Grenades<\/td>Deck-C, crew's quarters — in the locker left of the stairs after the first camera.<\/td><\/tr>\n
                                                        Stun Grenades<\/td>Deck-A crew's lounge — at the bottom of the stairs leading to the Engine Room, starboard. You pass them during the story.<\/td><\/tr>\n
                                                        Hand Grenades<\/td>Engine Room — bottom level, bottom-left corner near the exit at the foot of the stairs.<\/td><\/tr>\n
                                                        Magazine<\/td>Automatic — you get it the first time you reload a weapon.<\/td><\/tr>\n<\/table>\n
                                                        Must be done in a single Tanker playthrough; the game only checks the weapon types you have held at once.<\/div>"},{"id":"ach_002_037","api":"ach_002_037","name":"Weapon Completionist: Plant","desc":"Collect every type of weapon in the Plant","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/39cd0e9c033be1c3f35bd9766db91b2212fbbbff.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/38fec5a6dfd55c407d1c47209c64241faab09d47.jpg","cat":"coll","miss":true,"where":"Plant — every weapon type (~18 items)","window":"Plant chapter","guide":"\n

                                                        Collect every weapon type<\/b> in the Plant. You only need one of each grenade type. Listed in the order they become available:<\/p>\n\n
                                                        Weapon<\/th>Where<\/th><\/tr>\n
                                                        Chaff Grenades<\/td>Strut A Roof · FA connecting bridge · Strut F · Shell 1 Core 1F · Strut L Perimeter · KL connecting bridge<\/td><\/tr>\n
                                                        M9<\/td>Strut F — top floor, room on the right after entering from the FA top-floor bridge (also near the start on Very Easy).<\/td><\/tr>\n
                                                        Magazine<\/td>Automatic when you reload a weapon.<\/td><\/tr>\n
                                                        Coolant<\/td>Given by Stillman during the story.<\/td><\/tr>\n
                                                        Book<\/td>Strut F — hang over the top-floor railing and drop onto the crates. Also Shell 1 Core 1F south lockers, and Emma's locker in Shell 2 Core B1 Filtration Chamber 2.<\/td><\/tr>\n
                                                        Stun Grenades<\/td>Strut F bottom floor · Strut E · DE connecting bridge · Shell 1 Core B1 lockers.<\/td><\/tr>\n
                                                        Claymore Mines<\/td>EF connecting bridge (crawl across to collect) · Strut E Heliport · Strut A Roof after the Fortune fight · Shell 1 Core 1F south lockers.<\/td><\/tr>\n
                                                        AKS-74u<\/td>Strut F bottom floor, after the Fatman fight.<\/td><\/tr>\n
                                                        M4<\/td>Strut F top floor, middle-left room, after the Fatman fight.<\/td><\/tr>\n
                                                        C-4<\/td>Strut F top floor top-right room (locker) · Shell 1 Core 1F south lockers · Emma's locker in Shell 2 Core B1.<\/td><\/tr>\n
                                                        Directional Mic<\/td>Shell 1 Core B2 Computer Room — story-required item.<\/td><\/tr>\n
                                                        RGB6<\/td>Strut F, after meeting Ames — top floor, top-left<\/b> room.<\/td><\/tr>\n
                                                        PSG-1<\/td>Strut F, after meeting Ames — top floor, middle-right<\/b> room.<\/td><\/tr>\n
                                                        PSG-1T<\/td>Same room as the PSG-1 — crawl into the vent.<\/td><\/tr>\n
                                                        Grenades<\/td>Strut F, after meeting Ames — top floor, bottom-left<\/b> room.<\/td><\/tr>\n
                                                        Stinger<\/td>Automatic during the Harrier fight.<\/td><\/tr>\n
                                                        Nikita<\/td>Shell 2 Core B1 — story-required; swim underwater to find it.<\/td><\/tr>\n
                                                        HF Blade<\/td>Automatic — given by Snake after you escape the torture room.<\/td><\/tr>\n<\/table>\n
                                                        Most Strut F weapon rooms only open up after the Fatman fight<\/b> and again after meeting Ames<\/b> — do a full sweep of Strut F at each of those points.<\/div>"},{"id":"ach_002_038","api":"ach_002_038","name":"Moving Day","desc":"Collect all boxes","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/2191f938c7f6f8f8859c5b7ef7270b160b58f721.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/507b962bfc9510a624693b1de707b7f85a15c7c0.jpg","cat":"coll","miss":true,"where":"Tanker (2 boxes) + Plant (5 boxes)","window":"Both chapters","guide":"\n

                                                        Collect all 7<\/b> cardboard boxes.<\/p>\n

                                                        Tanker<\/h3>\n
                                                          \n
                                                        • Box 1 —<\/b> Deck-D, crew's quarters, inside the food storage room (right of the stairs you come up).<\/li>\n
                                                        • Wet Box —<\/b> after the Olga fight, on the Navigational Deck, Wing. As you turn the corner a guard comes out of a door; the box is up by the spotlight near where he goes.<\/li>\n<\/ul>\n

                                                          Plant<\/h3>\n
                                                            \n
                                                          • Box 1 — Strut A:<\/b> after getting the Lv. 1 Card, take the small stairs in the bottom-left of the pipe room, crawl under the pipes on your first right and climb over the box below. Needs Lv. 1 Card.<\/li>\n
                                                          • Box 2 — Strut F:<\/b> bottom floor, in the bottom-left room with the Radar Node. Needs Lv. 1 Card.<\/li>\n
                                                          • Box 5 — Strut E:<\/b> on the conveyor belt near the Radar Node.<\/li>\n
                                                          • Box 3 — Strut E Rooftop Helipad:<\/b> bottom-left corner of the rooftop.<\/li>\n
                                                          • Box 4 — Shell 1 Core B2:<\/b> across from the Radar Node, near the Directional Mic and the parrot.<\/li>\n<\/ul>","shots":[{"u":"https://images.steamusercontent.com/ugc/2140958177136046914/5B7C3B4E8BF3379814E8C185D356BED511BFE81D/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136069618/1A140671AAFEBEF9A706AACA000D1756E09B5225/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136070097/0155C94B62BD63D9892146E0255F7F685202E9E5/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136101138/420301D5428D7150DAD254BB90EFF9637DBDAA07/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136102181/7D577E665B40A901FCCA3326640653EB5C4C6E65/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136111275/2E0EB1DD4C769654138A04B9DE6DC58804D1B735/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136114037/D5931E8F90958DE3CA75693F016767AAC02C9E34/","s":"steam"},{"u":"https://images.steamusercontent.com/ugc/2140958177136115730/ACA684EB5386F44862EF3A34DA0056C7D8ED509B/","s":"steam"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-orange-box.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-orange-box-3.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-strut-a-box-2.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-strut-a-box-3.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-box-4.png","s":"dayngl"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-box-4-2.png","s":"dayngl"}]},{"id":"ach_002_039","api":"ach_002_039","name":"Casting Theater","desc":"Watch something in the Casting Theater","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/eee75e572b90f25084d80366a404a99e556c4ca2.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/4e5e23b8e806d28f0878bb7c9864bda910448de2.jpg","cat":"mode","where":"Main Menu → Special → Casting Theater","window":"After completing the game","guide":"\n

                                                            Watch anything in the Casting Theater. Pops automatically while earning Love Hurts<\/b>.<\/p>\n

                                                            Main Menu → Special → Casting Theater → pick any demo and let it play.<\/p>"},{"id":"ach_002_040","api":"ach_002_040","name":"No Boss of Mine","desc":"Complete Boss Survival","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/c3e5316d317ccf5034e4890154f8ca0c609c2035.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/01740255166cdc3d7c718af089673e71bfd582f5.jpg","cat":"mode","where":"Main Menu → Boss Survival","window":"Unlocked after beating the game","guide":"\n

                                                            Complete Boss Survival<\/b> — all bosses from both chapters back to back:<\/p>\n

                                                            Olga → Tanker ambush soldiers → Fatman → Harrier → Vamp → Tengu soldiers → Metal Gear RAYs → Solidus<\/p>\n

                                                            Pick Raiden on Easy.<\/b> Raiden has the HF Blade<\/b> for the Solidus fight; Snake only gets a melee attack, which makes the last fight far harder. You can also change the difficulty of Boss Survival independently.<\/div>"},{"id":"ach_002_041","api":"ach_002_041","name":"Tell Me a Tale","desc":"Complete at least one of the Snake Tales","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d08eaf1921b4a0577a45dbbf4fb6d57558119b50.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5cfedcb12514038d53e000ab845e82887e09232a.jpg","cat":"mode","where":"Main Menu → Snake Tales","window":"Any time","guide":"\n

                                                            Complete at least one<\/b> of the five Snake Tales: A Wrongdoing<\/i>, Big Shell Evil<\/i>, Confidential Legacy<\/i>,\nDead Man<\/i>, External Gazer<\/i>.<\/p>\n

                                                            The Master Collection only requires one (the 2011 HD release required all five). Pick whichever you like — A Wrongdoing<\/b> is the shortest.<\/p>"},{"id":"ach_002_042","api":"ach_002_042","name":"Piece of Cake","desc":"Complete a VR or Alternative mission","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5cde39f4f9d31b01892f97af7900b458976b9745.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/bdc4edf9b9f27e6e04552c63aac178cd42e7e66f.jpg","cat":"mode","where":"Main Menu → VR Missions / Alternative Missions","window":"Any time","guide":"\n

                                                            Complete any single VR or Alternative mission. One and done — pick the shortest Sneaking mission you can find.<\/p>"},{"id":"ach_002_043","api":"ach_002_043","name":"In It to Win It","desc":"Place first in 50 different VR/Alternative missions","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/499a68ad66798e03878b97c533c2916ce1a99267.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/673969ecc766e29ead32e4cc7062c5a1119531f5.jpg","cat":"mode","where":"Main Menu → VR Missions / Alternative Missions","window":"Any time","guide":"\n

                                                            Place first<\/b> in 50 different VR/Alternative missions (beat the target time).<\/p>\n

                                                              \n
                                                            • There are 500+ missions, so this is only ~10% of them.<\/li>\n
                                                            • Short Sneaking<\/b> and Weapon<\/b> missions are the fastest first places.<\/li>\n
                                                            • The Master Collection does not<\/b> require clearing every mission — Virtually Impossible<\/i> was removed.<\/li>\n<\/ul>"},{"id":"ach_002_044","api":"ach_002_044","name":"Yorkie","desc":"Get the bandana","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/61a98b9e851cd7fbfa2881fa4db78142711dd645.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/5bb81962cf1854a2263fdf6d4c0b2ec39a2ada9f.jpg","cat":"coll","miss":true,"where":"Tanker — 50 tags","window":"End of a completed chapter","guide":"\n

                                                              Get the Bandana<\/b> (infinite ammo) — requires 50 Tanker dog tags<\/b>.<\/p>\n

                                                              All Very Easy (24) + all Easy (26) = exactly 50. Finish the chapter and save a completed<\/b> file so the item carries over.<\/p>"},{"id":"ach_002_045","api":"ach_002_045","name":"Poodle","desc":"Get the Tanker stealth suit","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0f5bfb26ee2815729f3da6439617b8f5dc2d1a0a.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/6b9a433c6fb860461968a720eb5847a6db6dabab.jpg","cat":"coll","miss":true,"where":"Tanker — 76 tags","window":"End of a completed chapter","guide":"\n

                                                              Get the Tanker stealth suit<\/b> — requires 76 Tanker dog tags<\/b>.<\/p>\n

                                                              Very Easy (24) + Easy (26) + Normal (33) = 83, so 76 arrives partway through the Normal tag sweep. Finish the chapter and save a completed file.<\/p>"},{"id":"ach_002_046","api":"ach_002_046","name":"Beagle","desc":"Get the infinity wig","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/a39a765308506f9e6357494a2562eb70fa0bb1e2.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/56aad902b7864f16474a720c03dac4c511b9627d.jpg","cat":"coll","miss":true,"where":"Plant — 80 tags","window":"End of a completed chapter","guide":"\n

                                                              Get the Brown Wig<\/b> (infinite ammo) — requires 80 Plant dog tags<\/b>.<\/p>\n

                                                              Very Easy (43) + Easy (44) = 87, so this lands during the Easy sweep. Finish the chapter and save a completed file.<\/p>"},{"id":"ach_002_047","api":"ach_002_047","name":"Shiba Inu","desc":"Get the Plant stealth suit","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/8828a75f84b0d205b40ea0df59f2f0a7191081fd.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/e38e65ae480313a31c3b90d209ea1616dcc6c2de.jpg","cat":"coll","miss":true,"where":"Plant — 120 tags","window":"End of a completed chapter","guide":"\n

                                                              Get the Plant stealth suit<\/b> — requires 120 Plant dog tags<\/b>.<\/p>\n

                                                              Very Easy (43) + Easy (44) + Normal (49) = 136, so 120 arrives partway through the Normal sweep. This is the item that makes Pacifist Run and Complete Stealth trivial, so do it before those runs.<\/p>"},{"id":"ach_002_048","api":"ach_002_048","name":"Pacifist Run","desc":"Clear the game without killing anyone","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/701310b71e1cf13325280599ff63f615735649fe.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/d6706e31b8f95986c2724d628d2363da8f1f2012.jpg","cat":"chal","miss":true,"where":"Any completed playthrough","window":"Whole run","guide":"\n

                                                              Clear the game without killing anyone.<\/p>\n

                                                                \n
                                                              • Only use non-lethal<\/b> weapons — M9, PSG1-T, stun grenades, the HF Blade's blue<\/b> side.<\/li>\n
                                                              • This includes bosses that have a stamina bar<\/b>: Olga, Fatman, Vamp, Harrier, Solidus. Damage their stamina, not their health.<\/li>\n
                                                              • For Solidus<\/b>, open the inventory on the HF Blade and swap it to the non-lethal side<\/b>.<\/li>\n<\/ul>\n
                                                                Easiest route:<\/b> do this on Very Easy with the Bandana equipped<\/b> (infinite tranq ammo) after you have unlocked it. Community reports also confirm you can earn it with a Tanker-only<\/b> run if you started one.<\/div>\n
                                                                Do not press the neck-break prompt, do not shoot explosive barrels into enemies, and do not let the steam pipe kill anyone on this file.<\/div>"},{"id":"ach_002_049","api":"ach_002_049","name":"Complete Stealth","desc":"Clear the game without entering Alert Mode (not including events where Alert Mode is mandatory)","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/ddddc67b62ecf346e3fa6538975b84106dbdbf4a.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/0b60f6b99b2bdce2ec5532b92e93c2a69ca2c9fa.jpg","cat":"chal","miss":true,"where":"Any completed playthrough","window":"Whole run","guide":"\n

                                                                Clear the game without entering Alert<\/b> mode (mandatory alert events excluded).<\/p>\n

                                                                  \n
                                                                • You are fine while the HUD says CAUTION<\/b>. You fail the moment it turns red ALERT<\/b>.<\/li>\n
                                                                • Being spotted is OK if<\/i> you stop the guard before he finishes his radio call — you have a short window.<\/li>\n
                                                                • Easiest method:<\/b> equip the Stealth Camo<\/b> and walk through the whole game invisible. Enemies and cameras cannot see you.<\/li>\n<\/ul>\n
                                                                  The one exception:<\/b> the Shell 1 Core elevator<\/b> requires you to wear the disguise and equip the AK-47. The camera will spot you even with stealth equipped if you try it any other way — do it properly and you stay safe.<\/div>\n

                                                                  The following forced alert sequences do not<\/b> void the achievement:<\/p>\n

                                                                    \n
                                                                  • Boss fights<\/li>\n
                                                                  • The soldiers hallway fight in the Tanker<\/li>\n
                                                                  • After speaking with Ames in the hostage room<\/li>\n
                                                                  • The Tengu soldier fight alongside Snake<\/li>\n<\/ul>\n

                                                                    Save often and reload if the HUD goes red. Pair this with Pacifist Run on the same playthrough — both are trivial with stealth + bandana on Very Easy.<\/p>"},{"id":"ach_002_050","api":"ach_002_050","name":"Big Boss","desc":"Earn the title of Big Boss","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/77f0da41c2df32a10f211b40e924cb8d9b262b0a.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/fa74a0fa7d43970f6c01e706216f6cd775154025.jpg","cat":"chal","miss":true,"where":"Extreme difficulty, Tanker → Plant","window":"Whole run","guide":"\n

                                                                    Earn the title of Big Boss<\/b>. This is the hardest achievement in the game — see the dedicated\nBig Boss Run<\/b> tab for full criteria, boss strategies, save points and time checkpoints.<\/p>\n

                                                                    Complete the game on Extreme<\/b>, Tanker→Plant, with:<\/p>\n

                                                                      \n
                                                                    • Time under 3:00:00<\/b><\/li>\n
                                                                    • 0<\/b> continues, 0<\/b> rations used, 0<\/b> kills<\/li>\n
                                                                    • 3 or fewer<\/b> alerts<\/li>\n
                                                                    • 700 or fewer<\/b> shots fired<\/li>\n
                                                                    • Mech damage under 60<\/b> (cameras, Cyphers, RAYs — you must destroy ~20 RAYs, so keep everything else under ~40)<\/li>\n
                                                                    • Damage received: 10 health bars or less<\/b><\/li>\n
                                                                    • No special items<\/b>, no radar<\/b><\/li>\n<\/ul>"},{"id":"ach_002_051","api":"ach_002_051","name":"Cover-to-Cover Solid 2: Books of the Patriots","desc":"Read all the pages in the Screenplay Book","icon":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/6dfaffcb025712c398b5017e3edc6c730e8e9abf.jpg","icoLocked":"https://shared.akamai.steamstatic.com/community_assets/images/apps/2131640/00f81475056260510b0c9bb54b93952f289b3b70.jpg","cat":"extra","where":"Master Collection launcher → MGS2 Screenplay Book","window":"Any time","guide":"\n

                                                                      Read all pages in the Screenplay Book<\/b>.<\/p>\n

                                                                        \n
                                                                      1. From the Master Collection launcher, open the MGS2 Screenplay<\/b>.<\/li>\n
                                                                      2. Tab/page all the way to the end<\/b> — the achievement pops when you reach the last page.<\/li>\n<\/ol>\n
                                                                        Free achievement — do it from the main menu before you even start playing.<\/div>"}]; -const ROADMAP = [{"phase":"Phase 0 — Before you play","intro":"\n

                                                                        Do these first: they are free, and one of them changes how you do everything else.<\/p>","steps":[{"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<\/b>). Open the Screenplay from the launcher and page all the way to the last page.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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<\/b> times. Keep one save slot per run, and never overwrite a\n completed<\/b> file — those are what carry the special items forward.<\/p>\n

                                                                          \n
                                                                        • Run 1<\/b> — Very Easy, Tanker→Plant. Every misc/missable achievement + all 67 tags.<\/li>\n
                                                                        • Run 2<\/b> — Easy. All 70 tags.<\/li>\n
                                                                        • Run 3<\/b> — Normal. All 82 tags (you only need up to 76 Tanker / 120 Plant, but take them all).<\/li>\n
                                                                        • Run 4<\/b> — Very Easy with Stealth Camo + Bandana. Pacifist Run + Complete Stealth together.<\/li>\n
                                                                        • Run 5<\/b> — Extreme, no special items, no radar. Big Boss.<\/li>\n <\/ul>\n

                                                                          Runs 1–3 are the same route — the walkthrough below covers Run 1 in full and applies to all three.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Run 1 · Tanker (Very Easy)","intro":"\n

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

                                                                          Set the difficulty to Very Easy<\/b> and start a Tanker-Plant<\/b> game (not Tanker only) —\n the special-item achievements expect a completed Tanker-Plant file.<\/div>","steps":[{"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<\/i> on Very Easy)\n — start practising your hold-ups.<\/p>\n

                                                                          Hold-up method:<\/b> approach from behind, jam the gun into their back (Freeze!<\/code>), keep aiming and\n run round to their front, then aim at the face.<\/p>\n

                                                                          Silence is Golden<\/b> comes free here: while you are behind a guard, aim at the radio on his lower back<\/b>\n and shoot it (non-lethal is fine) — you can do it to every guard you hold up.<\/p>","gets":{"ach":["ach_002_020"],"item":[]},"areas":["Aft deck"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136481153/1A7A6CF09BDB63377C45F49CD8B82FF16C27F78B/","s":"steam","cap":"Silence is Golden"}]},{"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:<\/p>\n

                                                                            \n
                                                                          • Box 1 (Moving Day)<\/b> — inside the food storage room, to the right of the stairs you come up.<\/li>\n
                                                                          • Down in Smoke<\/b> — stand across from the laser trap in the hallway; the patrolling guard stops next to a\n fire extinguisher<\/b>. Shoot the extinguisher when he is beside it.<\/li>\n
                                                                          • Tags: Miguel Luis Cunha<\/i> (moves after the Olga fight) and Eiji Senke<\/i>, who only turns up while you are\n inside the storeroom.<\/li>\n <\/ul>","gets":{"ach":["ach_002_019"],"item":["Box 1 (Moving Day)"]},"areas":["Deck-D, crew's quarters"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136469704/2AF929A85B11F984104CDBFDF20F2337525BF2E4/","s":"steam","cap":"Down in Smoke"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_193.png","s":"dayngl","cap":"Down in Smoke"},{"u":"https://images.steamusercontent.com/ugc/2140958177136046914/5B7C3B4E8BF3379814E8C185D356BED511BFE81D/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-orange-box.png","s":"dayngl","cap":"Moving Day"}]},{"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<\/b> — this is the most commonly botched spot in the game.<\/p>\n

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

                                                                              There is also a wall camera nearby — leave it alone if you care about Big Boss mech damage later, otherwise\n shoot it for Bye Bye Big Brother.<\/p>","gets":{"ach":["ach_002_015","ach_002_022","ach_002_023"],"item":[]},"areas":["Deck-A, crew's quarters"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136317575/731B3D9EC271731F38832D933D2C219CC0059073/","s":"steam","cap":"Hurt Locker"},{"u":"https://images.steamusercontent.com/ugc/2140958177136318173/884F0C35125943218F3D5BB4553360F037C65C33/","s":"steam","cap":"Hurt Locker"},{"u":"https://images.steamusercontent.com/ugc/2140958177136517688/03B517E0FDA1DD9AEEEA02746BDEEBAE2101B0B7/","s":"steam","cap":"Kissing Booth"},{"u":"https://images.steamusercontent.com/ugc/2140958177136591521/D6C0DD6A85100F4B701CC90790A90547FFE8A5C5/","s":"steam","cap":"Kissing Booth"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-snake-beater-3.png","s":"dayngl","cap":"Kissing Booth"}]},{"id":"r1-4","title":"Deck-A, crew's lounge — Stun Grenades","area":"Tanker · Deck-A lounge","body":"

                                                                              Stun Grenades<\/b> sit at the bottom of the stairs that lead down to the Engine Room, starboard side — you\n walk right past them during the story. Three tags here too.<\/p>","gets":{"ach":[],"item":["Stun Grenades"]},"areas":["Deck-A, crew's lounge"],"photos":[]},{"id":"r1-5","title":"Deck-B, crew's quarters","area":"Tanker · Deck-B","body":"

                                                                              Two tags (Yuki Hongoh<\/i> and one other on Very Easy). Nothing missable.<\/p>","gets":{"ach":[],"item":[]},"areas":["Deck-B, crew's quarters"],"photos":[]},{"id":"r1-6","title":"Deck-C, crew's quarters — Chaff Grenades + first camera","area":"Tanker · Deck-C","body":"

                                                                              Chaff Grenades<\/b> are in the locker left of the stairs after the first camera<\/b>. This is also your first\n easy Bye Bye Big Brother<\/b> camera — remember cameras need a lethal<\/b> shot.<\/p>","gets":{"ach":["ach_002_018"],"item":["Chaff Grenades"]},"areas":["Deck-C, crew's quarters"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136376202/6D3E8B726071028CA7BE0046277E41411C57BB99/","s":"steam","cap":"Bye Bye Big Brother"}]},{"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<\/b>.<\/p>\n

                                                                              This ambush is a forced alert<\/b> and does not<\/b> void Complete Stealth.<\/div>\n

                                                                              Caution: Hot<\/b> is easiest right here: the ambush corridor is lined with pipes — shoot the pipes next to a soldier\n until he goes down.<\/p>","gets":{"ach":["ach_002_021"],"item":[]},"areas":["Deck-2, port"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136495694/9F18A7132965C9D3D4794711C7CA1F1C67663692/","s":"steam","cap":"Caution: Hot"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-mgs2-steam-shootout-9.png","s":"dayngl","cap":"Caution: Hot"}]},{"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<\/b> in the bottom-left corner of the bottom level, near the exit at the foot of the stairs.<\/p>\n

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

                                                                              ⚙️ Do Steel Grip<\/b> here — this is the guide-recommended spot<\/h4>\n

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

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

                                                                                Plain pull-ups work too (hold both triggers, 200 of them) — slower, but zero risk of falling.\n Never grind this on a Big Boss<\/b> run: a single missed catch is a death, and that voids the codename.<\/p>","gets":{"ach":["ach_002_034","ach_002_050"],"item":["Hand Grenades"]},"areas":["Engine room"],"photos":[{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_199.png","s":"dayngl","cap":"Steel Grip"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_198.png","s":"dayngl","cap":"Steel Grip"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_200.png","s":"dayngl","cap":"Steel Grip"}]},{"id":"r1-9","title":"Navigational Deck, Wing — Olga + the Wet Box","area":"Tanker · Deck-E bridge / Nav Deck","body":"

                                                                                Boss: Olga Gurlukovich<\/b> → Lights Out<\/b>. Shoot the spotlight and the tarp corners, and roll away from her\n shots.<\/p>\n

                                                                                Immediately after the fight:<\/p>\n

                                                                                  \n
                                                                                • Pick up and drop Olga's body<\/b> for her dog tag.<\/li>\n
                                                                                • Grab the Wet Box<\/b> (Moving Day) on the Navigational Deck, Wing — it is up by the spotlight<\/b> near where the\n guard emerges.<\/li>\n
                                                                                • Brendan McLeod<\/i> spawns when you approach the starboard side.<\/li>\n <\/ul>","gets":{"ach":["ach_002_001"],"item":["Wet Box"]},"areas":["Navigational deck, wing"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136069618/1A140671AAFEBEF9A706AACA000D1756E09B5225/","s":"steam","cap":"Moving Day"},{"u":"https://images.steamusercontent.com/ugc/2140958177136070097/0155C94B62BD63D9892146E0255F7F685202E9E5/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-orange-box-3.png","s":"dayngl","cap":"Moving Day"}]},{"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<\/b>. Save before you enter Hold No. 1.<\/p>\n

                                                                                    \n
                                                                                  • Who Ya Gonna Call?<\/b> — in Hold No. 2<\/b>, photograph the right-hand projector screen<\/b> with Otacon's camera.\n If the ghost is not up, interact with the projector to switch screens.<\/li>\n
                                                                                  • Sexting<\/b> — photograph the marine with no pants<\/b>, then send it from the computer in the bottom-right of\n Hold No. 3<\/b>. Do this before<\/b> you photograph RAY.<\/li>\n
                                                                                  • Hidden marine tags:<\/b> after going down the first ladder, shimmy<\/b> along the ledges — there are guards tucked away\n in Hold No. 1 and Hold No. 3. For the boxers marine in the middle of the crowd, tranquillise and drag the marines beside him.<\/li>\n
                                                                                  • Max out rations first — shimmying drains health.<\/li>\n <\/ul>\n

                                                                                    Then photograph RAY and escape. Lady Fortune<\/b> pops during the Fortune sequence on the way out.<\/p>","gets":{"ach":["ach_002_024","ach_002_025","ach_002_004"],"item":[]},"areas":["Hold No.1","Hold No.2","Hold No.3"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138675405/CA3D98BBD57FEAAA9E343E3449AF8E0EAA237602/","s":"steam","cap":"Who Ya Gonna Call?"},{"u":"https://images.steamusercontent.com/ugc/2140958177138675738/247C45C6B1D55E086BCEA51AB712A20197511926/","s":"steam","cap":"Who Ya Gonna Call?"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_202.png","s":"dayngl","cap":"Who Ya Gonna Call?"},{"u":"https://images.steamusercontent.com/ugc/2140958177138700455/5284F920FDA6CA85D8099980CFDDE2DD3B0F0A43/","s":"steam","cap":"Sexting"},{"u":"https://images.steamusercontent.com/ugc/2140958177138706115/7EECB9B33A9782D91924A7439974031104E6D2EF/","s":"steam","cap":"Sexting"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-sexting-2.png","s":"dayngl","cap":"Sexting"}]},{"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<\/b> to confirm you have all 24<\/b> Very Easy tags\n before moving on.<\/p>\n

                                                                                    Yorkie (50 tags) and Poodle (76 tags) will not pop until you finish a completed Tanker-Plant file that\n contains those totals — keep going into the Plant.<\/div>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Run 1 · Plant (Very Easy)","intro":"\n

                                                                                    Same structure: work through the struts in order. The Plant is longer but its tags are more straightforward — the\n interesting ones are the conditional spawns<\/b> (guards that only appear after Fatman, or after the Emma escort).<\/p>","steps":[{"id":"r2-1","title":"Strut A, Deep Sea Dock — sea lice + a boss","area":"Plant · Strut A","shots":["My Rations..."],"body":"

                                                                                    Do My Rations…<\/b> right away: grab a ration, then lie down near the bugs<\/b> and wait for a louse to crawl onto it.<\/p>\n

                                                                                    Two tags here (Brad I Lanning<\/i>, Charles P Pinkerton<\/i>), and later the Fortune<\/b> fight happens in this same\n area → Lady Fortune<\/b>.<\/p>","gets":{"ach":["ach_002_026","ach_002_004"],"item":[]},"areas":["Strut A Deep Sea Dock"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138720963/30C6653838DC5FBD89363D226FB6B43FCD1CD789/","s":"steam","cap":"My Rations..."},{"u":"https://images.steamusercontent.com/ugc/2140958177138721348/D981984D99AE45EA46C75361043AD3E53C7139AE/","s":"steam","cap":"My Rations..."}]},{"id":"r2-2","title":"Strut A Roof + Pump Room","area":"Plant · Strut A","body":"

                                                                                    Tags on the roof (Jason M Gillispie<\/i>) and two in the Pump Room. The Box 1<\/b> cardboard box is in the Strut A\n 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.<\/p>","gets":{"ach":[],"item":["Box 1"]},"areas":["Strut A roof","Strut A Pump Room"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136101138/420301D5428D7150DAD254BB90EFF9637DBDAA07/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-strut-a-box-2.png","s":"dayngl","cap":"Moving Day"}]},{"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<\/b> along the way — it gates Box 1 and Box 2.<\/p>","gets":{"ach":[],"item":["Lv. 1 Card"]},"areas":["AB connecting bridge","Strut B Transformer Room"],"photos":[]},{"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.<\/p>","gets":{"ach":[],"item":[]},"areas":["BC connecting bridge","Strut C Dining Hall"],"photos":[]},{"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.<\/p>\n

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

                                                                                    A soldier patrols Strut D and regularly radios in<\/b>. If he goes down, a search party comes\n looking — so clear him quietly and tranquillise him again if he wakes up while you are grinding.<\/div>","gets":{"ach":[],"item":[]},"areas":["CD connecting bridge","Strut D Sediment Pool"],"photos":[]},{"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<\/b>.<\/p>","gets":{"ach":[],"item":[]},"areas":["DE connecting bridge","Strut E Parcel Room"],"photos":[]},{"id":"r2-7","title":"Strut E Heliport — Stillman, then Fatman","area":"Plant · Strut E Heliport","body":"

                                                                                    Bomb Squad<\/b> pops during Stillman's C4 tutorial.<\/p>\n

                                                                                    Then the bomb-defusal section around the Big Shell, then boss: Fatman<\/b> → Party's Over<\/b>.<\/p>\n

                                                                                    After the Fatman fight, lift and drop Fatman's body<\/b> for the Peter Stillman<\/i> dog tag — this is the\n last tag on every Plant difficulty list<\/b> and it is the one people miss.<\/div>\n
                                                                                    Beating Fatman reopens weapon rooms in Strut F<\/b> (AKS-74u on the bottom floor, M4 in the top-floor\n middle-left room). Go back for them.<\/div>","gets":{"ach":["ach_002_003","ach_002_005"],"item":[]},"areas":["Strut E heliport"],"photos":[]},{"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<\/b> and again after you meet Ames.<\/p>\n

                                                                                      \n
                                                                                    • To Catch a Predator<\/b> — the Book<\/b> is on the bottom floor on top of some crates. From the top floor, flip over\n the railing, shimmy right until you are above the crates, drop and pick it up. Then drop it in a guard's path.<\/li>\n
                                                                                    • Box 2<\/b> — bottom floor, bottom-left room with the Radar Node (needs Lv. 1 Card).<\/li>\n
                                                                                    • M9<\/b> — top floor, room on the right after entering from the FA top-floor bridge.<\/li>\n
                                                                                    • Bottom floor after Fatman: AKS-74u<\/b>. Top-floor middle-left: M4<\/b>. Top-floor top-right locker: C-4<\/b>.\n Bottom floor: Stun Grenades<\/b>.<\/li>\n <\/ul>","gets":{"ach":["ach_002_016"],"item":["Book","Box 2","M9","AKS-74u","M4","C-4","Stun Grenades"]},"areas":["Strut F warehouse","FA connecting bridge"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136357008/CD39D24C0551AFE497908F3663503831165EED68/","s":"steam","cap":"To Catch a Predator"},{"u":"https://images.steamusercontent.com/ugc/2140958177136357970/CFA864B252691461EFBE45AB970DCE13E7190AEE/","s":"steam","cap":"To Catch a Predator"},{"u":"https://images.steamusercontent.com/ugc/2140958177136359533/70AC04F772E0D0855F9D8B040F28FE619F508967/","s":"steam","cap":"To Catch a Predator"},{"u":"https://images.steamusercontent.com/ugc/2140958177136102181/7D577E665B40A901FCCA3326640653EB5C4C6E65/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-strut-a-box-3.png","s":"dayngl","cap":"Moving Day"}]},{"id":"r2-9","title":"Strut E Heliport roof + Shell 1 Core 1F","area":"Plant · Strut E / Shell 1","body":"

                                                                                      Box 3<\/b> is in the bottom-left corner of the Strut E rooftop helipad. Box 5<\/b> is on the conveyor belt in Strut E itself.<\/p>\n

                                                                                      In Shell 1 Core 1F<\/b>: several tags, the south lockers<\/b> (Book / C-4 / Claymores / Stun Grenades), and cameras to shoot.<\/p>","gets":{"ach":[],"item":["Box 3","Box 5"]},"areas":["Shell 1 Core, 1F"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136111275/2E0EB1DD4C769654138A04B9DE6DC58804D1B735/","s":"steam","cap":"Moving Day"},{"u":"https://images.steamusercontent.com/ugc/2140958177136114037/D5931E8F90958DE3CA75693F016767AAC02C9E34/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-box-4.png","s":"dayngl","cap":"Moving Day"},{"u":"https://images.steamusercontent.com/ugc/2140958177138938509/A0B74949CFCC8D0058DD0FF5ED6E362DBC65D94B/","s":"steam","cap":"Photo Finish"},{"u":"https://images.steamusercontent.com/ugc/2140958177138939198/F446514EA80167FC12D5816BA2D7854D6628E4F5/","s":"steam","cap":"Photo Finish"},{"u":"https://images.steamusercontent.com/ugc/2140958177138939645/ACC84EFADCDAE266D93B6B6FD5CEF82A8B66E22E/","s":"steam","cap":"Photo Finish"}]},{"id":"r2-10","title":"Shell 1 Core B2 — Box 4 + the Directional Mic","area":"Plant · Shell 1 B2 Computer Room","body":"

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

                                                                                      Four tags in the computer room.<\/p>","gets":{"ach":["ach_002_027"],"item":["Box 4","Directional Mic"]},"areas":["Shell 1 Core, B2 Computer Room"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136115730/ACA684EB5386F44862EF3A34DA0056C7D8ED509B/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-box-4-2.png","s":"dayngl","cap":"Moving Day"}]},{"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.<\/b> During the Ames scene you are told to mic Ocelot and Solidus. Aim the Directional Mic\n slightly left<\/b> of that conversation until you hear Johnny<\/b> in the bathroom, and keep it on him until he finishes.<\/p>\n

                                                                                      Do not<\/b> quit to the menu after this — do the second listen in the same session<\/b>, or the achievement\n may not register.<\/div>\n

                                                                                      After the Ames scene, alert mode is forced — it will not void Complete Stealth.<\/p>","gets":{"ach":["ach_002_027"],"item":[]},"areas":["Shell 1 Core, B1"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138823423/F99FE3B53E49D8AD5837E7842ACE632A2F0051D0/","s":"steam","cap":"Johnny on the Spot"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_205.png","s":"dayngl","cap":"Johnny on the Spot"}]},{"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<\/b> here. Even with Stealth Camo equipped, the camera will\n spot you if you try the elevator any other way.<\/p>\n

                                                                                      This is the single exception to \"stealth makes Complete Stealth free\".<\/p>","gets":{"ach":[],"item":["disguise + AK-47"]},"areas":["Strut L Sewage Treatment Facility"],"photos":[]},{"id":"r2-13","title":"President Johnson → Vamp","area":"Plant · Shell 1 Core","body":"

                                                                                      Bohemian Candidate<\/b> pops when you meet the President. Then boss: Vamp<\/b> → Vampire Slayer<\/b>.<\/p>\n

                                                                                      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\n the platform edge to bait his attack and punch him twice when he comes close.<\/p>","gets":{"ach":["ach_002_008","ach_002_009"],"item":[]},"photos":[]},{"id":"r2-14","title":"Shell 2 Core — Emma + the Nikita","area":"Plant · Shell 2 Core B1","body":"

                                                                                      I Think You Need a Hug, E<\/b> pops when you find Emma. Swim underwater for the story-required Nikita<\/b>.<\/p>\n

                                                                                      Emma's locker in the B1 Filtration Chamber 2 holds a Book<\/b> and C-4<\/b> — both count toward the weapon/box sweeps.<\/p>","gets":{"ach":["ach_002_010"],"item":["Nikita","Book","C-4"]},"areas":["Shell 2 Core, 1F Air Purification Room"],"photos":[]},{"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.<\/b> While covering Emma, when she ducks behind the second platform<\/b>, aim the Directional\n 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\n also did location 1.<\/p>\n

                                                                                      Photo Finish<\/b> — after the escort, when you climb the ladder into Strut E, look for the Level 5 door<\/b> at the top of the\n small area (before the conveyor section) for the Digital Camera.<\/p>","gets":{"ach":["ach_002_027","ach_002_035"],"item":["Level 5 door"]},"areas":["KL connecting bridge"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138823748/06754D9C8F7CF65B9D0C74F17FBC54E6FA8071CE/","s":"steam","cap":"Johnny on the Spot"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_206.png","s":"dayngl","cap":"Johnny on the Spot"},{"u":"https://images.steamusercontent.com/ugc/2140958177136556762/225FFD74A14296925890B40193A5578B1299DFB6/","s":"steam","cap":"Photo Finish"}]},{"id":"r2-16","title":"Arsenal Gear — Snake's tag, Tengu, RAY","area":"Arsenal Gear","body":"

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

                                                                                      Then the Tengu<\/b> fight (forced alert, safe) and boss: Metal Gear RAY<\/b> → No Ray, José<\/b>. About 20 RAYs — keep moving\n and cartwheel through the missile barrages.<\/p>\n

                                                                                      Then the torture<\/b> room. Beating it gives you the HF Blade<\/b> from Snake.<\/p>","gets":{"ach":["ach_002_012"],"item":["HF Blade"]},"areas":["Arsenal Gear-Ascending Colon"],"photos":[]},{"id":"r2-17","title":"Solidus — and DO NOT SKIP THE CUTSCENE","area":"Plant · rooftop","shots":["Vamp Eyer"],"body":"

                                                                                      Boss: Solidus Snake<\/b> → Another Snake Bites the Dust<\/b>.<\/p>\n

                                                                                      Vamp Eyer:<\/b> let the ending cinematic play. When Snake asks \"By the way, what is that?\"<\/i> and Raiden\n answers \"No, never heard the name before\"<\/i>, hold the zoom button and look around — Vamp is standing in the street. Zoom in on him.<\/div>","gets":{"ach":["ach_002_013","ach_002_028"],"item":[]},"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138843407/93DB80DBDAFEF28683EC5E536DDD8DB20CBFD5AE/","s":"steam","cap":"Vamp Eyer"}]},{"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.<\/p>\n

                                                                                      Check the totals: Tanker 24, Plant 43. Then open the Dog Tags<\/b> tab and confirm the thresholds panel —\n Bandana 50<\/b> and Brown Wig 80<\/b> are already satisfied once you add the Easy-run tags; Yorkie<\/b> will pop after\n Run 2 and Beagle<\/b> during Run 2 as well.<\/p>","gets":{"ach":["ach_002_044","ach_002_046"],"item":[]},"photos":[]}]},{"phase":"Runs 2 & 3 — the dog-tag sweeps","intro":"\n

                                                                                      The same route as Run 1, on Easy<\/b> then Normal<\/b>, picking up the tags you do not have. Nothing new is missable —\n you are only here for numbers.<\/p>","steps":[{"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<\/b> (→ Yorkie<\/b> / Bandana) and\n 80 Plant<\/b> (→ Beagle<\/b> / Brown Wig).<\/p>\n

                                                                                      The achievements pop when the chapter is completed with the totals present, not when the last tag is collected.<\/p>","gets":{"ach":["ach_002_044","ach_002_046"],"item":[]},"photos":[]},{"id":"r3-2","title":"Run 3 (Normal): sweep Tanker 33 + Plant 49","area":"Normal difficulty","body":"

                                                                                      This run crosses 76 Tanker<\/b> (→ Poodle<\/b> / Tanker stealth) and 120 Plant<\/b> (→ Shiba Inu<\/b> / Plant stealth).<\/p>\n

                                                                                      After this run you have everything you need for the two challenge runs: Stealth Camo<\/b> and the\n Bandana / Brown Wig<\/b> (infinite ammo). Start Run 4 from a file that loads this cleared data.<\/div>","gets":{"ach":["ach_002_045","ach_002_047"],"item":["Stealth Camo","Bandana / Brown Wig"]},"photos":[]},{"id":"r3-3","title":"Optional: grab the last two wigs","area":"Plant, all difficulties","body":"

                                                                                      The Orange Wig<\/b> (160 Plant tags) and Blue Wig<\/b> (200 Plant tags) are not<\/b> required for any achievement.\n Only chase them if you want the Perfect/100% feel — Hard (52) + Extreme (54) = 106 more tags.<\/p>","gets":{"ach":[],"item":["Orange Wig","Blue Wig"]},"photos":[]}]},{"phase":"Run 4 — Pacifist Run + Complete Stealth together","intro":"\n

                                                                                      Both of these are \"whole playthrough\" challenges, so do them at the same time. With the items from Run 3 this is the\n easiest full playthrough you will ever do.<\/p>","steps":[{"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<\/b> permanently.<\/p>\n

                                                                                      Equip the Bandana<\/b> (or Brown Wig) for infinite non-lethal ammo.<\/p>","gets":{"ach":[],"item":["Stealth Camo","Bandana"]},"photos":[]},{"id":"r4-2","title":"Kill nothing, anywhere","area":"Whole run","body":"

                                                                                      Pacifist Run<\/b> requires zero kills — this includes:<\/p>\n

                                                                                        \n
                                                                                      • No neck breaks, no lethal weapons, no explosive barrels killing anyone.<\/li>\n
                                                                                      • No steam-pipe kills, no falling deaths you caused.<\/li>\n
                                                                                      • Bosses with a stamina bar<\/b> (Olga, Fatman, Harrier, Vamp, Solidus) must be drained on stamina, not health.<\/li>\n
                                                                                      • For Solidus<\/b>, flip the HF Blade to the blue non-lethal side<\/b>.<\/li>\n <\/ul>","gets":{"ach":["ach_002_048"],"item":[]},"photos":[]},{"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<\/b> as the story demands.\n Trying it in stealth gets you spotted and can void Complete Stealth<\/b>.<\/p>","gets":{"ach":["ach_002_049"],"item":["disguise + AK-47"]},"photos":[]},{"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<\/b>, reload immediately — the game only\n checks the flag on the final results screen.<\/p>\n

                                                                                        Forced alerts that are safe: boss fights, the Tanker hallway ambush, the post-Ames alert, the Tengu fight.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Run 5 — Big Boss","intro":"\n

                                                                                        The final boss of the achievement list. Everything you have learned so far gets used at once.\n Full criteria, strategies and time checkpoints are in the Big Boss Run<\/b> tab.<\/p>","steps":[{"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\n you cannot afford to learn a fight mid-run.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"id":"r5-2","title":"Start Extreme, Tanker→Plant, NO special items, NO radar","area":"New game","body":"

                                                                                        Do not<\/b> load the cleared save — special items and the radar are banned and will void the codename.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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.<\/p>\n

                                                                                        If you are more than a couple of minutes behind at any of these, restart — it is cheaper than finishing at 3:05.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Off-story cleanup","intro":"\n

                                                                                        Everything else is on the main menu and takes under an hour total.<\/p>","steps":[{"id":"r6-1","title":"Snake Tales — complete any one","area":"Main Menu","body":"

                                                                                        Tell Me a Tale.<\/b> A Wrongdoing is the shortest of the five.<\/p>","gets":{"ach":["ach_002_041"],"item":[]},"photos":[]},{"id":"r6-2","title":"Boss Survival — Raiden on Easy","area":"Main Menu","body":"

                                                                                        No Boss of Mine.<\/b> Raiden gets the HF Blade for Solidus; Snake does not.<\/p>","gets":{"ach":["ach_002_040"],"item":[]},"photos":[]},{"id":"r6-3","title":"VR missions — one clear, then 50 first places","area":"Main Menu","body":"

                                                                                        Piece of Cake<\/b> (any single mission) then In It to Win It<\/b> (place 1st in 50). Pick the shortest\n Sneaking missions and learn the target time.<\/p>","gets":{"ach":["ach_002_042","ach_002_043"],"item":[]},"photos":[]},{"id":"r6-4","title":"Casting Theater — Demo 8 body swap","area":"Main Menu → Special","body":"

                                                                                        Casting Theater<\/b> + Love Hurts<\/b>: Demo 8, Raiden→Rose, Solidus→Raiden, watch it play out.<\/p>","gets":{"ach":["ach_002_039","ach_002_029"],"item":[]},"photos":[]},{"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\n Bye Bye Big Brother (5 cameras) all carry across playthroughs — check the Achievements tab to see what is still outstanding and\n farm it on a spare save.<\/p>\n

                                                                                        Steel Grip is not<\/b> on this list — do that one on-site in the Tanker Engine Room<\/b> (or Strut D)\n where the stacked railings are, as covered in the Tanker walkthrough above.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]}]; +const ROADMAP = [{"phase":"Phase 0 — Before you play","intro":"\n

                                                                                        Do these first: they are free, and one of them changes how you do everything else.<\/p>","steps":[{"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<\/b>). Open the Screenplay from the launcher and page all the way to the last page.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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<\/b> times. Keep one save slot per run, and never overwrite a\n completed<\/b> file — those are what carry the special items forward.<\/p>\n

                                                                                          \n
                                                                                        • Run 1<\/b> — Very Easy, Tanker→Plant. Every misc/missable achievement + all 67 tags.<\/li>\n
                                                                                        • Run 2<\/b> — Easy. All 70 tags.<\/li>\n
                                                                                        • Run 3<\/b> — Normal. All 82 tags (you only need up to 76 Tanker / 120 Plant, but take them all).<\/li>\n
                                                                                        • Run 4<\/b> — Very Easy with Stealth Camo + Bandana. Pacifist Run + Complete Stealth together.<\/li>\n
                                                                                        • Run 5<\/b> — Extreme, no special items, no radar. Big Boss.<\/li>\n <\/ul>\n

                                                                                          Runs 1–3 are the same route — the walkthrough below covers Run 1 in full and applies to all three.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Run 1 · Tanker (Very Easy)","intro":"\n

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

                                                                                          Set the difficulty to Very Easy<\/b> and start a Tanker-Plant<\/b> game (not Tanker only) —\n the special-item achievements expect a completed Tanker-Plant file.<\/div>","steps":[{"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<\/i> on Very Easy)\n — start practising your hold-ups.<\/p>\n

                                                                                          Hold-up method:<\/b> approach from behind, jam the gun into their back (Freeze!<\/code>), keep aiming and\n run round to their front, then aim at the face.<\/p>\n

                                                                                          Silence is Golden<\/b> comes free here: while you are behind a guard, aim at the radio on his lower back<\/b>\n and shoot it (non-lethal is fine) — you can do it to every guard you hold up.<\/p>","gets":{"ach":["ach_002_020"],"item":[]},"areas":["Aft deck"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136481153/1A7A6CF09BDB63377C45F49CD8B82FF16C27F78B/","s":"steam","cap":"Silence is Golden"}]},{"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:<\/p>\n

                                                                                            \n
                                                                                          • Box 1 (Moving Day)<\/b> — inside the food storage room, to the right of the stairs you come up.<\/li>\n
                                                                                          • Down in Smoke<\/b> — stand across from the laser trap in the hallway; the patrolling guard stops next to a\n fire extinguisher<\/b>. Shoot the extinguisher when he is beside it.<\/li>\n
                                                                                          • Tags: Miguel Luis Cunha<\/i> (moves after the Olga fight) and Eiji Senke<\/i>, who only turns up while you are\n inside the storeroom.<\/li>\n <\/ul>","gets":{"ach":["ach_002_019"],"item":["Box 1 (Moving Day)"]},"areas":["Deck-D, crew's quarters"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136469704/2AF929A85B11F984104CDBFDF20F2337525BF2E4/","s":"steam","cap":"Down in Smoke"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_193.png","s":"dayngl","cap":"Down in Smoke"},{"u":"https://images.steamusercontent.com/ugc/2140958177136046914/5B7C3B4E8BF3379814E8C185D356BED511BFE81D/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-orange-box.png","s":"dayngl","cap":"Moving Day"}]},{"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<\/b> — this is the most commonly botched spot in the game.<\/p>\n

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

                                                                                              There is also a wall camera nearby — leave it alone if you care about Big Boss mech damage later, otherwise\n shoot it for Bye Bye Big Brother.<\/p>","gets":{"ach":["ach_002_015","ach_002_022","ach_002_023"],"item":[]},"areas":["Deck-A, crew's quarters"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136317575/731B3D9EC271731F38832D933D2C219CC0059073/","s":"steam","cap":"Hurt Locker"},{"u":"https://images.steamusercontent.com/ugc/2140958177136318173/884F0C35125943218F3D5BB4553360F037C65C33/","s":"steam","cap":"Hurt Locker"},{"u":"https://images.steamusercontent.com/ugc/2140958177136517688/03B517E0FDA1DD9AEEEA02746BDEEBAE2101B0B7/","s":"steam","cap":"Kissing Booth"},{"u":"https://images.steamusercontent.com/ugc/2140958177136591521/D6C0DD6A85100F4B701CC90790A90547FFE8A5C5/","s":"steam","cap":"Kissing Booth"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-snake-beater-3.png","s":"dayngl","cap":"Kissing Booth"}]},{"id":"r1-4","title":"Deck-A, crew's lounge — Stun Grenades","area":"Tanker · Deck-A lounge","body":"

                                                                                              Stun Grenades<\/b> sit at the bottom of the stairs that lead down to the Engine Room, starboard side — you\n walk right past them during the story. Three tags here too.<\/p>","gets":{"ach":[],"item":["Stun Grenades"]},"areas":["Deck-A, crew's lounge"],"photos":[]},{"id":"r1-5","title":"Deck-B, crew's quarters","area":"Tanker · Deck-B","body":"

                                                                                              Two tags (Yuki Hongoh<\/i> and one other on Very Easy). Nothing missable.<\/p>","gets":{"ach":[],"item":[]},"areas":["Deck-B, crew's quarters"],"photos":[]},{"id":"r1-6","title":"Deck-C, crew's quarters — Chaff Grenades + first camera","area":"Tanker · Deck-C","body":"

                                                                                              Chaff Grenades<\/b> are in the locker left of the stairs after the first camera<\/b>. This is also your first\n easy Bye Bye Big Brother<\/b> camera — remember cameras need a lethal<\/b> shot.<\/p>","gets":{"ach":["ach_002_018"],"item":["Chaff Grenades"]},"areas":["Deck-C, crew's quarters"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136376202/6D3E8B726071028CA7BE0046277E41411C57BB99/","s":"steam","cap":"Bye Bye Big Brother"}]},{"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<\/b>.<\/p>\n

                                                                                              This ambush is a forced alert<\/b> and does not<\/b> void Complete Stealth.<\/div>\n

                                                                                              Caution: Hot<\/b> is easiest right here: the ambush corridor is lined with pipes — shoot the pipes next to a soldier\n until he goes down.<\/p>","gets":{"ach":["ach_002_021"],"item":[]},"areas":["Deck-2, port"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136495694/9F18A7132965C9D3D4794711C7CA1F1C67663692/","s":"steam","cap":"Caution: Hot"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-mgs2-steam-shootout-9.png","s":"dayngl","cap":"Caution: Hot"}]},{"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<\/b> in the bottom-left corner of the bottom level, near the exit at the foot of the stairs.<\/p>\n

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

                                                                                              ⚙️ Do Steel Grip<\/b> here — this is the guide-recommended spot<\/h4>\n

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

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

                                                                                                Plain pull-ups work too (hold both triggers, 200 of them) — slower, but zero risk of falling.\n Never grind this on a Big Boss<\/b> run: a single missed catch is a death, and that voids the codename.<\/p>","gets":{"ach":["ach_002_034","ach_002_050"],"item":["Hand Grenades"]},"areas":["Engine room"],"photos":[{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_199.png","s":"dayngl","cap":"Steel Grip"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_198.png","s":"dayngl","cap":"Steel Grip"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_200.png","s":"dayngl","cap":"Steel Grip"}]},{"id":"r1-9","title":"Navigational Deck, Wing — Olga + the Wet Box","area":"Tanker · Deck-E bridge / Nav Deck","body":"

                                                                                                Boss: Olga Gurlukovich<\/b> → Lights Out<\/b>. Shoot the spotlight and the tarp corners, and roll away from her\n shots.<\/p>\n

                                                                                                Immediately after the fight:<\/p>\n

                                                                                                  \n
                                                                                                • Pick up and drop Olga's body<\/b> for her dog tag.<\/li>\n
                                                                                                • Grab the Wet Box<\/b> (Moving Day) on the Navigational Deck, Wing — it is up by the spotlight<\/b> near where the\n guard emerges.<\/li>\n
                                                                                                • Brendan McLeod<\/i> spawns when you approach the starboard side.<\/li>\n <\/ul>","gets":{"ach":["ach_002_001"],"item":["Wet Box"]},"areas":["Navigational deck, wing"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136069618/1A140671AAFEBEF9A706AACA000D1756E09B5225/","s":"steam","cap":"Moving Day"},{"u":"https://images.steamusercontent.com/ugc/2140958177136070097/0155C94B62BD63D9892146E0255F7F685202E9E5/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-orange-box-3.png","s":"dayngl","cap":"Moving Day"}]},{"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<\/b>. Save before you enter Hold No. 1.<\/p>\n

                                                                                                    \n
                                                                                                  • Who Ya Gonna Call?<\/b> — in Hold No. 2<\/b>, photograph the right-hand projector screen<\/b> with Otacon's camera.\n If the ghost is not up, interact with the projector to switch screens.<\/li>\n
                                                                                                  • Sexting<\/b> — photograph the marine with no pants<\/b>, then send it from the computer in the bottom-right of\n Hold No. 3<\/b>. Do this before<\/b> you photograph RAY.<\/li>\n
                                                                                                  • Hidden marine tags:<\/b> after going down the first ladder, shimmy<\/b> along the ledges — there are guards tucked away\n in Hold No. 1 and Hold No. 3. For the boxers marine in the middle of the crowd, tranquillise and drag the marines beside him.<\/li>\n
                                                                                                  • Max out rations first — shimmying drains health.<\/li>\n <\/ul>\n

                                                                                                    Then photograph RAY and escape. Lady Fortune<\/b> pops during the Fortune sequence on the way out.<\/p>","gets":{"ach":["ach_002_024","ach_002_025","ach_002_004"],"item":[]},"areas":["Hold No.1","Hold No.2","Hold No.3"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138675405/CA3D98BBD57FEAAA9E343E3449AF8E0EAA237602/","s":"steam","cap":"Who Ya Gonna Call?"},{"u":"https://images.steamusercontent.com/ugc/2140958177138675738/247C45C6B1D55E086BCEA51AB712A20197511926/","s":"steam","cap":"Who Ya Gonna Call?"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_202.png","s":"dayngl","cap":"Who Ya Gonna Call?"},{"u":"https://images.steamusercontent.com/ugc/2140958177138700455/5284F920FDA6CA85D8099980CFDDE2DD3B0F0A43/","s":"steam","cap":"Sexting"},{"u":"https://images.steamusercontent.com/ugc/2140958177138706115/7EECB9B33A9782D91924A7439974031104E6D2EF/","s":"steam","cap":"Sexting"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-sexting-2.png","s":"dayngl","cap":"Sexting"}]},{"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<\/b> to confirm you have all 24<\/b> Very Easy tags\n before moving on.<\/p>\n

                                                                                                    Yorkie (50 tags) and Poodle (76 tags) will not pop until you finish a completed Tanker-Plant file that\n contains those totals — keep going into the Plant.<\/div>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Run 1 · Plant (Very Easy)","intro":"\n

                                                                                                    Same structure: work through the struts in order. The Plant is longer but its tags are more straightforward — the\n interesting ones are the conditional spawns<\/b> (guards that only appear after Fatman, or after the Emma escort).<\/p>","steps":[{"id":"r2-1","title":"Strut A, Deep Sea Dock — sea lice + a boss","area":"Plant · Strut A","shots":["My Rations..."],"body":"

                                                                                                    Do My Rations…<\/b> right away: grab a ration, then lie down near the bugs<\/b> and wait for a louse to crawl onto it.<\/p>\n

                                                                                                    Two tags here (Brad I Lanning<\/i>, Charles P Pinkerton<\/i>), and later the Fortune<\/b> fight happens in this same\n area → Lady Fortune<\/b>.<\/p>","gets":{"ach":["ach_002_026","ach_002_004"],"item":[]},"areas":["Strut A Deep Sea Dock"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138720963/30C6653838DC5FBD89363D226FB6B43FCD1CD789/","s":"steam","cap":"My Rations..."},{"u":"https://images.steamusercontent.com/ugc/2140958177138721348/D981984D99AE45EA46C75361043AD3E53C7139AE/","s":"steam","cap":"My Rations..."}]},{"id":"r2-2","title":"Strut A Roof + Pump Room","area":"Plant · Strut A","body":"

                                                                                                    Tags on the roof (Jason M Gillispie<\/i>) and two in the Pump Room. The Box 1<\/b> cardboard box is in the Strut A\n 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.<\/p>","gets":{"ach":[],"item":["Box 1"]},"areas":["Strut A roof","Strut A Pump Room"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136101138/420301D5428D7150DAD254BB90EFF9637DBDAA07/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-strut-a-box-2.png","s":"dayngl","cap":"Moving Day"}]},{"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<\/b> along the way — it gates Box 1 and Box 2.<\/p>","gets":{"ach":[],"item":["Lv. 1 Card"]},"areas":["AB connecting bridge","Strut B Transformer Room"],"photos":[]},{"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.<\/p>","gets":{"ach":[],"item":[]},"areas":["BC connecting bridge","Strut C Dining Hall"],"photos":[]},{"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.<\/p>\n

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

                                                                                                    A soldier patrols Strut D and regularly radios in<\/b>. If he goes down, a search party comes\n looking — so clear him quietly and tranquillise him again if he wakes up while you are grinding.<\/div>","gets":{"ach":[],"item":[]},"areas":["CD connecting bridge","Strut D Sediment Pool"],"photos":[]},{"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<\/b>.<\/p>","gets":{"ach":[],"item":[]},"areas":["DE connecting bridge","Strut E Parcel Room"],"photos":[]},{"id":"r2-7","title":"Strut E Heliport — Stillman, then Fatman","area":"Plant · Strut E Heliport","body":"

                                                                                                    Bomb Squad<\/b> pops during Stillman's C4 tutorial.<\/p>\n

                                                                                                    Then the bomb-defusal section around the Big Shell, then boss: Fatman<\/b> → Party's Over<\/b>.<\/p>\n

                                                                                                    After the Fatman fight, lift and drop Fatman's body<\/b> for the Peter Stillman<\/i> dog tag — this is the\n last tag on every Plant difficulty list<\/b> and it is the one people miss.<\/div>\n
                                                                                                    Beating Fatman reopens weapon rooms in Strut F<\/b> (AKS-74u on the bottom floor, M4 in the top-floor\n middle-left room). Go back for them.<\/div>","gets":{"ach":["ach_002_003","ach_002_005"],"item":[]},"areas":["Strut E heliport"],"photos":[]},{"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<\/b> and again after you meet Ames.<\/p>\n

                                                                                                      \n
                                                                                                    • To Catch a Predator<\/b> — the Book<\/b> is on the bottom floor on top of some crates. From the top floor, flip over\n the railing, shimmy right until you are above the crates, drop and pick it up. Then drop it in a guard's path.<\/li>\n
                                                                                                    • Box 2<\/b> — bottom floor, bottom-left room with the Radar Node (needs Lv. 1 Card).<\/li>\n
                                                                                                    • M9<\/b> — top floor, room on the right after entering from the FA top-floor bridge.<\/li>\n
                                                                                                    • Bottom floor after Fatman: AKS-74u<\/b>. Top-floor middle-left: M4<\/b>. Top-floor top-right locker: C-4<\/b>.\n Bottom floor: Stun Grenades<\/b>.<\/li>\n <\/ul>","gets":{"ach":["ach_002_016"],"item":["Book","Box 2","M9","AKS-74u","M4","C-4","Stun Grenades"]},"areas":["Strut F warehouse","FA connecting bridge"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136357008/CD39D24C0551AFE497908F3663503831165EED68/","s":"steam","cap":"To Catch a Predator"},{"u":"https://images.steamusercontent.com/ugc/2140958177136357970/CFA864B252691461EFBE45AB970DCE13E7190AEE/","s":"steam","cap":"To Catch a Predator"},{"u":"https://images.steamusercontent.com/ugc/2140958177136359533/70AC04F772E0D0855F9D8B040F28FE619F508967/","s":"steam","cap":"To Catch a Predator"},{"u":"https://images.steamusercontent.com/ugc/2140958177136102181/7D577E665B40A901FCCA3326640653EB5C4C6E65/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-strut-a-box-3.png","s":"dayngl","cap":"Moving Day"}]},{"id":"r2-9","title":"Strut E Heliport roof + Shell 1 Core 1F","area":"Plant · Strut E / Shell 1","body":"

                                                                                                      Box 3<\/b> is in the bottom-left corner of the Strut E rooftop helipad. Box 5<\/b> is on the conveyor belt in Strut E itself.<\/p>\n

                                                                                                      In Shell 1 Core 1F<\/b>: several tags, the south lockers<\/b> (Book / C-4 / Claymores / Stun Grenades), and cameras to shoot.<\/p>","gets":{"ach":[],"item":["Box 3","Box 5"]},"areas":["Shell 1 Core, 1F"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138938509/A0B74949CFCC8D0058DD0FF5ED6E362DBC65D94B/","s":"steam","cap":"Photo Finish"},{"u":"https://images.steamusercontent.com/ugc/2140958177138939198/F446514EA80167FC12D5816BA2D7854D6628E4F5/","s":"steam","cap":"Photo Finish"},{"u":"https://images.steamusercontent.com/ugc/2140958177138939645/ACC84EFADCDAE266D93B6B6FD5CEF82A8B66E22E/","s":"steam","cap":"Photo Finish"},{"u":"https://images.steamusercontent.com/ugc/2140958177136111275/2E0EB1DD4C769654138A04B9DE6DC58804D1B735/","s":"steam","cap":"Moving Day"},{"u":"https://images.steamusercontent.com/ugc/2140958177136114037/D5931E8F90958DE3CA75693F016767AAC02C9E34/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-box-4.png","s":"dayngl","cap":"Moving Day"}]},{"id":"r2-10","title":"Shell 1 Core B2 — Box 4 + the Directional Mic","area":"Plant · Shell 1 B2 Computer Room","body":"

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

                                                                                                      Four tags in the computer room.<\/p>","gets":{"ach":["ach_002_027"],"item":["Box 4","Directional Mic"]},"areas":["Shell 1 Core, B2 Computer Room"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136115730/ACA684EB5386F44862EF3A34DA0056C7D8ED509B/","s":"steam","cap":"Moving Day"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Screenshot-metal-gear-solid-2-box-4-2.png","s":"dayngl","cap":"Moving Day"}]},{"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.<\/b> During the Ames scene you are told to mic Ocelot and Solidus. Aim the Directional Mic\n slightly left<\/b> of that conversation until you hear Johnny<\/b> in the bathroom, and keep it on him until he finishes.<\/p>\n

                                                                                                      Do not<\/b> quit to the menu after this — do the second listen in the same session<\/b>, or the achievement\n may not register.<\/div>\n

                                                                                                      After the Ames scene, alert mode is forced — it will not void Complete Stealth.<\/p>","gets":{"ach":["ach_002_027"],"item":[]},"areas":["Shell 1 Core, B1"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138823423/F99FE3B53E49D8AD5837E7842ACE632A2F0051D0/","s":"steam","cap":"Johnny on the Spot"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_205.png","s":"dayngl","cap":"Johnny on the Spot"}]},{"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<\/b> here. Even with Stealth Camo equipped, the camera will\n spot you if you try the elevator any other way.<\/p>\n

                                                                                                      This is the single exception to \"stealth makes Complete Stealth free\".<\/p>","gets":{"ach":[],"item":["disguise + AK-47"]},"areas":["Strut L Sewage Treatment Facility"],"photos":[]},{"id":"r2-13","title":"President Johnson → Vamp","area":"Plant · Shell 1 Core","body":"

                                                                                                      Bohemian Candidate<\/b> pops when you meet the President. Then boss: Vamp<\/b> → Vampire Slayer<\/b>.<\/p>\n

                                                                                                      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\n the platform edge to bait his attack and punch him twice when he comes close.<\/p>","gets":{"ach":["ach_002_008","ach_002_009"],"item":[]},"photos":[]},{"id":"r2-14","title":"Shell 2 Core — Emma + the Nikita","area":"Plant · Shell 2 Core B1","body":"

                                                                                                      I Think You Need a Hug, E<\/b> pops when you find Emma. Swim underwater for the story-required Nikita<\/b>.<\/p>\n

                                                                                                      Emma's locker in the B1 Filtration Chamber 2 holds a Book<\/b> and C-4<\/b> — both count toward the weapon/box sweeps.<\/p>","gets":{"ach":["ach_002_010"],"item":["Nikita","Book","C-4"]},"areas":["Shell 2 Core, 1F Air Purification Room"],"photos":[]},{"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.<\/b> While covering Emma, when she ducks behind the second platform<\/b>, aim the Directional\n 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\n also did location 1.<\/p>\n

                                                                                                      Photo Finish<\/b> — after the escort, when you climb the ladder into Strut E, look for the Level 5 door<\/b> at the top of the\n small area (before the conveyor section) for the Digital Camera.<\/p>","gets":{"ach":["ach_002_027","ach_002_035"],"item":["Level 5 door"]},"areas":["KL connecting bridge"],"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177136556762/225FFD74A14296925890B40193A5578B1299DFB6/","s":"steam","cap":"Photo Finish"},{"u":"https://images.steamusercontent.com/ugc/2140958177138823748/06754D9C8F7CF65B9D0C74F17FBC54E6FA8071CE/","s":"steam","cap":"Johnny on the Spot"},{"u":"https://i0.wp.com/daynglsgameguides.com/wp-content/uploads/2023/10/Snapshot_206.png","s":"dayngl","cap":"Johnny on the Spot"}]},{"id":"r2-16","title":"Arsenal Gear — Snake's tag, Tengu, RAY","area":"Arsenal Gear","body":"

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

                                                                                                      Then the Tengu<\/b> fight (forced alert, safe) and boss: Metal Gear RAY<\/b> → No Ray, José<\/b>. About 20 RAYs — keep moving\n and cartwheel through the missile barrages.<\/p>\n

                                                                                                      Then the torture<\/b> room. Beating it gives you the HF Blade<\/b> from Snake.<\/p>","gets":{"ach":["ach_002_012"],"item":["HF Blade"]},"areas":["Arsenal Gear-Ascending Colon"],"photos":[]},{"id":"r2-17","title":"Solidus — and DO NOT SKIP THE CUTSCENE","area":"Plant · rooftop","shots":["Vamp Eyer"],"body":"

                                                                                                      Boss: Solidus Snake<\/b> → Another Snake Bites the Dust<\/b>.<\/p>\n

                                                                                                      Vamp Eyer:<\/b> let the ending cinematic play. When Snake asks \"By the way, what is that?\"<\/i> and Raiden\n answers \"No, never heard the name before\"<\/i>, hold the zoom button and look around — Vamp is standing in the street. Zoom in on him.<\/div>","gets":{"ach":["ach_002_013","ach_002_028"],"item":[]},"photos":[{"u":"https://images.steamusercontent.com/ugc/2140958177138843407/93DB80DBDAFEF28683EC5E536DDD8DB20CBFD5AE/","s":"steam","cap":"Vamp Eyer"}]},{"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.<\/p>\n

                                                                                                      Check the totals: Tanker 24, Plant 43. Then open the Dog Tags<\/b> tab and confirm the thresholds panel —\n Bandana 50<\/b> and Brown Wig 80<\/b> are already satisfied once you add the Easy-run tags; Yorkie<\/b> will pop after\n Run 2 and Beagle<\/b> during Run 2 as well.<\/p>","gets":{"ach":["ach_002_044","ach_002_046"],"item":[]},"photos":[]}]},{"phase":"Runs 2 & 3 — the dog-tag sweeps","intro":"\n

                                                                                                      The same route as Run 1, on Easy<\/b> then Normal<\/b>, picking up the tags you do not have. Nothing new is missable —\n you are only here for numbers.<\/p>","steps":[{"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<\/b> (→ Yorkie<\/b> / Bandana) and\n 80 Plant<\/b> (→ Beagle<\/b> / Brown Wig).<\/p>\n

                                                                                                      The achievements pop when the chapter is completed with the totals present, not when the last tag is collected.<\/p>","gets":{"ach":["ach_002_044","ach_002_046"],"item":[]},"photos":[]},{"id":"r3-2","title":"Run 3 (Normal): sweep Tanker 33 + Plant 49","area":"Normal difficulty","body":"

                                                                                                      This run crosses 76 Tanker<\/b> (→ Poodle<\/b> / Tanker stealth) and 120 Plant<\/b> (→ Shiba Inu<\/b> / Plant stealth).<\/p>\n

                                                                                                      After this run you have everything you need for the two challenge runs: Stealth Camo<\/b> and the\n Bandana / Brown Wig<\/b> (infinite ammo). Start Run 4 from a file that loads this cleared data.<\/div>","gets":{"ach":["ach_002_045","ach_002_047"],"item":["Stealth Camo","Bandana / Brown Wig"]},"photos":[]},{"id":"r3-3","title":"Optional: grab the last two wigs","area":"Plant, all difficulties","body":"

                                                                                                      The Orange Wig<\/b> (160 Plant tags) and Blue Wig<\/b> (200 Plant tags) are not<\/b> required for any achievement.\n Only chase them if you want the Perfect/100% feel — Hard (52) + Extreme (54) = 106 more tags.<\/p>","gets":{"ach":[],"item":["Orange Wig","Blue Wig"]},"photos":[]}]},{"phase":"Run 4 — Pacifist Run + Complete Stealth together","intro":"\n

                                                                                                      Both of these are \"whole playthrough\" challenges, so do them at the same time. With the items from Run 3 this is the\n easiest full playthrough you will ever do.<\/p>","steps":[{"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<\/b> permanently.<\/p>\n

                                                                                                      Equip the Bandana<\/b> (or Brown Wig) for infinite non-lethal ammo.<\/p>","gets":{"ach":[],"item":["Stealth Camo","Bandana"]},"photos":[]},{"id":"r4-2","title":"Kill nothing, anywhere","area":"Whole run","body":"

                                                                                                      Pacifist Run<\/b> requires zero kills — this includes:<\/p>\n

                                                                                                        \n
                                                                                                      • No neck breaks, no lethal weapons, no explosive barrels killing anyone.<\/li>\n
                                                                                                      • No steam-pipe kills, no falling deaths you caused.<\/li>\n
                                                                                                      • Bosses with a stamina bar<\/b> (Olga, Fatman, Harrier, Vamp, Solidus) must be drained on stamina, not health.<\/li>\n
                                                                                                      • For Solidus<\/b>, flip the HF Blade to the blue non-lethal side<\/b>.<\/li>\n <\/ul>","gets":{"ach":["ach_002_048"],"item":[]},"photos":[]},{"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<\/b> as the story demands.\n Trying it in stealth gets you spotted and can void Complete Stealth<\/b>.<\/p>","gets":{"ach":["ach_002_049"],"item":["disguise + AK-47"]},"photos":[]},{"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<\/b>, reload immediately — the game only\n checks the flag on the final results screen.<\/p>\n

                                                                                                        Forced alerts that are safe: boss fights, the Tanker hallway ambush, the post-Ames alert, the Tengu fight.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Run 5 — Big Boss","intro":"\n

                                                                                                        The final boss of the achievement list. Everything you have learned so far gets used at once.\n Full criteria, strategies and time checkpoints are in the Big Boss Run<\/b> tab.<\/p>","steps":[{"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\n you cannot afford to learn a fight mid-run.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"id":"r5-2","title":"Start Extreme, Tanker→Plant, NO special items, NO radar","area":"New game","body":"

                                                                                                        Do not<\/b> load the cleared save — special items and the radar are banned and will void the codename.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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.<\/p>","gets":{"ach":[],"item":[]},"photos":[]},{"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.<\/p>\n

                                                                                                        If you are more than a couple of minutes behind at any of these, restart — it is cheaper than finishing at 3:05.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]},{"phase":"Off-story cleanup","intro":"\n

                                                                                                        Everything else is on the main menu and takes under an hour total.<\/p>","steps":[{"id":"r6-1","title":"Snake Tales — complete any one","area":"Main Menu","body":"

                                                                                                        Tell Me a Tale.<\/b> A Wrongdoing is the shortest of the five.<\/p>","gets":{"ach":["ach_002_041"],"item":[]},"photos":[]},{"id":"r6-2","title":"Boss Survival — Raiden on Easy","area":"Main Menu","body":"

                                                                                                        No Boss of Mine.<\/b> Raiden gets the HF Blade for Solidus; Snake does not.<\/p>","gets":{"ach":["ach_002_040"],"item":[]},"photos":[]},{"id":"r6-3","title":"VR missions — one clear, then 50 first places","area":"Main Menu","body":"

                                                                                                        Piece of Cake<\/b> (any single mission) then In It to Win It<\/b> (place 1st in 50). Pick the shortest\n Sneaking missions and learn the target time.<\/p>","gets":{"ach":["ach_002_042","ach_002_043"],"item":[]},"photos":[]},{"id":"r6-4","title":"Casting Theater — Demo 8 body swap","area":"Main Menu → Special","body":"

                                                                                                        Casting Theater<\/b> + Love Hurts<\/b>: Demo 8, Raiden→Rose, Solidus→Raiden, watch it play out.<\/p>","gets":{"ach":["ach_002_039","ach_002_029"],"item":[]},"photos":[]},{"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\n Bye Bye Big Brother (5 cameras) all carry across playthroughs — check the Achievements tab to see what is still outstanding and\n farm it on a spare save.<\/p>\n

                                                                                                        Steel Grip is not<\/b> on this list — do that one on-site in the Tanker Engine Room<\/b> (or Strut D)\n where the stacked railings are, as covered in the Tanker walkthrough above.<\/p>","gets":{"ach":[],"item":[]},"photos":[]}]}]; const DOGTAGS = [{"id":"t0","chapter":"Tanker","difficulty":"Very Easy","blurb":"Your first pass. Guards are relaxed and there are only 24 tags — a gentle introduction to hold-ups.","tags":[{"name":"Olga Gurlukovich","area":"Navigational deck, wing"},{"name":"Josh Spires","area":"Aft deck"},{"name":"Tomomi Nasu","area":"Aft deck"},{"name":"Stephen M Driver","area":"Aft deck"},{"name":"Brendan McLeod","area":"Navigational deck, wing","note":"Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder"},{"name":"Hajme Tusima","area":"Deck-A, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Yuki Hongoh","area":"Deck-B, crew's quarters"},{"name":"Takahiro Yura","area":"Deck-A, crew's lounge","note":"Either Takahiro or Eric spawns, never both at once. Entrance to room seem to dictate which ones appears"},{"name":"David P LaFrenier","area":"Deck-A, crew's lounge","note":"moves to b when entering from Engine Room locked door"},{"name":"Eric Bravo","area":"Deck-A, crew's lounge","note":"Either Takahiro or Eric spawns, never both at once. Entrance to room seem to dictate which ones appears"},{"name":"Miguel Luis Cunha","area":"Deck-D, crew's quarters","note":"moves to 10b after Olga Boss"},{"name":"Eiji Senke","area":"Deck-D, crew's quarters","note":"Arrives when you are in the storeroom and will try to exit area if you leave the storeroom"},{"name":"Yohsuke Sakaguchi","area":"Deck-2, port"},{"name":"Jan Friese","area":"Deck-2, port"},{"name":"Marius Torsud","area":"Deck-2, port"},{"name":"Andrej Pedercina Mimica","area":"Engine room"},{"name":"Mike J Corbitt","area":"Engine room"},{"name":"Aaron T Powell","area":"Engine room"},{"name":"Jeff A Saylor Jr","area":"Engine room","note":"Missable - will only appear on initial entry to area, and disappear if Snake leaves the Engine Room"},{"name":"Kazuki Tokunaga","area":"Engine room","note":"Missable - will only appear in a cutscene when approaching IR Sensors. Will Disappear if Snake leaves the Engine Room"},{"name":"Kamil Mania","area":"Hold No.1"},{"name":"Ismael Miranda de Andrade","area":"Hold No.1"},{"name":"Darryl F Kemp","area":"Hold No.3"},{"name":"Yoshitoshi Toyoda","area":"Hold No.3"}]},{"id":"t1","chapter":"Tanker","difficulty":"Easy","blurb":"Same route, two more tags. The last two Tanker lists are what push you past the 50 and 76 thresholds.","tags":[{"name":"Olga Gurlukovich","area":"Navigational deck, wing"},{"name":"Justin P Verrier","area":"Aft deck"},{"name":"Ryouichi Matsumoto","area":"Aft deck"},{"name":"Michael S Futter","area":"Aft deck"},{"name":"Michael Vogt","area":"Navigational deck, wing","note":"Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder"},{"name":"Kei Kudou Mon","area":"Deck-A, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Eetu Holmqvist","area":"Deck-B, crew's quarters"},{"name":"Matthew W Hunt","area":"Deck-A, crew's lounge","note":"Enter from Deck A"},{"name":"David W Pelster","area":"Deck-A, crew's lounge"},{"name":"Takumi Shimada","area":"Deck-A, crew's lounge"},{"name":"Cary J Schwartzman","area":"Deck-D, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Danilo NE Carbone","area":"Deck-D, crew's quarters","note":"appears when in Storeroom and tries to leave when exiting storeroom"},{"name":"Adam Lloyd","area":"Deck-2, port"},{"name":"David E Palm","area":"Deck-2, port"},{"name":"Yuki Aoki","area":"Deck-2, port"},{"name":"William N Bruce","area":"Engine room"},{"name":"Chien Jen Liang","area":"Engine room"},{"name":"Luke Boulerice","area":"Engine room"},{"name":"Yusuke Sasaki","area":"Engine room"},{"name":"Travis J Long","area":"Engine room"},{"name":"Steven A Weekes","area":"Engine room"},{"name":"Marco Silvano","area":"Hold No.1"},{"name":"Xesk Malone","area":"Hold No.1","note":"Underpants Guy"},{"name":"Michalis Taubert","area":"Hold No.3"},{"name":"Lee A Myers","area":"Hold No.3"},{"name":"Rock Young","area":"Hold No.3","note":"Man in the centre of the front row"}]},{"id":"t2","chapter":"Tanker","difficulty":"Normal","blurb":"33 tags. Reaching 76 total Tanker tags happens partway through this list — that is the Tanker Stealth unlock.","tags":[{"name":"Olga Gurlukovich","area":"Navigational deck, wing"},{"name":"Garret L Peters","area":"Aft deck"},{"name":"Sunny Hsu","area":"Aft deck"},{"name":"Pablo Maisuls","area":"Aft deck"},{"name":"Samuel B Sandoval","area":"Navigational deck, wing"},{"name":"James I Bartelle","area":"Deck-C, crew's quarters","note":"Patrols after Olga Fight"},{"name":"Daniel Kucan","area":"Deck-A, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Ronan Khim","area":"Deck-B, crew's quarters"},{"name":"Masanori Inui","area":"Deck-B, crew's quarters"},{"name":"Jeng L Valencia","area":"Deck-A, crew's lounge","note":"Enter from Deck A, Crews Quarters after initial visit"},{"name":"Seth T Hay","area":"Deck-A, crew's lounge"},{"name":"Daniel W Dennison","area":"Deck-A, crew's lounge"},{"name":"Flavio Camargos","area":"Deck-D, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Brad R Whitefield","area":"Deck-D, crew's quarters"},{"name":"James Broome","area":"Deck-D, crew's quarters","note":"appears when in Storeroom and tries to leave when exiting storeroom"},{"name":"Hiromasa Watanabe","area":"Deck-2, port"},{"name":"Kieran Keegan","area":"Deck-2, port"},{"name":"Hirokazu Takahashi","area":"Deck-2, port"},{"name":"Marwan Abdullah AlHarbi","area":"Engine room"},{"name":"Henning Rhoden","area":"Engine room"},{"name":"Marcelo Zamorano","area":"Engine room"},{"name":"Simon F Picard","area":"Engine room"},{"name":"Haden K Oneil","area":"Engine room"},{"name":"Yuji Higuchi","area":"Engine room"},{"name":"Husain Abdulrazaq AlHasan","area":"Engine room"},{"name":"Robert R Bruce","area":"Hold No.1"},{"name":"Kenzi Tanda","area":"Hold No.1"},{"name":"Ivan E Saldarriaga","area":"Hold No.1"},{"name":"Christopher G Hercus","area":"Hold No.2"},{"name":"Tomohiro Katoh","area":"Hold No.2"},{"name":"David D Crumpler","area":"Hold No.3"},{"name":"Joao E Martins","area":"Hold No.3"},{"name":"Mika A Taavela","area":"Hold No.3"}]},{"id":"t3","chapter":"Tanker","difficulty":"Hard","blurb":"35 tags. Not needed for any achievement — only chase these for the Orange/Blue wigs on the Plant side or for completion's sake.","tags":[{"name":"Olga Gurlukovich","area":"Navigational deck, wing"},{"name":"Pawel Adamczyk","area":"Aft deck"},{"name":"Jonathan S Wilson","area":"Aft deck"},{"name":"Peter A Sattaur","area":"Aft deck"},{"name":"Ako Kudou","area":"Navigational deck, wing","note":"Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder"},{"name":"Johan Hana","area":"Deck-C, crew's quarters","note":"Patrols after Olga Fight"},{"name":"Dex J Delfrate","area":"Deck-A, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Joseph R Larger","area":"Deck-B, crew's quarters"},{"name":"Kouji Takemoto","area":"Deck-B, crew's quarters"},{"name":"Mahde M Mansur","area":"Deck-A, crew's lounge"},{"name":"Sauzando Aran","area":"Deck-A, crew's lounge","note":"moves to b when entering from Engine Room locked door"},{"name":"Kouhei Yoshizumi","area":"Deck-A, crew's lounge"},{"name":"Hidetosi Suzuki","area":"Deck-D, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Joelmir Mazon","area":"Deck-D, crew's quarters"},{"name":"Michiel A Hendriksen","area":"Deck-D, crew's quarters"},{"name":"Masahiro Takahashi","area":"Deck-D, crew's quarters","note":"appears when in Storeroom and tries to leave when exiting storeroom"},{"name":"Christopher C Osterwald","area":"Deck-2, port"},{"name":"Lee Seung Min","area":"Deck-2, port"},{"name":"TSZ TING","area":"Deck-2, port"},{"name":"Manabu Nishiyama","area":"Engine room"},{"name":"David Heng Liu","area":"Engine room"},{"name":"Wei Zhang","area":"Engine room"},{"name":"Han Tao","area":"Engine room"},{"name":"Takashi Shiohama","area":"Engine room"},{"name":"James C Layton","area":"Engine room"},{"name":"Jesus Auron Noatsuna","area":"Engine room"},{"name":"Ha Su Jung","area":"Hold No.1"},{"name":"Minako Nakazawa","area":"Hold No.1"},{"name":"Kel M Booker","area":"Hold No.1"},{"name":"Asif A Ali","area":"Hold No.2"},{"name":"Tatsumi Mizuguchi","area":"Hold No.2"},{"name":"Ali Karar","area":"Hold No.3"},{"name":"Benjamin Phoon","area":"Hold No.3"},{"name":"Jason L Hines","area":"Hold No.3"},{"name":"Kurt W Bartholomew","area":"Hold No.3"}]},{"id":"t4","chapter":"Tanker","difficulty":"Extreme","blurb":"34 tags, and the guards hit far harder. Purely optional for achievement purposes.","tags":[{"name":"Olga Gurlukovich","area":"Navigational deck, wing"},{"name":"Isao Miyamoto","area":"Aft deck"},{"name":"Matt Holt","area":"Aft deck"},{"name":"Patrick James Torrence","area":"Aft deck"},{"name":"Malcolm W Bullmore","area":"Navigational deck, wing","note":"Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder"},{"name":"Adam Christopher Vazquez","area":"Deck-C, crew's quarters","note":"Patrols after Olga Fight"},{"name":"Alexandra Rattay","area":"Deck-A, crew's quarters"},{"name":"Enrike Vargas Suarez","area":"Deck-B, crew's quarters"},{"name":"Akihito Oshima","area":"Deck-B, crew's quarters"},{"name":"Bruce Murphy","area":"Deck-A, crew's lounge","note":"Enter from Deck A, Crews Quarters after initial visit"},{"name":"Patrick F Coley","area":"Deck-A, crew's lounge","note":"moves to b when entering from Engine Room locked door"},{"name":"Patrouillault Celine","area":"Deck-A, crew's lounge"},{"name":"Andre Perron","area":"Deck-D, crew's quarters","note":"Patrols a/b depending on entrance to room"},{"name":"Matthew M Wilcox","area":"Deck-D, crew's quarters"},{"name":"Miyaji Masayuki","area":"Deck-D, crew's quarters"},{"name":"Guyver M Scott","area":"Deck-D, crew's quarters"},{"name":"Devin P McCourt","area":"Deck-2, port"},{"name":"Takahiro Hanaoka","area":"Deck-2, port"},{"name":"JinagXi Konglong","area":"Deck-2, port"},{"name":"Yuji Gotoh","area":"Engine room"},{"name":"Tomi S Hakulinen","area":"Engine room"},{"name":"Suneel Buggal","area":"Engine room"},{"name":"Anibal Rodriguez","area":"Engine room"},{"name":"Fahim Mumin","area":"Engine room"},{"name":"Nicholas A Kowalcyk","area":"Engine room"},{"name":"Adam M Conrad","area":"Engine room"},{"name":"David Oh","area":"Hold No.1"},{"name":"Shinichi Furusho","area":"Hold No.1"},{"name":"Daisuke mercury Shimada","area":"Hold No.2"},{"name":"Phil A Marchant","area":"Hold No.2"},{"name":"Landon F Hilde","area":"Hold No.3"},{"name":"Jeremy J Drake","area":"Hold No.3"},{"name":"Fred A Thiele","area":"Hold No.3"},{"name":"Nagisa Kase","area":"Hold No.3"}]},{"id":"p5","chapter":"Plant","difficulty":"Very Easy","blurb":"43 tags. Watch for the conditional spawns — several guards only appear after the Fatman fight or after the Emma escort.","tags":[{"name":"Iroquois Pliskin","area":"Arsenal Gear-Ascending Colon"},{"name":"Brad I Lanning","area":"Strut A Deep Sea Dock","note":"Missable"},{"name":"Charles P Pinkerton","area":"Strut A Deep Sea Dock","note":"Missable"},{"name":"Jason M Gillispie","area":"Strut A roof"},{"name":"Samuel Andi Hendranata","area":"Strut A Pump Room"},{"name":"Yasuhiro Matsuzaki","area":"Strut A Pump Room"},{"name":"Artthapong Siriamonthep","area":"AB connecting bridge","note":"Potentially missable"},{"name":"Amadeus Knothe","area":"AB connecting bridge","note":"Potentially missable"},{"name":"Bob Fu","area":"Strut B Transformer Room"},{"name":"Yasuo Suzuki","area":"Strut B Transformer Room"},{"name":"Yiqiang Yao","area":"BC connecting bridge","note":"After Fatman"},{"name":"Vanessa E Mejia","area":"Strut C Dining Hall"},{"name":"Anthony J Willreign Supreme","area":"Strut C Dining Hall"},{"name":"Marques Dean","area":"CD connecting bridge"},{"name":"Kevin M Miller","area":"CD connecting bridge","note":"After Fatman"},{"name":"Mathias Ellemann Jensen","area":"Strut D Sediment Pool"},{"name":"Christian Ryan De Ramos","area":"Strut D Sediment Pool"},{"name":"Derek Broadbent","area":"DE connecting bridge","note":"moves to [b] after Fatman"},{"name":"Till Schlegel","area":"DE connecting bridge","note":"After Fatman"},{"name":"Nana Mizuki","area":"Strut E Parcel Room"},{"name":"Csaba Millei","area":"Strut E Parcel Room","note":"After Emma Escort"},{"name":"Jordan J Davis","area":"Strut E heliport"},{"name":"Luke Christian Roberts","area":"Strut E heliport"},{"name":"Sinya Tusunoda","area":"Strut F warehouse"},{"name":"Asia R Pickle","area":"Strut F warehouse"},{"name":"Daniel P Wells","area":"FA connecting bridge","note":"Patrols a/b depending on entry"},{"name":"David Anthony Wilson","area":"Shell 1 Core, 1F"},{"name":"Jasper A Hefko","area":"Shell 1 Core, 1F"},{"name":"Steven L Harper","area":"Shell 1 Core, 1F"},{"name":"Yasuhiko Nakamura","area":"Shell 1 Core, B1"},{"name":"Chris Escobar","area":"Shell 1 Core, B1"},{"name":"Elliott I Kugler","area":"Shell 1 Core, B1"},{"name":"Mai Ohta","area":"Shell 1 Core, B2 Computer Room"},{"name":"Roth W Lanphear","area":"Shell 1 Core, B2 Computer Room"},{"name":"Cheng exs Cheng","area":"Shell 1 Core, B2 Computer Room"},{"name":"Liam P Slater","area":"Shell 1 Core, B2 Computer Room"},{"name":"Neill W Perry","area":"KL connecting bridge","note":"Appears during Emma Escort"},{"name":"Robert W Goodenow III","area":"Strut L Sewage Treatment Facility"},{"name":"Mathias Buntrock","area":"Strut L Sewage Treatment Facility"},{"name":"Andrei V Galinski","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Naoki Inoue","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Hiu Fung Wong","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Peter Stillman","area":"Strut E heliport","note":"Fatman Boss"}]},{"id":"p6","chapter":"Plant","difficulty":"Easy","blurb":"44 tags. This list alone pushes the Plant total past 80 for the Brown Wig.","tags":[{"name":"Meryl Silverburgh","area":"Arsenal Gear-Ascending Colon"},{"name":"Emiko Yokoshima","area":"Strut A Deep Sea Dock","note":"Missable"},{"name":"Terry Cheung","area":"Strut A Deep Sea Dock","note":"Missable"},{"name":"Jacqueline D Benzon","area":"Strut A roof"},{"name":"Akihide Yonekura","area":"Strut A Pump Room"},{"name":"Goushi Kawamura","area":"Strut A Pump Room","note":"After Fortune"},{"name":"William R Kelly","area":"AB connecting bridge","note":"Potentially missable"},{"name":"Ryosuke Sugie","area":"AB connecting bridge","note":"Potentially missable"},{"name":"Masanori Masabu Ihara","area":"Strut B Transformer Room"},{"name":"Hiroyuki Doi","area":"Strut B Transformer Room"},{"name":"Marius Alain Nguyen","area":"BC connecting bridge","note":"After Fatman"},{"name":"Kevin Chen","area":"Strut C Dining Hall"},{"name":"Boudraa Reda","area":"Strut C Dining Hall","note":"Patrols a/b depending on entry"},{"name":"Yu Ya Nan","area":"CD connecting bridge"},{"name":"Takayuki Ueda","area":"CD connecting bridge","note":"After Fatman"},{"name":"Luis Silva Garcia","area":"Strut D Sediment Pool"},{"name":"Brian A Brown","area":"Strut D Sediment Pool"},{"name":"Nicholas S DeGrazia","area":"DE connecting bridge","note":"moves to b after Fatman"},{"name":"Yuuki Ito","area":"DE connecting bridge","note":"After Fatman"},{"name":"Anmar Saad Albinyan","area":"Strut E Parcel Room"},{"name":"Steve Masao Terada","area":"Strut E Parcel Room","note":"After Emma Escort"},{"name":"Yuuki Yagi","area":"Strut E heliport"},{"name":"Brigitte Dickenscheid","area":"Strut E heliport"},{"name":"Agmall Sarwari","area":"Strut F warehouse"},{"name":"Naoto Yamazaki","area":"Strut F warehouse"},{"name":"Terry Matalas","area":"Strut F warehouse"},{"name":"Sefie J Nolte","area":"FA connecting bridge"},{"name":"David Li-San Chen","area":"Shell 1 Core, 1F"},{"name":"Ginseng W Mileur","area":"Shell 1 Core, 1F"},{"name":"Remy Schuster","area":"Shell 1 Core, 1F"},{"name":"Matthew J Whitney","area":"Shell 1 Core, B1"},{"name":"Ricardo Enrique Salazar","area":"Shell 1 Core, B1"},{"name":"Randall J Koerte","area":"Shell 1 Core, B1"},{"name":"Syouhei Yoshino","area":"Shell 1 Core, B2 Computer Room"},{"name":"Mika M Claudepierre","area":"Shell 1 Core, B2 Computer Room"},{"name":"Joshua M Busby","area":"Shell 1 Core, B2 Computer Room"},{"name":"Oliver Swann","area":"Shell 1 Core, B2 Computer Room"},{"name":"Toshifumi Kotogi","area":"KL connecting bridge"},{"name":"Erich Werdermann","area":"Strut L Sewage Treatment Facility"},{"name":"Kouhei Tuzita","area":"Strut L Sewage Treatment Facility"},{"name":"Federico Biscetti","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Matt R Miller","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Jean Pierre Laforce","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Peter Stillman","area":"Strut E heliport","note":"Fatman Boss"}]},{"id":"p7","chapter":"Plant","difficulty":"Normal","blurb":"49 tags. Crossing 120 Plant tags happens partway through here — that is the Plant Stealth unlock and the end of the required tag grind.","tags":[{"name":"Solid Snake","area":"Arsenal Gear-Ascending Colon"},{"name":"Jordan A Bowman","area":"Strut A roof"},{"name":"Sean M Culhane","area":"Strut A Pump Room"},{"name":"Jamie DR Dickie","area":"Strut A Pump Room"},{"name":"Daichi Bada","area":"AB connecting bridge"},{"name":"David L Newell","area":"AB connecting bridge"},{"name":"Bren J Fraher","area":"Strut B Transformer Room"},{"name":"Gavin C Elliott","area":"Strut B Transformer Room"},{"name":"Johnny Chong","area":"BC connecting bridge","note":"After Fatman"},{"name":"Chuoc Shan Lam","area":"Strut C Dining Hall"},{"name":"Markus Huendgen","area":"Strut C Dining Hall","note":"a/b depends on entrance used"},{"name":"Michael Roger Aarons","area":"CD connecting bridge"},{"name":"Takuji Tada","area":"CD connecting bridge","note":"After Fatman"},{"name":"Joseph A McClaren","area":"Strut D Sediment Pool"},{"name":"Dustin Weger","area":"Strut D Sediment Pool"},{"name":"Wojtek Kujawa","area":"Strut D Sediment Pool"},{"name":"Kenji Yamaguchi","area":"DE connecting bridge","note":"moves to b after Fatman"},{"name":"John A McCormick","area":"DE connecting bridge","note":"After Fatman"},{"name":"Robert Viset","area":"Strut E Parcel Room"},{"name":"Tommi Eklof","area":"Strut E Parcel Room"},{"name":"Gary L Curtis","area":"Strut E Parcel Room","note":"After Emma Escort"},{"name":"Court Stauff","area":"Strut E heliport"},{"name":"Frode A Steine","area":"Strut E heliport"},{"name":"Katharine Irene Hargrove","area":"Strut E heliport"},{"name":"David R Papps","area":"Strut F warehouse"},{"name":"Matt D Huffman","area":"Strut F warehouse"},{"name":"Ali H Rafati","area":"Strut F warehouse"},{"name":"Mais M Baali","area":"FA connecting bridge"},{"name":"Satoru Oda","area":"Shell 1 Core, 1F"},{"name":"Kamal Aggarwal","area":"Shell 1 Core, 1F"},{"name":"Anthony Hampton","area":"Shell 1 Core, 1F"},{"name":"Ivan Lui","area":"Shell 1 Core, 1F"},{"name":"Hideaki Dei","area":"Shell 1 Core, B1"},{"name":"Cesar Pariona Oncebay","area":"Shell 1 Core, B1"},{"name":"Yuuko Hayashi","area":"Shell 1 Core, B1"},{"name":"Viktor Hamrefors","area":"Shell 1 Core, B2 Computer Room"},{"name":"Miroku Sato","area":"Shell 1 Core, B2 Computer Room"},{"name":"Kojiro Hayama","area":"Shell 1 Core, B2 Computer Room"},{"name":"Mark S Eaton Fry","area":"Shell 1 Core, B2 Computer Room"},{"name":"Han Yi Cheng","area":"KL connecting bridge"},{"name":"Yuta Tsubasa Teruya","area":"Strut L Sewage Treatment Facility"},{"name":"Mikiya Horiuchi","area":"Strut L Sewage Treatment Facility"},{"name":"Martin Johansson","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"TaRo ArAkAwA","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Gaku Yamada","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Zheng Xuan","area":"Shell 2 Core, 1F Air Purification Room","note":"When approaching area with Emma"},{"name":"Erasmo O Metos","area":"Shell 2 Core, 1F Air Purification Room","note":"When approaching area with Emma"},{"name":"Florian Busch","area":"Shell 2 Core, 1F Air Purification Room","note":"Enters when approaching south with Emma"},{"name":"Peter Stillman","area":"Strut E heliport","note":"Fatman Boss"}]},{"id":"p8","chapter":"Plant","difficulty":"Hard","blurb":"52 tags. Optional — needed only for the 160/200 wig thresholds.","tags":[{"name":"Liquid Snake","area":"Arsenal Gear-Ascending Colon"},{"name":"Ihor Novosilets","area":"Strut A roof"},{"name":"Julian Tan","area":"Strut A Pump Room"},{"name":"Max K Do","area":"Strut A Pump Room"},{"name":"Jenam Ryu","area":"AB connecting bridge"},{"name":"Kit M Paines","area":"AB connecting bridge"},{"name":"Stephen M Stretton","area":"Strut B Transformer Room"},{"name":"Adrian Styrsky Ellwood","area":"Strut B Transformer Room"},{"name":"Hanbum Son","area":"BC connecting bridge","note":"After Fatman"},{"name":"Juan Luis Rulz","area":"Strut C Dining Hall"},{"name":"Takayuki Kawakubo","area":"Strut C Dining Hall"},{"name":"Gregory M Roy","area":"CD connecting bridge"},{"name":"Randy Lee Way","area":"CD connecting bridge","note":"After Fatman"},{"name":"Taggart D Ryan","area":"Strut D Sediment Pool"},{"name":"Sunny Hsu","area":"Strut D Sediment Pool"},{"name":"Sascha Norbert Behr","area":"Strut D Sediment Pool"},{"name":"Derrick S Edick","area":"Strut D Sediment Pool"},{"name":"Michael Mantilla","area":"DE connecting bridge","note":"moves to b after Fatman"},{"name":"Eiichiro Kimura","area":"DE connecting bridge","note":"After Fatman"},{"name":"Omar Khettab","area":"Strut E Parcel Room"},{"name":"Ting Kae Lung","area":"Strut E Parcel Room"},{"name":"Eric J Melen","area":"Strut E Parcel Room"},{"name":"Chad P Bala","area":"Strut E Parcel Room"},{"name":"Gustavo L Lazo","area":"Strut E heliport"},{"name":"Alan Chon","area":"Strut E heliport"},{"name":"Christian Alexander Heinzer","area":"Strut E heliport"},{"name":"Daisuke Kato","area":"Strut F warehouse"},{"name":"Takeshi Umeoka","area":"Strut F warehouse"},{"name":"Masato Aoyama","area":"Strut F warehouse"},{"name":"Yo Narita","area":"Strut F warehouse"},{"name":"Michael S Chang","area":"FA connecting bridge"},{"name":"Lucky Zhu","area":"Shell 1 Core, 1F"},{"name":"Ryo Nitta","area":"Shell 1 Core, 1F"},{"name":"Shunsuke Katoh","area":"Shell 1 Core, 1F"},{"name":"Toru Yamagishi","area":"Shell 1 Core, 1F"},{"name":"Sandra Stevic","area":"Shell 1 Core, B1"},{"name":"Brady N Hartel","area":"Shell 1 Core, B1"},{"name":"Daichi Sumitomo","area":"Shell 1 Core, B1"},{"name":"Chris David Adlam","area":"Shell 1 Core, B2 Computer Room"},{"name":"Shingo Minakawa","area":"Shell 1 Core, B2 Computer Room"},{"name":"Victor Sjostrom","area":"Shell 1 Core, B2 Computer Room"},{"name":"Hiroyuki Sakashita","area":"Shell 1 Core, B2 Computer Room"},{"name":"Kazuto Ikeda","area":"KL connecting bridge"},{"name":"Victor Melnik","area":"Strut L Sewage Treatment Facility"},{"name":"Thiago Monezi Pires de Avila","area":"Strut L Sewage Treatment Facility"},{"name":"Phil A Marchant","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Yuusuke Kitamura","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Carlos C Cresswell","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Amir C Saya","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Jeffrey Fong","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Sverrir Fridriksson","area":"Shell 2 Core, 1F Air Purification Room","note":"Enters when approaching south"},{"name":"Peter Stillman","area":"Strut E heliport","note":"Fatman Boss"}]},{"id":"p9","chapter":"Plant","difficulty":"Extreme","blurb":"54 tags, including Hideo Kojima himself. Optional for achievements.","tags":[{"name":"Hideo Kojima","area":"Arsenal Gear-Ascending Colon"},{"name":"Makoto Shiragaki","area":"Strut A roof"},{"name":"Richard W Hair Jr","area":"Strut A Pump Room"},{"name":"Spencer P Gallagher","area":"Strut A Pump Room"},{"name":"Ruben Alexander van Ophuizen","area":"AB connecting bridge"},{"name":"Leevi Mursula","area":"AB connecting bridge"},{"name":"Roy Grizzly","area":"Strut B Transformer Room"},{"name":"Murat Sahiner","area":"Strut B Transformer Room"},{"name":"Casey K Chan","area":"BC connecting bridge","note":"After Fatman"},{"name":"David Yu","area":"Strut C Dining Hall"},{"name":"Yuta Shimizu","area":"Strut C Dining Hall","note":"a/b depends on entrance used"},{"name":"Callum G Whitehurst","area":"CD connecting bridge"},{"name":"Matthew T Fenelon","area":"CD connecting bridge","note":"After Fatman"},{"name":"Edward Evans","area":"Strut D Sediment Pool"},{"name":"Sonny Skinner","area":"Strut D Sediment Pool"},{"name":"Ryo Hanazawa","area":"Strut D Sediment Pool"},{"name":"Mixalis Tsakiris","area":"Strut D Sediment Pool"},{"name":"Wayne A Hindman II","area":"DE connecting bridge","note":"moves to b after Fatman"},{"name":"Zeeshan Raza","area":"DE connecting bridge","note":"After Fatman"},{"name":"Mikko Pellervo Rekola","area":"Strut E Parcel Room"},{"name":"Kouji Yamashita","area":"Strut E Parcel Room"},{"name":"Makoto Chiba","area":"Strut E Parcel Room"},{"name":"David Gomez","area":"Strut E Parcel Room"},{"name":"Christopher R Martinez","area":"Strut E Parcel Room","note":"After Emma Escort"},{"name":"Masayuki Yabuki","area":"Strut E heliport"},{"name":"Brendan Oconnor","area":"Strut E heliport"},{"name":"Grant Drain","area":"Strut E heliport"},{"name":"Yoshihiro Sakai","area":"Strut F warehouse"},{"name":"Greg T McDaniel","area":"Strut F warehouse"},{"name":"Ikuo Uchiumi","area":"Strut F warehouse"},{"name":"Ai Shimamatsu","area":"Strut F warehouse"},{"name":"Derek Faria","area":"Strut F warehouse","note":"After Fatman"},{"name":"Artmed S Hernandez","area":"FA connecting bridge"},{"name":"Rhys J Perkins","area":"Shell 1 Core, 1F"},{"name":"Henry Van","area":"Shell 1 Core, 1F"},{"name":"Takashi Saitou","area":"Shell 1 Core, 1F"},{"name":"Nicholas G Benson","area":"Shell 1 Core, 1F"},{"name":"Hongoh Yuki","area":"Shell 1 Core, B1"},{"name":"Nicholas A Fuentes","area":"Shell 1 Core, B1"},{"name":"Roy PC Smillie","area":"Shell 1 Core, B1"},{"name":"Chris S Austin","area":"Shell 1 Core, B2 Computer Room"},{"name":"Tony Pawlik","area":"Shell 1 Core, B2 Computer Room"},{"name":"Erik PO Appelblad","area":"Shell 1 Core, B2 Computer Room"},{"name":"Tooru Morita","area":"Shell 1 Core, B2 Computer Room"},{"name":"John Guest Jr","area":"KL connecting bridge"},{"name":"Sunny Lee","area":"Strut L Sewage Treatment Facility"},{"name":"Lei Adnan","area":"Strut L Sewage Treatment Facility"},{"name":"Ryo Harada","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Hugo L Vidal","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Matthias Sauermann","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Rick BigBan Laiso","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Josh Garcia","area":"Shell 2 Core, 1F Air Purification Room"},{"name":"Clayton R Worrell","area":"Shell 2 Core, 1F Air Purification Room","note":"Enters when approaching south"},{"name":"Peter Stillman","area":"Strut E heliport","note":"Fatman Boss"}]}]; const MAPS = [{"chapter":"Tanker","difficulty":"Very Easy","r0":2,"r1":220,"c0":1,"c1":49,"palette":["FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF76A5AF","FF00FFFF","FF00FF00","FFD9D2E9","FFCFE2F3","FFB7B7B7"],"fills":["4:2+1+0,9+1+1,17+1+2","5:2+1+3,9+1+4,17+1+5","6:2+1+6,9+1+7,17+1+8","7:2+1+9,9+1+10,17+1+11","10:21+21+12","11:21+1+12,41+1+12,47+1+1","12:7+25+13,41+1+12,47+1+1","13:7+1+13,21+1+12,31+1+13,41+1+12","14:3+2+0,5+2+14,7+1+6,21+1+6,22+2+14,24+2+0,28+2+6,31+1+13,41+1+12,43+2+6,47+1+2","15:4+1+0,5+3+14,21+3+14,24+1+0,28+1+6,29+1+14,30+2+13,41+2+12,43+1+14,44+1+6,47+1+2","16:4+2+0,6+2+14,8+1+7,20+1+1,21+2+14,23+2+0,28+2+6,43+2+6,47+1+2","17:5+1+0,6+2+14,9+1+1,19+1+7,21+1+14,22+1+2,23+1+0,28+5+6,40+5+6","18:5+2+0,7+1+14,8+2+0,19+2+0,21+1+14,22+2+0,29+2+6,32+1+6,40+1+6,42+2+6","19:6+4+0,19+4+0,30+3+6,40+3+6","20:6+1+0,7+1+2,8+2+14,19+2+14,21+2+0,32+1+6,40+1+6","21:7+1+0,8+2+14,19+2+14,21+1+0,32+1+6,40+1+6","22:7+2+0,9+2+14,18+2+14,20+2+0,32+9+6","23:8+3+0,18+3+0,33+2+6,35+1+2,36+4+6","24:9+11+0","25:10+9+0","26:11+7+0","31:7+1+14,8+1+2,9+13+14","32:7+15+14,28+1+1","33:5+2+13,7+1+0,8+13+14,21+1+0,22+2+13,28+1+1","34:5+1+13,7+3+14,10+1+11,11+3+14,14+1+11,15+7+14,23+1+13,28+1+1","35:5+1+13,7+2+14,12+1+7,13+1+6,14+1+14,15+1+6,16+1+1,20+2+14,23+1+13,28+1+4","36:5+1+13,8+1+7,20+1+1,23+1+13","37:5+1+14,20+1+13,23+1+14,28+1+11","38:4+2+0,20+1+13,23+2+0,28+1+2","39:4+1+0,5+1+2,6+1+4,20+1+13,22+1+1,23+2+0,28+1+11","40:20+1+13","41:20+1+13","42:20+1+13","43:20+1+13","44:20+1+13","45:8+1+7,20+1+1","46:8+1+14,20+1+14","47:8+4+14,17+4+14","48:9+1+1,11+1+14,17+1+14,19+1+7,28+1+1","49:11+1+5,12+5+14,17+1+5,28+1+1","50:11+7+14","51:11+7+14,28+1+5","57:22+1+1","58:8+4+0,12+1+5,13+2+0,22+1+1","59:4+5+0,14+5+0,22+1+1","60:4+2+0,8+1+0,14+1+0,17+2+0","61:4+1+1,5+1+0,8+1+0,14+1+0,17+1+0,18+1+7,22+1+5","62:3+1+7,4+2+0,8+1+0,9+1+7,13+1+1,14+1+0,17+2+0,19+1+1","63:7+2+0,14+2+0","64:7+1+0,15+1+0","65:7+1+0,15+1+0","66:7+1+0,15+1+0","67:7+2+0,14+2+0","68:8+1+0,12+3+0","69:8+7+0","75:20+1+1","76:9+2+0,11+1+1,20+1+1","77:3+2+0,9+3+0,16+2+0","78:3+2+0,9+3+0,16+1+0,17+1+7,20+1+9","79:3+1+1,4+2+0,6+1+9,7+11+0","85:20+1+1","86:20+1+1","87:3+9+0,15+3+0,20+1+9","88:3+9+0,15+1+11,16+2+0,20+1+9","89:3+8+0,11+1+1,15+1+0,17+1+0","90:3+11+0,14+1+2,15+1+0,17+1+0,20+1+2","91:3+6+0,9+1+9,15+1+9,17+1+0,20+1+11,21+1+5","92:3+7+0,12+1+1,15+3+0","93:3+11+0,14+1+2,15+1+0","99:11+7+0","100:11+7+0,28+1+1","101:10+1+1,11+7+0,18+1+1,28+1+1","102:10+1+13,16+1+1,18+1+13,28+1+1","103:10+1+13,18+1+13","104:10+1+13,18+1+13","105:10+2+13,17+2+13","106:11+1+13,17+1+13","107:11+1+13,17+1+13","108:11+1+13,17+1+13,28+1+10","109:11+1+13,17+1+13,28+1+1","110:11+1+13,17+1+13,28+1+1","111:11+7+14","112:11+2+14,13+3+6,16+2+14,28+1+8","113:3+8+0,11+2+14,13+1+6,14+1+14,15+1+6,16+2+14,18+6+0,24+1+11,25+1+0,28+1+11","114:3+2+0,5+1+8,6+5+0,11+1+1,12+1+14,13+1+6,14+1+10,15+1+6,16+1+14,17+1+1,18+8+0","115:6+6+0,12+3+14,15+1+11,16+1+14,17+6+0","116:8+7+0,15+2+14,17+4+0","117:11+7+0","122:4+1+1","123:4+1+6,24+1+1","124:4+1+9,24+1+4","125:4+1+6,24+1+1","126:4+3+6,18+3+6,24+1+9","127:4+3+6,18+3+6","128:6+1+6,10+1+14,18+1+6,24+1+2","129:6+2+6,10+1+14,15+2+14,17+1+11,18+1+6,24+1+2","130:6+2+6,8+3+14,15+2+14,17+2+6,24+1+2","131:6+2+6,8+1+14,10+1+14,13+2+13,15+1+14,16+1+0,17+2+6,24+1+11","132:4+1+14,5+1+4,6+1+11,7+1+6,8+1+14,10+1+14,13+1+13,15+2+14,17+2+6,19+1+1,20+1+14,24+1+11","133:4+1+14,5+3+6,8+1+14,10+1+14,13+1+13,15+2+14,17+1+6,18+3+14","134:4+5+14,10+1+14,13+1+13,15+1+2,16+5+14","135:4+5+14,10+1+14,13+1+13,15+6+14","136:5+1+14,6+1+0,10+1+14,13+1+13","137:6+1+13,9+2+14,13+6+13","138:6+1+13,9+1+0,10+1+14,18+1+13","139:5+2+13,9+1+13,10+1+2,11+2+14,18+1+13","140:5+1+13,9+1+13,18+1+13","141:5+1+13,9+1+13,18+1+13","142:5+1+13,7+2+0,9+1+13,18+1+13","143:5+1+13,8+1+0,9+1+13,15+2+0,18+1+13","144:5+1+13,8+3+0,13+1+0,15+1+0,16+1+14,17+2+13","145:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","146:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","147:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","148:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0,17+1+2,18+1+0,20+1+0","149:5+1+13,8+1+0,9+1+13,10+1+0,13+4+0,18+3+0","150:4+1+0,5+1+14,6+3+0,9+1+13,10+1+0,13+1+0,15+6+0","151:4+4+0,9+1+14,10+1+0,13+1+0,15+7+0","152:4+1+0,7+1+0,9+2+0,13+1+0","153:3+5+0,9+2+0,13+1+0","154:9+5+0","159:3+1+0,4+1+2,5+5+0,10+1+2,11+1+0,12+1+1,14+1+1,15+2+0","160:3+1+0,16+1+0","161:3+1+0,16+1+0,19+1+1","162:3+1+2,16+1+0,19+1+1","163:3+2+0,15+2+0,19+1+4","164:3+1+0,16+1+9","165:3+1+0,16+1+0,19+1+2","166:3+1+0,16+1+0,19+1+2","167:3+2+0,14+1+4,15+2+0,19+1+2","168:3+1+0,16+1+0","169:3+1+0","170:3+1+0","171:3+2+0","172:3+1+0","173:3+1+0,19+1+1","174:3+1+1,19+1+9","180:6+12+13","181:6+1+13,17+1+13,27+1+10","182:3+4+14,17+4+14,27+1+1","183:3+1+14,20+1+14,27+1+1","184:3+1+14,8+2+0,14+2+0,20+1+14,27+1+1","185:3+1+14,8+2+0,14+1+0,15+1+10,16+4+13,20+1+10,27+1+1","186:3+1+14,8+2+0,14+2+0,20+1+14","187:3+1+14,8+6+0,14+1+2,15+1+0,20+1+14,27+1+2","188:3+4+14,8+8+0,20+1+14,27+1+2","189:3+1+14,8+8+0,20+1+14","190:3+1+14,8+8+0,20+1+2","191:3+1+14,8+2+0,11+2+0,14+2+0,20+1+14","192:3+1+1,9+1+1,14+1+1,20+1+1","193:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","194:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","195:3+1+1,9+1+1,14+1+1,20+1+1,27+1+1","196:3+1+14,8+8+0,20+1+14,27+1+1","197:3+1+14,8+1+0,11+2+0,15+1+0,20+1+14,27+1+1","198:8+8+0,27+1+1","199:8+8+0,27+1+1","200:8+8+0,27+1+1","201:8+8+0","202:8+8+0","203:8+8+0","204:3+1+14,8+1+0,10+4+0,15+1+0,20+1+14","205:3+1+14,8+3+0,13+3+0,20+1+14","206:3+1+1,9+1+1,14+1+1,20+1+1","207:3+1+13,9+1+13,14+1+13,20+1+13","208:3+1+13,9+1+13,14+1+13,20+1+13,27+1+10","209:3+1+1,9+1+1,14+1+1,20+1+1,27+1+4","210:3+1+14,8+8+0,20+1+14,27+1+1","211:3+1+14,8+8+0,20+1+2,27+1+1","212:8+8+0,27+1+1","213:8+8+0,27+1+1","214:8+8+0","215:8+8+0,27+1+2","216:8+8+0,27+1+2","217:8+8+0","218:3+1+10,4+4+13,8+1+10,9+2+0,11+1+2,12+3+0,15+1+10,16+4+13,20+1+10,21+3+13,24+1+10","219:3+1+14,8+8+0,20+1+14,23+2+6","220:23+1+4"],"texts":[[2,2,"Key"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,36,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Tanker"],[5,10,"Locked Door"],[5,18,"Tough Guards"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[7,3,"Trap/Hazard"],[7,10,"Ladder"],[7,18,"Conditional Guard"],[7,26,"Very Easy"],[8,1,"Aft Deck"],[9,47,"Aft Deck"],[10,3,"Aft Deck"],[11,47,"A"],[11,49,"Deck-A, crew's quarters"],[12,47,"B"],[12,49,"Deck-B, crew's quarters"],[14,47,"1.0"],[14,49,"Josh Spires"],[15,47,"2.0"],[15,49,"Tomomi Nasu"],[16,20,"B"],[16,47,"3.0"],[16,49,"Stephen M Driver"],[17,9,"A"],[17,22,"2.0"],[20,7,"1.0"],[23,35,"3.0"],[25,4,"port"],[25,22,"starboard"],[25,29,"port"],[25,42,"starboard"],[29,1,"Deck A"],[30,28,"Deck-A, crew's Lounge"],[31,8,"8b"],[32,28,"C"],[32,30,"Deck-A, crew's quarters"],[33,28,"D"],[33,30,"Deck-B, crew's quarters"],[34,10,"9.0"],[34,14,"7.0"],[34,28,"E1"],[34,30,"Engine Room"],[35,16,"D"],[35,28,"E2"],[35,30,"Engine Room (Unlocks during a scene when near Semtex in Engine Room)"],[36,20,"C"],[37,10,"Deck-A, crew's Lounge"],[37,28,"7.0"],[37,30,"Takahiro Yura (Either Takahiro or Eric spawns, never both at once. Entrance to room seem to dictate which ones appears)"],[38,28,"8.0"],[38,30,"David P LaFrenier (moves to b when entering from Engine Room locked door)"],[39,5,"8a"],[39,6,"E2"],[39,22,"E1"],[39,28,"9.0"],[39,30,"Eric Bravo (Either Takahiro or Eric spawns, never both at once. Entrance to room seem to dictate which ones appears)"],[45,10,"Deck-A, crew's quarters"],[45,20,"C"],[46,28,"Deck-A, crew's quarters"],[48,9,"A"],[48,28,"A"],[48,30,"Aft Deck"],[49,11,"5b"],[49,17,"5a"],[49,28,"C"],[49,30,"Deck-A, crew's Lounge"],[50,4,"port"],[50,22,"starboard"],[51,28,"5.0"],[51,30,"Hajme Tusima (Patrols a/b depending on entrance to room)"],[54,1,"Deck B"],[55,22,"Deck-B, crew's quarters"],[56,3,"Deck-B, crew's quarters"],[57,22,"B"],[57,24,"Aft Deck"],[58,12,"6.0"],[58,22,"D"],[58,24,"Deck-A, crew's Lounge"],[59,22,"F"],[59,24,"Deck-C, crew's quarters"],[61,4,"F"],[61,22,"6.0"],[61,24,"Yuki Hongoh"],[62,13,"D"],[62,19,"B"],[66,4,"port"],[66,17,"starboard"],[72,1,"Deck C"],[73,20,"Deck-C, crew's quarters"],[74,3,"Deck-C, crew's quarters"],[75,20,"F"],[75,22,"Deck-B, crew's quarters"],[76,11,"G"],[76,20,"G"],[76,22,"Deck-D, crew's quarters"],[78,20,"1.0"],[78,22,"Security Camera"],[79,3,"F"],[79,6,"1.0"],[82,1,"Deck D"],[83,20,"Deck-D, crew's quarters"],[84,3,"Deck-D, crew's quarters"],[85,20,"G"],[85,22,"Deck-C, crew's quarters"],[86,20,"H"],[86,22,"Deck-E, the bridge"],[87,20,"1.0"],[87,22,"Security Camera"],[88,15,"11.0"],[88,16,"storeroom"],[88,20,"2.0"],[88,22,"Semtex Trap"],[89,11,"G"],[90,14,"10b"],[90,20,"10.0"],[90,22,"Miguel Luis Cunha (moves to 10b after Olga Boss)"],[91,9,"1.0"],[91,15,"2.0"],[91,20,"11.0"],[91,22,"Eiji Senke (Arrives when you are in the storeroom and will try to exit area if you leave the storeroom)"],[92,12,"H"],[93,14,"10a"],[97,1,"Deck E"],[98,28,"Deck-E, the bridge"],[99,3,"Deck-E, the bridge"],[100,28,"G"],[100,30,"Deck-D, crew's quarters"],[101,10,"i1"],[101,18,"i2"],[101,28,"i1"],[101,30,"Navigational Deck, Wing"],[102,16,"H"],[102,28,"i2"],[102,30,"Navigational Deck, Wing"],[106,28,"Navigational Deck, Wing"],[108,28,"L"],[108,30,"Ladder"],[109,28,"i1"],[109,30,"Navigational Deck, Wing"],[110,3,"Navigational Deck, Wing"],[110,28,"i2"],[110,30,"Navigational Deck, Wing"],[111,7,"port"],[111,20,"starboard"],[112,28,"0.0"],[112,30,"Boss - Olga Gurlukovich"],[113,24,"4a"],[113,28,"4.0"],[113,30,"Brendan McLeod (Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder)"],[114,5,"0.0"],[114,11,"i1"],[114,14,"L"],[114,17,"i2"],[115,15,"4b"],[120,1,"Engine Room"],[121,24,"Engine Room"],[122,4,"K"],[122,11,"Engine Room"],[123,24,"E1"],[123,26,"Deck-A, crew's Lounge"],[124,4,"2.0"],[124,24,"E2"],[124,26,"Deck-A, crew's Lounge (Unlocks during a scene when near Semtex in Engine Room)"],[125,24,"J"],[125,26,"Deck 2, Port"],[126,24,"2.0"],[126,26,"Semtex Trap"],[128,24,"15.0"],[128,26,"Andrej Pedercina Mimica"],[129,17,"18.0"],[129,24,"16.0"],[129,26,"Mike J Corbitt"],[130,3,"port"],[130,20,"starboard"],[130,24,"17.0"],[130,26,"Aaron T Powell"],[131,24,"18.0"],[131,26,"Jeff A Saylor Jr (Missable - will only appear on initial entry to area, and disappear if Snake leaves the Engine Room)"],[132,5,"E2"],[132,6,"19.0"],[132,19,"E1"],[132,24,"19.0"],[132,26,"Kazuki Tokunaga (Missable - will only appear in a cutscene when approaching IR Sensors. Will Disappear if Snake leaves the Engine Room)"],[134,15,"15.0"],[139,10,"17.0"],[148,17,"16.0"],[157,1,"Deck 2"],[159,4,"13.0"],[159,10,"14.0"],[159,12,"L"],[159,14,"L"],[159,19,"Deck 2, Port"],[161,6,"Deck 2, Port"],[161,19,"K"],[161,21,"Engine Room"],[162,3,"12.0"],[162,19,"L"],[162,21,"Deck 2, Starboard"],[163,19,"M"],[163,21,"Hold No.1 (Automatically enters following Ambush Scene)"],[164,16,"3.0"],[165,19,"12.0"],[165,21,"Yohsuke Sakaguchi"],[166,19,"13.0"],[166,21,"Jan Friese"],[167,14,"M"],[167,19,"14.0"],[167,21,"Marius Torsud"],[169,12,"Deck 2, Starboard"],[171,19,"Deck 2, Starboard"],[173,19,"L"],[173,21,"Deck 2, Port"],[174,3,"K"],[174,19,"3.0"],[174,21,"Ambush"],[177,1,"Holds 1-3"],[179,4,"Hold No.3"],[179,27,"Hold No.3"],[181,27,"p"],[181,29,"Pole (Downwards only)"],[182,27,"O1"],[182,29,"Hold No.2 (Upper Walkway, Port)"],[183,27,"O2"],[183,29,"Hold No.2 (Port)"],[184,27,"O3"],[184,29,"Hold No.2 (Starboard)"],[185,15,"p"],[185,20,"p"],[185,27,"O4"],[185,29,"Hold No.2 (Upper Walkway, Starboard)"],[186,11,"Ray"],[187,14,"23.0"],[187,27,"22.0"],[187,29,"Darryl F Kemp"],[188,27,"23.0"],[188,29,"Yoshitoshi Toyoda"],[190,20,"22.0"],[191,27,"Hold No.2"],[192,3,"O1"],[192,9,"O2"],[192,14,"O3"],[192,20,"O4"],[193,27,"N1"],[193,29,"Hold No.1 (Upper Walkway, Port)"],[194,5,"Hold No.2"],[194,27,"N2"],[194,29,"Hold No.1 (Port)"],[195,3,"O1"],[195,9,"O2"],[195,14,"O3"],[195,20,"O4"],[195,27,"N3"],[195,29,"Hold No.1 (Starboard)"],[196,27,"N4"],[196,29,"Hold No.1 (Upper Walkway, Starboard)"],[197,27,"O1"],[197,29,"Hold No.3 (Upper Walkway, Port)"],[198,27,"O2"],[198,29,"Hold No.3 (Port)"],[199,27,"O3"],[199,29,"Hold No.3 (Starboard)"],[200,27,"O4"],[200,29,"Hold No.3 (Upper Walkway, Starboard)"],[206,3,"N1"],[206,9,"N2"],[206,14,"N3"],[206,20,"N4"],[206,27,"Hold No.1"],[208,5,"Hold No.1"],[208,27,"L"],[208,29,"Ladder"],[209,3,"N1"],[209,9,"N2"],[209,14,"N3"],[209,20,"N4"],[209,27,"M"],[209,29,"Deck 2, Starboard (Cannot Re-enter)"],[210,27,"N1"],[210,29,"Hold No.2 (Upper Walkway, Port)"],[211,20,"20.0"],[211,27,"N2"],[211,29,"Hold No.2 (Port)"],[212,27,"N3"],[212,29,"Hold No.2 (Starboard)"],[213,27,"N4"],[213,29,"Hold No.2 (Upper Walkway, Starboard)"],[215,27,"20.0"],[215,29,"Kamil Mania"],[216,27,"21.0"],[216,29,"Ismael Miranda de Andrade"],[218,3,"L"],[218,8,"L"],[218,11,"21.0"],[218,15,"L"],[218,20,"L"],[218,24,"L"],[220,23,"M"]],"merges":[[4,3,6,7],[7,3,7,7],[7,10,7,15],[7,18,7,23],[88,16,91,16],[3,36,6,53],[4,10,4,15],[4,18,4,23],[5,10,5,15],[5,18,5,23],[6,10,6,15],[6,18,6,23]],"widths":{"1":[84,2.63]},"heights":{}},{"chapter":"Tanker","difficulty":"Easy","r0":2,"r1":220,"c0":1,"c1":49,"palette":["FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF76A5AF","FF00FFFF","FF00FF00","FFD9D2E9","FFCFE2F3","FFB7B7B7"],"fills":["4:2+1+0,9+1+1,17+1+2","5:2+1+3,9+1+4,17+1+5","6:2+1+6,9+1+7,17+1+8","7:2+1+9,9+1+10,17+1+11","10:21+21+12","11:21+1+12,41+1+12,47+1+1","12:7+25+13,41+1+12,47+1+1","13:7+1+13,21+1+12,31+1+13,41+1+12","14:3+2+0,5+2+14,7+1+6,21+1+6,22+2+14,24+2+0,28+2+6,31+1+13,41+1+12,43+2+6,47+1+2","15:4+1+0,5+3+14,21+3+14,24+1+0,28+1+6,29+1+14,30+2+13,41+2+12,43+1+14,44+1+6,47+1+2","16:4+2+0,6+2+14,8+1+7,20+1+1,21+2+14,23+2+0,28+2+6,43+2+6,47+1+2","17:5+1+0,6+2+14,9+1+1,19+1+7,21+1+14,22+1+2,23+1+0,28+5+6,40+5+6","18:5+2+0,7+1+14,8+2+0,19+2+0,21+1+14,22+2+0,29+2+6,32+1+6,40+1+6,42+2+6","19:6+4+0,19+4+0,30+3+6,40+3+6","20:6+1+0,7+1+2,8+2+14,19+2+14,21+2+0,32+1+6,40+1+6","21:7+1+0,8+2+14,19+2+14,21+1+0,32+1+6,40+1+6","22:7+2+0,9+2+14,18+2+14,20+2+0,32+9+6","23:8+3+0,18+3+0,33+2+6,35+1+2,36+4+6","24:9+11+0","25:10+9+0","26:11+7+0","31:7+1+14,8+1+2,9+13+14","32:7+15+14,28+1+1","33:5+2+13,7+1+0,8+13+14,21+1+0,22+2+13,28+1+1","34:5+1+13,7+3+14,10+1+2,11+3+14,14+1+11,15+7+14,23+1+13,28+1+1","35:5+1+13,7+2+14,12+1+7,13+1+6,14+1+14,15+1+6,16+1+1,20+2+14,23+1+13,28+1+4","36:5+1+13,8+1+7,20+1+1,23+1+13","37:5+1+14,20+1+13,23+1+14,28+1+11,29+1+5","38:4+2+0,20+1+13,23+2+0,28+1+2","39:4+1+0,5+1+2,6+1+4,20+1+13,22+1+1,23+2+0,28+1+2","40:20+1+13","41:20+1+13","42:20+1+13","43:20+1+13","44:20+1+13","45:8+1+7,20+1+1","46:8+1+14,20+1+14","47:8+4+14,17+4+14","48:9+1+1,11+1+14,17+1+14,19+1+7,28+1+1","49:11+1+2,12+5+14,17+1+2,28+1+1","50:11+7+14","51:11+7+14,28+1+2","57:22+1+1","58:8+4+0,12+1+2,13+2+0,22+1+1","59:4+5+0,14+5+0,22+1+1","60:4+2+0,8+1+0,14+1+0,17+2+0","61:4+1+1,5+1+0,8+1+0,14+1+0,17+1+0,18+1+7,22+1+2,23+1+5","62:3+1+7,4+2+0,8+1+0,9+1+7,13+1+1,14+1+0,17+2+0,19+1+1","63:7+2+0,14+2+0","64:7+1+0,15+1+0","65:7+1+0,15+1+0","66:7+1+0,15+1+0","67:7+2+0,14+2+0","68:8+1+0,12+3+0","69:8+7+0","75:20+1+1","76:9+2+0,11+1+1,20+1+1","77:3+2+0,9+3+0,16+2+0,20+1+9","78:3+2+0,9+3+0,16+1+0,17+1+7","79:3+1+1,4+2+0,6+1+9,7+11+0","85:20+1+1","86:20+1+1","87:3+9+0,15+3+0,20+1+9","88:3+9+0,15+1+11,16+2+0,20+1+9","89:3+8+0,11+1+1,15+1+0,17+1+0","90:3+11+0,14+1+2,15+1+0,17+1+0,20+1+2","91:3+6+0,9+1+9,15+1+9,17+1+0,20+1+11","92:3+7+0,12+1+1,15+3+0","93:3+11+0,14+1+2,15+1+0","99:11+7+0","100:11+7+0,28+1+1","101:10+1+1,11+7+0,18+1+1,28+1+1","102:10+1+13,16+1+1,18+1+13,28+1+1","103:10+1+13,18+1+13","104:10+1+13,18+1+13","105:10+2+13,17+2+13","106:11+1+13,17+1+13","107:11+1+13,17+1+13","108:11+1+13,17+1+13,28+1+10","109:11+1+13,17+1+13,28+1+1","110:11+1+13,17+1+13,28+1+1","111:11+7+14","112:11+2+14,13+3+6,16+2+14,28+1+8","113:3+8+0,11+2+14,13+1+6,14+1+14,15+1+6,16+2+14,18+6+0,24+1+11,25+1+0,28+1+11","114:3+2+0,5+1+8,6+5+0,11+1+1,12+1+14,13+1+6,14+1+10,15+1+6,16+1+14,17+1+1,18+8+0","115:6+6+0,12+3+14,15+1+11,16+1+14,17+6+0","116:8+7+0,15+2+14,17+4+0","117:11+7+0","122:4+1+1","123:4+1+9,24+1+1","124:4+1+9,24+1+4","125:4+1+9,24+1+1","126:4+3+6,18+3+6,24+1+9","127:4+3+6,18+3+6","128:6+1+6,10+1+14,18+1+6,24+1+2","129:6+2+6,10+1+14,15+2+14,17+1+11,18+1+6,24+1+2","130:6+2+6,8+3+14,15+2+14,17+2+6,24+1+2","131:6+1+6,7+1+2,8+1+14,10+1+14,13+2+13,15+1+14,16+1+0,17+2+6,24+1+2","132:4+1+14,5+1+4,6+1+11,7+1+6,8+1+14,10+1+14,13+1+13,15+2+14,17+2+6,19+1+1,20+1+14,24+1+11","133:4+1+14,5+3+6,8+1+14,10+1+14,13+1+13,15+2+14,17+1+6,18+3+14,24+1+11","134:4+5+14,10+1+14,13+1+13,15+1+2,16+5+14","135:4+5+14,10+1+14,13+1+13,15+6+14","136:5+1+14,6+1+0,10+1+14,13+1+13","137:6+1+13,9+2+14,13+6+13","138:6+1+13,9+1+0,10+1+14,18+1+13","139:5+2+13,9+1+13,10+1+2,11+2+14,18+1+13","140:5+1+13,9+1+13,18+1+13","141:5+1+13,9+1+13,18+1+13","142:5+1+13,7+2+0,9+1+13,18+1+13","143:5+1+13,8+1+0,9+1+13,15+2+0,18+1+13","144:5+1+13,8+3+0,13+1+0,15+1+0,16+1+14,17+2+13","145:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","146:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","147:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","148:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0,17+1+2,18+1+0,20+1+0","149:5+1+13,8+1+0,9+1+13,10+1+0,13+4+0,18+3+0","150:4+1+0,5+1+14,6+3+0,9+1+13,10+1+0,13+1+0,15+6+0","151:4+4+0,9+1+14,10+1+0,13+1+0,15+7+0","152:4+1+0,7+1+0,9+2+0,13+1+0","153:3+5+0,9+2+0,13+1+0","154:9+5+0","159:3+1+0,4+1+2,5+5+0,10+1+2,11+1+0,12+1+1,13+1+13,14+1+1,15+2+0","160:3+1+0,16+1+0","161:3+1+0,16+1+0,19+1+1","162:3+1+2,16+1+0,19+1+1","163:3+2+0,15+2+0,19+1+4","164:3+1+0,16+1+9","165:3+1+0,16+1+0,19+1+2","166:3+1+0,16+1+0,19+1+2","167:3+2+0,14+1+4,15+2+0,19+1+2","168:3+1+0,16+1+0","169:3+1+0","170:3+1+0","171:3+2+0","172:3+1+0","173:3+1+0,19+1+1","174:3+1+1,19+1+9","179:27+1+10","180:6+12+13,27+1+1","181:6+1+13,17+1+13,27+1+1","182:3+4+14,17+4+14,27+1+1","183:3+1+14,20+1+14,27+1+1","184:3+1+14,8+2+0,14+2+0,20+1+14","185:3+1+14,8+2+0,14+1+0,15+1+10,16+4+13,20+1+10,27+1+2","186:3+1+14,8+2+0,14+2+0,20+1+14,27+1+2","187:3+1+14,8+8+0,20+1+14,27+1+2","188:3+4+14,8+3+0,11+1+2,12+2+0,14+1+2,15+1+0,20+1+14","189:3+1+14,8+8+0,20+1+14","190:3+1+14,8+8+0,20+1+2","191:3+1+14,8+2+0,11+2+0,14+2+0,20+1+14","192:3+1+1,9+1+1,14+1+1,20+1+1","193:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","194:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","195:3+1+1,9+1+1,14+1+1,20+1+1,27+1+1","196:3+1+14,8+8+0,20+1+14,27+1+1","197:3+1+14,8+1+0,11+2+0,15+1+0,20+1+14,27+1+1","198:8+8+0,27+1+1","199:8+8+0,27+1+1","200:8+8+0,27+1+1","201:8+8+0","202:8+8+0","203:8+8+0","204:3+1+14,8+1+0,10+4+0,15+1+0,20+1+14","205:3+1+14,8+3+0,13+3+0,20+1+14","206:3+1+1,9+1+1,14+1+1,20+1+1","207:3+1+13,9+1+13,14+1+13,20+1+13","208:3+1+13,9+1+13,14+1+13,20+1+13,27+1+10","209:3+1+1,9+1+1,14+1+1,20+1+1,27+1+4","210:3+1+14,8+8+0,20+1+14,27+1+1","211:3+1+14,8+8+0,20+1+2,27+1+1","212:8+8+0,27+1+1","213:8+8+0,27+1+1","214:8+4+0,12+1+2,13+3+0","215:8+8+0,27+1+2","216:8+8+0,27+1+2","217:8+8+0","218:3+1+10,4+4+13,8+1+10,9+6+0,15+1+10,16+4+13,20+1+10,21+3+13,24+1+10","219:3+1+14,8+8+0,20+1+14,23+2+6","220:23+1+4"],"texts":[[2,2,"Key"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,36,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Tanker"],[5,10,"Locked Door"],[5,18,"Tough Guards"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[7,3,"Trap/Hazard"],[7,10,"Ladder"],[7,18,"Conditional Guard"],[7,26,"Easy"],[8,1,"Aft Deck"],[9,47,"Aft Deck"],[10,3,"Aft Deck"],[11,47,"A"],[11,49,"Deck-A, crew's quarters"],[12,47,"B"],[12,49,"Deck-B, crew's quarters"],[14,47,"1.0"],[14,49,"Justin P Verrier"],[15,47,"2.0"],[15,49,"Ryouichi Matsumoto"],[16,20,"B"],[16,47,"3.0"],[16,49,"Michael S Futter"],[17,9,"A"],[17,22,"2.0"],[20,7,"1.0"],[23,35,"3.0"],[25,4,"port"],[25,22,"starboard"],[25,29,"port"],[25,42,"starboard"],[29,1,"Deck-A"],[30,28,"Deck-A, crew's Lounge"],[31,8,"8b"],[32,28,"C"],[32,30,"Deck-A, crew's quarters"],[33,28,"D"],[33,30,"Deck-B, crew's quarters"],[34,10,"9.0"],[34,14,"7.0"],[34,28,"E1"],[34,30,"Engine Room"],[35,16,"D"],[35,28,"E2"],[35,30,"Engine Room (Unlocks during a scene when near Semtex in Engine Room)"],[36,20,"C"],[37,10,"Deck-A, crew's Lounge"],[37,28,"7.0"],[37,30,"Matthew W Hunt (Enter from Deck A)"],[38,28,"8.0"],[38,30,"David W Pelster (moves to b when entering from Engine Room locked door"],[39,5,"8a"],[39,6,"E2"],[39,22,"E1"],[39,28,"9.0"],[39,30,"Takumi Shimada"],[45,10,"Deck-A, crew's quarters"],[45,20,"C"],[46,28,"Deck-A, crew's quarters"],[48,9,"A"],[48,28,"A"],[48,30,"Aft Deck"],[49,11,"5b"],[49,17,"5a"],[49,28,"C"],[49,30,"Deck-A, crew's Lounge"],[50,4,"port"],[50,22,"starboard"],[51,28,"6.0"],[51,30,"Kei Kudou Mon (Patrols a/b depending on entrance to room)"],[54,1,"Deck-B"],[55,22,"Deck-B, crew's quarters"],[56,3,"Deck-B, crew's quarters"],[57,22,"B"],[57,24,"Aft Deck"],[58,12,"6.0"],[58,22,"D"],[58,24,"Deck-A, crew's Lounge"],[59,22,"F"],[59,24,"Deck-C, crew's quarters"],[61,4,"F"],[61,22,"6.0"],[61,24,"Eetu Holmqvist"],[62,13,"D"],[62,19,"B"],[66,4,"port"],[66,17,"starboard"],[72,1,"Deck-C"],[73,20,"Deck-C, crew's quarters"],[74,3,"Deck-C, crew's quarters"],[75,20,"F"],[75,22,"Deck-B, crew's quarters"],[76,11,"G"],[76,20,"G"],[76,22,"Deck-D, crew's quarters"],[77,20,"1.0"],[77,22,"Security Camera"],[79,3,"F"],[79,6,"1.0"],[82,1,"Deck-D"],[83,20,"Deck-D, crew's quarters"],[84,3,"Deck-D, crew's quarters"],[85,20,"G"],[85,22,"Deck-C, crew's quarters"],[86,20,"H"],[86,22,"Deck-E, the bridge"],[87,20,"1.0"],[87,22,"Security Camera"],[88,15,"11.0"],[88,16,"storeroom"],[88,20,"2.0"],[88,22,"Semtex Trap"],[89,11,"G"],[90,14,"10b"],[90,20,"10.0"],[90,22,"Cary J Schwartzman (Patrols a/b depending on entrance to room)"],[91,9,"1.0"],[91,15,"2.0"],[91,20,"11.0"],[91,22,"Danilo NE Carbone (appears when in Storeroom and tries to leave when exiting storeroom)"],[92,12,"H"],[93,14,"10a"],[97,1,"Deck-E"],[98,28,"Deck-E, the bridge"],[99,3,"Deck-E, the bridge"],[100,28,"G"],[100,30,"Deck-D, crew's quarters"],[101,10,"i1"],[101,18,"i2"],[101,28,"i1"],[101,30,"Navigational Deck, Wing"],[102,16,"H"],[102,28,"i2"],[102,30,"Navigational Deck, Wing"],[106,28,"Navigational Deck, Wing"],[108,30,"Ladder"],[109,28,"i1"],[109,30,"Navigational Deck, Wing"],[110,3,"Navigational Deck, Wing"],[110,28,"i2"],[110,30,"Navigational Deck, Wing"],[111,7,"port"],[111,20,"starboard"],[112,28,"0.0"],[112,30,"Boss - Olga Gurlukovich"],[113,24,"4a"],[113,28,"4.0"],[113,30,"Michael Vogt (Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder)"],[114,5,"0.0"],[114,11,"i1"],[114,17,"i2"],[115,15,"4b"],[120,1,"Engine Room"],[121,24,"Engine Room"],[122,4,"K"],[122,11,"Engine Room"],[123,4,"2.0"],[123,24,"E1"],[123,26,"Deck-A, crew's Lounge"],[124,4,"2.0"],[124,24,"E2"],[124,26,"Deck-A, crew's Lounge (Unlocks during a scene when near Semtex in Engine Room)"],[125,4,"2.0"],[125,24,"J"],[125,26,"Deck 2, Port"],[126,24,"2.0"],[126,26,"Semtex Trap"],[128,24,"15.0"],[128,26,"William N Bruce"],[129,17,"19.0"],[129,24,"16.0"],[129,26,"Chien Jen Liang"],[130,3,"port"],[130,20,"starboard"],[130,24,"17.0"],[130,26,"Luke Boulerice"],[131,7,"18.0"],[131,24,"18.0"],[131,26,"Yusuke Sasaki"],[132,5,"E2"],[132,6,"20.0"],[132,19,"E1"],[132,24,"19.0"],[132,26,"Missable - Travis J Long (Missable - will only appear on initial entry to area, and disappear if Snake leaves the Engine Room)"],[133,24,"20.0"],[133,26,"Missable - Steven A Weekes (Missable - will only appear in a cutscene when approaching IR Sensors. Will Disappear if Snake leaves the Engine Room)"],[134,15,"15.0"],[139,10,"17.0"],[148,17,"16.0"],[157,1,"Deck 2"],[159,4,"13.0"],[159,10,"14.0"],[159,12,"L"],[159,14,"L"],[159,19,"Deck 2, Port"],[161,6,"Deck 2, Port"],[161,19,"K"],[161,21,"Engine Room"],[162,3,"12.0"],[162,19,"L"],[162,21,"Deck 2, Starboard"],[163,19,"M"],[163,21,"Hold No.1 (Automatically enters following Ambush Scene)"],[164,16,"3.0"],[165,19,"12.0"],[165,21,"Adam Lloyd"],[166,19,"13.0"],[166,21,"David E Palm"],[167,14,"M"],[167,19,"14.0"],[167,21,"Yuki Aoki"],[169,12,"Deck 2, Starboard"],[171,19,"Deck 2, Starboard"],[173,19,"L"],[173,21,"Deck 2, Port"],[174,3,"K"],[174,19,"3.0"],[174,21,"Ambush"],[177,1,"Holds 1-3"],[177,27,"Hold No.3"],[179,4,"Hold No.3"],[179,27,"p"],[179,29,"Pole (Downwards only)"],[180,27,"O1"],[180,29,"Hold No.2 (Upper Walkway, Port)"],[181,27,"O2"],[181,29,"Hold No.2 (Port)"],[182,27,"O3"],[182,29,"Hold No.2 (Starboard)"],[183,27,"O4"],[183,29,"Hold No.2 (Upper Walkway, Starboard)"],[185,15,"p"],[185,20,"p"],[185,27,"23.0"],[185,29,"Michalis Taubert"],[186,11,"Ray"],[186,27,"24.0"],[186,29,"Lee A Myers"],[187,27,"25.0"],[187,29,"Rock Young (Man in the centre of the front row)"],[188,11,"25.0"],[188,14,"24.0"],[190,20,"23.0"],[191,27,"Hold No.2"],[192,3,"O1"],[192,9,"O2"],[192,14,"O3"],[192,20,"O4"],[193,27,"N1"],[193,29,"Hold No.1 (Upper Walkway, Port)"],[194,5,"Hold No.2"],[194,27,"N2"],[194,29,"Hold No.1 (Port)"],[195,3,"O1"],[195,9,"O2"],[195,14,"O3"],[195,20,"O4"],[195,27,"N3"],[195,29,"Hold No.1 (Starboard)"],[196,27,"N4"],[196,29,"Hold No.1 (Upper Walkway, Starboard)"],[197,27,"O1"],[197,29,"Hold No.3 (Upper Walkway, Port)"],[198,27,"O2"],[198,29,"Hold No.3 (Port)"],[199,27,"O3"],[199,29,"Hold No.3 (Starboard)"],[200,27,"O4"],[200,29,"Hold No.3 (Upper Walkway, Starboard)"],[206,3,"N1"],[206,9,"N2"],[206,14,"N3"],[206,20,"N4"],[206,27,"Hold No.1"],[208,5,"Hold No.1"],[208,27,"L"],[208,29,"Ladder"],[209,3,"N1"],[209,9,"N2"],[209,14,"N3"],[209,20,"N4"],[209,27,"M"],[209,29,"Deck 2, Starboard (Cannot Re-enter)"],[210,27,"N1"],[210,29,"Hold No.2 (Upper Walkway, Port)"],[211,20,"21.0"],[211,27,"N2"],[211,29,"Hold No.2 (Port)"],[212,27,"N3"],[212,29,"Hold No.2 (Starboard)"],[213,27,"N4"],[213,29,"Hold No.2 (Upper Walkway, Starboard)"],[214,12,"22.0"],[215,27,"21.0"],[215,29,"Marco Silvano"],[216,27,"22.0"],[216,29,"Xesk Malone (Underpants Guy)"],[218,3,"L"],[218,8,"L"],[218,15,"L"],[218,20,"L"],[218,24,"L"],[220,23,"M"]],"merges":[[4,3,6,7],[7,3,7,7],[7,10,7,15],[7,18,7,23],[88,16,91,16],[3,36,6,53],[4,10,4,15],[4,18,4,23],[5,10,5,15],[5,18,5,23],[6,10,6,15],[6,18,6,23]],"widths":{"1":[75,2.63]},"heights":{}},{"chapter":"Tanker","difficulty":"Normal","r0":2,"r1":220,"c0":1,"c1":49,"palette":["FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF76A5AF","FF00FFFF","FF00FF00","FFD9D2E9","FFCFE2F3","FFB7B7B7"],"fills":["4:2+1+0,9+1+1,17+1+2","5:2+1+3,9+1+4,17+1+5","6:2+1+6,9+1+7,17+1+8","7:2+1+9,9+1+10,17+1+11","10:21+21+12","11:21+1+12,41+1+12,47+1+1","12:7+25+13,41+1+12,47+1+1","13:7+1+13,21+1+12,31+1+13,41+1+12","14:3+2+0,5+2+14,7+1+6,21+1+6,22+2+14,24+2+0,28+2+6,31+1+13,41+1+12,43+2+6,47+1+2","15:4+1+0,5+3+14,21+3+14,24+1+0,28+1+6,29+1+14,30+2+13,41+2+12,43+1+14,44+1+6,47+1+2","16:4+2+0,6+2+14,8+1+7,20+1+1,21+2+14,23+2+0,28+2+6,43+2+6,47+1+2","17:5+1+0,6+2+14,9+1+1,19+1+7,21+1+14,22+1+2,23+1+0,28+5+6,40+5+6","18:5+2+0,7+1+14,8+2+0,19+2+0,21+1+14,22+2+0,29+2+6,32+1+6,40+1+6,42+2+6","19:6+4+0,19+4+0,30+3+6,40+3+6","20:6+1+0,7+1+2,8+2+14,19+2+14,21+2+0,32+1+6,40+1+6","21:7+1+0,8+2+14,19+2+14,21+1+0,32+1+6,40+1+6","22:7+2+0,9+2+14,18+2+14,20+2+0,32+9+6","23:8+3+0,18+3+0,33+2+6,35+1+2,36+4+6","24:9+11+0","25:10+9+0","26:11+7+0","31:7+1+14,8+1+5,9+13+14","32:7+15+14,28+1+1","33:5+2+13,7+1+0,8+13+14,21+1+0,22+2+13,28+1+1","34:5+1+13,7+3+14,10+1+2,11+6+14,17+1+11,18+4+14,23+1+13,28+1+1","35:5+1+13,7+2+14,12+1+7,13+1+6,14+1+14,15+1+6,16+1+1,20+2+14,23+1+13,28+1+4","36:5+1+13,8+1+7,20+1+1,23+1+13","37:5+1+14,20+1+13,23+1+14,28+1+11","38:4+2+0,20+1+13,23+2+0,28+1+5","39:4+1+0,5+1+5,6+1+4,20+1+13,22+1+1,23+2+0,28+1+2","40:20+1+13","41:20+1+13","42:20+1+13","43:20+1+13","44:20+1+13","45:8+1+7,20+1+1","46:8+1+14,20+1+14","47:8+4+14,17+4+14","48:9+1+1,11+1+14,17+1+14,19+1+7,28+1+1","49:11+1+5,12+5+14,17+1+5,28+1+1","50:11+7+14","51:11+7+14,28+1+5","57:22+1+1","58:8+4+0,12+1+2,13+2+0,22+1+1","59:4+5+0,14+5+0,22+1+1","60:4+2+0,8+1+0,14+1+0,17+2+0","61:4+1+1,5+1+0,8+1+0,14+1+0,17+1+0,18+1+7,22+1+2","62:3+1+7,4+2+0,8+1+0,9+1+7,13+1+1,14+1+0,17+2+0,19+1+1,22+1+2","63:7+2+0,14+2+0","64:7+1+0,15+1+0","65:7+1+0,15+1+0","66:7+1+0,15+1+0","67:7+2+0,14+2+0","68:8+1+0,12+3+0","69:8+2+0,10+1+2,11+4+0","75:20+1+1","76:9+2+0,11+1+1,20+1+1","77:3+2+0,9+3+0,16+2+0,20+1+9","78:3+2+0,9+3+0,16+1+0,17+1+7","79:3+1+1,4+2+0,6+1+9,7+1+0,8+1+11,9+9+0,20+1+11","85:20+1+1","86:20+1+1","87:3+9+0,15+3+0,20+1+9","88:3+9+0,15+1+11,16+2+0,20+1+9","89:3+8+0,11+1+1,15+1+0,17+1+0","90:3+3+0,6+1+5,7+7+0,14+1+2,15+1+0,17+1+0,20+1+2","91:3+6+0,9+1+9,15+1+9,17+1+0,20+1+5","92:3+7+0,12+1+1,15+3+0,20+1+11,21+1+5","93:3+11+0,14+1+2,15+1+0","99:11+7+0","100:11+7+0,28+1+1","101:10+1+1,11+7+0,18+1+1,28+1+1","102:10+1+13,16+1+1,18+1+13,28+1+1","103:10+1+13,18+1+13","104:10+1+13,18+1+13","105:10+2+13,17+2+13","106:11+1+13,17+1+13","107:11+1+13,17+1+13","108:11+1+13,17+1+13,28+1+10","109:11+1+13,17+1+13,28+1+1","110:11+1+13,17+1+13,28+1+1","111:11+7+14","112:11+2+14,13+3+6,16+2+14,28+1+8","113:3+8+0,11+2+14,13+1+6,14+1+14,15+1+6,16+2+14,18+6+0,24+1+11,25+1+0,28+1+11","114:3+2+0,5+1+8,6+5+0,11+1+1,12+1+14,13+1+6,14+1+10,15+1+6,16+1+14,17+1+1,18+8+0","115:6+6+0,12+3+14,15+1+11,16+1+14,17+6+0","116:8+7+0,15+2+14,17+4+0","117:11+7+0","122:4+1+1","123:4+1+9,24+1+1","124:4+1+9,24+1+4","125:4+1+9,24+1+1","126:4+3+6,18+3+6,24+1+9","127:4+3+6,18+3+6","128:6+1+6,10+1+14,18+1+6,24+1+2","129:6+2+6,10+1+14,15+2+14,17+1+11,18+1+6,24+1+2","130:6+2+6,8+3+14,15+2+14,17+2+6,24+1+5","131:6+1+6,7+1+2,8+1+14,10+1+14,13+2+13,15+1+14,16+1+0,17+2+6,24+1+2","132:4+1+14,5+1+4,6+1+11,7+1+6,8+1+14,10+1+14,13+1+13,15+2+14,17+2+6,19+1+1,20+1+14,24+1+2","133:4+1+14,5+3+6,8+1+14,10+1+14,13+1+13,15+2+14,17+1+6,18+3+14,24+1+11","134:4+5+14,10+1+14,13+1+13,15+1+2,16+5+14,24+1+11","135:4+5+14,10+1+14,13+1+13,15+6+14","136:5+1+14,6+1+0,10+1+14,13+1+13","137:6+1+13,9+2+14,13+6+13","138:6+1+13,9+1+0,10+1+14,18+1+13","139:5+2+13,9+1+13,10+1+5,11+2+14,18+1+13","140:5+1+13,9+1+13,18+1+13","141:5+1+13,9+1+13,18+1+13","142:5+1+13,7+2+0,9+1+13,18+1+13","143:5+1+13,8+1+0,9+1+13,15+2+0,18+1+13","144:5+1+13,8+1+0,9+1+2,10+1+0,13+1+0,15+1+0,16+1+14,17+2+13","145:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","146:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","147:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","148:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0,17+1+2,18+1+0,20+1+0","149:5+1+13,8+1+0,9+1+13,10+1+0,13+4+0,18+3+0","150:4+1+0,5+1+14,6+3+0,9+1+13,10+1+0,13+1+0,15+6+0","151:4+4+0,9+1+14,10+1+0,13+1+0,15+7+0","152:4+1+0,7+1+0,9+2+0,13+1+0","153:3+5+0,9+2+0,13+1+0","154:9+5+0","159:3+1+0,4+1+2,5+5+0,10+1+2,11+1+0,12+1+1,13+1+13,14+1+1,15+2+0","160:3+1+0,16+1+0","161:3+1+0,16+1+0,19+1+1","162:3+1+2,16+1+0,19+1+1","163:3+2+0,15+2+0,19+1+4","164:3+1+0,16+1+9","165:3+1+0,16+1+0,19+1+2","166:3+1+0,16+1+0,19+1+2","167:3+2+0,14+1+4,15+2+0,19+1+2","168:3+1+0,16+1+0","169:3+1+0","170:3+1+0","171:3+2+0","172:3+1+0","173:3+1+0,19+1+1","174:3+1+1,19+1+9","179:27+1+10","180:6+12+13,27+1+1","181:6+1+13,17+1+13,27+1+1","182:3+4+14,17+4+14,27+1+1","183:3+1+14,20+1+14,27+1+1","184:3+1+14,8+2+0,14+2+0,20+1+14","185:3+1+14,8+2+0,14+1+0,15+1+10,16+4+13,20+1+10,27+1+2","186:3+1+14,8+2+0,14+2+0,20+1+14,27+1+2","187:3+1+14,8+8+0,20+1+14,27+1+2","188:3+4+14,8+6+0,14+1+2,15+1+0,20+1+14","189:3+1+14,8+1+0,9+1+2,10+6+0,20+1+14","190:3+1+14,8+8+0,20+1+2","191:3+1+14,8+2+0,11+2+0,14+2+0,20+1+14","192:3+1+1,9+1+1,14+1+1,20+1+1","193:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","194:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","195:3+1+1,9+1+1,14+1+1,20+1+1,27+1+1","196:3+1+14,8+8+0,20+1+14,27+1+1","197:3+1+14,8+1+0,11+2+0,15+1+0,20+1+14,27+1+1","198:8+8+0,27+1+1","199:8+1+0,9+1+2,10+6+0,27+1+1","200:8+8+0,27+1+1","201:8+8+0","202:8+8+0,27+1+2","203:8+5+0,13+1+2,14+2+0,27+1+2","204:3+1+14,8+1+0,10+4+0,15+1+0,20+1+14","205:3+1+14,8+3+0,13+3+0,20+1+14","206:3+1+1,9+1+1,14+1+1,20+1+1","207:3+1+13,9+1+13,14+1+13,20+1+13","208:3+1+13,9+1+13,14+1+13,20+1+13,27+1+10","209:3+1+1,9+1+1,14+1+1,20+1+1,27+1+4","210:3+1+14,8+8+0,20+1+14,27+1+1","211:3+1+14,8+8+0,20+1+2,27+1+1","212:8+8+0,27+1+1","213:8+8+0,27+1+1","214:8+8+0","215:8+8+0,27+1+2","216:8+8+0,27+1+2","217:8+1+0,9+1+2,10+6+0,27+1+2","218:3+1+10,4+4+13,8+1+10,9+2+0,11+1+2,12+3+0,15+1+10,16+4+13,20+1+10,21+3+13,24+1+10","219:3+1+14,8+8+0,20+1+14,23+2+6","220:23+1+4"],"texts":[[2,2,"Key"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,36,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Tanker"],[5,10,"Locked Door"],[5,18,"Tough Guards"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[7,3,"Trap/Hazard"],[7,10,"Ladder"],[7,18,"Conditional Guard"],[7,26,"Normal"],[8,1,"Aft Deck"],[9,47,"Aft Deck"],[10,3,"Aft Deck"],[11,47,"A"],[11,49,"Deck-A, crew's quarters"],[12,47,"B"],[12,49,"Deck-B, crew's quarters"],[14,47,"1.0"],[14,49,"Garrett Peters"],[15,47,"2.0"],[15,49,"Sunny Hsu"],[16,20,"B"],[16,47,"3.0"],[16,49,"Pablo Masius"],[17,9,"A"],[17,22,"2.0"],[20,7,"1.0"],[23,35,"3.0"],[25,4,"port"],[25,22,"starboard"],[25,29,"port"],[25,42,"starboard"],[29,1,"Deck-A"],[30,28,"Deck-A, crew's Lounge"],[31,8,"10b"],[32,28,"C"],[32,30,"Deck-A, crew's quarters"],[33,28,"D"],[33,30,"Deck-B, crew's quarters"],[34,10,"11.0"],[34,17,"9.0"],[34,28,"E1"],[34,30,"Engine Room"],[35,16,"D"],[35,28,"E2"],[35,30,"Engine Room (Unlocks during a scene when near Semtex in Engine Room)"],[36,20,"C"],[37,10,"Deck-A, crew's Lounge"],[37,28,"9.0"],[37,30,"Jeng L Valencia (Enter from Deck A, Crews Quarters after initial visit)"],[38,28,"10.0"],[38,30,"Seth T Hay (moves to b when entering from Engine Room locked door"],[39,5,"10a"],[39,6,"E2"],[39,22,"E1"],[39,28,"11.0"],[39,30,"Daniel W Dennison"],[45,10,"Deck-A, crew's quarters"],[45,20,"C"],[46,28,"Deck-A, crew's quarters"],[48,9,"A"],[48,28,"A"],[48,30,"Aft Deck"],[49,11,"6b"],[49,17,"6a"],[49,28,"C"],[49,30,"Deck-A, crew's Lounge"],[50,4,"port"],[50,22,"starboard"],[51,28,"6.0"],[51,30,"Daniel Kucan (Patrols a/b depending on entrance to room)"],[54,1,"Deck-B"],[55,22,"Deck-B, crew's quarters"],[56,3,"Deck-B, crew's quarters"],[57,22,"B"],[57,24,"Aft Deck"],[58,12,"7.0"],[58,22,"D"],[58,24,"Deck-A, crew's Lounge"],[59,22,"F"],[59,24,"Deck-C, crew's quarters"],[61,4,"F"],[61,22,"7.0"],[61,24,"Ronan Khim"],[62,13,"D"],[62,19,"B"],[62,22,"8.0"],[62,24,"Masanori Inui"],[66,4,"port"],[66,17,"starboard"],[69,10,"8.0"],[72,1,"Deck-C"],[73,20,"Deck-C, crew's quarters"],[74,3,"Deck-C, crew's quarters"],[75,20,"F"],[75,22,"Deck-B, crew's quarters"],[76,11,"G"],[76,20,"G"],[76,22,"Deck-D, crew's quarters"],[77,20,"1.0"],[77,22,"Security Camera"],[79,3,"F"],[79,6,"1.0"],[79,8,"5.0"],[79,20,"5.0"],[79,22,"James I Bartelle (Patrols after Olga Fight)"],[82,1,"Deck-D"],[83,20,"Deck-D, crew's quarters"],[84,3,"Deck-D, crew's quarters"],[85,20,"G"],[85,22,"Deck-C, crew's quarters"],[86,20,"H"],[86,22,"Deck-E, the bridge"],[87,20,"1.0"],[87,22,"Security Camera"],[88,15,"14.0"],[88,16,"storeroom"],[88,20,"2.0"],[88,22,"Semtex Trap"],[89,11,"G"],[90,6,"13.0"],[90,14,"12b"],[90,20,"12.0"],[90,22,"Flavio Camargos (Patrols a/b depending on entrance to room)"],[91,9,"1.0"],[91,15,"2.0"],[91,20,"13.0"],[91,22,"Brad R Whitefield "],[92,12,"H"],[92,20,"14.0"],[92,22,"James Broome (appears when in Storeroom and tries to leave when exiting storeroom)"],[93,14,"12a"],[97,1,"Deck-E"],[98,28,"Deck-E, the bridge"],[99,3,"Deck-E, the bridge"],[100,28,"G"],[100,30,"Deck-D, crew's quarters"],[101,10,"i1"],[101,18,"i2"],[101,28,"i1"],[101,30,"Navigational Deck, Wing"],[102,16,"H"],[102,28,"i2"],[102,30,"Navigational Deck, Wing"],[106,28,"Navigational Deck, Wing"],[108,30,"Ladder"],[109,28,"i1"],[109,30,"Navigational Deck, Wing"],[110,3,"Navigational Deck, Wing"],[110,28,"i2"],[110,30,"Navigational Deck, Wing"],[111,7,"port"],[111,20,"starboard"],[112,28,"0.0"],[112,30,"Boss - Olga Gurlukovich"],[113,24,"4a"],[113,28,"4.0"],[113,30,"Samuel B Sandovai (Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder)"],[114,5,"0.0"],[114,11,"i1"],[114,17,"i2"],[115,15,"4b"],[120,1,"Engine Room"],[121,24,"Engine Room"],[122,4,"K"],[122,11,"Engine Room"],[123,4,"2.0"],[123,24,"E1"],[123,26,"Deck-A, crew's Lounge"],[124,4,"2.0"],[124,24,"E2"],[124,26,"Deck-A, crew's Lounge (Unlocks during a scene when near Semtex in Engine Room)"],[125,4,"2.0"],[125,24,"J"],[125,26,"Deck 2, Port"],[126,24,"2.0"],[126,26,"Semtex Trap"],[128,24,"18.0"],[128,26,"Marwan Abdullah Alhari"],[129,17,"23.0"],[129,24,"19.0"],[129,26,"Henning Rhoden"],[130,3,"port"],[130,20,"starboard"],[130,24,"20.0"],[130,26,"Marcelo Zamorano"],[131,7,"21.0"],[131,24,"21.0"],[131,26,"Simon F Picard"],[132,5,"E2"],[132,6,"24.0"],[132,19,"E1"],[132,24,"22.0"],[132,26,"Haden K Oneil"],[133,24,"23.0"],[133,26,"Missable - Yuji Higuchi (Missable - will only appear on initial entry to area, and disappear if Snake leaves the Engine Room)"],[134,15,"18.0"],[134,24,"24.0"],[134,26,"Missable - Husain Abdulrazaq Alhasan (Missable - will only appear in a cutscene when approaching IR Sensors. Will Disappear if Snake leaves the Engine Room)"],[139,10,"20.0"],[144,9,"22.0"],[148,17,"19.0"],[157,1,"Deck 2"],[159,4,"16.0"],[159,10,"17.0"],[159,12,"L"],[159,14,"L"],[159,19,"Deck 2, Port"],[161,6,"Deck 2, Port"],[161,19,"K"],[161,21,"Engine Room"],[162,3,"15.0"],[162,19,"L"],[162,21,"Deck 2, Starboard"],[163,19,"M"],[163,21,"Hold No.1 (Automatically enters following Ambush Scene)"],[164,16,"3.0"],[165,19,"15.0"],[165,21,"Hiromasa Watanabe"],[166,19,"16.0"],[166,21,"Kieran Keegan"],[167,14,"M"],[167,19,"17.0"],[167,21,"Hirokazu Takahashi"],[169,12,"Deck 2, Starboard"],[171,19,"Deck 2, Starboard"],[173,19,"L"],[173,21,"Deck 2, Port"],[174,3,"K"],[174,19,"3.0"],[174,21,"Ambush"],[177,1,"Holds 1-3"],[177,27,"Hold No.3"],[179,4,"Hold No.3"],[179,27,"p"],[179,29,"Pole (Downwards only)"],[180,27,"O1"],[180,29,"Hold No.2 (Upper Walkway, Port)"],[181,27,"O2"],[181,29,"Hold No.2 (Port)"],[182,27,"O3"],[182,29,"Hold No.2 (Starboard)"],[183,27,"O4"],[183,29,"Hold No.2 (Upper Walkway, Starboard)"],[185,15,"p"],[185,20,"p"],[185,27,"30.0"],[185,29,"David D Crumpler"],[186,11,"Ray"],[186,27,"31.0"],[186,29,"Joao E Martins"],[187,27,"32.0"],[187,29,"Mika A Taavela"],[188,14,"31.0"],[189,9,"32.0"],[190,20,"30.0"],[191,27,"Hold No.2"],[192,3,"O1"],[192,9,"O2"],[192,14,"O3"],[192,20,"O4"],[193,27,"N1"],[193,29,"Hold No.1 (Upper Walkway, Port)"],[194,5,"Hold No.2"],[194,27,"N2"],[194,29,"Hold No.1 (Port)"],[195,3,"O1"],[195,9,"O2"],[195,14,"O3"],[195,20,"O4"],[195,27,"N3"],[195,29,"Hold No.1 (Starboard)"],[196,27,"N4"],[196,29,"Hold No.1 (Upper Walkway, Starboard)"],[197,27,"O1"],[197,29,"Hold No.3 (Upper Walkway, Port)"],[198,27,"O2"],[198,29,"Hold No.3 (Port)"],[199,9,"28.0"],[199,27,"O3"],[199,29,"Hold No.3 (Starboard)"],[200,27,"O4"],[200,29,"Hold No.3 (Upper Walkway, Starboard)"],[202,27,"28.0"],[202,29,"Christopher G Hercus"],[203,13,"29.0"],[203,27,"29.0"],[203,29,"Tamohiro Katoh"],[206,3,"N1"],[206,9,"N2"],[206,14,"N3"],[206,20,"N4"],[206,27,"Hold No.1"],[208,5,"Hold No.1"],[208,27,"L"],[208,29,"Ladder"],[209,3,"N1"],[209,9,"N2"],[209,14,"N3"],[209,20,"N4"],[209,27,"M"],[209,29,"Deck 2, Starboard (Cannot Re-enter)"],[210,27,"N1"],[210,29,"Hold No.2 (Upper Walkway, Port)"],[211,20,"25.0"],[211,27,"N2"],[211,29,"Hold No.2 (Port)"],[212,27,"N3"],[212,29,"Hold No.2 (Starboard)"],[213,27,"N4"],[213,29,"Hold No.2 (Upper Walkway, Starboard)"],[215,27,"25.0"],[215,29,"Ivan E Saldarriaga"],[216,27,"26.0"],[216,29,"Kenzi Tanda"],[217,9,"27.0"],[217,27,"27.0"],[217,29,"Robert R Bruce"],[218,3,"L"],[218,8,"L"],[218,11,"26.0"],[218,15,"L"],[218,20,"L"],[218,24,"L"],[220,23,"M"]],"merges":[[4,3,6,7],[7,3,7,7],[7,10,7,15],[7,18,7,23],[88,16,91,16],[3,36,6,53],[4,10,4,15],[4,18,4,23],[5,10,5,15],[5,18,5,23],[6,10,6,15],[6,18,6,23]],"widths":{"1":[75,2.63]},"heights":{}},{"chapter":"Tanker","difficulty":"Hard","r0":2,"r1":220,"c0":1,"c1":49,"palette":["FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF76A5AF","FF00FFFF","FF00FF00","FFD9D2E9","FFCFE2F3","FFB7B7B7"],"fills":["4:2+1+0,9+1+1,17+1+2","5:2+1+3,9+1+4,17+1+5","6:2+1+6,9+1+7,17+1+8","7:2+1+9,9+1+10,17+1+11","10:21+21+12","11:21+1+12,41+1+12,47+1+1","12:7+25+13,41+1+12","13:7+1+13,21+1+12,31+1+13,41+1+12","14:3+2+0,5+2+14,7+1+6,21+1+6,22+2+14,24+2+0,28+2+6,31+1+13,41+1+12,43+2+6,47+1+2","15:4+1+0,5+3+14,21+3+14,24+1+0,28+1+6,29+1+14,30+2+13,41+2+12,43+1+14,44+1+6,47+1+2","16:4+2+0,6+2+14,8+1+7,20+1+7,21+2+14,23+2+0,28+2+6,43+2+6,47+1+2","17:5+1+0,6+2+14,9+1+1,19+1+7,21+1+14,22+1+2,23+1+0,28+5+6,40+5+6","18:5+2+0,7+1+14,8+2+0,19+2+0,21+1+14,22+2+0,29+2+6,32+1+6,40+1+6,42+2+6","19:6+4+0,19+4+0,30+3+6,40+3+6","20:6+1+0,7+1+2,8+2+14,19+2+14,21+2+0,32+1+6,40+1+6","21:7+1+0,8+2+14,19+2+14,21+1+0,32+1+6,40+1+6","22:7+2+0,9+2+14,18+2+14,20+2+0,32+9+6","23:8+3+0,18+3+0,33+2+6,35+1+2,36+4+6","24:9+11+0","25:10+9+0","26:11+7+0","31:7+1+14,8+1+2,9+13+14","32:7+15+14,28+1+1","33:5+2+13,7+1+0,8+13+14,21+1+0,22+2+13,28+1+1","34:5+1+13,7+3+14,10+1+5,11+6+14,17+1+2,18+4+14,23+1+13,28+1+1","35:5+1+13,7+2+14,12+1+7,13+1+6,14+1+14,15+1+6,16+1+1,20+2+14,23+1+13,28+1+4","36:5+1+13,8+1+7,20+1+1,23+1+13","37:5+1+14,20+1+13,23+1+14,28+1+2","38:4+2+0,20+1+13,23+2+0,28+1+2","39:4+1+0,5+1+2,6+1+4,20+1+13,22+1+1,23+2+0,28+1+5","40:20+1+13","41:20+1+13","42:20+1+13","43:20+1+13","44:20+1+13","45:8+1+7,20+1+1","46:8+1+14,20+1+14","47:8+4+14,17+4+14","48:9+1+1,11+1+14,17+1+14,19+1+7,28+1+1","49:11+1+2,12+5+14,17+1+2,28+1+1","50:11+7+14","51:11+7+14,28+1+2","58:8+4+0,12+1+2,13+2+0,22+1+1","59:4+5+0,14+5+0,22+1+1","60:4+2+0,8+1+0,14+1+0,17+2+0","61:4+1+1,5+1+0,8+1+0,14+1+0,17+1+0,18+1+7,22+1+2","62:3+1+7,4+2+0,8+1+0,9+1+7,13+1+1,14+1+0,17+2+0,19+1+7,22+1+2","63:7+2+0,14+2+0","64:7+1+0,15+1+0","65:7+1+0,15+1+0","66:7+1+0,15+1+0","67:7+2+0,14+2+0","68:8+1+0,12+3+0","69:8+2+0,10+1+2,11+4+0","75:20+1+1","76:9+2+0,11+1+1,20+1+1","77:3+2+0,9+3+0,16+2+0,20+1+9","78:3+2+0,9+3+0,16+1+0,17+1+7","79:3+1+1,4+2+0,6+1+9,7+1+0,8+1+11,9+9+0,20+1+11","85:20+1+1","86:20+1+1","87:3+9+0,15+3+0,20+1+9","88:3+9+0,15+1+11,16+2+0,20+1+9","89:3+8+0,11+1+1,15+1+2,17+1+0","90:3+3+0,6+1+2,7+7+0,14+1+2,15+1+0,17+1+0,20+1+2","91:3+6+0,9+1+9,15+1+9,17+1+0,20+1+2","92:3+7+0,12+1+1,15+3+0,20+1+2","93:3+11+0,14+1+2,15+1+0,20+1+11","99:11+7+0","100:11+7+0,28+1+1","101:10+1+1,11+7+0,18+1+1,28+1+1","102:10+1+13,16+1+1,18+1+13,28+1+1","103:10+1+13,18+1+13","104:10+1+13,18+1+13","105:10+2+13,17+2+13","106:11+1+13,17+1+13","107:11+1+13,17+1+13","108:11+1+13,17+1+13,28+1+10","109:11+1+13,17+1+13,28+1+1","110:11+1+13,17+1+13,28+1+1","111:11+7+14","112:11+2+14,13+3+6,16+2+14,28+1+8","113:3+8+0,11+2+14,13+1+6,14+1+14,15+1+6,16+2+14,18+6+0,24+1+11,25+1+0,28+1+11","114:3+2+0,5+1+8,6+5+0,11+1+1,12+1+14,13+1+6,14+1+10,15+1+6,16+1+14,17+1+1,18+8+0","115:6+6+0,12+3+14,15+1+11,16+1+14,17+6+0","116:8+7+0,15+2+14,17+4+0","117:11+7+0","122:4+1+1","123:4+1+9,24+1+1","124:4+1+9,24+1+4","125:4+1+9,24+1+1","126:4+3+6,18+3+6,24+1+9","127:4+3+6,18+3+6","128:6+1+6,10+1+14,18+1+6,24+1+2","129:6+2+6,10+1+14,15+2+14,17+1+11,18+1+6,24+1+2","130:6+2+6,8+3+14,15+2+14,17+2+6,24+1+2","131:6+1+6,7+1+2,8+1+14,10+1+14,13+2+13,15+1+14,16+1+0,17+2+6,24+1+2","132:4+1+14,5+1+4,6+1+11,7+1+6,8+1+14,10+1+14,13+1+13,15+2+14,17+2+6,19+1+1,20+1+14,24+1+5","133:4+1+14,5+3+6,8+1+14,10+1+14,13+1+13,15+2+14,17+1+6,18+3+14,24+1+11,25+1+5","134:4+5+14,10+1+14,13+1+13,15+1+2,16+5+14,24+1+11,25+1+5","135:4+5+14,10+1+14,13+1+13,15+6+14","136:5+1+14,6+1+0,10+1+14,13+1+13","137:6+1+13,9+2+14,13+6+13","138:6+1+13,9+1+0,10+1+14,18+1+13","139:5+2+13,9+1+13,10+1+2,11+2+14,18+1+13","140:5+1+13,9+1+13,18+1+13","141:5+1+13,9+1+13,18+1+13","142:5+1+13,7+2+0,9+1+13,18+1+13","143:5+1+13,8+1+0,9+1+13,15+2+0,18+1+13","144:5+1+13,8+1+0,9+1+5,10+1+0,13+1+0,15+1+0,16+1+14,17+2+13","145:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","146:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","147:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","148:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0,17+1+2,18+1+0,20+1+0","149:5+1+13,8+1+0,9+1+13,10+1+0,13+4+0,18+3+0","150:4+1+0,5+1+14,6+3+0,9+1+13,10+1+0,13+1+0,15+6+0","151:4+4+0,9+1+14,10+1+0,13+1+0,15+7+0","152:4+1+0,7+1+0,9+2+0,13+1+0","153:3+5+0,9+2+0,13+1+0","154:9+5+0","159:3+1+0,4+1+2,5+5+0,10+1+2,11+1+0,12+1+1,13+1+13,14+1+1,15+2+0","160:3+1+0,16+1+0","161:3+1+0,16+1+0,19+1+1","162:3+1+2,16+1+0,19+1+1","163:3+2+0,15+2+0,19+1+4","164:3+1+0,16+1+9","165:3+1+0,16+1+0,19+1+2","166:3+1+0,16+1+0,19+1+2","167:3+2+0,14+1+4,15+2+0,19+1+2","168:3+1+0,16+1+0","169:3+1+0","170:3+1+0","171:3+2+0","172:3+1+0","173:3+1+0,19+1+1","174:3+1+1,19+1+9","179:27+1+10","180:6+12+13,27+1+1","181:6+1+13,17+1+13,27+1+1","182:3+4+14,17+4+14,27+1+1","183:3+1+14,20+1+14,27+1+1","184:3+1+14,8+2+0,14+2+0,20+1+14","185:3+1+14,8+2+0,14+1+0,15+1+10,16+4+13,20+1+10,27+1+2","186:3+1+14,8+2+0,14+2+0,20+1+14,27+1+2","187:3+1+14,8+6+0,14+1+2,15+1+0,20+1+14,27+1+2","188:3+4+14,8+4+0,12+1+2,13+3+0,20+1+14,27+1+2","189:3+1+14,8+1+0,9+1+2,10+6+0,20+1+14","190:3+1+14,8+8+0,20+1+2","191:3+1+14,8+2+0,11+2+0,14+2+0,20+1+14","192:3+1+1,9+1+1,14+1+1,20+1+1","193:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","194:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","195:3+1+1,9+1+1,14+1+1,20+1+1,27+1+1","196:3+1+14,8+8+0,20+1+14,27+1+1","197:3+1+14,8+1+0,11+2+0,15+1+0,20+1+14,27+1+1","198:8+6+0,14+1+2,15+1+0,27+1+1","199:8+1+0,9+1+2,10+6+0,27+1+1","200:8+8+0,27+1+1","201:8+8+0","202:8+8+0,27+1+2","203:8+8+0,27+1+2","204:3+1+14,8+1+0,10+4+0,15+1+0,20+1+14","205:3+1+14,8+3+0,13+3+0,20+1+14","206:3+1+1,9+1+1,14+1+1,20+1+1","207:3+1+13,9+1+13,14+1+13,20+1+13","208:3+1+13,9+1+13,14+1+13,20+1+13,27+1+10","209:3+1+1,9+1+1,14+1+1,20+1+1,27+1+4","210:3+1+14,8+8+0,20+1+14,27+1+1","211:3+1+14,8+8+0,20+1+2,27+1+1","212:8+1+0,9+1+2,10+6+0,27+1+1","213:8+8+0,27+1+1","214:8+8+0","215:8+8+0,27+1+2","216:8+8+0,27+1+2","217:8+1+0,9+1+2,10+6+0,27+1+2","218:3+1+10,4+4+13,8+1+10,9+6+0,15+1+10,16+4+13,20+1+10,21+3+13,24+1+10","219:3+1+14,8+8+0,20+1+14,23+2+6","220:23+1+4"],"texts":[[2,2,"Key"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,36,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Tanker"],[5,10,"Locked Door"],[5,18,"Tough Guards"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[7,3,"Trap/Hazard"],[7,10,"Ladder"],[7,18,"Conditional Guard"],[7,26,"Hard"],[8,1,"Aft Deck"],[9,47,"Aft Deck"],[10,3,"Aft Deck"],[11,47,"A"],[11,49,"Deck-A, crew's quarters"],[14,47,"1.0"],[14,49,"Pawel Adamczyk"],[15,47,"2.0"],[15,49,"Jonathan S Wilson"],[16,47,"3.0"],[16,49,"Peter A Sattaur"],[17,9,"A"],[17,22,"2.0"],[20,7,"1.0"],[23,35,"3.0"],[25,4,"port"],[25,22,"starboard"],[25,29,"port"],[25,42,"starboard"],[29,1,"Deck-A"],[30,28,"Deck-A, crew's Lounge"],[31,8,"10b"],[32,28,"C"],[32,30,"Deck-A, crew's quarters"],[33,28,"D"],[33,30,"Deck-B, crew's quarters"],[34,10,"11.0"],[34,17,"9.0"],[34,28,"E1"],[34,30,"Engine Room"],[35,16,"D"],[35,28,"E2"],[35,30,"Engine Room (Unlocks during a scene when near Semtex in Engine Room)"],[36,20,"C"],[37,10,"Deck-A, crew's Lounge"],[37,28,"9.0"],[37,30,"Mahde M Mansur"],[38,28,"10.0"],[38,30,"Sauzando Aran (moves to b when entering from Engine Room locked door)"],[39,5,"10a"],[39,6,"E2"],[39,22,"E1"],[39,28,"11.0"],[39,30,"Kouhei Yoshizumi"],[45,10,"Deck-A, crew's quarters"],[45,20,"C"],[46,28,"Deck-A, crew's quarters"],[48,9,"A"],[48,28,"A"],[48,30,"Aft Deck"],[49,11,"6b"],[49,17,"6a"],[49,28,"C"],[49,30,"Deck-A, crew's Lounge"],[50,4,"port"],[50,22,"starboard"],[51,28,"6.0"],[51,30,"Dex J Delfrate (Patrols a/b depending on entrance to room)"],[54,1,"Deck-B"],[55,22,"Deck-B, crew's quarters"],[56,3,"Deck-B, crew's quarters"],[58,12,"7.0"],[58,22,"D"],[58,24,"Deck-A, crew's Lounge"],[59,22,"F"],[59,24,"Deck-C, crew's quarters"],[61,4,"F"],[61,22,"7.0"],[61,24,"Joseph R Larger"],[62,13,"D"],[62,22,"8.0"],[62,24,"Kouji Takemoto"],[66,4,"port"],[66,17,"starboard"],[69,10,"8.0"],[72,1,"Deck-C"],[73,20,"Deck-C, crew's quarters"],[74,3,"Deck-C, crew's quarters"],[75,20,"F"],[75,22,"Deck-B, crew's quarters"],[76,11,"G"],[76,20,"G"],[76,22,"Deck-D, crew's quarters"],[77,20,"1.0"],[77,22,"Security Camera"],[79,3,"F"],[79,6,"1.0"],[79,8,"5.0"],[79,20,"5.0"],[79,22,"Johan Hana (Patrols after Olga Fight)"],[82,1,"Deck-D"],[83,20,"Deck-D, crew's quarters"],[84,3,"Deck-D, crew's quarters"],[85,20,"G"],[85,22,"Deck-C, crew's quarters"],[86,20,"H"],[86,22,"Deck-E, the bridge"],[87,20,"1.0"],[87,22,"Security Camera"],[88,15,"15.0"],[88,16,"storeroom"],[88,20,"2.0"],[88,22,"Semtex Trap"],[89,11,"G"],[89,15,"13.0"],[90,6,"14.0"],[90,14,"12b"],[90,20,"12.0"],[90,22,"Hidetosi Suzuki (Patrols a/b depending on entrance to room)"],[91,9,"1.0"],[91,15,"2.0"],[91,20,"13.0"],[91,22,"Joelmir Mazon "],[92,12,"H"],[92,20,"14.0"],[92,22,"Michiel A Hendriksen "],[93,14,"12a"],[93,20,"15.0"],[93,22,"Masahiro Takahashi (appears when in Storeroom and tries to leave when exiting storeroom)"],[97,1,"Deck-E"],[98,28,"Deck-E, the bridge"],[99,3,"Deck-E, the bridge"],[100,28,"G"],[100,30,"Deck-D, crew's quarters"],[101,10,"i1"],[101,18,"i2"],[101,28,"i1"],[101,30,"Navigational Deck, Wing"],[102,16,"H"],[102,28,"i2"],[102,30,"Navigational Deck, Wing"],[106,28,"Navigational Deck, Wing"],[108,30,"Ladder"],[109,28,"i1"],[109,30,"Navigational Deck, Wing"],[110,3,"Navigational Deck, Wing"],[110,28,"i2"],[110,30,"Navigational Deck, Wing"],[111,7,"port"],[111,20,"starboard"],[112,28,"0.0"],[112,30,"Boss - Olga Gurlukovich"],[113,24,"4a"],[113,28,"4.0"],[113,30,"Ako Kudou (Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder)"],[114,5,"0.0"],[114,11,"i1"],[114,17,"i2"],[115,15,"4b"],[120,1,"Engine Room"],[121,24,"Engine Room"],[122,4,"K"],[122,11,"Engine Room"],[123,4,"2.0"],[123,24,"E1"],[123,26,"Deck-A, crew's Lounge"],[124,4,"2.0"],[124,24,"E2"],[124,26,"Deck-A, crew's Lounge (Unlocks during a scene when near Semtex in Engine Room)"],[125,4,"2.0"],[125,24,"J"],[125,26,"Deck 2, Port"],[126,24,"2.0"],[126,26,"Semtex Trap"],[128,24,"19.0"],[128,26,"Manabu Nishiyama"],[129,17,"24.0"],[129,24,"20.0"],[129,26,"David Heng Liu"],[130,3,"port"],[130,20,"starboard"],[130,24,"21.0"],[130,26,"Wei Zhang"],[131,7,"22.0"],[131,24,"22.0"],[131,26,"Han Tao "],[132,5,"E2"],[132,6,"25.0"],[132,19,"E1"],[132,24,"23.0"],[132,26,"Takashi Shiohama"],[133,24,"24.0"],[133,26,"Missable - James C Layton (Missable - will only appear on initial entry to area, and disappear if Snake leaves the Engine Room)"],[134,15,"19.0"],[134,24,"25.0"],[134,26,"Missable - Jesus Auron Noatsuna (Missable - will only appear in a cutscene when approaching IR Sensors. Will Disappear if Snake leaves the Engine Room)"],[139,10,"21.0"],[144,9,"23.0"],[148,17,"20.0"],[157,1,"Deck 2"],[159,4,"17.0"],[159,10,"18.0"],[159,12,"L"],[159,14,"L"],[159,19,"Deck 2, Port"],[161,6,"Deck 2, Port"],[161,19,"K"],[161,21,"Engine Room"],[162,3,"16.0"],[162,19,"L"],[162,21,"Deck 2, Starboard"],[163,19,"M"],[163,21,"Hold No.1 (Automatically enters following Ambush Scene)"],[164,16,"3.0"],[165,19,"15.0"],[165,21,"Christopher C Osterwald"],[166,19,"16.0"],[166,21,"Lee Seung Min"],[167,14,"M"],[167,19,"17.0"],[167,21,"TSZ TING"],[169,12,"Deck 2, Starboard"],[171,19,"Deck 2, Starboard"],[173,19,"L"],[173,21,"Deck 2, Port"],[174,3,"K"],[174,19,"3.0"],[174,21,"Ambush"],[177,1,"Holds 1-3"],[177,27,"Hold No.3"],[179,4,"Hold No.3"],[179,27,"p"],[179,29,"Pole (Downwards only)"],[180,27,"O1"],[180,29,"Hold No.2 (Upper Walkway, Port)"],[181,27,"O2"],[181,29,"Hold No.2 (Port)"],[182,27,"O3"],[182,29,"Hold No.2 (Starboard)"],[183,27,"O4"],[183,29,"Hold No.2 (Upper Walkway, Starboard)"],[185,15,"p"],[185,20,"p"],[185,27,"31.0"],[185,29,"Ali Karar"],[186,11,"Ray"],[186,27,"32.0"],[186,29,"Benjamin Phoon"],[187,14,"32.0"],[187,27,"33.0"],[187,29,"Jason L Hines"],[188,12,"34.0"],[188,27,"34.0"],[188,29,"Kurt W Bartholomew"],[189,9,"33.0"],[190,20,"31.0"],[191,27,"Hold No.2"],[192,3,"O1"],[192,9,"O2"],[192,14,"O3"],[192,20,"O4"],[193,27,"N1"],[193,29,"Hold No.1 (Upper Walkway, Port)"],[194,5,"Hold No.2"],[194,27,"N2"],[194,29,"Hold No.1 (Port)"],[195,3,"O1"],[195,9,"O2"],[195,14,"O3"],[195,20,"O4"],[195,27,"N3"],[195,29,"Hold No.1 (Starboard)"],[196,27,"N4"],[196,29,"Hold No.1 (Upper Walkway, Starboard)"],[197,27,"O1"],[197,29,"Hold No.3 (Upper Walkway, Port)"],[198,14,"30.0"],[198,27,"O2"],[198,29,"Hold No.3 (Port)"],[199,9,"29.0"],[199,27,"O3"],[199,29,"Hold No.3 (Starboard)"],[200,27,"O4"],[200,29,"Hold No.3 (Upper Walkway, Starboard)"],[202,27,"29.0"],[202,29,"Asif A Ali"],[203,27,"30.0"],[203,29,"Tatsumi Mizuguchi"],[206,3,"N1"],[206,9,"N2"],[206,14,"N3"],[206,20,"N4"],[206,27,"Hold No.1"],[208,5,"Hold No.1"],[208,27,"L"],[208,29,"Ladder"],[209,3,"N1"],[209,9,"N2"],[209,14,"N3"],[209,20,"N4"],[209,27,"M"],[209,29,"Deck 2, Starboard (Cannot Re-enter)"],[210,27,"N1"],[210,29,"Hold No.2 (Upper Walkway, Port)"],[211,20,"26.0"],[211,27,"N2"],[211,29,"Hold No.2 (Port)"],[212,9,"28.0"],[212,27,"N3"],[212,29,"Hold No.2 (Starboard)"],[213,27,"N4"],[213,29,"Hold No.2 (Upper Walkway, Starboard)"],[215,27,"26.0"],[215,29,"Ha Su Jung"],[216,27,"27.0"],[216,29,"Minako Nakazawa"],[217,9,"27.0"],[217,27,"28.0"],[217,29,"Kel M Booker"],[218,3,"L"],[218,8,"L"],[218,15,"L"],[218,20,"L"],[218,24,"L"],[220,23,"M"]],"merges":[[4,3,6,7],[7,3,7,7],[7,10,7,15],[7,18,7,23],[88,16,91,16],[3,36,6,53],[4,10,4,15],[4,18,4,23],[5,10,5,15],[5,18,5,23],[6,10,6,15],[6,18,6,23]],"widths":{"1":[75,2.63]},"heights":{}},{"chapter":"Tanker","difficulty":"Extreme","r0":2,"r1":220,"c0":1,"c1":49,"palette":["FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF76A5AF","FF00FFFF","FF00FF00","FFD9D2E9","FFCFE2F3","FFB7B7B7"],"fills":["4:2+1+0,9+1+1,17+1+2","5:2+1+3,9+1+4,17+1+5","6:2+1+6,9+1+7,17+1+8","7:2+1+9,9+1+10,17+1+11","10:21+21+12","11:21+1+12,41+1+12,47+1+1","12:7+25+13,41+1+12","13:7+1+13,21+1+12,31+1+13,41+1+12","14:3+2+0,5+2+14,7+1+6,21+1+6,22+2+14,24+2+0,28+2+6,31+1+13,41+1+12,43+2+6,47+1+5","15:4+1+0,5+3+14,21+3+14,24+1+0,28+1+6,29+1+14,30+2+13,41+2+12,43+1+14,44+1+6,47+1+5","16:4+2+0,6+2+14,8+1+7,20+1+7,21+2+14,23+2+0,28+2+6,43+2+6,47+1+2","17:5+1+0,6+2+14,9+1+1,19+1+7,21+1+14,22+1+5,23+1+0,28+5+6,40+5+6","18:5+2+0,7+1+14,8+2+0,19+2+0,21+1+14,22+2+0,29+2+6,32+1+6,40+1+6,42+2+6","19:6+4+0,19+4+0,30+3+6,40+3+6","20:6+1+0,7+1+5,8+2+14,19+2+14,21+2+0,32+1+6,40+1+6","21:7+1+0,8+2+14,19+2+14,21+1+0,32+1+6,40+1+6","22:7+2+0,9+2+14,18+2+14,20+2+0,32+9+6","23:8+3+0,18+3+0,33+2+6,35+1+2,36+4+6","24:9+11+0","25:10+9+0","26:11+7+0","31:7+1+14,8+1+2,9+13+14","32:7+15+14,28+1+1","33:5+2+13,7+1+0,8+13+14,21+1+0,22+2+13,28+1+1","34:5+1+13,7+3+14,10+1+2,11+6+14,17+1+2,18+4+14,23+1+13,28+1+1","35:5+1+13,7+2+14,12+1+7,13+1+6,14+1+14,15+1+6,16+1+1,20+2+14,23+1+13,28+1+4","36:5+1+13,8+1+7,20+1+1,23+1+13","37:5+1+14,20+1+13,23+1+14,28+1+2","38:4+2+0,20+1+13,23+2+0,28+1+2","39:4+1+0,5+1+2,6+1+4,20+1+13,22+1+1,23+2+0,28+1+2","40:20+1+13","41:20+1+13","42:20+1+13","43:20+1+13","44:20+1+13","45:8+1+7,20+1+1","46:8+1+14,20+1+14","47:8+4+14,17+4+14","48:9+1+1,11+1+14,17+1+14,19+1+7,28+1+1","49:11+7+14,28+1+1","50:11+7+14","51:11+3+14,14+1+2,15+3+14,28+1+2","58:8+4+0,12+1+2,13+2+0,22+1+1","59:4+5+0,14+5+0,22+1+1","60:4+2+0,8+1+0,14+1+0,17+2+0","61:4+1+1,5+1+0,8+1+0,14+1+0,17+1+0,18+1+7,22+1+2","62:3+1+7,4+2+0,8+1+0,9+1+7,13+1+1,14+1+0,17+2+0,19+1+7,22+1+2","63:7+2+0,14+2+0","64:7+1+0,15+1+0","65:7+1+0,15+1+0","66:7+1+0,15+1+0","67:7+2+0,14+2+0","68:8+1+0,12+3+0","69:8+2+0,10+1+2,11+4+0","75:20+1+1","76:9+2+0,11+1+1,20+1+1","77:3+2+0,9+3+0,16+2+0,20+1+9","78:3+2+0,9+3+0,16+1+0,17+1+7","79:3+1+1,4+2+0,6+1+9,7+1+0,8+1+11,9+9+0,20+1+11","85:20+1+1","86:20+1+1","87:3+9+0,15+3+0,20+1+9","88:3+9+0,15+1+11,16+2+0,20+1+9","89:3+8+0,11+1+1,15+1+2,17+1+0","90:3+3+0,6+1+5,7+7+0,14+1+2,15+1+0,17+1+0,20+1+2","91:3+6+0,9+1+9,15+1+9,17+1+0,20+1+2","92:3+7+0,12+1+1,15+3+0,20+1+5","93:3+11+0,14+1+2,15+1+0,20+1+2","99:11+7+0","100:11+7+0,28+1+1","101:10+1+1,11+7+0,18+1+1,28+1+1","102:10+1+13,16+1+1,18+1+13,28+1+1","103:10+1+13,18+1+13","104:10+1+13,18+1+13","105:10+2+13,17+2+13","106:11+1+13,17+1+13","107:11+1+13,17+1+13","108:11+1+13,17+1+13,28+1+10","109:11+1+13,17+1+13,28+1+1","110:11+1+13,17+1+13,28+1+1","111:11+7+14","112:11+2+14,13+3+6,16+2+14,28+1+8","113:3+8+0,11+2+14,13+1+6,14+1+14,15+1+6,16+2+14,18+6+0,24+1+11,25+1+0,28+1+11,29+1+5","114:3+2+0,5+1+8,6+5+0,11+1+1,12+1+14,13+1+6,14+1+10,15+1+6,16+1+14,17+1+1,18+8+0","115:6+6+0,12+3+14,15+1+11,16+1+14,17+6+0","116:8+7+0,15+2+14,17+4+0","117:11+7+0","122:4+1+1","123:4+1+9,24+1+1","124:4+1+9,24+1+4","125:4+1+9,24+1+1","126:4+3+6,18+3+6,24+1+9","127:4+3+6,18+3+6","128:6+1+6,10+1+14,18+1+6,24+1+2","129:6+2+6,10+1+14,15+2+14,17+1+11,18+1+6,24+1+2","130:6+2+6,8+3+14,15+2+14,17+2+6,24+1+2","131:6+1+6,7+1+2,8+1+14,10+1+14,13+2+13,15+1+14,16+1+0,17+2+6,24+1+2","132:4+1+14,5+1+4,6+1+11,7+1+6,8+1+14,10+1+14,13+1+13,15+2+14,17+2+6,19+1+1,20+1+14,24+1+2","133:4+1+14,5+3+6,8+1+14,10+1+14,13+1+13,15+2+14,17+1+6,18+3+14,24+1+11","134:4+5+14,10+1+14,13+1+13,15+1+2,16+5+14,24+1+11,25+1+5","135:4+5+14,10+1+14,13+1+13,15+6+14","136:5+1+14,6+1+0,10+1+14,13+1+13","137:6+1+13,9+2+14,13+6+13","138:6+1+13,9+1+0,10+1+14,18+1+13","139:5+2+13,9+1+13,10+1+2,11+2+14,18+1+13","140:5+1+13,9+1+13,18+1+13","141:5+1+13,9+1+13,18+1+13","142:5+1+13,7+2+0,9+1+13,18+1+13","143:5+1+13,8+1+0,9+1+13,15+2+0,18+1+13","144:5+1+13,8+1+0,9+1+2,10+1+0,13+1+0,15+1+0,16+1+14,17+2+13","145:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","146:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","147:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0","148:5+1+13,8+1+0,9+1+13,10+1+0,13+1+0,15+2+0,17+1+2,18+1+0,20+1+0","149:5+1+13,8+1+0,9+1+13,10+1+0,13+4+0,18+3+0","150:4+1+0,5+1+14,6+3+0,9+1+13,10+1+0,13+1+0,15+6+0","151:4+4+0,9+1+14,10+1+0,13+1+0,15+7+0","152:4+1+0,7+1+0,9+2+0,13+1+0","153:3+5+0,9+2+0,13+1+0","154:9+5+0","159:3+1+0,4+1+2,5+5+0,10+1+2,11+1+0,12+1+1,13+1+13,14+1+1,15+2+0","160:3+1+0,16+1+0","161:3+1+0,16+1+0,19+1+1","162:3+1+2,16+1+0,19+1+1","163:3+2+0,15+2+0,19+1+4","164:3+1+0,16+1+9","165:3+1+0,16+1+0,19+1+2","166:3+1+0,16+1+0,19+1+2","167:3+2+0,14+1+4,15+2+0,19+1+2","168:3+1+0,16+1+0","169:3+1+0","170:3+1+0","171:3+2+0","172:3+1+0","173:3+1+0,19+1+1","174:3+1+1,19+1+9","179:27+1+10","180:6+12+13,27+1+1","181:6+1+13,17+1+13,27+1+1","182:3+4+14,17+4+14,27+1+1","183:3+1+14,20+1+14,27+1+1","184:3+1+14,8+2+0,14+2+0,20+1+14","185:3+1+14,8+2+0,14+1+0,15+1+10,16+4+13,20+1+10,27+1+2","186:3+1+14,8+2+0,14+2+0,20+1+14,27+1+2","187:3+1+14,8+8+0,20+1+14,27+1+2","188:3+4+14,8+4+0,12+1+2,13+3+0,20+1+14,27+1+2","189:3+1+14,8+1+0,9+1+2,10+4+0,14+1+2,15+1+0,20+1+14","190:3+1+14,8+8+0,20+1+2","191:3+1+14,8+2+0,11+2+0,14+2+0,20+1+14","192:3+1+1,9+1+1,14+1+1,20+1+1","193:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","194:3+1+13,9+1+13,14+1+13,20+1+13,27+1+1","195:3+1+1,9+1+1,14+1+1,20+1+1,27+1+1","196:3+1+14,8+8+0,20+1+14,27+1+1","197:3+1+14,8+1+0,11+2+0,15+1+0,20+1+14,27+1+1","198:8+6+0,14+1+2,15+1+0,27+1+1","199:8+1+0,9+1+2,10+6+0,27+1+1","200:8+8+0,27+1+1","201:8+8+0","202:8+8+0,27+1+2","203:8+8+0,27+1+2","204:3+1+14,8+1+0,10+4+0,15+1+0,20+1+14","205:3+1+14,8+3+0,13+3+0,20+1+14","206:3+1+1,9+1+1,14+1+1,20+1+1","207:3+1+13,9+1+13,14+1+13,20+1+13","208:3+1+13,9+1+13,14+1+13,20+1+13,27+1+10","209:3+1+1,9+1+1,14+1+1,20+1+1,27+1+4","210:3+1+14,8+8+0,20+1+14,27+1+1","211:3+1+14,8+8+0,20+1+2,27+1+1","212:8+8+0,27+1+1","213:8+8+0,27+1+1","214:8+1+0,9+1+2,10+6+0","215:8+8+0,27+1+2","216:8+8+0,27+1+2","217:8+8+0","218:3+1+10,4+4+13,8+1+10,9+6+0,15+1+10,16+4+13,20+1+10,21+3+13,24+1+10","219:3+1+14,8+8+0,20+1+14,23+2+6","220:23+1+4"],"texts":[[2,2,"Key"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,36,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Tanker"],[5,10,"Locked Door"],[5,18,"Tough Guards"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[7,3,"Trap/Hazard"],[7,10,"Ladder"],[7,18,"Conditional Guard"],[7,26,"Extreme"],[8,1,"Aft Deck"],[9,47,"Aft Deck"],[10,3,"Aft Deck"],[11,47,"A"],[11,49,"Deck-A, crew's quarters"],[14,47,"1.0"],[14,49,"Isao Miyamoto"],[15,47,"2.0"],[15,49,"Matt Holt"],[16,47,"3.0"],[16,49,"Patrick James Torrence"],[17,9,"A"],[17,22,"2.0"],[20,7,"1.0"],[23,35,"3.0"],[25,4,"port"],[25,22,"starboard"],[25,29,"port"],[25,42,"starboard"],[29,1,"Deck-A"],[30,28,"Deck-A, crew's Lounge"],[31,8,"10b"],[32,28,"C"],[32,30,"Deck-A, crew's quarters"],[33,28,"D"],[33,30,"Deck-B, crew's quarters"],[34,10,"11.0"],[34,17,"9.0"],[34,28,"E1"],[34,30,"Engine Room"],[35,16,"D"],[35,28,"E2"],[35,30,"Engine Room (Unlocks during a scene when near Semtex in Engine Room)"],[36,20,"C"],[37,10,"Deck-A, crew's Lounge"],[37,28,"9.0"],[37,30,"Bruce Murphy (Enter from Deck A, Crews Quarters after initial visit)"],[38,28,"10.0"],[38,30,"Patrick F Coley (moves to b when entering from Engine Room locked door)"],[39,5,"10a"],[39,6,"E2"],[39,22,"E1"],[39,28,"11.0"],[39,30,"Patrouillault Celine"],[45,10,"Deck-A, crew's quarters"],[45,20,"C"],[46,28,"Deck-A, crew's quarters"],[48,9,"A"],[48,28,"A"],[48,30,"Aft Deck"],[49,28,"C"],[49,30,"Deck-A, crew's Lounge"],[50,4,"port"],[50,22,"starboard"],[51,14,"6.0"],[51,28,"6.0"],[51,30,"Alexandra Rattay"],[54,1,"Deck-B"],[55,22,"Deck-B, crew's quarters"],[56,3,"Deck-B, crew's quarters"],[58,12,"7.0"],[58,22,"D"],[58,24,"Deck-A, crew's Lounge"],[59,22,"F"],[59,24,"Deck-C, crew's quarters"],[61,4,"F"],[61,22,"7.0"],[61,24,"Enrike Vargas Suarez"],[62,13,"D"],[62,22,"8.0"],[62,24,"Akihito Oshima"],[66,4,"port"],[66,17,"starboard"],[69,10,"8.0"],[72,1,"Deck-C"],[73,20,"Deck-C, crew's quarters"],[74,3,"Deck-C, crew's quarters"],[75,20,"F"],[75,22,"Deck-B, crew's quarters"],[76,11,"G"],[76,20,"G"],[76,22,"Deck-D, crew's quarters"],[77,20,"1.0"],[77,22,"Security Camera"],[79,3,"F"],[79,6,"1.0"],[79,8,"5.0"],[79,20,"5.0"],[79,22,"Adam Christopher Vazquez (Patrols after Olga Fight)"],[82,1,"Deck-D"],[83,20,"Deck-D, crew's quarters"],[84,3,"Deck-D, crew's quarters"],[85,20,"G"],[85,22,"Deck-C, crew's quarters"],[86,20,"H"],[86,22,"Deck-E, the bridge"],[87,20,"1.0"],[87,22,"Security Camera"],[88,15,"15.0"],[88,16,"storeroom"],[88,20,"2.0"],[88,22,"Semtex Trap"],[89,11,"G"],[89,15,"13.0"],[90,6,"14.0"],[90,14,"12b"],[90,20,"12.0"],[90,22,"Andre Perron (Patrols a/b depending on entrance to room)"],[91,9,"1.0"],[91,15,"2.0"],[91,20,"13.0"],[91,22,"Matthew M Wilcox"],[92,12,"H"],[92,20,"14.0"],[92,22,"Miyaji Masayuki"],[93,14,"12a"],[93,20,"15.0"],[93,22,"Guyver M Scott"],[95,22,"(appears when in Storeroom and tries to leave when exiting storeroom)"],[97,1,"Deck-E"],[98,28,"Deck-E, the bridge"],[99,3,"Deck-E, the bridge"],[100,28,"G"],[100,30,"Deck-D, crew's quarters"],[101,10,"i1"],[101,18,"i2"],[101,28,"i1"],[101,30,"Navigational Deck, Wing"],[102,16,"H"],[102,28,"i2"],[102,30,"Navigational Deck, Wing"],[106,28,"Navigational Deck, Wing"],[108,30,"Ladder"],[109,28,"i1"],[109,30,"Navigational Deck, Wing"],[110,3,"Navigational Deck, Wing"],[110,28,"i2"],[110,30,"Navigational Deck, Wing"],[111,7,"port"],[111,20,"starboard"],[112,28,"0.0"],[112,30,"Boss - Olga Gurlukovich"],[113,24,"4a"],[113,28,"4.0"],[113,30,"Malcolm W Bullmore (Appears when approaching starboard side. Will Patrol 4b if Snake climbs Ladder)"],[114,5,"0.0"],[114,11,"i1"],[114,17,"i2"],[115,15,"4b"],[120,1,"Engine Room"],[121,24,"Engine Room"],[122,4,"K"],[122,11,"Engine Room"],[123,4,"2.0"],[123,24,"E1"],[123,26,"Deck-A, crew's Lounge"],[124,4,"2.0"],[124,24,"E2"],[124,26,"Deck-A, crew's Lounge (Unlocks during a scene when near Semtex in Engine Room)"],[125,4,"2.0"],[125,24,"J"],[125,26,"Deck 2, Port"],[126,24,"2.0"],[126,26,"Semtex Trap"],[128,24,"19.0"],[128,26,"Yuji Gotoh"],[129,17,"24.0"],[129,24,"20.0"],[129,26,"Tomi S Hakulinen"],[130,3,"port"],[130,20,"starboard"],[130,24,"21.0"],[130,26,"Suneel Buggal"],[131,7,"22.0"],[131,24,"22.0"],[131,26,"Anibal Rodriguez"],[132,5,"E2"],[132,6,"25.0"],[132,19,"E1"],[132,24,"23.0"],[132,26,"Fahim Mumin"],[133,24,"24.0"],[133,26,"Missable - Nicholas A Kowalcyk (Missable - will only appear on initial entry to area, and disappear if Snake leaves the Engine Room)"],[134,15,"19.0"],[134,24,"25.0"],[134,26,"Missable - Adam M Conrad (Missable - will only appear in a cutscene when approaching IR Sensors. Will Disappear if Snake leaves the Engine Room)"],[139,10,"21.0"],[144,9,"23.0"],[148,17,"20.0"],[157,1,"Deck 2"],[159,4,"17.0"],[159,10,"18.0"],[159,12,"L"],[159,14,"L"],[159,19,"Deck 2, Port"],[161,6,"Deck 2, Port"],[161,19,"K"],[161,21,"Engine Room"],[162,3,"16.0"],[162,19,"L"],[162,21,"Deck 2, Starboard"],[163,19,"M"],[163,21,"Hold No.1 (Automatically enters following Ambush Scene)"],[164,16,"3.0"],[165,19,"15.0"],[165,21,"Devin P McCourt"],[166,19,"16.0"],[166,21,"Takahiro Hanaoka"],[167,14,"M"],[167,19,"17.0"],[167,21,"JinagXi Konglong"],[169,12,"Deck 2, Starboard"],[171,19,"Deck 2, Starboard"],[173,19,"L"],[173,21,"Deck 2, Port"],[174,3,"K"],[174,19,"3.0"],[174,21,"Ambush"],[177,1,"Holds 1-3"],[177,27,"Hold No.3"],[179,4,"Hold No.3"],[179,27,"p"],[179,29,"Pole (Downwards only)"],[180,27,"O1"],[180,29,"Hold No.2 (Upper Walkway, Port)"],[181,27,"O2"],[181,29,"Hold No.2 (Port)"],[182,27,"O3"],[182,29,"Hold No.2 (Starboard)"],[183,27,"O4"],[183,29,"Hold No.2 (Upper Walkway, Starboard)"],[185,15,"p"],[185,20,"p"],[185,27,"30.0"],[185,29,"Landon F Hilde"],[186,11,"Ray"],[186,27,"31.0"],[186,29,"Jeremy J Drake"],[187,27,"32.0"],[187,29,"Fred A Thiele"],[188,12,"33.0"],[188,27,"33.0"],[188,29,"Nagisa Kase"],[189,9,"32.0"],[189,14,"31.0"],[190,20,"30.0"],[191,27,"Hold No.2"],[192,3,"O1"],[192,9,"O2"],[192,14,"O3"],[192,20,"O4"],[193,27,"N1"],[193,29,"Hold No.1 (Upper Walkway, Port)"],[194,5,"Hold No.2"],[194,27,"N2"],[194,29,"Hold No.1 (Port)"],[195,3,"O1"],[195,9,"O2"],[195,14,"O3"],[195,20,"O4"],[195,27,"N3"],[195,29,"Hold No.1 (Starboard)"],[196,27,"N4"],[196,29,"Hold No.1 (Upper Walkway, Starboard)"],[197,27,"O1"],[197,29,"Hold No.3 (Upper Walkway, Port)"],[198,14,"29.0"],[198,27,"O2"],[198,29,"Hold No.3 (Port)"],[199,9,"28.0"],[199,27,"O3"],[199,29,"Hold No.3 (Starboard)"],[200,27,"O4"],[200,29,"Hold No.3 (Upper Walkway, Starboard)"],[202,27,"28.0"],[202,29,"Daisuke mercury Shimada"],[203,27,"29.0"],[203,29,"Phil A Marchant"],[206,3,"N1"],[206,9,"N2"],[206,14,"N3"],[206,20,"N4"],[206,27,"Hold No.1"],[208,5,"Hold No.1"],[208,27,"L"],[208,29,"Ladder"],[209,3,"N1"],[209,9,"N2"],[209,14,"N3"],[209,20,"N4"],[209,27,"M"],[209,29,"Deck 2, Starboard (Cannot Re-enter)"],[210,27,"N1"],[210,29,"Hold No.2 (Upper Walkway, Port)"],[211,20,"26.0"],[211,27,"N2"],[211,29,"Hold No.2 (Port)"],[212,27,"N3"],[212,29,"Hold No.2 (Starboard)"],[213,27,"N4"],[213,29,"Hold No.2 (Upper Walkway, Starboard)"],[214,9,"27.0"],[215,27,"26.0"],[215,29,"David Oh"],[216,27,"27.0"],[216,29,"Shinichi Furusho"],[218,3,"L"],[218,8,"L"],[218,15,"L"],[218,20,"L"],[218,24,"L"],[220,23,"M"]],"merges":[[4,3,6,7],[7,3,7,7],[7,10,7,15],[7,18,7,23],[88,16,91,16],[3,36,6,53],[4,10,4,15],[4,18,4,23],[5,10,5,15],[5,18,5,23],[6,10,6,15],[6,18,6,23]],"widths":{"1":[75,2.63]},"heights":{}},{"chapter":"Plant","difficulty":"Very Easy","r0":1,"r1":132,"c0":1,"c1":71,"palette":["FF76A5AF","FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF00FFFF","FF00FF00","FFD9EAD3","FFFFF2CC","FFB7B7B7","FFCFE2F3","FFD9D2E9","FF666666","FFEAD1DC"],"fills":["2:32+1+0,41+1+0","3:32+1+0,41+1+0","4:2+1+1,9+1+2,17+1+3,32+1+0,41+1+0","5:2+1+4,9+1+5,17+1+6,32+1+0,41+1+0","6:2+1+7,9+1+8,17+1+9,32+1+0,41+1+0","7:2+1+0,9+1+10,17+1+11","9:2+49+12,52+19+13","10:2+1+3,19+1+3,36+1+3,53+1+11","11:2+1+3,19+1+11,36+1+3,53+1+3","12:2+1+3,19+1+3,36+1+3,53+1+3","13:2+1+3,19+1+3,36+1+3,53+1+6","14:2+1+3,19+1+3,36+1+6,53+1+3","15:2+1+11,19+1+11,36+1+3,53+1+3","16:2+1+11,19+1+3,36+1+3","17:2+1+3,19+1+11,20+1+6,36+1+3","18:2+1+3,19+1+3,36+1+3,53+1+9","19:2+1+11,19+1+6,36+1+3","20:2+1+3,19+1+3,36+1+6","21:2+1+6,19+1+3","23:1+71+12","26:25+1+14,26+1+1,27+3+14,49+2+14","27:24+4+14,28+1+3,29+2+14,49+1+11,50+1+14,53+2+14,60+10+1","28:23+2+14,26+1+15,30+2+14,50+4+14,60+5+1,65+1+0,66+4+1","29:22+2+14,26+1+15,31+2+14,50+1+14,53+2+14,60+3+1,63+1+9,64+6+1","30:22+1+14,26+1+15,32+1+12,50+1+1,54+1+5,60+10+1","31:22+1+0,26+1+15,32+1+14,34+4+14,40+4+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","32:22+1+14,26+1+15,32+1+14,33+1+2,34+2+14,37+1+3,38+3+14,43+1+11,44+5+14,50+1+15,60+4+1,64+1+6,65+5+1","33:26+1+15,35+1+14,36+1+1,44+1+14,45+1+1,48+1+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","34:26+1+15,36+1+15,45+1+15,50+1+15,60+10+1","35:26+1+15,36+1+15,45+1+15,50+1+15,60+6+1,67+1+1,69+1+1","36:26+1+15,27+1+2,36+1+15,45+1+15,50+1+15,60+10+1","37:25+1+1,26+1+14,27+3+1,36+1+15,45+1+15,49+2+15,60+8+1,69+1+1","38:24+7+1,36+1+15,45+1+15,49+1+15,60+10+1","39:3+1+12,4+4+1,23+2+1,27+1+1,30+2+1,36+1+15,45+1+15,49+1+15,63+1+15,64+1+14,65+1+1","40:3+1+1,4+1+3,5+3+1,22+2+1,27+1+1,31+2+1,36+1+15,45+1+15,49+1+15,63+1+15","41:3+6+1,9+1+2,10+1+1,22+2+1,26+3+1,31+2+1,36+1+15,45+1+15,47+1+0,48+1+1,49+1+2,50+5+1,55+1+12,63+1+15","42:3+6+1,10+4+1,14+1+3,15+3+1,18+1+11,19+1+1,20+1+0,22+5+1,28+5+1,34+10+1,44+1+3,45+4+1,49+1+15,50+1+1,55+1+1,60+1+14,63+1+15","43:3+2+1,5+1+6,6+1+0,7+1+1,11+2+14,13+2+0,15+1+14,16+2+0,18+2+14,20+1+1,21+1+2,22+2+1,26+1+1,27+1+3,28+1+1,31+2+1,33+1+2,34+1+1,36+1+15,37+1+1,45+1+15,46+1+1,49+1+15,50+8+1,60+1+3,63+1+15","44:3+5+1,11+3+1,17+3+1,22+2+1,31+2+1,36+1+14,37+1+1,45+1+14,46+1+1,49+1+15,50+1+1,55+1+1,56+1+2,57+1+1,60+1+14,63+3+15,68+1+2,69+1+14","45:4+3+1,49+1+15,50+2+1,53+1+3,54+4+1,60+1+14,65+1+15,69+1+14","46:4+3+1,49+1+14,50+1+1,53+1+1,55+1+1,60+2+14,65+1+15,68+2+14","47:4+2+1,19+1+10,20+19+15,39+1+10,49+2+1,52+2+1,55+1+1,61+2+14,65+1+15,67+2+14","48:5+1+2,15+1+3,16+6+1,28+1+15,35+9+1,49+2+1,55+1+1,62+6+14","49:5+1+16,15+2+1,17+1+3,18+1+6,28+1+15,35+1+1,43+1+1,50+7+1,64+1+1,65+1+15","50:5+1+16,15+4+1,19+1+5,28+1+15,35+7+14,42+1+6,43+1+14,56+1+2","51:5+1+16,15+4+1,28+1+15,36+3+14,40+1+14,41+1+12,42+1+14,56+1+16","52:5+1+16,28+1+15,36+4+14,40+1+3,41+2+14,56+1+2","53:5+1+16,28+1+15,36+1+14,38+1+14,40+3+14,53+4+1","54:5+1+16,28+1+15,36+1+14,38+1+3,40+1+14,42+1+14,53+1+1,55+1+0","55:5+1+16,28+1+10,36+1+14,38+2+14,40+1+3,42+1+14,53+1+1","56:5+1+2,27+3+1,36+7+14,51+1+0,52+4+1","57:5+2+1,24+4+1,28+1+3,29+4+1,51+1+1,53+1+1,55+1+1","58:6+1+1,24+1+1,32+1+1,51+1+0,52+1+1,53+1+0,54+2+1","59:6+1+11,24+1+1,32+1+3,43+1+1,44+6+0,50+2+1,52+1+0,53+3+1","60:6+2+1,13+1+1,14+1+8,15+6+16,21+1+8,22+2+1,24+1+3,32+3+1,35+1+2,36+6+16,42+1+2,43+1+1,51+2+1,53+1+0,54+1+1,55+1+0","61:6+1+1,24+1+1,26+5+1,32+1+1,51+1+1,53+1+1,55+1+1","62:6+1+1,24+1+1,26+5+1,32+1+0,51+2+1,53+1+0,54+2+1","63:5+2+1,24+9+1,53+1+1","64:5+1+2,53+1+1","65:5+1+16,53+3+1","66:27+3+1,55+1+2","67:25+2+0,27+1+1,28+1+10,29+1+1,30+2+0,55+1+16","68:5+1+16,23+2+15,25+1+2,26+5+1,31+1+2,32+2+15,55+1+16,59+11+15","69:5+1+2,23+1+15,25+2+1,28+1+1,30+2+1,33+1+15,55+1+16,59+1+15,69+1+15","70:5+2+1,23+1+15,26+2+1,28+1+3,29+2+1,33+1+15,55+1+2,59+1+15,62+7+14,69+1+15","71:5+1+1,6+1+0,7+1+1,8+2+14,23+1+15,33+1+15,52+5+1,59+1+15,62+7+14,69+1+15","72:5+2+1,8+2+14,23+1+15,33+1+15,49+3+1,52+1+3,53+4+1,59+1+15,62+7+14,69+1+1","73:5+4+1,9+1+14,23+1+15,33+1+15,49+7+1,56+1+14,57+3+15,62+3+14,66+2+14,69+1+14","74:5+2+1,8+1+1,9+1+14,23+3+15,31+3+15,50+7+1,64+6+14","75:5+1+1,6+1+3,7+2+1,9+1+14,25+1+2,31+1+2,48+3+1,54+3+1,62+1+0,64+1+14,65+1+3,67+1+14","76:5+1+3,6+1+1,8+1+1,9+1+14,20+1+1,21+1+2,22+3+16,25+1+1,26+1+2,30+1+2,31+1+1,32+2+16,34+1+2,35+1+1,48+3+1,54+3+1,64+2+14,67+3+14","77:5+4+1,9+1+14,13+4+1,17+1+11,18+1+1,20+1+1,25+1+1,26+3+14,29+1+12,30+1+14,31+1+1,35+1+1,48+9+1,61+8+14","78:5+2+1,7+1+12,8+2+14,11+3+1,18+3+1,25+3+14,28+1+3,29+3+14,35+12+1,47+1+2,48+1+16,49+6+1,55+1+15,56+5+16,61+1+2,62+1+12,63+5+14","79:5+3+1,8+2+14,11+1+1,13+1+1,14+1+11,15+4+1,24+9+14,35+2+14,37+1+1,38+6+14,44+1+1,45+1+14,46+1+1,47+1+14,49+6+1,55+1+15,62+5+14","80:5+5+1,10+1+2,11+1+1,25+7+14,37+1+3,38+1+1,39+1+14,42+1+14,43+1+1,44+1+3,46+1+1,47+1+2,48+8+1,62+4+14,68+1+14","81:25+1+14,26+5+17,31+1+14,62+3+14,66+3+14","82:25+1+14,26+2+17,28+1+0,29+2+17,31+1+14,62+1+15,68+1+15","83:25+5+14,30+1+3,31+1+14,36+1+10,62+7+15","84:36+1+2","85:10+1+18,36+1+2","86:36+1+2","87:36+1+2","88:28+1+10,36+1+2","89:26+5+1,36+1+2","90:26+5+1,36+1+2","91:26+1+3,27+5+1,36+1+2","92:26+1+1,30+1+3,31+1+1,36+1+2","93:25+2+1,28+1+1,30+1+1,36+1+2","94:22+9+1,36+1+2","95:22+1+1,25+7+1,36+1+2","96:22+1+1,36+1+2","97:18+7+1,36+1+2","98:18+7+1,36+1+2","99:18+7+1,36+1+2","100:18+7+1,36+1+10","101:18+2+1,21+1+0,23+2+1,36+1+5","102:18+7+1,36+1+5","103:36+1+12","106:1+71+13","109:11+1+10,31+1+8","110:7+1+1,10+3+1,14+1+1,31+1+1","111:7+8+1,31+1+1,33+1+1","112:7+1+1,8+1+12,9+6+1,31+1+1,33+1+1","113:7+1+1,8+1+6,9+6+1,31+1+1,32+1+11,33+1+1","114:7+1+1,10+3+1,13+2+0,15+1+1,31+1+1,33+1+1","115:7+1+1,15+1+1,23+9+1,33+1+1","116:3+1+8,4+4+1,8+1+0,15+1+3,16+2+1,18+1+2,19+3+16,22+1+2,23+1+1,31+1+1,33+1+1","117:7+1+1,8+1+0,9+1+1,11+6+1,31+1+0,33+1+1","118:6+4+1,11+1+1,13+4+1,31+1+1,33+1+1","119:6+7+1,13+1+3,14+3+1,31+1+1,33+1+1","120:30+2+1,33+1+1","121:13+1+18,30+1+2","122:30+1+16","123:30+1+16","124:30+1+16","125:30+1+2","126:5+1+2,29+4+1,33+1+8","127:5+1+2,31+1+1","128:5+1+10,31+1+1","129:5+1+5,30+1+3,31+1+1","130:5+1+12,30+1+1","131:30+1+3,31+1+1","132:31+1+5"],"texts":[[1,2,"Key"],[1,32,"Hazard Key"],[1,56,"Note: Connecting Bridges may also contain Cyphers of Varying Types"],[2,32,"1.0"],[2,33,"Sec Camera"],[2,41,"6.0"],[2,42,"Electrical Flooring"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,32,"2.0"],[3,33,"Gun Camera"],[3,41,"7.0"],[3,42,"Fatman Bomb"],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Plant"],[4,32,"3.0"],[4,33,"Pitfall"],[4,41,"8.0"],[4,42,"Sec Camera (After Coolent Spray)"],[4,53,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[5,10,"Locked Door"],[5,18,"Tough Guards"],[5,32,"4.0"],[5,33,"Claymore"],[5,41,"9.0"],[5,42,"Fire (During Emma Escort)"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[6,32,"5.0"],[6,33,"Claymore (After Fortune)"],[6,41,"10.0"],[6,42,"Guard with Binoculars"],[7,3,"Trap/Hazard"],[7,10,"Ladder / Lift"],[7,18,"Conditional Guard"],[7,26,"Very Easy"],[8,2,"Guards Key"],[9,2,"Shell 1 Area"],[9,52,"Shell 2 Area"],[10,2,"1.0"],[10,4,"Brad I Lanning (Missable)"],[10,19,"13.0"],[10,21,"Marques Dean"],[10,36,"25.0"],[10,38,"Daniel P Wells (Patrols a/b depending on entry)"],[10,53,"36.0"],[10,55,"Neill W Perry (Appears during Emma Escort)"],[11,2,"2.0"],[11,4,"Charles P Pinkerton (Missable)"],[11,19,"14.0"],[11,21,"Kevin M Miller (After Fatman)"],[11,36,"26.0"],[11,38,"David Anthony Wilson"],[11,53,"37.0"],[11,55,"Robert W Goodenow III"],[12,2,"3.0"],[12,4,"Jason M Gillispie"],[12,19,"15.0"],[12,21,"Mathias Ellemann Jensen"],[12,36,"27.0"],[12,38,"Jasper A Hefko"],[12,53,"38.0"],[12,55,"Mathias Buntrock"],[13,2,"4.0"],[13,4,"Samuel Andi Hendranata"],[13,19,"16.0"],[13,21,"Christian Ryan De Ramos"],[13,36,"28.0"],[13,38,"Steven L Harper"],[13,53,"39.0"],[13,55,"Andrei V Galinski"],[14,2,"5.0"],[14,4,"Yasuhiro Matsuzaki"],[14,19,"17.0"],[14,21,"Derek Broadbent (moves to [b] after Fatman)"],[14,36,"29.0"],[14,38,"Yasuhiko Nakamura"],[14,53,"40.0"],[14,55,"Naoki Inoue"],[15,2,"6.0"],[15,4,"Artthapong Siriamonthep (Potentially missable)"],[15,19,"18.0"],[15,21,"Till Schlegel (After Fatman)"],[15,36,"30.0"],[15,38,"Chris Escobar"],[15,53,"41.0"],[15,55,"Hiu Fung Wong"],[16,2,"7.0"],[16,4,"Amadeus Knothe (Potentially missable)"],[16,19,"19.0"],[16,21,"Nana Mizuki"],[16,36,"31.0"],[16,38,"Elliott I Kugler"],[17,2,"8.0"],[17,4,"Bob Fu"],[17,19,"20.0"],[17,21,"Csaba Millei (After Emma Escort)"],[17,36,"32.0"],[17,38,"Mai Ohta"],[18,2,"9.0"],[18,4,"Yasuo Suzuki"],[18,19,"21.0"],[18,21,"Jordan J Davis"],[18,36,"33.0"],[18,38,"Roth W Lanphear"],[18,53,"42.0"],[18,55,"Peter Stillman (Fatman Boss)"],[19,2,"10.0"],[19,4,"Yiqiang Yao (After Fatman)"],[19,19,"22.0"],[19,21,"Luke Christian Roberts"],[19,36,"34.0"],[19,38,"Cheng exs Cheng"],[20,2,"11.0"],[20,4,"Vanessa E Mejia"],[20,19,"23.0"],[20,21,"Sinya Tusunoda"],[20,36,"35.0"],[20,38,"Liam P Slater"],[20,53,"0.0"],[20,55,"Iroquois Pliskin (Snake) - Within Arsenal Gear"],[21,2,"12.0"],[21,4,"Anthony J Willreign Supreme"],[21,19,"24.0"],[21,21,"Asia R Pickle"],[23,1,"Shell 1"],[24,21,"B1"],[24,22,"Strut D, Sediment Pool"],[24,50,"B1"],[24,51,"Strut E, Parcel Room"],[25,65,"L3"],[25,66,"Strut E, Roof"],[27,28,"16.0"],[27,49,"20.0"],[28,65,"7.0"],[29,37,"B1"],[29,38,"DE Connecting Bridge"],[29,63,"42.0"],[30,32,"n"],[30,54,"O2"],[31,22,"7.0"],[32,33,"D2b"],[32,37,"17b"],[32,43,"18.0"],[32,64,"22.0"],[34,21,"L1"],[34,22,"Strut D, Sediment Pool"],[36,27,"D3"],[37,3,"Strut C, Dining Hall"],[39,3,"n"],[39,50,"L1"],[39,51,"Strut E, Parcel Room"],[40,4,"11.0"],[40,12,"CD Connecting Bridge"],[40,37,"L1"],[40,38,"DE Connecting Bridge"],[41,9,"C2"],[41,47,"10.0"],[41,49,"E1"],[41,55,"n"],[42,14,"13.0"],[42,18,"14.0"],[42,20,"1.0"],[42,44,"17a"],[42,65,"L2"],[42,66,"Strut E, Roof"],[43,5,"12.0"],[43,6,"7.0"],[43,13,"3.0"],[43,14,"3.0"],[43,16,"3.0"],[43,17,"3.0"],[43,21,"D1"],[43,27,"15.0"],[43,33,"D2a"],[43,60,"21.0"],[44,56,"E3"],[44,68,"E3"],[45,53,"19.0"],[46,16,"Shell 1, B1"],[46,34,"Shell 1, B2 Computer Room"],[47,19,"S1"],[47,39,"S1"],[48,5,"C1"],[48,15,"30.0"],[49,17,"31.0"],[49,18,"29.0"],[50,19,"x"],[50,42,"35.0"],[50,56,"E2"],[51,41,"n"],[52,40,"32.0"],[52,56,"E2"],[54,38,"33.0"],[54,55,"10.0"],[55,28,"S1"],[55,40,"34.0"],[56,5,"C1"],[56,51,"4.0"],[57,28,"28.0"],[58,8,"BC Connecting Bridge"],[58,51,"4.0"],[58,53,"4.0"],[59,6,"10.0"],[59,26,"Shell 1, Core"],[59,32,"27.0"],[59,44,"3.0"],[59,45,"3.0"],[59,46,"3.0"],[59,47,"3.0"],[59,48,"3.0"],[59,49,"3.0"],[59,52,"4.0"],[60,24,"26.0"],[60,35,"S1"],[60,42,"S1"],[60,53,"4.0"],[60,55,"4.0"],[62,32,"1.0"],[62,43,"EF Connecting Bridge"],[62,53,"4.0"],[64,5,"B2"],[66,55,"F1"],[67,25,"5.0"],[67,26,"5.0"],[67,28,"A1"],[67,30,"5.0"],[67,31,"5.0"],[68,25,"A2a"],[68,31,"A2b"],[69,5,"B2"],[69,47,"L1"],[69,48,"Strut F, Warehouse"],[69,60,"B1"],[69,61,"Strut F, Warehouse"],[70,28,"3.0"],[70,55,"F1"],[71,6,"7.0"],[72,25,"Strut A, Roof"],[72,52,"23.0"],[75,6,"8.0"],[75,12,"AB Connecting Bridge"],[75,25,"A2a"],[75,31,"A2b"],[75,62,"7.0"],[75,65,"24.0"],[76,5,"9.0"],[76,21,"A3"],[76,26,"A3"],[76,30,"A4"],[76,34,"A4"],[76,37,"FA Connecting Bridge"],[77,17,"7.0"],[77,29,"n"],[78,7,"n"],[78,28,"4.0"],[78,47,"F2b"],[78,61,"F2b"],[78,62,"n"],[79,14,"6.0"],[80,10,"B1"],[80,37,"25a"],[80,44,"25b"],[80,47,"F2a"],[82,3,"Strut B, Transformer Room"],[82,28,"7.0"],[82,36,"Door/Lift/Map (Area Transition) Key"],[83,30,"5.0"],[83,36,"A1"],[83,37,"Lift: Strut A, Pump Facility / Strut A, Roof"],[84,36,"A2"],[84,37,"Strut A, Roof / Strut A, Pump Room (a=Left, b=Right)"],[85,10,"Note: Strut L Perimeter, and Shell 1-2 Connecting Bridge maps not shown as no Dog Tags in that area. Arsenal Gear Map not shown as no Dog Tags in that area. (other than Snakes)"],[85,25,"Strut A, Pump Room"],[85,36,"A3"],[85,37,"Strut A, Pump Room / AB Connecting Bridge"],[86,36,"A4"],[86,37,"Strut A, Pump Room / FA Connecting Bridge"],[87,36,"B1"],[87,37,"Strut B, Transformer Room / AB Connecting Bridge"],[88,28,"A1"],[88,36,"B2"],[88,37,"Strut B, Transformer Room / BC Connecting Bridge"],[89,36,"C1"],[89,37,"Strut C, Dining Hall / BC Connecting Bridge"],[90,36,"C2"],[90,37,"Strut C, Dining Hall / CD Connecting Bridge"],[91,26,"1.0"],[91,36,"D1"],[91,37,"Strut D, Sediment Pool / CD Connecting Bridge"],[92,30,"2.0"],[92,36,"D2"],[92,37,"Strut D, Sediment Pool / DE Connecting Bridge (a=Upper, b=Lower Level)"],[93,36,"D3"],[93,37,"Strut D, Sediment Pool / Shell 1-2 Connecting Bridge"],[94,36,"E1"],[94,37,"Strut E, Parcel Room / DE Connecting Bridge"],[95,36,"E2"],[95,37,"Strut E, Parcel Room / EF Connecting Bridge"],[96,36,"E3"],[96,37,"Strut E, Parcel Room / Strut E, Roof"],[97,26,"Strut A, Pump Facility"],[97,36,"F1"],[97,37,"Strut F, Warehouse / EF Connecting Bridge"],[98,36,"F2"],[98,37,"Strut F, Warehouse / FA Connecting Bridge"],[99,36,"S1"],[99,37,"Shell 1, Core / EF Connecting Bridge"],[100,36,"S1"],[100,37,"Lift: Shell 1, Core / Shell 1, B1 / Shell 1, B2 Computer Room"],[101,21,"7.0"],[101,36,"O2"],[101,37,"Ladder: Oil Bridge"],[102,36,"x"],[102,37,"Shell 1, B1 / Hostage Area"],[103,36,"n"],[103,37,"Node"],[106,1,"Shell 2"],[108,3,"Shell 2, Core"],[109,11,"S2"],[111,23,"KL Connecting Bridge"],[112,8,"n"],[113,8,"39.0"],[113,32,"36.0"],[114,13,"6.0"],[114,14,"6.0"],[116,8,"2.0"],[116,15,"41.0"],[116,18,"S2"],[116,22,"S2"],[117,8,"2.0"],[117,31,"9.0"],[119,13,"40.0"],[121,13,"Note: Shell 2, B2 Map not shown as no Dog Tags on that level."],[121,30,"L1"],[123,23,"Strut L, Sewage Treatment Facility"],[125,5,"Door/Lift/Map (Area Transition) Key"],[125,30,"L1"],[126,5,"L1"],[126,6,"Strut L, Sewage Treatment Facility / KL Connecting Bridge"],[127,5,"S2"],[127,6,"Shell 2, Core / KL Connecting Bridge"],[128,5,"S2"],[128,6,"Lift: Shell 2, Core / Shell 2, B1"],[129,5,"O1"],[129,6,"Ladder: Oil Bridge"],[129,30,"38.0"],[130,5,"n"],[130,6,"Node"],[131,30,"37.0"],[132,31,"O1"]],"merges":[[5,18,5,23],[6,18,6,23],[6,10,6,15],[7,10,7,15],[85,10,90,18],[121,13,123,19],[1,56,2,67],[4,3,6,7],[4,10,4,15],[4,18,4,23],[4,53,7,70],[5,10,5,15],[7,3,7,7],[7,18,7,23]],"widths":{"1":[71,2.63]},"heights":{}},{"chapter":"Plant","difficulty":"Easy","r0":1,"r1":133,"c0":1,"c1":71,"palette":["FF76A5AF","FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF00FFFF","FF00FF00","FFD9EAD3","FFFFF2CC","FFB7B7B7","FFCFE2F3","FFD9D2E9","FF666666","FFEAD1DC"],"fills":["2:32+1+0,41+1+0","3:32+1+0,41+1+0","4:2+1+1,9+1+2,17+1+3,32+1+0,41+1+0","5:2+1+4,9+1+5,17+1+6,32+1+0,41+1+0","6:2+1+7,9+1+8,17+1+9,32+1+0,41+1+0","7:2+1+0,9+1+10,17+1+11","9:2+49+12,52+19+13","10:2+1+3,19+1+11,36+1+3,53+1+3","11:2+1+3,19+1+6,36+1+3,53+1+3","12:2+1+3,19+1+6,36+1+3,53+1+3","13:2+1+3,19+1+3,36+1+3,53+1+3","14:2+1+11,19+1+11,36+1+3,53+1+3","15:2+1+11,19+1+3,36+1+3,53+1+3","16:2+1+11,19+1+11,36+1+3","17:2+1+3,19+1+3,36+1+6","18:2+1+6,19+1+3,36+1+3,53+1+9","19:2+1+11,19+1+6,36+1+6","20:2+1+3,19+1+6","21:2+1+3,19+1+3","22:2+1+3,19+1+6","24:1+71+12","27:25+1+14,26+1+1,27+3+14,49+2+14","28:24+1+14,25+1+6,26+5+14,49+2+14,53+2+14,60+10+1","29:23+2+14,26+1+15,30+2+14,50+4+14,60+6+1,66+1+0,67+3+1","30:22+2+14,26+1+15,31+2+14,50+1+14,53+2+14,60+3+1,63+1+9,64+6+1","31:22+1+14,26+1+15,32+1+12,50+1+1,54+1+5,60+10+1","32:22+1+0,26+1+15,32+1+14,34+2+14,36+1+3,37+1+14,40+4+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","33:22+1+14,26+1+15,32+1+14,33+1+2,34+2+14,37+4+14,43+1+14,44+1+11,45+4+14,50+1+15,60+2+1,62+1+3,63+7+1","34:26+1+15,35+1+14,36+1+1,44+1+14,45+1+1,48+1+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","35:26+1+15,36+1+15,45+1+15,50+1+15,60+10+1","36:26+1+15,36+1+15,45+1+15,50+1+15,60+6+1,67+1+1,69+1+1","37:26+1+15,27+1+2,36+1+15,45+1+15,50+1+15,60+10+1","38:25+1+1,26+1+14,27+3+1,36+1+15,45+1+15,49+2+15,60+8+1,69+1+1","39:24+7+1,36+1+15,45+1+15,49+1+15,60+10+1","40:3+1+12,4+4+1,23+2+1,27+1+1,30+2+1,36+1+15,45+1+15,49+1+15,63+1+15,64+1+14,65+1+1","41:3+5+1,22+2+1,27+1+1,31+2+1,36+1+15,45+1+15,49+1+15,63+1+15","42:3+6+1,9+1+2,10+1+1,22+2+1,26+3+1,31+2+1,36+1+15,45+1+15,47+1+0,48+1+1,49+1+2,50+5+1,55+1+12,63+1+15","43:3+1+1,4+1+3,5+1+1,6+1+3,7+2+1,10+6+1,16+1+11,17+3+1,20+1+0,22+5+1,28+5+1,34+10+1,44+1+3,45+4+1,49+1+15,50+1+1,55+1+1,60+1+14,63+1+15","44:3+3+1,6+1+0,7+1+1,11+2+14,13+2+0,15+1+14,16+2+0,18+2+14,20+1+1,21+1+2,22+2+1,26+1+6,27+2+1,31+2+1,33+1+2,34+1+1,36+1+15,37+1+1,45+1+15,46+1+1,49+1+15,50+8+1,60+1+3,63+1+15","45:3+5+1,11+2+1,13+1+3,17+3+1,22+2+1,31+2+1,36+1+14,37+1+1,45+1+14,46+1+1,49+1+15,50+1+1,55+1+1,56+1+2,57+1+1,60+1+14,63+3+15,68+1+2,69+1+14","46:4+3+1,49+1+15,50+2+1,53+1+11,54+4+1,60+1+14,65+1+15,69+1+14","47:4+1+3,5+2+1,49+1+14,50+1+1,53+1+3,55+1+1,60+2+14,65+1+15,68+2+14","48:4+2+1,19+1+10,20+19+15,39+1+10,49+2+1,52+2+1,55+1+1,61+2+14,65+1+15,67+2+14","49:5+1+2,15+1+3,16+1+1,17+1+3,18+4+1,28+1+15,35+9+1,49+2+1,55+1+1,62+6+14","50:5+1+16,15+2+1,17+1+3,18+1+1,28+1+15,35+1+1,43+1+1,50+7+1,64+1+1,65+1+15","51:5+1+16,15+4+1,19+1+5,28+1+15,35+7+14,42+1+6,43+1+14,56+1+2","52:5+1+16,15+4+1,28+1+15,36+3+14,40+1+14,41+1+12,42+1+14,56+1+16","53:5+1+16,28+1+15,36+2+14,38+1+6,39+1+14,40+1+3,41+2+14,56+1+2","54:5+1+16,28+1+15,36+1+14,38+1+14,40+3+14,53+4+1","55:5+1+16,28+1+15,36+1+14,38+1+14,40+1+14,42+1+14,53+1+1,55+1+0","56:5+1+16,28+1+10,36+1+14,38+1+3,39+2+14,42+1+14,53+1+1","57:5+1+2,27+3+1,36+7+14,51+1+0,52+4+1","58:5+2+1,24+3+1,27+1+3,28+5+1,51+1+1,53+1+1,55+1+1","59:6+1+1,24+1+1,32+1+1,51+1+0,52+1+1,53+1+0,54+2+1","60:6+1+1,24+1+1,32+1+3,43+1+1,44+6+0,50+2+1,52+1+0,53+3+1","61:6+1+11,7+1+1,13+1+1,14+1+8,15+6+16,21+1+8,22+2+1,24+1+3,32+1+1,33+1+0,34+1+1,35+1+2,36+6+16,42+1+2,43+1+1,51+2+1,53+1+0,54+1+1,55+1+0","62:6+1+1,24+1+1,26+5+1,32+1+1,51+1+1,53+1+1,55+1+1","63:6+1+1,24+1+1,26+5+1,32+1+0,51+2+1,53+1+0,54+2+1","64:5+2+1,24+9+1,53+1+1","65:5+1+2,53+1+1","66:5+1+16,53+3+1","67:27+3+1,55+1+2","68:25+2+0,27+1+1,28+1+10,29+1+1,30+2+0,55+1+16","69:5+1+16,23+2+15,25+1+2,26+5+1,31+1+2,32+2+15,55+1+16,59+11+15","70:5+1+2,23+1+15,25+2+1,28+1+1,30+2+1,33+1+15,55+1+16,59+1+15,69+1+15","71:5+2+1,23+1+15,26+2+1,28+1+3,29+2+1,33+1+15,55+1+2,59+1+15,62+7+14,69+1+15","72:5+1+1,6+1+0,7+1+1,8+2+14,23+1+15,33+1+15,52+5+1,59+1+15,62+7+14,69+1+15","73:5+2+1,8+2+14,23+1+15,33+1+15,49+8+1,59+1+15,62+7+14,69+1+1","74:5+4+1,9+1+14,23+1+15,33+1+15,49+7+1,56+1+14,57+3+15,62+3+14,66+2+14,69+1+14","75:5+2+1,8+1+1,9+1+14,23+3+15,31+3+15,50+3+1,53+1+6,54+3+1,64+2+14,66+1+3,67+3+14","76:5+1+1,6+1+3,7+2+1,9+1+14,25+1+2,31+1+2,48+3+1,54+3+1,62+1+0,64+2+14,67+1+14","77:5+1+6,6+1+1,8+1+1,9+1+14,20+1+1,21+1+2,22+3+16,25+1+1,26+1+2,30+1+2,31+1+1,32+2+16,34+1+2,35+1+1,48+3+1,54+3+1,64+2+14,67+3+14","78:5+4+1,9+1+14,13+4+1,17+1+11,18+1+1,20+1+1,25+1+1,26+3+14,29+1+12,30+1+14,31+1+1,35+1+1,48+9+1,61+8+14","79:5+2+1,7+1+12,8+2+14,11+3+1,18+3+1,25+3+14,28+1+3,29+3+14,35+12+1,47+1+2,48+1+16,49+3+1,52+1+6,53+2+1,55+1+15,56+5+16,61+1+2,62+1+12,63+5+14","80:5+3+1,8+2+14,11+1+1,13+1+1,14+1+11,15+4+1,24+9+14,35+2+14,37+1+1,38+1+14,39+1+6,40+4+14,44+1+1,45+1+14,46+1+1,47+1+14,49+6+1,55+1+15,62+5+14","81:5+5+1,10+1+2,11+1+1,25+1+14,26+1+0,27+5+14,37+2+1,39+1+14,42+1+14,43+2+1,46+1+1,47+1+2,48+8+1,62+4+14,68+1+14","82:25+1+14,26+5+17,31+1+14,62+3+14,66+3+14","83:25+1+14,26+2+17,28+1+0,29+2+17,31+1+11,62+1+15,68+1+15","84:25+7+14,36+1+10,62+7+15","85:36+1+2","86:10+1+18,36+1+2","87:36+1+2","88:36+1+2","89:28+1+10,36+1+2","90:26+5+1,36+1+2","91:26+3+1,29+1+3,30+1+1,36+1+2","92:26+2+1,28+1+3,29+3+1,36+1+2","93:26+1+1,30+2+1,36+1+2","94:25+2+1,28+1+1,30+1+1,36+1+2","95:22+9+1,36+1+2","96:22+1+1,25+7+1,36+1+2","97:22+1+1,36+1+2","98:18+7+1,36+1+2","99:18+7+1,36+1+2","100:18+7+1,36+1+2","101:18+7+1,36+1+10","102:18+2+1,21+1+0,23+2+1,36+1+5","103:18+7+1,36+1+5","104:36+1+12","107:1+71+13","110:11+1+10,31+1+8","111:7+1+1,10+3+1,14+1+1,31+1+1","112:7+8+1,31+1+1,33+1+1","113:7+1+1,8+1+12,9+6+1,31+1+1,33+1+1","114:7+1+1,8+1+3,9+6+1,31+1+1,32+1+3,33+1+1","115:7+1+1,10+3+1,13+2+0,15+1+1,31+1+1,33+1+1","116:7+1+1,15+1+1,23+9+1,33+1+1","117:3+1+8,4+4+1,8+1+0,15+1+3,16+2+1,18+1+2,19+3+16,22+1+2,23+1+1,31+1+1,33+1+1","118:7+1+1,8+1+0,9+1+1,11+6+1,31+1+0,33+1+1","119:6+4+1,11+1+1,13+4+1,31+1+1,33+1+1","120:6+6+1,12+1+3,13+4+1,31+1+1,33+1+1","121:30+2+1,33+1+1","122:13+1+18,30+1+2","123:30+1+16","124:30+1+16","125:30+1+16","126:30+1+2","127:5+1+2,29+4+1,33+1+8","128:5+1+2,31+1+1","129:5+1+10,31+1+1","130:5+1+5,30+1+3,31+1+1","131:5+1+12,30+1+1","132:30+1+3,31+1+1","133:31+1+5"],"texts":[[1,2,"Key"],[1,32,"Hazard Key"],[1,56,"Note: Connecting Bridges may also contain Cyphers of Varying Types"],[2,32,"1.0"],[2,33,"Sec Camera"],[2,41,"6.0"],[2,42,"Electrical Flooring"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,32,"2.0"],[3,33,"Gun Camera"],[3,41,"7.0"],[3,42,"Fatman Bomb"],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Plant"],[4,32,"3.0"],[4,33,"Pitfall"],[4,41,"8.0"],[4,42,"Sec Camera (After Coolent Spray)"],[4,53,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[5,10,"Locked Door"],[5,18,"Tough Guards"],[5,32,"4.0"],[5,33,"Claymore"],[5,41,"9.0"],[5,42,"Fire (During Emma Escort)"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[6,32,"5.0"],[6,33,"Claymore (After Fortune)"],[6,41,"10.0"],[6,42,"Guard with Binoculars"],[7,3,"Trap/Hazard"],[7,10,"Ladder / Lift"],[7,18,"Conditional Guard"],[7,26,"Easy"],[8,2,"Guards Key"],[9,2,"Shell 1 Area"],[9,52,"Shell 2 Area"],[10,2,"1.0"],[10,4,"Emiko Yokoshima (Missable)"],[10,19,"14.0"],[10,21,"Takayuki Ueda (After Fatman)"],[10,36,"27.0"],[10,38,"David Li-San Chen"],[10,53,"37.0"],[10,55,"Toshifumi Kotogi"],[11,2,"2.0"],[11,4,"Terry Cheung (Missable)"],[11,19,"15.0"],[11,21,"Luis Silva Garcia"],[11,36,"28.0"],[11,38,"Ginseng W Mileur"],[11,53,"38.0"],[11,55,"Erich Werdermann"],[12,2,"3.0"],[12,4,"Jacqueline D Benzon"],[12,19,"16.0"],[12,21,"Brian A Brown"],[12,36,"29.0"],[12,38,"Remy Schuster"],[12,53,"39.0"],[12,55,"Kouhei Tuzita"],[13,2,"4.0"],[13,4,"Akihide Yonekura"],[13,19,"17.0"],[13,21,"Nicholas S DeGrazia (moves to b after Fatman)"],[13,36,"30.0"],[13,38,"Matthew J Whitney"],[13,53,"40.0"],[13,55,"Federico Biscetti"],[14,2,"5.0"],[14,4,"Goushi Kawamura (After Fortune)"],[14,19,"18.0"],[14,21,"Yuuki Ito (After Fatman)"],[14,36,"31.0"],[14,38,"Ricardo Enrique Salazar"],[14,53,"41.0"],[14,55,"Matt R Miller"],[15,2,"6.0"],[15,4,"William R Kelly (Potentially missable)"],[15,19,"19.0"],[15,21,"Anmar Saad Albinyan"],[15,36,"32.0"],[15,38,"Randall J Koerte"],[15,53,"42.0"],[15,55,"Jean Pierre Laforce"],[16,2,"7.0"],[16,4,"Ryosuke Sugie (Potentially missable)"],[16,19,"20.0"],[16,21,"Steve Masao Terada (After Emma Escort)"],[16,36,"33.0"],[16,38,"Syouhei Yoshino"],[17,2,"8.0"],[17,4,"Masanori Masabu Ihara"],[17,19,"21.0"],[17,21,"Yuuki Yagi"],[17,36,"34.0"],[17,38,"Mika M Claudepierre"],[18,2,"9.0"],[18,4,"Hiroyuki Doi"],[18,19,"22.0"],[18,21,"Brigitte Dickenscheid"],[18,36,"35.0"],[18,38,"Joshua M Busby"],[18,53,"43.0"],[18,55,"Peter Stillman (Fatman Boss)"],[19,2,"10.0"],[19,4,"Marius Alain Nguyen (After Fatman)"],[19,19,"23.0"],[19,21,"Agmall Sarwari"],[19,36,"36.0"],[19,38,"Oliver Swann"],[20,2,"11.0"],[20,4,"Kevin Chen"],[20,19,"24.0"],[20,21,"Naoto Yamazaki"],[20,53,"0.0"],[20,55,"Meryl Silverburgh (Snake) - Within Arsenal Gear"],[21,2,"12.0"],[21,4,"Boudraa Reda (Patrols a/b depending on entry)"],[21,19,"25.0"],[21,21,"Terry Matalas"],[22,2,"13.0"],[22,4,"Yu Ya Nan"],[22,19,"26.0"],[22,21,"Sefie J Nolte"],[24,2,"Shell 1"],[25,21,"B1"],[25,22,"Strut D, Sediment Pool"],[25,50,"B1"],[25,51,"Strut E, Parcel Room"],[26,65,"L3"],[26,66,"Strut E, Roof"],[28,25,"16.0"],[29,66,"7.0"],[30,37,"B1"],[30,38,"DE Connecting Bridge"],[30,63,"43.0"],[31,32,"n"],[31,54,"O2"],[32,22,"7.0"],[32,36,"17b"],[33,33,"D2b"],[33,44,"18.0"],[33,62,"22.0"],[35,21,"L1"],[35,22,"Strut D, Sediment Pool"],[37,27,"D3"],[38,3,"Strut C, Dining Hall"],[40,3,"n"],[40,50,"L1"],[40,51,"Strut E, Parcel Room"],[41,12,"CD Connecting Bridge"],[41,37,"L1"],[41,38,"DE Connecting Bridge"],[42,9,"C2"],[42,47,"10.0"],[42,49,"E1"],[42,55,"n"],[43,4,"11.0"],[43,6,"12b"],[43,16,"14.0"],[43,20,"1.0"],[43,44,"17a"],[43,65,"L2"],[43,66,"Strut E, Roof"],[44,6,"7.0"],[44,13,"3.0"],[44,14,"3.0"],[44,16,"3.0"],[44,17,"3.0"],[44,21,"D1"],[44,26,"15.0"],[44,33,"D2a"],[44,60,"21.0"],[45,13,"13.0"],[45,56,"E3"],[45,68,"E3"],[46,53,"20.0"],[47,4,"12a"],[47,16,"Shell 1, B1"],[47,34,"Shell 1, B2 Computer Room"],[47,53,"19.0"],[48,19,"S1"],[48,39,"S1"],[49,5,"C1"],[49,15,"31.0"],[49,17,"32.0"],[50,17,"30.0"],[51,19,"x"],[51,42,"36.0"],[51,56,"E2"],[52,41,"n"],[53,38,"34.0"],[53,40,"33.0"],[53,56,"E2"],[55,55,"10.0"],[56,28,"S1"],[56,38,"35.0"],[57,5,"C1"],[57,51,"4.0"],[58,27,"29.0"],[59,8,"BC Connecting Bridge"],[59,51,"4.0"],[59,53,"4.0"],[60,26,"Shell 1, Core"],[60,32,"28.0"],[60,44,"3.0"],[60,45,"3.0"],[60,46,"3.0"],[60,47,"3.0"],[60,48,"3.0"],[60,49,"3.0"],[60,52,"4.0"],[61,6,"10.0"],[61,24,"27.0"],[61,33,"1.0"],[61,35,"S1"],[61,42,"S1"],[61,53,"4.0"],[61,55,"4.0"],[63,32,"1.0"],[63,43,"EF Connecting Bridge"],[63,53,"4.0"],[65,5,"B2"],[67,55,"F1"],[68,25,"5.0"],[68,26,"5.0"],[68,28,"A1"],[68,30,"5.0"],[68,31,"5.0"],[69,25,"A2a"],[69,31,"A2b"],[70,5,"B2"],[70,47,"L1"],[70,48,"Strut F, Warehouse"],[70,60,"B1"],[70,61,"Strut F, Warehouse"],[71,28,"3.0"],[71,55,"F1"],[72,6,"7.0"],[73,25,"Strut A, Roof"],[75,53,"24.0"],[75,66,"25.0"],[76,6,"8.0"],[76,12,"AB Connecting Bridge"],[76,25,"A2a"],[76,31,"A2b"],[76,62,"7.0"],[77,5,"9.0"],[77,21,"A3"],[77,26,"A3"],[77,30,"A4"],[77,34,"A4"],[77,37,"FA Connecting Bridge"],[78,17,"7.0"],[78,29,"n"],[79,7,"n"],[79,28,"4.0"],[79,47,"F2b"],[79,52,"23.0"],[79,61,"F2b"],[79,62,"n"],[80,14,"6.0"],[80,39,"26.0"],[81,10,"B1"],[81,26,"1.0"],[81,47,"F2a"],[83,3,"Strut B, Transformer Room"],[83,28,"7.0"],[83,31,"5.0"],[83,36,"Door/Lift/Map (Area Transition) Key"],[84,36,"A1"],[84,37,"Lift: Strut A, Pump Facility / Strut A, Roof"],[85,36,"A2"],[85,37,"Strut A, Roof / Strut A, Pump Room (a=Left, b=Right)"],[86,10,"Note: Strut L Perimeter, and Shell 1-2 Connecting Bridge maps not shown as no Dog Tags in that area. Arsenal Gear Map not shown as no Dog Tags in that area. (other than Snakes)"],[86,25,"Strut A, Pump Room"],[86,36,"A3"],[86,37,"Strut A, Pump Room / AB Connecting Bridge"],[87,36,"A4"],[87,37,"Strut A, Pump Room / FA Connecting Bridge"],[88,36,"B1"],[88,37,"Strut B, Transformer Room / AB Connecting Bridge"],[89,28,"A1"],[89,36,"B2"],[89,37,"Strut B, Transformer Room / BC Connecting Bridge"],[90,36,"C1"],[90,37,"Strut C, Dining Hall / BC Connecting Bridge"],[91,29,"2.0"],[91,36,"C2"],[91,37,"Strut C, Dining Hall / CD Connecting Bridge"],[92,28,"1.0"],[92,36,"D1"],[92,37,"Strut D, Sediment Pool / CD Connecting Bridge"],[93,36,"D2"],[93,37,"Strut D, Sediment Pool / DE Connecting Bridge (a=Upper, b=Lower Level)"],[94,36,"D3"],[94,37,"Strut D, Sediment Pool / Shell 1-2 Connecting Bridge"],[95,36,"E1"],[95,37,"Strut E, Parcel Room / DE Connecting Bridge"],[96,36,"E2"],[96,37,"Strut E, Parcel Room / EF Connecting Bridge"],[97,36,"E3"],[97,37,"Strut E, Parcel Room / Strut E, Roof"],[98,26,"Strut A, Pump Facility"],[98,36,"F1"],[98,37,"Strut F, Warehouse / EF Connecting Bridge"],[99,36,"F2"],[99,37,"Strut F, Warehouse / FA Connecting Bridge"],[100,36,"S1"],[100,37,"Shell 1, Core / EF Connecting Bridge"],[101,23,"m9"],[101,36,"S1"],[101,37,"Lift: Shell 1, Core / Shell 1, B1 / Shell 1, B2 Computer Room"],[102,21,"7.0"],[102,36,"O2"],[102,37,"Ladder: Oil Bridge"],[103,36,"x"],[103,37,"Shell 1, B1 / Hostage Area"],[104,36,"n"],[104,37,"Node"],[107,2,"Shell 2"],[110,3,"Shell 2, Core"],[110,11,"S2"],[112,23,"KL Connecting Bridge"],[113,8,"n"],[114,8,"40.0"],[114,32,"37.0"],[115,13,"6.0"],[115,14,"6.0"],[117,8,"2.0"],[117,15,"42.0"],[117,18,"S2"],[117,22,"S2"],[118,8,"2.0"],[118,31,"9.0"],[120,12,"41.0"],[122,13,"Note: Shell 2, B2 Map not shown as no Dog Tags on that level."],[122,30,"L1"],[124,23,"Strut L, Sewage Treatment Facility"],[126,5,"Door/Lift/Map (Area Transition) Key"],[126,30,"L1"],[127,5,"L1"],[127,6,"Strut L, Sewage Treatment Facility / KL Connecting Bridge"],[128,5,"S2"],[128,6,"Shell 2, Core / KL Connecting Bridge"],[129,5,"S2"],[129,6,"Lift: Shell 2, Core / Shell 2, B1"],[130,5,"O1"],[130,6,"Ladder: Oil Bridge"],[130,30,"39.0"],[131,5,"n"],[131,6,"Node"],[132,30,"38.0"],[133,31,"O1"]],"merges":[[5,18,5,23],[6,18,6,23],[6,10,6,15],[7,10,7,15],[86,10,91,18],[122,13,124,19],[1,56,2,67],[4,3,6,7],[4,10,4,15],[4,18,4,23],[4,53,7,70],[5,10,5,15],[7,3,7,7],[7,18,7,23]],"widths":{"1":[71,2.63]},"heights":{}},{"chapter":"Plant","difficulty":"Normal","r0":1,"r1":133,"c0":1,"c1":73,"palette":["FF76A5AF","FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF00FFFF","FF00FF00","FFD9EAD3","FFFFF2CC","FFB7B7B7","FFCFE2F3","FFD9D2E9","FF666666","FFEAD1DC"],"fills":["2:32+1+0,41+1+0","3:32+1+0,41+1+0","4:2+1+1,9+1+2,17+1+3,32+1+0,41+1+0","5:2+1+4,9+1+5,17+1+6,32+1+0,41+1+0","6:2+1+7,9+1+8,17+1+9,32+1+0,41+1+0","7:2+1+0,9+1+10,17+1+11","9:2+49+12,52+19+13","10:2+1+6,19+1+3,36+1+6,53+1+6","11:2+1+3,19+1+3,36+1+3,53+1+6","12:2+1+3,19+1+3,36+1+3,53+1+3","13:2+1+6,19+1+11,36+1+6,53+1+3","14:2+1+6,19+1+6,36+1+3,53+1+3","15:2+1+3,19+1+3,36+1+6,53+1+11","16:2+1+3,19+1+11,36+1+3,53+1+11","17:2+1+11,19+1+3,36+1+3,53+1+11","18:2+1+3,19+1+3,36+1+3,53+1+11","19:2+1+3,19+1+3,36+1+3","20:2+1+3,19+1+3,36+1+3","21:2+1+11,19+1+3,36+1+3,53+1+9","22:2+1+3,19+1+6","24:1+73+12","27:25+1+14,26+1+1,27+3+14,49+2+14","28:24+7+14,49+2+14,53+2+14,60+10+1","29:23+1+14,24+1+3,26+1+15,30+2+14,50+4+14,60+6+1,66+1+0,67+3+1","30:22+2+14,26+1+15,31+2+14,50+1+14,53+2+14,60+3+1,63+1+9,64+6+1","31:22+1+0,26+1+15,32+1+12,50+1+1,54+1+5,60+7+1,67+1+3,68+2+1","32:22+1+14,26+1+15,32+1+14,34+2+14,36+1+3,37+1+14,40+4+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","33:22+1+14,26+1+15,32+1+14,33+1+2,34+2+14,37+4+14,43+1+14,44+1+11,45+4+14,50+1+15,60+10+1","34:26+1+15,35+1+14,36+1+1,44+1+14,45+1+1,48+1+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","35:26+1+15,36+1+15,45+1+15,50+1+15,60+10+1","36:26+1+15,36+1+15,45+1+15,50+1+15,60+1+1,61+1+3,62+4+1,67+1+1,69+1+1","37:26+1+15,27+1+2,36+1+15,45+1+15,50+1+15,60+10+1","38:25+1+1,26+1+14,27+3+1,36+1+15,45+1+15,49+2+15,60+8+1,69+1+1","39:24+1+3,25+6+1,36+1+15,45+1+15,49+1+15,60+10+1","40:3+1+12,4+4+1,23+2+1,27+1+1,30+2+1,36+1+15,45+1+15,49+1+15,63+1+15,64+1+14,65+1+1","41:3+5+1,22+2+1,27+1+1,31+2+1,36+1+15,45+1+15,49+1+15,63+1+15","42:3+6+1,9+1+2,10+1+1,22+2+1,26+3+1,31+2+1,36+1+15,45+1+15,47+1+0,48+1+1,49+1+2,50+5+1,55+1+12,63+1+15","43:3+1+1,4+1+3,5+1+1,6+1+3,7+2+1,10+1+1,11+1+3,12+4+1,16+1+11,17+3+1,20+1+0,22+5+1,28+5+1,34+10+1,44+1+3,45+4+1,49+1+15,50+1+1,55+1+1,60+1+14,63+1+15","44:3+3+1,6+1+0,7+1+1,11+2+14,13+2+0,15+1+14,16+2+0,18+2+14,20+1+1,21+1+2,22+2+1,26+1+3,27+2+1,31+2+1,33+1+2,34+1+1,36+1+15,37+1+1,45+1+15,46+1+1,49+1+15,50+2+1,52+1+6,53+5+1,60+1+3,63+1+15","45:3+5+1,11+3+1,17+3+1,22+2+1,31+2+1,36+1+14,37+1+1,45+1+14,46+1+1,49+1+15,50+1+1,55+1+1,56+1+2,57+1+1,60+1+14,63+3+15,68+1+2,69+1+14","46:4+2+1,6+1+3,49+1+15,50+2+1,53+1+1,54+1+11,55+3+1,60+1+14,65+1+15,69+1+14","47:4+3+1,49+1+14,50+1+1,53+1+3,55+1+1,60+2+14,65+1+15,68+2+14","48:4+2+1,19+1+10,20+19+15,39+1+10,49+2+1,52+2+1,55+1+1,61+2+14,65+1+15,67+2+14","49:5+1+2,15+1+3,16+1+1,17+1+3,18+4+1,28+1+15,35+9+1,49+2+1,55+1+1,62+6+14","50:5+1+16,15+2+1,17+1+6,18+1+1,28+1+15,35+1+1,43+1+1,50+7+1,64+1+1,65+1+15","51:5+1+16,15+4+1,19+1+5,28+1+15,35+7+14,42+1+3,43+1+14,56+1+2","52:5+1+16,15+4+1,28+1+15,36+3+14,40+1+14,41+1+12,42+1+14,56+1+16","53:5+1+16,28+1+15,36+2+14,38+1+3,39+1+14,40+1+3,41+2+14,56+1+2","54:5+1+16,28+1+15,36+1+14,38+1+14,40+3+14,53+4+1","55:5+1+16,28+1+15,36+1+14,38+1+14,40+1+14,42+1+14,53+1+1,55+1+0","56:5+1+16,28+1+10,36+1+14,38+1+3,39+2+14,42+1+14,53+1+1","57:5+1+2,27+3+1,36+7+14,51+1+0,52+4+1","58:5+2+1,24+3+1,27+1+6,28+4+1,32+1+0,51+1+1,53+1+1,55+1+1","59:6+1+1,24+1+1,32+1+1,51+1+0,52+1+1,53+1+0,54+2+1","60:6+1+1,24+1+1,32+1+3,43+1+1,44+6+0,50+2+1,52+1+0,53+3+1","61:6+1+11,7+1+1,13+1+1,14+1+8,15+6+16,21+1+8,22+2+1,24+1+3,32+1+1,33+1+0,34+1+1,35+1+2,36+6+16,42+1+2,43+1+1,51+2+1,53+1+0,54+1+1,55+1+0","62:6+1+1,24+1+1,26+5+1,32+1+3,51+1+1,53+1+1,55+1+1","63:6+1+1,24+1+1,26+5+1,32+1+0,51+2+1,53+1+0,54+2+1","64:5+2+1,24+9+1,53+1+1","65:5+1+2,53+1+1","66:5+1+16,53+3+1","67:5+1+16,27+3+1,55+1+2","68:5+1+16,25+2+0,27+1+1,28+1+10,29+1+1,30+2+0,55+1+16","69:5+1+16,23+2+15,25+1+2,26+5+1,31+1+2,32+2+15,55+1+16,59+11+15","70:5+1+2,23+1+15,25+2+1,28+1+1,30+2+1,33+1+15,55+1+16,59+1+15,69+1+15","71:5+2+1,23+1+15,26+2+1,28+1+6,29+2+1,33+1+15,55+1+2,59+1+15,62+7+14,69+1+15","72:5+1+1,6+1+0,7+1+1,8+2+14,23+1+15,33+1+15,52+5+1,59+1+15,62+7+14,69+1+15","73:5+2+1,8+2+14,23+1+15,33+1+15,49+8+1,59+1+15,62+7+14,69+1+1","74:5+4+1,9+1+14,23+1+15,33+1+15,49+3+1,52+1+3,53+3+1,56+1+14,57+3+15,62+3+14,66+2+14,69+1+14","75:5+2+1,8+1+1,9+1+14,23+3+15,31+3+15,50+7+1,64+1+14,65+1+6,66+4+14","76:5+1+1,6+1+3,7+2+1,9+1+14,25+1+2,31+1+2,48+3+1,54+3+1,62+1+0,64+2+14,67+1+14","77:5+1+3,6+1+1,8+1+1,9+1+14,20+1+1,21+1+2,22+3+16,25+1+1,26+1+2,30+1+2,31+1+1,32+2+16,34+1+2,35+1+1,48+3+1,54+3+1,64+2+14,67+3+14","78:5+4+1,9+1+14,13+4+1,17+1+6,18+1+1,20+1+1,25+1+1,26+3+14,29+1+12,30+1+14,31+1+1,35+1+1,48+5+1,53+1+3,54+3+1,61+8+14","79:5+2+1,7+1+12,8+2+14,11+3+1,18+3+1,25+3+14,28+1+3,29+3+14,35+12+1,47+1+2,48+1+16,49+6+1,55+1+15,56+5+16,61+1+2,62+1+12,63+5+14","80:5+3+1,8+2+14,11+1+1,13+1+1,14+1+6,15+4+1,24+9+14,35+2+14,37+1+1,38+1+14,39+1+6,40+4+14,44+1+1,45+1+14,46+1+1,47+1+14,49+6+1,55+1+15,62+5+14","81:5+5+1,10+1+2,11+1+1,25+1+14,26+1+0,27+5+14,37+2+1,39+1+14,42+1+14,43+2+1,46+1+1,47+1+2,48+8+1,62+4+14,68+1+14","82:25+1+14,26+5+17,31+1+14,62+3+14,66+3+14","83:25+1+14,26+2+17,28+1+0,29+2+17,31+1+3,62+1+15,68+1+15","84:25+7+14,36+1+10,62+7+15","85:10+1+18,36+1+2","86:36+1+2","87:36+1+2","88:36+1+2","89:28+1+10,36+1+2","90:26+5+1,36+1+2","91:26+5+1,36+1+2","92:26+6+1,36+1+2","93:26+1+1,30+2+1,36+1+2","94:25+2+1,28+1+1,30+1+1,36+1+2","95:22+9+1,36+1+2","96:22+1+1,25+7+1,36+1+2","97:22+1+1,36+1+2","98:18+7+1,36+1+2","99:18+7+1,36+1+2","100:18+7+1,36+1+2","101:18+7+1,36+1+10","102:18+2+1,21+1+0,23+2+1,36+1+5","103:18+7+1,36+1+5","104:36+1+12","107:1+73+13","110:11+1+10,31+1+8","111:7+1+1,10+3+1,14+1+1,31+1+1","112:7+8+1,31+1+1,33+1+1","113:7+1+1,8+1+12,9+6+1,31+1+1,33+1+1","114:7+2+1,9+1+3,10+5+1,31+1+1,32+1+6,33+1+1","115:7+1+1,10+3+1,13+2+0,15+1+1,31+1+1,33+1+1","116:7+1+1,15+1+1,23+9+1,33+1+1","117:3+1+8,4+2+1,6+1+11,7+1+1,8+1+0,15+1+11,16+2+1,18+1+2,19+3+16,22+1+2,23+1+1,31+1+1,33+1+1","118:7+1+1,8+1+0,9+1+1,11+6+1,31+1+0,33+1+1","119:6+4+1,11+1+1,13+1+11,14+3+1,31+1+1,33+1+1","120:6+5+1,11+1+3,12+5+1,31+1+1,33+1+1","121:30+2+1,33+1+1","122:13+1+18,30+1+2","123:30+1+16","124:30+1+16","125:30+1+16","126:30+1+2","127:5+1+2,29+4+1,33+1+8","128:5+1+2,31+1+1","129:5+1+10,31+1+1","130:5+1+5,30+1+3,31+1+1","131:5+1+12,30+1+1","132:30+1+6,31+1+1","133:31+1+5"],"texts":[[1,2,"Key"],[1,32,"Hazard Key"],[1,56,"Note: Connecting Bridges may also contain Cyphers of Varying Types"],[2,32,"1.0"],[2,33,"Sec Camera"],[2,41,"6.0"],[2,42,"Electrical Flooring"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,32,"2.0"],[3,33,"Gun Camera"],[3,41,"7.0"],[3,42,"Fatman Bomb"],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Plant"],[4,32,"3.0"],[4,33,"Pitfall"],[4,41,"8.0"],[4,42,"Sec Camera (After Coolent Spray)"],[4,53,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[5,10,"Locked Door"],[5,18,"Tough Guards"],[5,32,"4.0"],[5,33,"Claymore"],[5,41,"9.0"],[5,42,"Fire (During Emma Escort)"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[6,32,"5.0"],[6,33,"Claymore (After Fortune)"],[6,41,"10.0"],[6,42,"Guard with Binoculars"],[7,3,"Trap/Hazard"],[7,10,"Ladder / Lift"],[7,18,"Conditional Guard"],[7,26,"Normal"],[8,2,"Guards Key"],[9,2,"Shell 1 Area"],[9,52,"Shell 2 Area"],[10,2,"1.0"],[10,4,"Jordan A Bowman"],[10,19,"14.0"],[10,21,"Dustin Weger"],[10,36,"27.0"],[10,38,"Mais M Baali"],[10,53,"39.0"],[10,55,"Han Yi Cheng"],[11,2,"2.0"],[11,4,"Sean M Culhane"],[11,19,"15.0"],[11,21,"Wojtek Kujawa"],[11,36,"28.0"],[11,38,"Satoru Oda"],[11,53,"40.0"],[11,55,"Yuta Tsubasa Teruya"],[12,2,"3.0"],[12,4,"Jamie DR Dickie"],[12,19,"16.0"],[12,21,"Kenji Yamaguchi (moves to b after Fatman)"],[12,36,"29.0"],[12,38,"Kamal Aggarwal"],[12,53,"41.0"],[12,55,"Mikiya Horiuchi"],[13,2,"4.0"],[13,4,"Daichi Bada"],[13,19,"17.0"],[13,21,"John A McCormick (After Fatman)"],[13,36,"30.0"],[13,38,"Anthony Hampton"],[13,53,"42.0"],[13,55,"Martin Johansson"],[14,2,"5.0"],[14,4,"David L Newell"],[14,19,"18.0"],[14,21,"Robert Viset"],[14,36,"31.0"],[14,38,"Ivan Lui"],[14,53,"43.0"],[14,55,"TaRo ArAkAwA"],[15,2,"6.0"],[15,4,"Bren J Fraher"],[15,19,"19.0"],[15,21,"Tommi Eklof"],[15,36,"32.0"],[15,38,"Hideaki Dei"],[15,53,"44.0"],[15,55,"Gaku Yamada"],[16,2,"7.0"],[16,4,"Gavin C Elliott"],[16,19,"20.0"],[16,21,"Gary L Curtis (After Emma Escort)"],[16,36,"33.0"],[16,38,"Cesar Pariona Oncebay"],[16,53,"45.0"],[16,55,"Zheng Xuan (When approaching area with Emma)"],[17,2,"8.0"],[17,4,"Johnny Chong (After Fatman)"],[17,19,"21.0"],[17,21,"Court Stauff"],[17,36,"34.0"],[17,38,"Yuuko Hayashi"],[17,53,"46.0"],[17,55,"Erasmo O Metos (When approaching area with Emma)"],[18,2,"9.0"],[18,4,"Chuoc Shan Lam"],[18,19,"22.0"],[18,21,"Frode A Steine"],[18,36,"35.0"],[18,38,"Viktor Hamrefors"],[18,53,"47.0"],[18,55,"Florian Busch (Enters when approaching south with Emma)"],[19,2,"10.0"],[19,4,"Markus Huendgen (a/b depends on entrance used)"],[19,19,"23.0"],[19,21,"Katharine Irene Hargrove"],[19,36,"36.0"],[19,38,"Miroku Sato"],[20,2,"11.0"],[20,4,"Michael Roger Aarons"],[20,19,"24.0"],[20,21,"David R Papps"],[20,36,"37.0"],[20,38,"Kojiro Hayama"],[21,2,"12.0"],[21,4,"Takuji Tada (After Fatman)"],[21,19,"25.0"],[21,21,"Matt D Huffman"],[21,36,"38.0"],[21,38,"Mark S Eaton Fry"],[21,53,"48.0"],[21,55,"Peter Stillman (Fatman Boss)"],[22,2,"13.0"],[22,4,"Joseph A McClaren"],[22,19,"26.0"],[22,21,"Ali H Rafati"],[22,53,"0.0"],[22,55,"Solid Snake (Snake) - Within Arsenal Gear"],[24,2,"Shell 1"],[25,21,"B1"],[25,22,"Strut D, Sediment Pool"],[25,50,"B1"],[25,51,"Strut E, Parcel Room"],[26,65,"L3"],[26,66,"Strut E, Roof"],[29,24,"15.0"],[29,66,"7.0"],[30,37,"B1"],[30,38,"DE Connecting Bridge"],[30,63,"48.0"],[31,22,"7.0"],[31,32,"n"],[31,54,"O2"],[31,67,"22.0"],[32,36,"16b"],[33,33,"D2b"],[33,44,"17.0"],[35,21,"L1"],[35,22,"Strut D, Sediment Pool"],[36,61,"23.0"],[37,27,"D3"],[38,3,"Strut C, Dining Hall"],[39,24,"13.0"],[40,3,"n"],[40,50,"L1"],[40,51,"Strut E, Parcel Room"],[41,12,"CD Connecting Bridge"],[41,37,"L1"],[41,38,"DE Connecting Bridge"],[42,9,"C2"],[42,47,"10.0"],[42,49,"E1"],[42,55,"n"],[43,4,"9.0"],[43,6,"10b"],[43,11,"11.0"],[43,16,"12.0"],[43,20,"1.0"],[43,44,"16a"],[43,65,"L2"],[43,66,"Strut E, Roof"],[44,6,"7.0"],[44,13,"3.0"],[44,14,"3.0"],[44,16,"3.0"],[44,17,"3.0"],[44,21,"D1"],[44,26,"14.0"],[44,33,"D2a"],[44,52,"18.0"],[44,60,"21.0"],[45,56,"E3"],[45,68,"E3"],[46,6,"10a"],[46,54,"20.0"],[47,16,"Shell 1, B1"],[47,34,"Shell 1, B2 Computer Room"],[47,53,"19.0"],[48,19,"S1"],[48,39,"S1"],[49,5,"C1"],[49,15,"33.0"],[49,17,"34.0"],[50,17,"32.0"],[51,19,"x"],[51,42,"38.0"],[51,56,"E2"],[52,41,"n"],[53,38,"36.0"],[53,40,"35.0"],[53,56,"E2"],[55,55,"10.0"],[56,28,"S1"],[56,38,"37.0"],[57,5,"C1"],[57,51,"4.0"],[58,27,"30.0"],[58,32,"1.0"],[59,8,"BC Connecting Bridge"],[59,51,"4.0"],[59,53,"4.0"],[60,26,"Shell 1, Core"],[60,32,"29.0"],[60,44,"3.0"],[60,45,"3.0"],[60,46,"3.0"],[60,47,"3.0"],[60,48,"3.0"],[60,49,"3.0"],[60,52,"4.0"],[61,6,"8.0"],[61,24,"28.0"],[61,33,"1.0"],[61,35,"S1"],[61,42,"S1"],[61,53,"4.0"],[61,55,"4.0"],[62,32,"31.0"],[63,32,"1.0"],[63,43,"EF Connecting Bridge"],[63,53,"4.0"],[65,5,"B2"],[67,55,"F1"],[68,25,"5.0"],[68,26,"5.0"],[68,28,"A1"],[68,30,"5.0"],[68,31,"5.0"],[69,25,"A2a"],[69,31,"A2b"],[70,5,"B2"],[70,47,"L1"],[70,48,"Strut F, Warehouse"],[70,60,"B1"],[70,61,"Strut F, Warehouse"],[71,28,"1.0"],[71,55,"F1"],[72,6,"7.0"],[73,25,"Strut A, Roof"],[74,52,"24.0"],[75,65,"26.0"],[76,6,"6.0"],[76,12,"AB Connecting Bridge"],[76,25,"A2a"],[76,31,"A2b"],[76,62,"7.0"],[77,5,"7.0"],[77,21,"A3"],[77,26,"A3"],[77,30,"A4"],[77,34,"A4"],[77,37,"FA Connecting Bridge"],[78,17,"5.0"],[78,29,"n"],[78,53,"25.0"],[79,7,"n"],[79,28,"2.0"],[79,47,"F2b"],[79,53,"m9"],[79,61,"F2b"],[79,62,"n"],[80,14,"4.0"],[80,39,"27.0"],[81,10,"B1"],[81,26,"1.0"],[81,47,"F2a"],[83,3,"Strut B, Transformer Room"],[83,28,"7.0"],[83,31,"3.0"],[83,36,"Door/Lift/Map (Area Transition) Key"],[84,36,"A1"],[84,37,"Lift: Strut A, Pump Facility / Strut A, Roof"],[85,10,"Note: Strut L Perimeter, and Shell 1-2 Connecting Bridge maps not shown as no Dog Tags in that area. Arsenal Gear Map not shown as no Dog Tags in that area. (other than Snakes)"],[85,36,"A2"],[85,37,"Strut A, Roof / Strut A, Pump Room (a=Left, b=Right)"],[86,25,"Strut A, Pump Room"],[86,36,"A3"],[86,37,"Strut A, Pump Room / AB Connecting Bridge"],[87,36,"A4"],[87,37,"Strut A, Pump Room / FA Connecting Bridge"],[88,36,"B1"],[88,37,"Strut B, Transformer Room / AB Connecting Bridge"],[89,28,"A1"],[89,36,"B2"],[89,37,"Strut B, Transformer Room / BC Connecting Bridge"],[90,36,"C1"],[90,37,"Strut C, Dining Hall / BC Connecting Bridge"],[91,36,"C2"],[91,37,"Strut C, Dining Hall / CD Connecting Bridge"],[92,36,"D1"],[92,37,"Strut D, Sediment Pool / CD Connecting Bridge"],[93,36,"D2"],[93,37,"Strut D, Sediment Pool / DE Connecting Bridge (a=Upper, b=Lower Level)"],[94,36,"D3"],[94,37,"Strut D, Sediment Pool / Shell 1-2 Connecting Bridge"],[95,36,"E1"],[95,37,"Strut E, Parcel Room / DE Connecting Bridge"],[96,36,"E2"],[96,37,"Strut E, Parcel Room / EF Connecting Bridge"],[97,36,"E3"],[97,37,"Strut E, Parcel Room / Strut E, Roof"],[98,26,"Strut A, Pump Facility"],[98,36,"F1"],[98,37,"Strut F, Warehouse / EF Connecting Bridge"],[99,26,"2 Guards here at start, but no dog tags to collect. M9 found within Strut F Warehouse"],[99,36,"F2"],[99,37,"Strut F, Warehouse / FA Connecting Bridge"],[100,36,"S1"],[100,37,"Shell 1, Core / EF Connecting Bridge"],[101,36,"S1"],[101,37,"Lift: Shell 1, Core / Shell 1, B1 / Shell 1, B2 Computer Room"],[102,21,"7.0"],[102,36,"O2"],[102,37,"Ladder: Oil Bridge"],[103,36,"x"],[103,37,"Shell 1, B1 / Hostage Area"],[104,36,"n"],[104,37,"Node"],[107,2,"Shell 2"],[110,3,"Shell 2, Core"],[110,11,"S2"],[112,23,"KL Connecting Bridge"],[113,8,"n"],[114,9,"42.0"],[114,32,"39.0"],[115,13,"6.0"],[115,14,"6.0"],[117,6,"45.0"],[117,8,"2.0"],[117,15,"44.0"],[117,18,"S2"],[117,22,"S2"],[118,8,"2.0"],[118,31,"9.0"],[119,13,"46.0"],[120,11,"43.0"],[122,13,"Note: Shell 2, B2 Map not shown as no Dog Tags on that level."],[122,30,"L1"],[124,23,"Strut L, Sewage Treatment Facility"],[126,5,"Door/Lift/Map (Area Transition) Key"],[126,30,"L1"],[127,5,"L1"],[127,6,"Strut L, Sewage Treatment Facility / KL Connecting Bridge"],[128,5,"S2"],[128,6,"Shell 2, Core / KL Connecting Bridge"],[129,5,"S2"],[129,6,"Lift: Shell 2, Core / Shell 2, B1"],[130,5,"O1"],[130,6,"Ladder: Oil Bridge"],[130,30,"41.0"],[131,5,"n"],[131,6,"Node"],[132,30,"40.0"],[133,31,"O1"]],"merges":[[5,18,5,23],[6,18,6,23],[99,26,103,32],[6,10,6,15],[7,10,7,15],[85,10,90,18],[122,13,124,19],[1,56,2,67],[4,3,6,7],[4,10,4,15],[4,18,4,23],[4,53,7,70],[5,10,5,15],[7,3,7,7],[7,18,7,23]],"widths":{"1":[73,2.63]},"heights":{}},{"chapter":"Plant","difficulty":"Hard","r0":1,"r1":133,"c0":1,"c1":71,"palette":["FF76A5AF","FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF00FFFF","FF00FF00","FFD9EAD3","FFFFF2CC","FFB7B7B7","FFCFE2F3","FFD9D2E9","FF666666","FFEAD1DC"],"fills":["2:32+1+0,41+1+0","3:32+1+0,41+1+0","4:2+1+1,9+1+2,17+1+3,32+1+0,41+1+0","5:2+1+4,9+1+5,17+1+6,32+1+0,41+1+0","6:2+1+7,9+1+8,17+1+9,32+1+0,41+1+0","7:2+1+0,9+1+10,17+1+11","9:2+16+12,19+1+3,36+1+6,52+19+13","10:2+1+3,19+1+6,36+1+3,53+1+3","11:2+1+3,19+1+3,36+1+6,53+1+3","12:2+1+3,19+1+6,36+1+3,53+1+3","13:2+1+6,19+1+11,36+1+3,53+1+3","14:2+1+3,19+1+3,36+1+3,53+1+3","15:2+1+3,19+1+6,36+1+3,53+1+3","16:2+1+3,19+1+6,36+1+3,53+1+6","17:2+1+11,19+1+11,20+1+6,36+1+6,53+1+3","18:2+1+3,19+1+6,36+1+3,53+1+11","19:2+1+3,19+1+3,36+1+3","20:2+1+3,19+1+3,36+1+3","21:2+1+11,19+1+6,36+1+3,53+1+9","22:2+1+3,19+1+6,36+1+6","24:1+71+12","27:25+1+14,26+1+1,27+1+14,28+1+0,29+1+14,49+2+14","28:24+1+6,25+6+14,49+2+14,53+2+14,60+10+1","29:23+2+14,26+1+15,30+2+14,50+4+14,60+6+1,66+1+0,67+3+1","30:22+2+14,26+1+15,31+2+14,50+1+14,53+2+14,60+3+1,63+1+9,64+6+1","31:22+1+14,26+1+15,32+1+12,50+1+1,54+1+5,60+7+1,67+1+3,68+2+1","32:22+1+0,26+1+15,32+1+14,34+4+14,40+4+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","33:22+1+14,26+1+15,32+1+14,33+1+2,34+2+14,37+1+6,38+3+14,43+1+14,44+1+11,45+4+14,50+1+15,60+10+1","34:26+1+15,35+1+14,36+1+1,44+1+14,45+1+1,48+1+14,50+1+15,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","35:26+1+15,36+1+15,45+1+15,50+1+15,60+10+1","36:26+1+15,36+1+15,45+1+15,50+1+15,60+1+1,61+1+3,62+4+1,67+1+1,69+1+1","37:26+1+15,27+1+2,36+1+15,45+1+15,50+1+15,60+10+1","38:25+1+1,26+1+14,27+3+1,36+1+15,45+1+15,49+2+15,60+8+1,69+1+1","39:24+6+1,30+1+3,36+1+15,45+1+15,49+1+15,60+10+1","40:3+1+12,4+4+1,23+1+3,24+1+1,27+1+1,30+2+1,36+1+15,45+1+15,49+1+15,63+1+15,64+1+14,65+1+1","41:3+5+1,22+2+1,27+1+1,31+2+1,36+1+15,45+1+15,49+1+15,63+1+15","42:3+6+1,9+1+2,10+1+1,22+2+1,26+3+1,31+2+1,36+1+15,45+1+15,47+1+0,48+1+1,49+1+2,50+5+1,55+1+12,63+1+15","43:3+1+1,4+1+3,5+1+1,6+1+3,7+2+1,10+4+1,14+1+3,15+1+1,16+1+11,17+3+1,20+1+0,22+5+1,28+5+1,34+4+1,38+1+6,39+10+1,49+1+15,50+1+1,55+1+1,60+1+14,63+1+15","44:3+3+1,6+1+0,7+1+1,11+2+14,13+2+0,15+1+14,16+2+0,18+2+14,20+1+1,21+1+2,22+2+1,26+1+3,27+2+1,31+2+1,33+1+2,34+1+1,36+1+15,37+1+1,45+1+15,46+1+1,49+1+15,50+1+1,51+1+0,52+1+3,53+5+1,60+1+6,63+1+15","45:3+5+1,11+3+1,17+3+1,22+2+1,31+2+1,36+1+14,37+1+1,45+1+14,46+1+1,49+1+15,50+1+1,53+1+0,55+1+1,56+1+2,57+1+1,60+1+14,63+3+15,68+1+2,69+1+14","46:4+2+1,6+1+3,49+1+15,50+2+1,53+1+6,54+2+1,56+1+6,57+1+1,60+1+14,65+1+15,69+1+14","47:4+3+1,49+1+14,50+1+11,53+1+1,55+1+1,60+2+14,65+1+15,68+2+14","48:4+2+1,19+1+10,20+19+15,39+1+10,49+2+1,52+2+1,54+1+0,55+1+1,61+2+14,65+1+15,67+2+14","49:5+1+2,15+1+6,16+1+1,17+1+3,18+4+1,28+1+15,35+9+1,49+2+1,51+1+0,55+1+1,62+6+14","50:5+1+16,15+2+1,17+1+3,18+1+1,28+1+15,35+1+1,43+1+1,50+7+1,64+1+1,65+1+15","51:5+1+16,15+4+1,19+1+5,28+1+15,35+7+14,42+1+6,43+1+14,56+1+2","52:5+1+16,15+4+1,28+1+15,36+3+14,40+1+14,41+1+12,42+1+14,56+1+16","53:5+1+16,28+1+15,36+2+14,38+1+3,39+1+14,40+1+3,41+2+14,56+1+2","54:5+1+16,28+1+15,36+1+14,38+1+14,40+3+14,53+4+1","55:5+1+16,28+1+15,36+1+14,38+1+14,40+1+14,42+1+14,53+1+1,55+1+0","56:5+1+16,28+1+10,36+1+14,38+1+3,39+2+14,42+1+14,53+1+1","57:5+1+2,27+3+1,36+7+14,51+1+0,52+4+1","58:5+2+1,24+3+1,27+1+3,28+4+1,32+1+0,51+1+1,53+1+1,55+1+1","59:6+1+1,24+1+1,32+1+1,51+1+0,52+1+1,53+1+0,54+2+1","60:6+1+1,24+1+3,32+1+3,43+1+1,44+6+0,50+2+1,52+1+0,53+3+1","61:6+1+11,7+1+1,13+1+1,14+1+8,15+6+16,21+1+8,22+2+1,24+1+0,32+1+1,33+1+0,34+1+1,35+1+2,36+6+16,42+1+2,43+1+1,51+2+1,53+1+0,54+1+1,55+1+0","62:6+1+1,24+1+1,26+5+1,32+1+3,51+1+1,53+1+1,55+1+1","63:6+1+1,24+1+1,26+5+1,32+1+0,51+2+1,53+1+0,54+2+1","64:5+2+1,24+9+1,53+1+1","65:5+1+2,53+1+1","66:5+1+16,53+3+1","67:5+1+16,27+3+1,55+1+2","68:5+1+16,25+2+0,27+1+1,28+1+10,29+1+1,30+2+0,55+1+16","69:5+1+16,23+2+15,25+1+2,26+5+1,31+1+2,32+2+15,55+1+16,59+11+15","70:5+1+2,23+1+15,25+2+1,28+1+1,30+2+1,33+1+15,55+1+16,59+1+15,69+1+15","71:5+2+1,23+1+15,26+2+1,28+1+3,29+2+1,33+1+15,55+1+2,59+1+15,62+7+14,69+1+15","72:5+2+0,7+1+1,8+2+14,23+1+15,30+1+0,33+1+15,52+5+1,59+1+15,62+7+14,69+1+15","73:5+1+0,6+1+1,8+2+14,23+1+15,33+1+15,49+8+1,59+1+15,62+7+14,69+1+1","74:5+4+1,9+1+14,23+1+15,33+1+15,49+7+1,56+1+14,57+3+15,62+3+14,66+2+14,69+1+14","75:5+2+1,8+1+1,9+1+14,23+3+15,31+3+15,50+3+1,53+1+6,54+3+1,64+6+14","76:5+3+1,8+1+3,9+1+14,25+1+2,31+1+2,48+3+1,54+3+1,62+1+14,64+1+14,65+1+6,67+1+14","77:5+1+1,6+1+3,8+1+1,9+1+14,20+1+1,21+1+2,22+3+16,25+1+1,26+1+2,30+1+2,31+1+1,32+2+16,34+1+2,35+1+1,48+3+1,54+3+1,64+2+14,67+3+14","78:5+4+1,9+1+14,13+3+1,16+1+3,17+2+1,20+1+1,25+1+1,26+3+14,29+1+12,30+1+14,31+1+1,35+1+1,48+9+1,61+8+14","79:5+2+1,7+1+12,8+2+14,11+3+1,18+3+1,25+3+14,28+1+3,29+3+14,35+12+1,47+1+2,48+1+16,49+3+1,52+1+6,53+2+1,55+1+15,56+5+16,61+1+2,62+1+12,63+2+14,65+1+3,66+2+14","80:5+3+1,8+2+14,11+1+1,13+1+1,14+1+6,15+4+1,24+9+14,35+2+14,37+1+1,38+1+14,39+1+6,40+4+14,44+1+1,45+1+14,46+1+1,47+1+14,49+6+1,55+1+15,62+5+14","81:5+5+1,10+1+2,11+1+1,25+1+14,26+1+0,27+5+14,37+2+1,39+1+14,42+1+14,43+2+1,46+1+1,47+1+2,48+8+1,62+4+14,68+1+14","82:25+1+14,26+5+17,31+1+14,62+3+14,66+3+14","83:25+1+14,26+2+17,28+1+0,29+2+17,31+1+3,62+1+15,68+1+15","84:25+7+14,36+1+10,62+7+15","85:10+1+18,36+1+2","86:36+1+2","87:36+1+2","88:36+1+2","89:28+1+10,36+1+2","90:26+5+1,36+1+2","91:26+5+1,36+1+2","92:26+6+1,36+1+2","93:26+1+1,30+2+1,36+1+2","94:25+2+1,28+1+1,30+1+1,36+1+2","95:22+9+1,36+1+2","96:22+1+1,25+7+1,36+1+2","97:22+1+1,36+1+2","98:18+7+1,36+1+2","99:18+7+1,36+1+2","100:18+7+1,36+1+2","101:18+4+1,22+1+0,23+2+1,36+1+10","102:18+2+1,23+2+1,36+1+5","103:18+7+1,36+1+5","104:36+1+12","107:1+71+13","110:11+1+10,31+1+8","111:7+1+1,10+1+1,11+1+11,12+1+1,14+1+1,31+1+1","112:7+8+1,31+1+1,33+1+1","113:7+1+1,8+1+12,9+6+1,31+1+1,33+1+1","114:7+1+1,8+1+3,9+6+1,31+1+1,32+1+3,33+1+1","115:7+1+1,10+3+1,13+2+0,15+1+1,31+1+1,33+1+1","116:7+1+1,15+1+1,23+9+1,33+1+1","117:3+1+8,4+1+1,5+1+6,6+2+1,8+1+0,15+1+3,16+2+1,18+1+2,19+3+16,22+1+2,23+1+1,31+1+1,33+1+1","118:7+1+1,8+1+0,9+1+1,11+6+1,31+1+0,33+1+1","119:6+4+1,11+1+1,13+1+3,14+3+1,31+1+1,33+1+1","120:6+5+1,11+1+3,12+5+1,31+1+1,33+1+1","121:30+2+1,33+1+1","122:13+1+18,30+1+2","123:30+1+16","124:30+1+16","125:30+1+16","126:30+1+2","127:5+1+2,29+4+1,33+1+8","128:5+1+2,31+1+1","129:5+1+10,31+1+1","130:5+1+5,30+1+3,31+1+1","131:5+1+12,30+1+1","132:30+1+3,31+1+1","133:31+1+5"],"texts":[[1,2,"Key"],[1,32,"Hazard Key"],[1,56,"Note: Connecting Bridges may also contain Cyphers of Varying Types"],[2,32,"1.0"],[2,33,"Sec Camera"],[2,41,"6.0"],[2,42,"Electrical Flooring"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,32,"2.0"],[3,33,"Gun Camera"],[3,41,"7.0"],[3,42,"Fatman Bomb"],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Plant"],[4,32,"3.0"],[4,33,"Pitfall"],[4,41,"8.0"],[4,42,"Sec Camera (After Coolent Spray)"],[4,53,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[5,10,"Locked Door"],[5,18,"Tough Guards"],[5,32,"4.0"],[5,33,"Claymore"],[5,41,"9.0"],[5,42,"Fire (During Emma Escort)"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[6,32,"5.0"],[6,33,"Claymore (After Fortune)"],[6,41,"10.0"],[6,42,"Guard with Binoculars"],[7,3,"Trap/Hazard"],[7,10,"Ladder / Lift"],[7,18,"Conditional Guard"],[7,26,"Hard"],[8,2,"Guards Key"],[9,2,"Shell 1 Area"],[9,19,"14.0"],[9,21,"Sunny Hsu"],[9,36,"28.0"],[9,38,"Masato Aoyama"],[9,52,"Shell 2 Area"],[10,2,"1.0"],[10,4,"Ihor Novosilets"],[10,19,"15.0"],[10,21,"Sascha Norbert Behr"],[10,36,"29.0"],[10,38,"Yo Narita"],[10,53,"42.0"],[10,55,"Kazuto Ikeda"],[11,2,"2.0"],[11,4,"Julian Tan"],[11,19,"16.0"],[11,21,"Derrick S Edick"],[11,36,"30.0"],[11,38,"Michael S Chang"],[11,53,"43.0"],[11,55,"Victor Melnik"],[12,2,"3.0"],[12,4,"Max K Do"],[12,19,"17.0"],[12,21,"Michael Mantilla (moves to b after Fatman)"],[12,36,"31.0"],[12,38,"Lucky Zhu"],[12,53,"44.0"],[12,55,"Thiago Monezi Pires de Avila"],[13,2,"4.0"],[13,4,"Jenam Ryu"],[13,19,"18.0"],[13,21,"Eiichiro Kimura (After Fatman)"],[13,36,"32.0"],[13,38,"Ryo Nitta"],[13,53,"45.0"],[13,55,"Phil A Marchant"],[14,2,"5.0"],[14,4,"Kit M Paines"],[14,19,"19.0"],[14,21,"Omar Khettab"],[14,36,"33.0"],[14,38,"Shunsuke Katoh"],[14,53,"46.0"],[14,55,"Yuusuke Kitamura"],[15,2,"6.0"],[15,4,"Stephen M Stretton"],[15,19,"20.0"],[15,21,"Ting Kae Lung"],[15,36,"34.0"],[15,38,"Toru Yamagishi"],[15,53,"47.0"],[15,55,"Carlos C Cresswell"],[16,2,"7.0"],[16,4,"Adrian Styrsky Ellwood"],[16,19,"21.0"],[16,21,"Eric J Melen"],[16,36,"35.0"],[16,38,"Sandra Stevic"],[16,53,"48.0"],[16,55,"Amir C Saya"],[17,2,"8.0"],[17,4,"Hanbum Son (After Fatman)"],[17,19,"22.0"],[17,21,"Chad P Bala"],[17,36,"36.0"],[17,38,"Brady N Hartel"],[17,53,"49.0"],[17,55,"Jeffrey Fong"],[18,2,"9.0"],[18,4,"Juan Luis Rulz"],[18,19,"23.0"],[18,21,"Gustavo L Lazo"],[18,36,"37.0"],[18,38,"Daichi Sumitomo"],[18,53,"50.0"],[18,55,"Sverrir Fridriksson (Enters when approaching south)"],[19,2,"10.0"],[19,4,"Takayuki Kawakubo"],[19,19,"24.0"],[19,21,"Alan Chon"],[19,36,"38.0"],[19,38,"Chris David Adlam"],[20,2,"11.0"],[20,4,"Gregory M Roy"],[20,19,"25.0"],[20,21,"Christian Alexander Heinzer"],[20,36,"39.0"],[20,38,"Shingo Minakawa"],[21,2,"12.0"],[21,4,"Randy Lee Way (After Fatman)"],[21,19,"26.0"],[21,21,"Daisuke Kato"],[21,36,"40.0"],[21,38,"Victor Sjostrom"],[21,53,"51.0"],[21,55,"Peter Stillman (Fatman Boss)"],[22,2,"13.0"],[22,4,"Taggart D Ryan"],[22,19,"27.0"],[22,21,"Takeshi Umeoka"],[22,36,"41.0"],[22,38,"Hiroyuki Sakashita"],[22,53,"0.0"],[22,55,"Liquid Snake (Snake) - Within Arsenal Gear"],[24,2,"Shell 1"],[25,21,"B1"],[25,22,"Strut D, Sediment Pool"],[25,50,"B1"],[25,51,"Strut E, Parcel Room"],[26,65,"L3"],[26,66,"Strut E, Roof"],[27,28,"7.0"],[28,24,"15.0"],[29,66,"7.0"],[30,37,"B1"],[30,38,"DE Connecting Bridge"],[30,63,"51.0"],[31,32,"n"],[31,54,"O2"],[31,67,"24.0"],[32,22,"7.0"],[33,33,"D2b"],[33,37,"17b"],[33,44,"18.0"],[35,21,"L1"],[35,22,"Strut D, Sediment Pool"],[36,61,"25.0"],[37,27,"D3"],[38,3,"Strut C, Dining Hall"],[39,30,"16.0"],[40,3,"n"],[40,23,"13.0"],[40,50,"L1"],[40,51,"Strut E, Parcel Room"],[41,12,"CD Connecting Bridge"],[41,37,"L1"],[41,38,"DE Connecting Bridge"],[42,9,"C2"],[42,47,"10.0"],[42,49,"E1"],[42,55,"n"],[43,4,"9.0"],[43,6,"10b"],[43,14,"11.0"],[43,16,"12.0"],[43,20,"1.0"],[43,38,"17a"],[43,65,"L2"],[43,66,"Strut E, Roof"],[44,6,"7.0"],[44,13,"3.0"],[44,14,"3.0"],[44,16,"3.0"],[44,17,"3.0"],[44,21,"D1"],[44,26,"14.0"],[44,33,"D2a"],[44,51,"1.0"],[44,52,"19.0"],[44,60,"23.0"],[45,53,"7.0"],[45,56,"E3"],[45,68,"E3"],[46,6,"10a"],[46,53,"20.0"],[46,56,"21.0"],[47,16,"Shell 1, B1"],[47,34,"Shell 1, B2 Computer Room"],[47,50,"22.0"],[48,19,"S1"],[48,39,"S1"],[48,54,"1.0"],[49,5,"C1"],[49,15,"36.0"],[49,17,"37.0"],[49,51,"1.0"],[50,17,"35.0"],[51,19,"x"],[51,42,"41.0"],[51,56,"E2"],[52,41,"n"],[53,38,"39.0"],[53,40,"38.0"],[53,56,"E2"],[55,55,"10.0"],[56,28,"S1"],[56,38,"40.0"],[57,5,"C1"],[57,51,"4.0"],[58,27,"33.0"],[58,32,"1.0"],[59,8,"BC Connecting Bridge"],[59,51,"4.0"],[59,53,"4.0"],[60,24,"31.0"],[60,26,"Shell 1, Core"],[60,32,"32.0"],[60,44,"3.0"],[60,45,"3.0"],[60,46,"3.0"],[60,47,"3.0"],[60,48,"3.0"],[60,49,"3.0"],[60,52,"4.0"],[61,6,"8.0"],[61,24,"1.0"],[61,33,"1.0"],[61,35,"S1"],[61,42,"S1"],[61,53,"4.0"],[61,55,"4.0"],[62,32,"34.0"],[63,32,"1.0"],[63,43,"EF Connecting Bridge"],[63,53,"4.0"],[65,5,"B2"],[67,55,"F1"],[68,25,"5.0"],[68,26,"5.0"],[68,28,"A1"],[68,30,"5.0"],[68,31,"5.0"],[69,25,"A2a"],[69,31,"A2b"],[70,5,"B2"],[70,47,"L1"],[70,48,"Strut F, Warehouse"],[70,60,"B1"],[70,61,"Strut F, Warehouse"],[71,28,"1.0"],[71,55,"F1"],[72,5,"1.0"],[72,6,"7.0"],[72,30,"7.0"],[73,5,"1.0"],[73,25,"Strut A, Roof"],[75,53,"27.0"],[76,8,"7.0"],[76,12,"AB Connecting Bridge"],[76,25,"A2a"],[76,31,"A2b"],[76,65,"28.0"],[77,6,"6.0"],[77,21,"A3"],[77,26,"A3"],[77,30,"A4"],[77,34,"A4"],[77,37,"FA Connecting Bridge"],[78,16,"5.0"],[78,29,"n"],[79,7,"n"],[79,28,"2.0"],[79,47,"F2b"],[79,52,"26.0"],[79,53,"m9"],[79,61,"F2b"],[79,62,"n"],[79,65,"29.0"],[80,14,"4.0"],[80,39,"30.0"],[81,10,"B1"],[81,26,"1.0"],[81,47,"F2a"],[83,3,"Strut B, Transformer Room"],[83,28,"7.0"],[83,31,"3.0"],[83,36,"Door/Lift/Map (Area Transition) Key"],[84,36,"A1"],[84,37,"Lift: Strut A, Pump Facility / Strut A, Roof"],[85,10,"Note: Strut L Perimeter, and Shell 1-2 Connecting Bridge maps not shown as no Dog Tags in that area. Arsenal Gear Map not shown as no Dog Tags in that area. (other than Snakes)"],[85,36,"A2"],[85,37,"Strut A, Roof / Strut A, Pump Room (a=Left, b=Right)"],[86,25,"Strut A, Pump Room"],[86,36,"A3"],[86,37,"Strut A, Pump Room / AB Connecting Bridge"],[87,36,"A4"],[87,37,"Strut A, Pump Room / FA Connecting Bridge"],[88,36,"B1"],[88,37,"Strut B, Transformer Room / AB Connecting Bridge"],[89,28,"A1"],[89,36,"B2"],[89,37,"Strut B, Transformer Room / BC Connecting Bridge"],[90,36,"C1"],[90,37,"Strut C, Dining Hall / BC Connecting Bridge"],[91,36,"C2"],[91,37,"Strut C, Dining Hall / CD Connecting Bridge"],[92,36,"D1"],[92,37,"Strut D, Sediment Pool / CD Connecting Bridge"],[93,36,"D2"],[93,37,"Strut D, Sediment Pool / DE Connecting Bridge (a=Upper, b=Lower Level)"],[94,36,"D3"],[94,37,"Strut D, Sediment Pool / Shell 1-2 Connecting Bridge"],[95,36,"E1"],[95,37,"Strut E, Parcel Room / DE Connecting Bridge"],[96,36,"E2"],[96,37,"Strut E, Parcel Room / EF Connecting Bridge"],[97,36,"E3"],[97,37,"Strut E, Parcel Room / Strut E, Roof"],[98,26,"Strut A, Pump Facility"],[98,36,"F1"],[98,37,"Strut F, Warehouse / EF Connecting Bridge"],[99,26,"3 Guards here at start, but no dog tags to collect. M9 found within Strut F Warehouse"],[99,36,"F2"],[99,37,"Strut F, Warehouse / FA Connecting Bridge"],[100,36,"S1"],[100,37,"Shell 1, Core / EF Connecting Bridge"],[101,22,"7.0"],[101,36,"S1"],[101,37,"Lift: Shell 1, Core / Shell 1, B1 / Shell 1, B2 Computer Room"],[102,36,"O2"],[102,37,"Ladder: Oil Bridge"],[103,36,"x"],[103,37,"Shell 1, B1 / Hostage Area"],[104,36,"n"],[104,37,"Node"],[107,2,"Shell 2"],[110,3,"Shell 2, Core"],[110,11,"S2"],[111,11,"50.0"],[112,23,"KL Connecting Bridge"],[113,8,"n"],[114,8,"45.0"],[114,32,"42.0"],[115,13,"6.0"],[115,14,"6.0"],[117,5,"48.0"],[117,8,"2.0"],[117,15,"47.0"],[117,18,"S2"],[117,22,"S2"],[118,8,"2.0"],[118,31,"9.0"],[119,13,"49.0"],[120,11,"46.0"],[122,13,"Note: Shell 2, B2 Map not shown as no Dog Tags on that level."],[122,30,"L1"],[124,23,"Strut L, Sewage Treatment Facility"],[126,5,"Door/Lift/Map (Area Transition) Key"],[126,30,"L1"],[127,5,"L1"],[127,6,"Strut L, Sewage Treatment Facility / KL Connecting Bridge"],[128,5,"S2"],[128,6,"Shell 2, Core / KL Connecting Bridge"],[129,5,"S2"],[129,6,"Lift: Shell 2, Core / Shell 2, B1"],[130,5,"O1"],[130,6,"Ladder: Oil Bridge"],[130,30,"44.0"],[131,5,"n"],[131,6,"Node"],[132,30,"43.0"],[133,31,"O1"]],"merges":[[5,18,5,23],[6,18,6,23],[6,10,6,15],[7,10,7,15],[85,10,90,18],[99,26,101,32],[122,13,124,19],[1,56,2,67],[4,3,6,7],[4,10,4,15],[4,18,4,23],[4,53,7,70],[5,10,5,15],[7,3,7,7],[7,18,7,23]],"widths":{"1":[71,2.63]},"heights":{}},{"chapter":"Plant","difficulty":"Extreme","r0":1,"r1":134,"c0":1,"c1":71,"palette":["FF76A5AF","FFD9D9D9","FF4A86E8","FFFF9900","FFCCCCCC","FFFFFF00","FFFF00FF","FF999999","FF434343","FFFF0000","FF00FFFF","FF00FF00","FFD9EAD3","FFFFF2CC","FFB6D7A8","FFB7B7B7","FFCFE2F3","FFD9D2E9","FF666666","FFEAD1DC"],"fills":["2:32+1+0,41+1+0","3:32+1+0,41+1+0","4:2+1+1,9+1+2,17+1+3,32+1+0,41+1+0","5:2+1+4,9+1+5,17+1+6,32+1+0,41+1+0","6:2+1+7,9+1+8,17+1+9,32+1+0,41+1+0","7:2+1+0,9+1+10,17+1+11","9:2+16+12,19+1+3,36+1+3,52+19+13","10:2+1+3,19+1+6,36+1+11","11:2+1+6,19+1+3,36+1+6,53+1+3","12:2+1+3,19+1+11,20+1+6,36+1+3,53+1+3","13:2+1+3,19+1+6,36+1+3,53+1+3","14:2+1+3,19+1+6,36+1+3,53+1+3","15:2+1+3,19+1+3,36+1+3,53+1+3","16:2+1+6,19+1+3,36+1+3,53+1+3","17:2+1+11,19+1+11,36+1+3,53+1+3","18:2+1+6,19+1+3,36+1+6,53+1+3","19:2+1+3,19+1+6,36+1+3,53+1+11","20:2+1+3,19+1+3,36+1+3","21:2+1+11,19+1+3,36+1+3","22:2+1+3,19+1+3,36+1+3,53+1+9","23:2+1+3,19+1+3","25:1+71+14","28:25+1+15,26+1+1,27+2+0,29+1+15,49+2+15","29:24+1+15,25+1+3,26+5+15,49+2+15,53+2+15,60+10+1","30:23+2+15,26+1+16,30+2+15,50+4+15,60+5+1,65+1+0,66+4+1","31:22+2+15,26+1+16,31+2+15,50+1+15,53+2+15,60+3+1,63+1+9,64+6+1","32:22+1+0,26+1+16,32+1+12,50+1+1,54+1+5,60+4+1,64+1+6,65+5+1","33:22+1+15,26+1+16,32+1+15,34+4+15,40+4+15,50+1+16,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","34:22+1+15,26+1+16,32+1+15,33+1+2,34+2+15,37+1+3,38+3+15,43+1+15,44+1+11,45+4+15,50+1+16,60+10+1","35:26+1+16,35+1+15,36+1+1,44+1+15,45+1+1,48+1+15,50+1+16,60+1+1,62+1+1,64+2+1,67+1+1,69+1+1","36:26+1+16,36+1+16,45+1+16,50+1+16,60+10+1","37:26+1+16,36+1+16,45+1+16,50+1+16,60+6+1,67+1+1,69+1+1","38:26+1+16,27+1+2,36+1+16,45+1+16,50+1+16,60+1+1,61+1+3,62+8+1","39:25+1+1,26+1+15,27+3+1,36+1+16,45+1+16,49+2+16,60+8+1,69+1+1","40:24+7+1,36+1+16,45+1+16,49+1+16,60+10+1","41:3+1+12,4+4+1,23+1+3,24+1+1,27+1+1,30+1+6,31+1+1,36+1+16,45+1+16,49+1+16,63+1+16,64+1+15,65+1+1","42:3+5+1,22+2+1,27+1+1,31+2+1,36+1+16,45+1+16,49+1+16,63+1+16","43:3+6+1,9+1+2,10+1+1,22+2+1,26+3+1,31+2+1,36+1+16,45+1+16,47+1+0,48+1+1,49+1+2,50+5+1,55+1+12,63+1+16","44:3+1+1,4+1+6,5+1+1,6+1+3,7+2+1,10+4+1,14+1+3,15+1+1,16+1+11,17+3+1,20+1+0,22+5+1,28+5+1,34+4+1,38+1+3,39+10+1,49+1+16,50+1+1,55+1+1,60+1+15,63+1+16","45:3+3+1,6+1+0,7+1+1,11+2+15,13+2+0,15+1+15,16+2+0,18+2+15,20+1+1,21+1+2,22+2+1,26+1+1,27+1+3,28+1+1,31+2+1,33+1+2,34+1+1,36+1+16,37+1+1,45+1+16,46+1+1,49+1+16,50+1+1,51+1+0,52+1+6,53+1+3,54+4+1,60+1+3,63+1+16","46:3+5+1,11+3+1,17+3+1,22+2+1,31+2+1,36+1+15,37+1+1,45+1+15,46+1+1,49+1+16,50+1+1,53+1+0,55+1+1,56+1+2,57+1+3,60+1+15,63+3+16,68+1+2,69+1+15","47:4+2+1,6+1+3,49+1+16,50+2+1,53+5+1,60+1+15,65+1+16,69+1+15","48:4+3+1,49+1+15,50+1+1,53+1+1,55+1+1,60+2+15,65+1+16,68+2+15","49:4+2+1,19+1+10,20+19+16,39+1+10,49+2+1,52+1+6,53+1+1,54+1+0,55+1+1,61+2+15,65+1+16,67+2+15","50:5+1+2,15+1+3,16+1+1,17+1+6,18+4+1,28+1+16,35+9+1,49+2+1,51+1+0,55+1+1,62+6+15","51:5+1+17,15+2+1,17+1+3,18+1+1,28+1+16,35+1+1,43+1+1,50+5+1,55+1+11,56+1+1,64+1+1,65+1+16","52:5+1+17,15+4+1,19+1+5,28+1+16,35+7+15,42+1+3,43+1+15,56+1+2","53:5+1+17,15+4+1,28+1+16,36+3+15,40+1+15,41+1+12,42+1+15,56+1+17","54:5+1+17,28+1+16,36+2+15,38+1+3,39+1+15,40+1+3,41+2+15,56+1+2","55:5+1+17,28+1+16,36+1+15,38+1+15,40+3+15,53+4+1","56:5+1+17,28+1+16,36+1+15,38+1+15,40+1+15,42+1+15,53+1+1,55+1+0","57:5+1+17,28+1+10,36+1+15,38+1+3,39+2+15,42+1+15,53+1+1","58:5+1+2,27+3+1,36+7+15,51+1+0,52+4+1","59:5+2+1,24+1+1,25+1+3,26+6+1,32+1+0,51+1+1,53+1+1,55+1+1","60:6+1+1,24+1+1,32+1+0,51+1+0,52+1+1,53+1+0,54+2+1","61:6+1+1,24+1+1,32+1+3,43+1+1,44+6+0,50+2+1,52+1+0,53+3+1","62:6+1+11,7+1+1,13+1+1,14+1+8,15+6+17,21+1+8,22+2+1,24+1+0,32+1+1,33+1+0,34+1+1,35+1+2,36+6+17,42+1+2,43+1+1,51+2+1,53+1+0,54+1+1,55+1+0","63:6+1+1,24+1+1,26+5+1,32+1+3,51+1+1,53+1+1,55+1+1","64:6+1+1,24+1+1,26+5+1,32+1+0,51+2+1,53+1+0,54+2+1","65:5+2+1,24+6+1,30+1+3,31+2+1,53+1+1","66:5+1+2,53+1+1","67:5+1+17,53+3+1","68:5+1+17,27+3+1,55+1+2","69:5+1+17,25+2+0,27+1+1,28+1+10,29+1+1,30+2+0,55+1+17","70:5+1+17,23+2+16,25+1+2,26+5+1,31+1+2,32+2+16,55+1+17,59+11+16","71:5+1+2,23+1+16,25+2+1,28+1+1,30+2+1,33+1+16,55+1+17,59+1+16,69+1+16","72:5+2+1,23+1+16,26+2+1,28+1+3,29+2+1,33+1+16,55+1+2,59+1+16,62+4+15,66+1+11,67+2+15,69+1+16","73:5+2+0,7+1+1,8+2+15,23+1+16,30+1+0,33+1+16,52+5+1,59+1+16,62+7+15,69+1+16","74:5+1+0,6+1+1,8+2+15,23+1+16,33+1+16,49+8+1,59+1+16,62+7+15,69+1+1","75:5+4+1,9+1+15,23+1+16,33+1+16,49+7+1,56+1+15,57+3+16,62+3+15,66+2+15,69+1+15","76:5+2+1,8+1+1,9+1+15,23+3+16,31+3+16,50+3+1,53+1+3,54+3+1,64+1+3,65+5+15","77:5+3+1,8+1+6,9+1+15,25+1+2,31+1+2,48+3+1,54+3+1,62+1+0,64+2+15,67+1+15","78:5+2+1,8+1+1,9+1+15,20+1+1,21+1+2,22+3+17,25+1+1,26+1+2,30+1+2,31+1+1,32+2+17,34+1+2,35+1+1,48+3+1,54+3+1,64+1+15,65+1+3,67+3+15","79:5+1+1,6+1+3,7+2+1,9+1+15,13+4+1,17+1+3,18+1+1,20+1+1,25+1+1,26+3+15,29+1+12,30+1+15,31+1+1,35+1+1,48+9+1,61+8+15","80:5+2+1,7+1+12,8+2+15,11+3+1,18+3+1,25+3+15,28+1+6,29+3+15,35+12+1,47+1+2,48+1+17,49+6+1,55+1+16,56+5+17,61+1+2,62+1+12,63+5+15","81:5+3+1,8+2+15,11+1+1,13+1+1,14+1+3,15+4+1,24+9+15,35+2+15,37+1+1,38+6+15,44+1+1,45+1+15,46+1+1,47+1+15,49+3+1,52+1+3,53+2+1,55+1+16,62+5+15","82:5+5+1,10+1+2,11+1+1,25+1+15,26+1+0,27+5+15,37+2+1,39+1+15,42+1+15,43+1+6,44+1+1,46+1+1,47+1+2,48+8+1,62+4+15,68+1+15","83:25+1+15,26+5+18,31+1+15,62+3+15,66+3+15","84:25+1+15,26+2+18,28+1+0,29+2+18,31+1+3,62+1+16,68+1+16","85:25+7+15,36+1+10,62+7+16","86:36+1+2","87:10+1+19,36+1+2","88:36+1+2","89:36+1+2","90:28+1+10,36+1+2","91:26+5+1,36+1+2","92:26+5+1,36+1+2","93:26+6+1,36+1+2","94:26+1+1,30+2+1,36+1+2","95:25+2+1,28+1+1,30+1+1,36+1+2","96:22+9+1,36+1+2","97:22+1+1,25+7+1,36+1+2","98:22+1+1,36+1+2","99:18+7+1,36+1+2","100:18+7+1,36+1+2","101:18+7+1,36+1+2","102:18+1+0,19+6+1,36+1+10","103:18+2+1,23+2+1,36+1+5","104:18+7+1,36+1+5","105:36+1+12","108:1+71+13","111:11+1+10,31+1+8","112:7+1+1,10+1+1,11+1+11,12+1+1,14+1+1,31+1+1","113:7+8+1,31+1+1,33+1+1","114:7+1+3,8+1+12,9+6+1,31+1+1,33+1+1","115:7+8+1,31+1+1,32+1+3,33+1+1","116:7+1+1,10+3+1,13+2+0,15+1+1,31+1+1,33+1+1","117:7+1+1,15+1+1,22+1+0,23+9+1,33+1+1","118:3+1+8,4+2+1,6+1+3,7+1+1,8+1+0,15+1+3,16+2+1,18+1+2,19+3+17,22+1+2,23+1+1,31+1+1,33+1+1","119:7+1+1,8+1+0,9+1+1,11+3+4,14+3+1,31+1+0,33+1+1","120:6+3+1,9+1+4,11+1+4,13+1+6,14+1+4,15+2+1,31+1+1,33+1+1","121:6+2+1,8+5+4,13+1+3,14+1+4,15+2+1,31+1+1,33+1+1","122:30+2+1,33+1+1","123:13+1+19,30+1+2","124:30+1+17","125:30+1+17","126:30+1+17","127:30+1+2","128:5+1+2,29+4+1,33+1+8","129:5+1+2,31+1+1","130:5+1+10,31+1+1","131:5+1+5,30+1+3,31+1+1","132:5+1+12,30+1+1","133:30+1+3,31+1+1","134:31+1+5"],"texts":[[1,2,"Key"],[1,32,"Hazard Key"],[1,56,"Note: Connecting Bridges may also contain Cyphers of Varying Types"],[2,32,"1.0"],[2,33,"Sec Camera"],[2,41,"6.0"],[2,42,"Electrical Flooring"],[3,2,"Walkways"],[3,9,"Transitions"],[3,17,"Entities"],[3,26,"Area Map:"],[3,32,"2.0"],[3,33,"Gun Camera"],[3,41,"7.0"],[3,42,"Fatman Bomb"],[4,3,"Grey gradients denote differing levels"],[4,10,"Door / Area Change "],[4,18,"Guards"],[4,26,"Plant"],[4,32,"3.0"],[4,33,"Pitfall"],[4,41,"8.0"],[4,42,"Sec Camera (After Coolent Spray)"],[4,53,"Note: Some Guards stand in place and others Patrol on set paths. Positions shown are approx central positions or positions most likely to be encountered. Be watchful on approach."],[5,10,"Locked Door"],[5,18,"Tough Guards"],[5,32,"4.0"],[5,33,"Claymore"],[5,41,"9.0"],[5,42,"Fire (During Emma Escort)"],[6,10,"Blocked Entry"],[6,18,"Boss with Tag"],[6,26,"Difficulty:"],[6,32,"5.0"],[6,33,"Claymore (After Fortune)"],[6,41,"10.0"],[6,42,"Guard with Binoculars"],[7,3,"Trap/Hazard"],[7,10,"Ladder / Lift"],[7,18,"Conditional Guard"],[7,26,"Extreme"],[8,2,"Guards Key"],[9,2,"Shell 1 Area"],[9,19,"15.0"],[9,21,"Ryo Hanazawa"],[9,36,"30.0"],[9,38,"Ai Shimamatsu"],[9,52,"Shell 2 Area"],[10,2,"1.0"],[10,4,"Makoto Shiragaki"],[10,19,"16.0"],[10,21,"Mixalis Tsakiris"],[10,36,"31.0"],[10,38,"Derek Faria (After Fatman)"],[11,2,"2.0"],[11,4,"Richard W Hair Jr"],[11,19,"17.0"],[11,21,"Wayne A Hindman II (moves to b after Fatman)"],[11,36,"32.0"],[11,38,"Artmed S Hernandez"],[11,53,"44.0"],[11,55,"John Guest Jr"],[12,2,"3.0"],[12,4,"Spencer P Gallagher"],[12,19,"18.0"],[12,21,"Zeeshan Raza (After Fatman)"],[12,36,"33.0"],[12,38,"Rhys J Perkins"],[12,53,"45.0"],[12,55,"Sunny Lee"],[13,2,"4.0"],[13,4,"Ruben Alexander van Ophuizen"],[13,19,"19.0"],[13,21,"Mikko Pellervo Rekola"],[13,36,"34.0"],[13,38,"Henry Van"],[13,53,"46.0"],[13,55,"Lei Adnan"],[14,2,"5.0"],[14,4,"Leevi Mursula"],[14,19,"20.0"],[14,21,"Kouji Yamashita"],[14,36,"35.0"],[14,38,"Takashi Saitou"],[14,53,"47.0"],[14,55,"Ryo Harada"],[15,2,"6.0"],[15,4,"Roy Grizzly"],[15,19,"21.0"],[15,21,"Makoto Chiba"],[15,36,"36.0"],[15,38,"Nicholas G Benson"],[15,53,"48.0"],[15,55,"Hugo L Vidal"],[16,2,"7.0"],[16,4,"Murat Sahiner"],[16,19,"22.0"],[16,21,"David Gomez"],[16,36,"37.0"],[16,38,"Hongoh Yuki"],[16,53,"49.0"],[16,55,"Matthias Sauermann"],[17,2,"8.0"],[17,4,"Casey K Chan (After Fatman)"],[17,19,"23.0"],[17,21,"Christopher R Martinez (After Emma Escort)"],[17,36,"38.0"],[17,38,"Nicholas A Fuentes"],[17,53,"50.0"],[17,55,"Rick BigBan Laiso"],[18,2,"9.0"],[18,4,"David Yu"],[18,19,"24.0"],[18,21,"Masayuki Yabuki"],[18,36,"39.0"],[18,38,"Roy PC Smillie"],[18,53,"51.0"],[18,55,"Josh Garcia"],[19,2,"10.0"],[19,4,"Yuta Shimizu (a/b depends on entrance used)"],[19,19,"25.0"],[19,21,"Brendan Oconnor"],[19,36,"40.0"],[19,38,"Chris S Austin"],[19,53,"52.0"],[19,55,"Clayton R Worrell (Enters when approaching south)"],[20,2,"11.0"],[20,4,"Callum G Whitehurst"],[20,19,"26.0"],[20,21,"Grant Drain"],[20,36,"41.0"],[20,38,"Tony Pawlik"],[21,2,"12.0"],[21,4,"Matthew T Fenelon (After Fatman)"],[21,19,"27.0"],[21,21,"Yoshihiro Sakai"],[21,36,"42.0"],[21,38,"Erik PO Appelblad"],[22,2,"13.0"],[22,4,"Edward Evans"],[22,19,"28.0"],[22,21,"Greg T McDaniel"],[22,36,"43.0"],[22,38,"Tooru Morita"],[22,53,"53.0"],[22,55,"Peter Stillman (Fatman Boss)"],[23,2,"14.0"],[23,4,"Sonny Skinner"],[23,19,"29.0"],[23,21,"Ikuo Uchiumi"],[23,53,"0.0"],[23,55,"Hideo Kojima (Snake) - Within Arsenal Gear"],[25,2,"Shell 1"],[26,21,"B1"],[26,22,"Strut D, Sediment Pool"],[26,50,"B1"],[26,51,"Strut E, Parcel Room"],[27,65,"L3"],[27,66,"Strut E, Roof"],[28,27,"7.0"],[28,28,"7.0"],[29,25,"15.0"],[30,65,"7.0"],[31,37,"B1"],[31,38,"DE Connecting Bridge"],[31,63,"53.0"],[32,22,"7.0"],[32,32,"n"],[32,54,"O2"],[32,64,"25.0"],[34,33,"D2b"],[34,37,"17b"],[34,44,"18.0"],[36,21,"L1"],[36,22,"Strut D, Sediment Pool"],[38,27,"D3"],[38,61,"26.0"],[39,3,"Strut C, Dining Hall"],[41,3,"n"],[41,23,"13.0"],[41,30,"16.0"],[41,50,"L1"],[41,51,"Strut E, Parcel Room"],[42,12,"CD Connecting Bridge"],[42,37,"L1"],[42,38,"DE Connecting Bridge"],[43,9,"C2"],[43,47,"10.0"],[43,49,"E1"],[43,55,"n"],[44,4,"9.0"],[44,6,"10b"],[44,14,"11.0"],[44,16,"12.0"],[44,20,"1.0"],[44,38,"17a"],[44,65,"L2"],[44,66,"Strut E, Roof"],[45,6,"7.0"],[45,13,"3.0"],[45,14,"3.0"],[45,16,"3.0"],[45,17,"3.0"],[45,21,"D1"],[45,27,"14.0"],[45,33,"D2a"],[45,51,"1.0"],[45,52,"19.0"],[45,53,"22.0"],[45,60,"24.0"],[46,53,"7.0"],[46,56,"E3"],[46,57,"21.0"],[46,68,"E3"],[47,6,"10a"],[48,16,"Shell 1, B1"],[48,34,"Shell 1, B2 Computer Room"],[49,19,"S1"],[49,39,"S1"],[49,52,"20.0"],[49,54,"1.0"],[50,5,"C1"],[50,15,"38.0"],[50,17,"39.0"],[50,51,"1.0"],[51,17,"37.0"],[51,55,"23.0"],[52,19,"x"],[52,42,"43.0"],[52,56,"E2"],[53,41,"n"],[54,38,"40.0"],[54,40,"42.0"],[54,56,"E2"],[56,55,"10.0"],[57,28,"S1"],[57,38,"41.0"],[58,5,"C1"],[58,51,"4.0"],[59,25,"33.0"],[59,32,"1.0"],[60,8,"BC Connecting Bridge"],[60,32,"1.0"],[60,51,"4.0"],[60,53,"4.0"],[61,26,"Shell 1, Core"],[61,32,"35.0"],[61,44,"3.0"],[61,45,"3.0"],[61,46,"3.0"],[61,47,"3.0"],[61,48,"3.0"],[61,49,"3.0"],[61,52,"4.0"],[62,6,"8.0"],[62,24,"1.0"],[62,33,"1.0"],[62,35,"S1"],[62,42,"S1"],[62,53,"4.0"],[62,55,"4.0"],[63,32,"34.0"],[64,32,"1.0"],[64,43,"EF Connecting Bridge"],[64,53,"4.0"],[65,30,"36.0"],[66,5,"B2"],[68,55,"F1"],[69,25,"5.0"],[69,26,"5.0"],[69,28,"A1"],[69,30,"5.0"],[69,31,"5.0"],[70,25,"A2a"],[70,31,"A2b"],[71,5,"B2"],[71,47,"L1"],[71,48,"Strut F, Warehouse"],[71,60,"B1"],[71,61,"Strut F, Warehouse"],[72,28,"1.0"],[72,55,"F1"],[72,66,"31.0"],[73,5,"8.0"],[73,6,"7.0"],[73,30,"7.0"],[74,5,"8.0"],[74,25,"Strut A, Roof"],[76,53,"28.0"],[76,64,"30.0"],[77,8,"7.0"],[77,12,"AB Connecting Bridge"],[77,25,"A2a"],[77,31,"A2b"],[77,62,"7.0"],[78,21,"A3"],[78,26,"A3"],[78,30,"A4"],[78,34,"A4"],[78,37,"FA Connecting Bridge"],[78,65,"29.0"],[79,6,"6.0"],[79,17,"5.0"],[79,29,"n"],[80,7,"n"],[80,28,"2.0"],[80,47,"F2b"],[80,53,"m9"],[80,61,"F2b"],[80,62,"n"],[81,14,"4.0"],[81,52,"27.0"],[82,10,"B1"],[82,26,"1.0"],[82,43,"32.0"],[82,47,"F2a"],[84,3,"Strut B, Transformer Room"],[84,28,"7.0"],[84,31,"3.0"],[84,36,"Door/Lift/Map (Area Transition) Key"],[85,36,"A1"],[85,37,"Lift: Strut A, Pump Facility / Strut A, Roof"],[86,36,"A2"],[86,37,"Strut A, Roof / Strut A, Pump Room (a=Left, b=Right)"],[87,10,"Note: Strut L Perimeter, and Shell 1-2 Connecting Bridge maps not shown as no Dog Tags in that area. Arsenal Gear Map not shown as no Dog Tags in that area. (other than Snakes)"],[87,25,"Strut A, Pump Room"],[87,36,"A3"],[87,37,"Strut A, Pump Room / AB Connecting Bridge"],[88,36,"A4"],[88,37,"Strut A, Pump Room / FA Connecting Bridge"],[89,36,"B1"],[89,37,"Strut B, Transformer Room / AB Connecting Bridge"],[90,28,"A1"],[90,36,"B2"],[90,37,"Strut B, Transformer Room / BC Connecting Bridge"],[91,36,"C1"],[91,37,"Strut C, Dining Hall / BC Connecting Bridge"],[92,36,"C2"],[92,37,"Strut C, Dining Hall / CD Connecting Bridge"],[93,36,"D1"],[93,37,"Strut D, Sediment Pool / CD Connecting Bridge"],[94,36,"D2"],[94,37,"Strut D, Sediment Pool / DE Connecting Bridge (a=Upper, b=Lower Level)"],[95,36,"D3"],[95,37,"Strut D, Sediment Pool / Shell 1-2 Connecting Bridge"],[96,36,"E1"],[96,37,"Strut E, Parcel Room / DE Connecting Bridge"],[97,36,"E2"],[97,37,"Strut E, Parcel Room / EF Connecting Bridge"],[98,36,"E3"],[98,37,"Strut E, Parcel Room / Strut E, Roof"],[99,26,"Strut A, Pump Facility"],[99,36,"F1"],[99,37,"Strut F, Warehouse / EF Connecting Bridge"],[100,26,"3 Guards here at start, but no dog tags to collect. M9 found within Strut F Warehouse"],[100,36,"F2"],[100,37,"Strut F, Warehouse / FA Connecting Bridge"],[101,36,"S1"],[101,37,"Shell 1, Core / EF Connecting Bridge"],[102,18,"7.0"],[102,36,"S1"],[102,37,"Lift: Shell 1, Core / Shell 1, B1 / Shell 1, B2 Computer Room"],[103,36,"O2"],[103,37,"Ladder: Oil Bridge"],[104,36,"x"],[104,37,"Shell 1, B1 / Hostage Area"],[105,36,"n"],[105,37,"Node"],[108,2,"Shell 2"],[111,3,"Shell 2, Core"],[111,11,"S2"],[112,11,"52.0"],[113,23,"KL Connecting Bridge"],[114,7,"47.0"],[114,8,"n"],[115,32,"44.0"],[116,13,"6.0"],[116,14,"6.0"],[117,22,"10.0"],[118,6,"50.0"],[118,8,"2.0"],[118,15,"49.0"],[118,18,"S2"],[118,22,"S2"],[119,8,"2.0"],[119,31,"9.0"],[120,13,"48.0"],[121,13,"51.0"],[123,13,"Note: Shell 2, B2 Map not shown as no Dog Tags on that level."],[123,30,"L1"],[125,23,"Strut L, Sewage Treatment Facility"],[127,5,"Door/Lift/Map (Area Transition) Key"],[127,30,"L1"],[128,5,"L1"],[128,6,"Strut L, Sewage Treatment Facility / KL Connecting Bridge"],[129,5,"S2"],[129,6,"Shell 2, Core / KL Connecting Bridge"],[130,5,"S2"],[130,6,"Lift: Shell 2, Core / Shell 2, B1"],[131,5,"O1"],[131,6,"Ladder: Oil Bridge"],[131,30,"46.0"],[132,5,"n"],[132,6,"Node"],[133,30,"45.0"],[134,31,"O1"]],"merges":[[5,18,5,23],[6,18,6,23],[6,10,6,15],[7,10,7,15],[87,10,92,18],[100,26,102,32],[123,13,125,19],[1,56,2,67],[4,3,6,7],[4,10,4,15],[4,18,4,23],[4,53,7,70],[5,10,5,15],[7,3,7,7],[7,18,7,23]],"widths":{"1":[71,2.63]},"heights":{}}]; const TOTALS = {"tanker":152,"plant":242,"grand":394}; @@ -1129,14 +1129,16 @@ function renderBoss(){ ============================================================ */ const steamCount = ()=>ACHIEVEMENTS.filter(a=>(S.steam.unlocked||{})[a.api]).length; +const HELPER = 'http://127.0.0.1:8765/api/steam'; function syncEndpoint(){ // served locally by steam-sync.py -> same origin if(IS_LOCAL && location.protocol.startsWith('http')) return '/api/steam'; - // hosted build -> use the deployed proxy if one has been configured + // a deployed proxy Worker, if one is configured if(STEAM_PROXY) return STEAM_PROXY.replace(/\/$/,'') + '/api/steam'; - // opened straight off the disk -> talk to the local helper - if(!location.protocol.startsWith('http')) return 'http://127.0.0.1:8765/api/steam'; - return null; + // hosted or opened off the disk -> use the local helper when it is running. + // An https page may reach 127.0.0.1 (it counts as a trustworthy origin), and the + // helper answers the Private Network Access preflight Chrome asks for. + return HELPER; } async function syncSteam(profile){ @@ -1147,16 +1149,6 @@ async function syncSteam(profile){ if(!profile){ setStatus('Enter a Steam profile first — a vanity name (e.g. gaben) or a 17-digit SteamID64.','bad'); return; } S.steam.profile=profile; save(); const url=syncEndpoint(); - if(!url){ - setStatus('ℹ️ This page is hosted, so there is no server to talk to Steam for it.
                                                                                                        '+ - 'Steam sends no CORS headers, so a browser cannot read your profile directly. '+ - 'Options: run steam-sync.py locally next to this file and open the page from '+ - 'http://127.0.0.1:8765/, or deploy steam-proxy-worker.js and paste its URL into '+ - 'STEAM_PROXY at the top of this page\'s script. Everything else here works fine on a static host, '+ - 'and Export/Import will carry your ticks between the two.'); - document.getElementById('steamdot').className=''; - return; - } setStatus('⏳ Contacting Steam for '+esc(profile)+'…'); try{ const r = await fetch(url+'?profile='+encodeURIComponent(profile), {cache:'no-store'}); @@ -1178,8 +1170,9 @@ async function syncSteam(profile){ '
                                                                                                        unlocked on Steam'+(added?' ('+added+' newly ticked here)':'')+'.','ok'); document.getElementById('steamdot').className='on'; }catch(e){ - setStatus('❌ Could not reach the sync helper.
                                                                                                        Start it with python3 steam-sync.py in the folder next to this page, then try again. '+ - 'The helper runs on 127.0.0.1:8765 and is what talks to Steam on your behalf (Steam blocks direct browser requests).','bad'); + setStatus('❌ Could not reach the sync helper.
                                                                                                        Steam sends no CORS headers, so the page needs something to fetch your profile through. '+ + 'Run python3 steam-sync.py on this machine (it listens on 127.0.0.1:8765) and try again — that is the easiest option, and it is what this page just tried. '+ + 'Alternatively deploy steam-proxy-worker.js and paste its URL into STEAM_PROXY.','bad'); document.getElementById('steamdot').className='err'; } renderSteam(); renderAch(); paintProgress(); } diff --git a/steam-sync.py b/steam-sync.py index 8497d9d..1dc0469 100644 --- a/steam-sync.py +++ b/steam-sync.py @@ -130,6 +130,9 @@ class Handler(http.server.SimpleHTTPRequestHandler): self.send_header("Access-Control-Allow-Origin", "*") self.send_header("Access-Control-Allow-Headers", "*") self.send_header("Access-Control-Allow-Methods", "GET, OPTIONS") + # Chrome asks for this when a public https page (e.g. the Pages deployment) + # calls into 127.0.0.1. Without it the request is blocked before it is sent. + self.send_header("Access-Control-Allow-Private-Network", "true") def do_OPTIONS(self): self.send_response(204)