A save file is usually opaque precisely when you need it most, so this viewer recognizes the families real games actually use and shows what each spec exposes. Minecraft-family NBT is parsed tag by tag per the wiki.vg specification (all 12 tag types, gzip/zlib/raw wrappers — level.dat is gzip, servers.dat raw). Unreal Engine saves are identified by the "GVAS" magic and decoded per the uesave/gvas layout: save-game version, UE4 and UE5 package file versions, the FEngineVersion tuple and branch string, and the custom-version table; Palworld saves from Steam are unwrapped through their real container (two header ints, "PlZ1" magic, zlib stream) into the GVAS payload. SQLite-backed saves are opened read-only through node:sqlite and listed table by table with row counts and preview rows. Text saves are detected structurally: JSON (deck-builder style), XML (a Stardew Valley SaveGame is recognized by its documented root fields), INI (including Unreal [/Script/…] configuration), and Lua table saves (Hades family). Zip containers are reported with their inner entries. Anything else falls back to a Shannon-entropy reading, a hex dump of the first 256 bytes and a printable-strings scan, with a strings heuristic for Source engine .sav files whose block-handler tokens (ADVSYS, EntityPatch, Response System…) are documented on the Valve Developer Community. Progress-relevant fields (name, level, gold, health, seed, playtime…) are pulled out into a key-facts panel, and every parse is bounded — node budget, depth cap, array previews — because save files are untrusted input. Where do saves live? Steam Cloud games keep them under Steam/userdata///remote (per the Steamworks documentation); everything else is game-specific. This tool never modifies your file — it reads one copy in memory and only renders.