icarus core
Icarus Core
Shared Python library used by all Icarus tools. Provides UE4 binary save file parsing
and serialization. Installed as a pip package (icarus-core) via submodule.
Project Details
| Field | Value |
|---|---|
| GitLab Project | icarus/core |
| GitLab Project ID | 7 |
| Repository | https://git.eurekaendeavors.com/icarus/core |
| Visibility | private |
| License | GPL v3 |
| Package name | icarus-core |
| Python | ≥ 3.10 |
| Status | ✅ Complete and stable |
Contents
icarus/core (submodule at icarus-core/)
├── icarus_core/
│ ├── __init__.py
│ ├── ue4_parser.py # BinaryReader, BinaryWriter, parse_properties, parse_property
│ ├── ue4_serializer.py # serialize_properties, props_to_binary_array
│ └── save_io.py # load_save, save_save, decompress_blob, parse_blob,
│ # serialize_blob, compress_blob, find_actor_component, get_actors
├── tests/
└── pyproject.toml
Why It Exists
The UE4 parser/serializer was independently duplicated in both icarus-pets and
icarus-prospects. Any bug fix had to be applied in two places. icarus/core is the
single source of truth — changes flow everywhere at once.
Consumed By
| Project | Usage |
|---|---|
icarus/pets |
Pet/mount save parsing and modification |
icarus/prospects |
Prospect save blob decompression, mission state parsing |
icarus/prospector |
Character save parsing, inventory, talent editing |
icarus/pet-recovery |
Scanning and recovering lost pets from prospect saves |
Usage
# Parser
from icarus_core import BinaryReader, BinaryWriter, parse_properties, parse_property
# Serializer
from icarus_core import serialize_properties, props_to_binary_array
# Save I/O — must import from save_io directly, NOT from package root
from icarus_core.save_io import load_save, save_save, decompress_blob, parse_blob
from icarus_core.save_io import serialize_blob, compress_blob, find_actor_component, get_actors
⚠️ Import gotcha: save_io functions are NOT re-exported from icarus_core.__init__.
Always import from icarus_core.save_io directly.
Deployment
On the server, icarus-core is installed as an editable pip package in the shared
virtualenv. The auto-deploy script handles pip install -e icarus-core/ on every cycle.