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.

Back to Catalog