Readme

Icarus Pets — Mount & Companion Editor

pipeline status

A GUI save editor for Icarus mounts, combat pets, and farm animals. Parses UE4 binary-serialized properties from the game's JSON save files and presents them in a human-readable, editable interface.

Features

  • 4-tab GUI — Overview (stats/identity), Genetics (7 stats), Talents (full tree), Advanced (raw properties)
  • All 26 creature types with complete talent trees (457 talents) extracted from pak files
  • Phenotype editing — change creature appearance via Appearance dropdown (Buffalo, Moa, Wolf — 8 skins each)
  • Species swap — convert between creatures in the same category with automatic talent remapping
  • In-app bug reporting — submit bugs with optional screenshots and save data directly from the editor
  • Bestiary data — display names, lore, and extended lore for all creatures
  • International locale support — handles UTF-8 and UTF-16 LE encoded save files (French, etc.)
  • Auto-detection of creature type, role, and talent tree
  • Live talent point tracking — spent / available / unspent
  • Binary-perfect roundtrip — edits don't corrupt unrelated data
  • Safe saves — backup-then-overwrite with one-click restore
  • Zero dependencies — Python 3 standard library only (Tkinter)

Quick Start

⚠️ Before editing: Store your mounts, pets, and farm animals at the station in-game before opening the editor. Only creatures stored at the station appear in the Mounts.json file — animals currently following you or active in the world are not included.

Option A: Standalone Executable (no Python needed)

Download the latest IcarusPetEditor.exe from Releases and run it. The editor auto-detects your save files.

Option B: Run from Source

git clone https://git.eurekaendeavors.com/root/icarus-pets.git
cd icarus-pets
python mount_editor.py

Supported Creatures

Mounts (14 types)

Buffalo, Horse, Horse Standard, Moa, Arctic Moa, Tusker, Zebra, Wooly Zebra, Blueback, Swamp Quad (Stryder), Swamp Bird (Ubis), Woolly Mammoth, Bull, Chew (Dribbo)

Combat Pets (7 types)

Boar, Wolf, Snow Wolf, Desert Wolf (Hyena), Dog, Cat, Tundra Monkey

Farm Animals (5 types)

Sheep, Chicken, Rooster, Cow, Pig

Documentation

See the Wiki for detailed documentation:

Project Structure

├── mount_editor.py          # Main GUI application
├── ue4_parser.py            # Binary → Python property parser
├── ue4_serializer.py        # Python → Binary property serializer
├── talent_data.py           # Game data (auto-generated, 26 types, 457 talents)
├── variation_data.py        # Variation data (auto-generated, 3 types, 24 variants)
├── bestiary_data.json       # Creature names & lore (77 creatures)
├── VERSION                  # Semantic version file
├── build.py                 # Build script for Windows .exe
├── mount_editor.spec        # PyInstaller spec file
├── editor/                  # GUI tab modules
│   ├── overview_tab.py      # Identity, lineage, stats, species swap
│   ├── genetics_tab.py      # 7 genetic stats
│   ├── talents_tab.py       # Full talent tree
│   ├── advanced_tab.py      # Raw property tree
│   ├── bug_report.py        # In-app bug reporting dialog
│   ├── mount_model.py       # Data model API
│   └── tooltip.py           # Tooltip widget
├── tests/                   # Test suite (11 files, 230+ tests)
│   ├── sample_mounts/       # Bundled test fixtures (EN-US + FR-FR)
│   ├── run_all.py           # Unified test runner
│   ├── test_roundtrip.py    # Binary roundtrip verification
│   ├── test_ue4_parser.py   # UE4 parser tests
│   ├── test_ue4_serializer.py  # UE4 serializer tests
│   ├── test_mount_model.py  # MountModel API tests
│   ├── test_species_swap.py # Species swap tests
│   └── ...                  # + edge cases, backup, packaging, talent data
├── scripts/                 # Extraction & utility scripts
│   ├── pak_extract.py       # PAK file chunk extractor
│   ├── pak_talent_extract.py   # Talent data parser (pak → JSON)
│   ├── generate_talent_data.py # Code generator (JSON → talent_data.py)
│   ├── pak_variation_extract.py # Variation parser (pak → JSON)
│   ├── generate_variation_data.py # Code generator (JSON → variation_data.py)
│   ├── refresh_talent_data.py  # One-command data refresh (talents + variations)
│   ├── extract_bestiary.py  # Bestiary extractor
│   └── check_downloads.py   # Release download counter
└── wiki/                    # Wiki (separate git repo)

Running Tests

python tests/run_all.py      # Run all 11 test files
python tests/test_roundtrip.py   # Binary roundtrip (14 mounts, 2 locales)

Updating After Game Patches

python scripts/refresh_talent_data.py    # Auto-detects Steam, runs full pipeline

License

Copyright © 2026 David Beauchamp. Licensed under the GNU General Public License v3.0.

Not affiliated with RocketWerkz or the Icarus game.

Back to Docs