What it supports
All six .sl2 variants, and you never tell it which game it is — that comes out of the bytes. Each one renders in its own status screen, skinned to that game.
- Dark Souls Remastered — identity, class, gender, every attribute, souls, humanity, play time, deaths, the full inventory, held boss souls, twelve boss-defeat flags, and all 43 bonfires with how far each one is kindled. Dark Souls is the only game here that records a bonfire you found but never lit, so it is the only one that can tell you.
- Dark Souls: Prepare to Die — the same, at the same depth. The two releases keep the same stat block; only where it sits differs.
- Dark Souls II: Scholar of the First Sin — attributes, class, covenant with rank, gender, hollowing, deaths, play time, and an inventory that names infusions and reinforcement levels. All 77 bonfires by area, and bosses defeated from three separate signals that have to agree.
- Dark Souls II (vanilla, pre-Scholar) — the same depth as Scholar. The two releases differ by one encryption key and nothing else; everything inside sits in the same place.
- Dark Souls III — the deepest read here. Attributes, souls, play time, embered state, NG+, the full inventory, equipped weapons with their infusion and
+N, armour, rings and ammo. All 77 bonfires by name. Bosses from two independent flag sets, so a New Game+ character still reads correctly. Covenants joined, rewards from 57 NPCs, which Lords of Cinder are on the throne, 426 world items picked up across six areas — and, of the bosses still alive, which ones you can actually reach right now. - Elden Ring — identity, attributes and runes in full; owned weapons, armour and ashes named by type, so an armour can never resolve to a weapon; remembrances held and the bosses they prove dead. Talismans, spells and goods live in a part of the save that shifts between patches and is not parsed, so the item list is partial. It says so where the list is.
A slot drops to inventory only rather than print an attribute it cannot verify. A save holding several characters gets a tab each, and every export button writes the whole file — every slot, not the one you happen to be looking at.
How it works
A .sl2 is one packed archive of blocks — most of them encrypted, one per character, a few more for the world. The page unpacks the archive, decrypts each block with the key the game itself ships, and reads the fields off positions the community mapped over years. Where does your save go? Nowhere. It is parsed in this tab and forgotten when you close it. The one exception is the DS2 item thumbnails, which are fetched from fextralife.com as you scroll, so those requests do reveal which items a save holds.
The parsing runs on a background thread, so a nine-megabyte save does not freeze the page, and only the tables for the game you dropped get fetched instead of all four games' worth. After the first visit it works offline — the page, its code and the tables it has already used are cached, so you can read a save on a plane. The thumbnails are deliberately not cached. They are the only thing that leaves your browser, and keeping copies of them would outlive the tab they were fetched for.
Three ways to take the reading with you. Copy Markdown puts all of it on your clipboard, which is the format to paste into an LLM — it cannot open a .sl2, but it reads Markdown fine. Download .md is that same text as a file. Download .json is the same data written for a program instead of a person, against a published schema, and byte-for-byte identical to what the command-line tool writes. A harness holds those two together on every save, so nothing can tell which one produced a file. One thing to know before you consume it: a field is there only if it was read. Dark Souls III keeps no death counter, so a DS3 character has no deaths key at all — not a zero, not a null. That way you can always tell "the game does not record this" from "it really is none".
Every game hides its data somewhere else, so each one is read differently.
- Dark Souls II (both releases): vanilla and Scholar use different keys over an identical layout, so the page tries both and reads whichever one opens. Which release you have is decided by which key works, not by a guess. Bonfires and boss kills come from a second world block the game keeps well away from the character.
- Dark Souls Remastered / Prepare to Die: the character block moves as the save grows, so a fixed offset is worthless. Remastered is found by a marker that always sits beside it; Prepare to Die has no such marker, so it is found by your character's own name.
- Dark Souls III: the stats move between patches, so the block is located by content rather than position — the nine numbers that add up to your level. That is the game's own formula, so a false match is close to impossible.
- Elden Ring: the same trick with eight numbers, plus every owned item read straight out of the game's item array.
Two rules, and neither one bends.
It never prints a number it cannot verify. If a stat block fails its own check, that slot drops to inventory-only and the attributes are simply gone. A missing field costs you nothing. A wrong one quietly tells you your character is something it is not, and you would have no way of knowing. So the field goes.
Progress is a floor, not a ceiling. A boss counts as dead only when the save still proves it: the soul sitting in your pack, a defeat flag, or a place past it you could not have reached with the boss alive. Kill a boss and spend the soul, with no flag and no gate behind it, and it stays off the list. The tool under-claims on purpose. Everything it shows you happened. There is simply more that it cannot see.