Readme
Icarus Pets — Mount & Companion Editor
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.jsonfile — 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:
- Executable Usage Guide — Download, install, and run the standalone
.exe - GUI Guide — How to use each tab
- Talent & Genetics Data — All 26 talent trees, genetics, lineages
- Species & Types — All creature types, species swap, and detection logic
- Phenotype & Variations — Creature appearance variations and rarity tiers
- Bug Reporting — In-app bug reporting with screenshots and save data
- Architecture — Project structure, data flow, and pak extraction pipeline
- Binary Format — UE4 property serialization format (incl. UTF-16 LE strings)
- Development Setup — New contributor guide: dev environment, CI/CD runner
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.