Super Auto Pets wiki based on data directly extracted from the game files.
I can't find wikis with up-to-date data. Also, existing wikis rely on manual updates, which means slow and difficult to keep up.
The repo has two parts: a dumper that extracts data from the game, and a wiki that renders it.
The dumper runs in two parallel extraction passes then merges the results.
sap_dump/unitypy_extractor.py reads the game's Unity asset bundles using UnityPy. It parses the localization bundles to extract ability descriptions, fine-print text, and item names in English. You need an AssetRipper dump of the game as input.
sap_dump/frida_runner.py spawns the game process and injects sap_dump/hooks.js via Frida. The JS hooks into the Unity IL2CPP runtime and intercepts:
MinionTemplateconstruction - captures each pet's attack, health, tier, cost, and enum IDSetTrigger/SetAboutcalls onAbilityobjects - captures trigger class names and per-turn limitsSpellConstantsinitialization - captures food item prices and stats
Frida sends all captured data back to the Python host over a message channel. The game is then killed.
sap_dump/builder.py joins the UnityPy localization data with the Frida runtime data into a unified structure. It resolves trigger class names to human-readable display names, computes fine-print text (e.g. "Works 3 times per turn"), and splits the output into pets, foods, and toys.
sap_dump/asset_extractor.py copies Texture2D sprite images out of the AssetRipper dump for every pet, food, and toy. sap_dump/icon_map_extractor.py also extracts the icon atlas and dice skin maps.
Output (written to dumper/output/):
| File | Contents |
|---|---|
pets.json |
All pets - stats, ability text, tier, images |
foods.json |
All food items - stats, price, images |
toys.json |
All toys (Relic* entries) - stats, ability text, images |
icon_map.json |
Icon atlas mapping |
dice_map.json |
Dice skin mapping |
assets/ |
Extracted PNG sprites |
Running the dumper:
cd dumper
uv run python main.py /path/to/AssetRipper/dump/rootRequires the game to be installed (Linux Steam). Frida must be able to spawn the game binary.
An Astro static site that reads directly from dumper/output/. A prebuild script copies the assets into public/assets/. Pages are generated at build time from the JSON files.
Routes:
| Path | Content |
|---|---|
/pets |
Grid of all pets, filterable by tier |
/pets/[name] |
Individual pet page with stats and ability |
/foods |
Grid of all food items |
/foods/[name] |
Individual food page |
/toys |
Grid of all toys |
/toys/[name] |
Individual toy page |
Running the wiki:
cd wiki
npm install
npm run dev # dev server
npm run build # static build to dist/- Fix not showing "Works X times per turn" text for some abilities.
- Add more detail about ability triggers (e.g. Dragon's "When level 1 summoned.")
- Add different languages.