Extraction Guide

How to run the Frida extraction scripts, the output directory structure, JSON format conventions, and field naming rules.

frida-il2cpp-bridge v1.1.79 Apple Silicon Mac

How to Run

Start the Frida server on the emulator, then launch the extraction script from your Mac. The game must be running and past the title screen.

adb shell /data/local/tmp/frida-server &
python3 extraction/mac/extract_game_data.py

Output

All extracted data lands in data/game_reference/, versioned by game build. A latest symlink always points to the most recent extraction.

data/game_reference/
  v1.1.79/
    ships.json                # All ship data
    skills.json               # All skill data
    admirals.json             # All admiral data
    equipment.json            # All item data
    gemstones.json            # Gemstone data
    gemstone_slots.json
    gemstone_skills.json
    gemstone_collections.json
    stages.json               # Stage / level data
    bosses.json               # Boss scaling data
    waves.json                # Wave / formation data
    buildings.json            # Building data
    enums.json                # All enum mappings
    extraction_log.json       # Counts and errors
  latest -> v1.1.79/          # Symlink

JSON Format

Every table file follows the same two-part structure: a metadata block describing the source, and a data array of extracted records.

{
  "metadata": {
    "table": "GeneralShipTable",
    "source": "TableDataManager.ship_dict",
    "gameVersion": "1.1.79",
    "extractedAt": "...",
    "count": 156,
    "structFields": [ ... ]
  },
  "data": [
    {
      "ID": 10004,
      "eMainType": 0,
      "eMainType_name": "Ship",
      "iName": 12345,
      "iName_resolved": "Aegis Cruiser",
      ...
    }
  ]
}

Metadata Fields

FieldDescription
tableIL2CPP struct name (e.g. GeneralShipTable)
sourceTableDataManager dictionary field the data was read from
gameVersionVersion of the game binary at extraction time
extractedAtISO timestamp of the extraction run
countNumber of records in the data array
structFieldsOrdered list of fields read from the struct, with types

Naming Convention

Field Naming Rules

The extraction script enriches raw struct fields with human-readable companions. Every enriched field sits next to the original field it was derived from.

  • Enum field eFoo → companion eFoo_name with the resolved enum label
  • Localization ID iName → companion iName_resolved with the display string
  • Enum array eTypes → companion eTypes_names with an array of labels
  • Internal keys prefixed with _ (e.g. _outerKey) for dictionary keys and derived values

Examples

Raw FieldCompanion FieldExample Value
eMainTypeeMainType_name"Ship"
eGradeTypeeGradeType_name"Legendary"
iNameiName_resolved"Aegis Cruiser"
iDesciDesc_resolved"A heavily armored..."
ePropertyTypesePropertyTypes_names["ATK", "DEF", "HP"]

Verification

After running an extraction, validate the output:

  1. Confirm each JSON file has a non-zero count in metadata
  2. Spot-check iName_resolved fields — they should be real display strings, not numeric IDs
  3. Verify enum _name fields resolve to readable labels, not raw integers
  4. Check extraction_log.json for any extraction errors or warnings