Configured via Cursors: section in mod.yaml, defining cursor sprites, hotspots, and frame counts. The mod references a cursors YAML file that maps cursor names to sprite definitions.
IC’s replay system extends OpenRA’s infrastructure with two features informed by SC2’s replay architecture (see research/blizzard-github-analysis.md § Part 5):
Analysis event stream: A separate data stream alongside the order stream, recording structured gameplay events (unit births, deaths, position samples, resource collection, production events). Not required for playback — purely for post-game analysis, community statistics, and tournament casting tools. See formats/save-replay-formats.md § “Analysis Event Stream” for the event taxonomy.
Per-player score tracking:GameScore structs (see 02-ARCHITECTURE.md § “Game Score / Performance Metrics”) are snapshotted periodically into the replay file. This enables post-game economy graphs, APM timelines, and comparative player performance overlays — the same kind of post-game analysis screen that SC2 popularized. OpenRA’s replay stores only raw orders; extracting statistics requires re-simulating the entire game. IC’s approach stores the computed metrics at regular intervals for instant post-game display.
Replay versioning: Replay files include a base_build number and a data_version hash in the replay metadata JSON (following SC2’s dual-version scheme — see formats/save-replay-formats.md § “Metadata”). The base_build identifies the protocol format; data_version identifies the game rules state. A replay is playable if the engine supports its base_build protocol, even if minor game data changes occurred between versions.
Foreign replay import (D056): IC can directly play back OpenRA .orarep files and Remastered Collection replay recordings via ForeignReplayPlayback — a NetworkModel implementation that decodes foreign replay formats through ic-cnc-content, translates orders via ForeignReplayCodec, and feeds them to IC’s sim. Playback will diverge from the original sim (D011), but a DivergenceTracker monitors and surfaces drift in the UI. Foreign replays can also be converted to .icrep via ic replay import for archival and analysis tooling. The foreign replay corpus doubles as an automated behavioral regression test suite — detecting gross bugs like units walking through walls or harvesters ignoring ore. See formats/save-replay-formats.md § “Foreign Replay Decoders” and decisions/09f/D056-replay-import.md.