Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Priority Assessment for Modder Familiarity

Status: All gameplay systems below are now designed. See 02-ARCHITECTURE.md § “Extended Gameplay Systems (RA1 Module)” for full component definitions, Rust structs, YAML examples, and system logic. The tables below are retained for priority reference during implementation.

P0 — CRITICAL (Modders cannot work without these)

#SystemStatusReference
1Condition System✅ DESIGNED (D028)Phase 2 exit criterion
2Multiplier System✅ DESIGNED (D028)Phase 2 exit criterion
3Warhead System✅ DESIGNED (D028)Full damage pipeline

| 4 | Building mechanics | ✅ DESIGNED | BuildArea, PrimaryBuilding, RallyPoint, Exit, Sellable, Repairable, Gate, LineBuild | | 5 | Support Powers | ✅ DESIGNED | SupportPower component + SupportPowerManager resource | | 6 | Damage Model | ✅ DESIGNED (D028) | Full pipeline: Projectile → Warhead → Armor → Modifiers → Health | | 7 | Projectile System | ✅ DESIGNED | Projectile component + projectile_system() in tick pipeline |

P1 — HIGH (Core gameplay gaps — noticeable to players immediately)

#SystemStatusReference
8Transport / Cargo✅ DESIGNEDCargo / Passenger components
9Capture / Engineers✅ DESIGNEDCapturable / Captures components
10Stealth / Cloak✅ DESIGNEDCloak / DetectCloaked components
11Death mechanics✅ DESIGNEDSpawnOnDeath, ExplodeOnDeath, SelfDestruct, DamageStates
12Infantry sub-cell positioning✅ DESIGNEDInfantryBody / SubCell enum
13Veterancy system✅ DESIGNEDGainsExperience / GivesExperience + condition promotions
14Docking system✅ DESIGNEDDockClient / DockHost components
15Transform / Deploy✅ DESIGNEDTransforms component
16Power System✅ DESIGNEDPower component + PowerManager resource

P2 — MEDIUM (Important for full experience)

#SystemStatusReference
17Crate System✅ DESIGNEDCrate / CrateAction
18Mine System✅ DESIGNEDMine / Minelayer
19Guard Command✅ DESIGNEDGuard / Guardable
20Crush Mechanics✅ DESIGNEDCrushable / Crusher
21Notification System✅ DESIGNEDNotificationType enum + NotificationCooldowns
22Cursor System✅ DESIGNEDYAML-defined, contextual resolution
23Hotkey System✅ DESIGNEDHotkeyConfig categories, profiles
24Lua API✅ DESIGNED (D024)Strict superset of OpenRA
25Selection system✅ DESIGNEDPriority, double-click, tab cycle, control groups
26Palette effects✅ DESIGNEDPaletteEffect enum
27Game speed presets✅ DESIGNED5 presets (SpeedPreset enum), lobby-configurable

P3 — LOWER (Nice to have, can defer)

#SystemStatusReference
28Demolition / C4✅ DESIGNEDDemolition component
29Plug System✅ DESIGNEDPluggable / Plug
30Encyclopedia✅ DESIGNEDCategories, stats, previews
31Localization✅ DESIGNEDFluent-based .ftl
32Observer UI✅ DESIGNEDOverlays, player switching, broadcast delay
33Replay browser UI⚠️ PARTIALFormat designed; browser UI deferred to Phase 3
34Debug tools✅ DESIGNEDDeveloperMode flags, overlays, profiler
35Procedural map gen⚠️ PARTIALPhase 7; scenario editor provides building blocks
36Faction system✅ DESIGNEDFaction YAML type with sides and tech trees

What Iron Curtain Has That OpenRA Doesn’t

The gap analysis is not one-directional. Iron Curtain’s design docs include features OpenRA lacks:

FeatureIC Design DocOpenRA Status
LLM-generated missions & campaigns04-MODDING.md, Phase 7Not present
Branching campaigns with persistent stateD021, 04-MODDING.mdNot present (linear campaigns only)
WASM mod runtime04-MODDING.md Tier 3Not present (C# DLLs only)
Switchable balance presetsD019Not present (one balance per mod)
Sub-tick timestamped ordersD008, 03-NETCODE.mdNot present
Relay server architectureD007, 03-NETCODE.mdNot present (P2P only)
Cross-engine compatibility07-CROSS-ENGINE.mdNot present
Multi-game engine (RA1+RA2+TD on one engine)D018, 02-ARCHITECTURE.mdPartial (3 games but tightly coupled)
llm: metadata on all resources04-MODDING.mdNot present
Weather system (with sim effects)04-MODDING.mdVisual only (WeatherOverlay trait)
Workshop with semantic search04-MODDING.mdForum-based mod sharing
Mod SDK with CLI toolD020, 04-MODDING.mdExists but requires .NET
Competitive infrastructure (rated, ranked, tournaments)01-VISION.mdBasic (no ranked, no leagues)
Platform portability (WASM, mobile, console)02-ARCHITECTURE.mdDesktop only
3D rendering mod support02-ARCHITECTURE.mdNot architecturally possible
Signed/certified match results06-SECURITY.mdNot present
Video as workshop resource04-MODDING.mdNot present
Scene templates (parameterized mission building blocks)04-MODDING.mdNot present
Adaptive difficulty (via campaign state or LLM)04-MODDING.md, 01-VISION.mdNot present
In-game Workshop browser (search, filter, one-click)D030, 04-MODDING.mdNot present (forum sharing only)
Auto-download on lobby join (CS:GO-style)D030, 03-NETCODE.mdNot present (manual install)
Steam Workshop as source (optional, federated)D030, 04-MODDING.mdNot present
Creator reputation & badgesD030, 04-MODDING.mdNot present
DMCA/takedown policy (due process)D030, decisions/09e-community.mdNot present
Creator recognition & tippingD035, 04-MODDING.mdNot present
Achievement system (engine + mod-defined)D036, decisions/09e-community.mdNot present
Community governance model (elected reps, RFC process)D037, decisions/09e-community.mdNot present

Mapping Table: OpenRA Trait → Iron Curtain Equivalent

For modders migrating from OpenRA, this table shows where each familiar trait maps.

OpenRA TraitIron Curtain EquivalentStatus
HealthHealth { current, max }
ArmorAttackable { armor }
MobileMobile { speed, locomotor }
BuildingBuilding { footprint }
BuildableBuildable { cost, time, prereqs }
SelectableSelectable { bounds, priority, voice_set }
HarvesterHarvester { capacity, resource }
ArmamentArmament { weapon, cooldown }
ValuedPart of Buildable.cost
Tooltipdisplay.name in YAML
Voiceddisplay.voice in YAML
ConditionalTraitConditions component (D028)
GrantConditionOn*Condition sources in YAML (D028)
*MultiplierStatModifiers component (D028)
AttackBase/Follow/Frontal/Omni/TurretedAutoTarget, Turreted components
AutoTargetAutoTarget { stance, scan_range }
TurretedTurreted { turn_speed, offset, default_facing }
AmmoPoolAmmoPool { max, current, reload_ticks }
Cargo / PassengerCargo { max_weight, slots } / Passenger { weight }
Capturable / CapturesCapturable { threshold } / Captures { types }
Cloak / DetectCloakedCloak { cloak_type, delay } / DetectCloaked { types }
Power / PowerManagerPower { provides, consumes } / PowerManager resource
SupportPower*SupportPower { charge_ticks, ready_sound, effect }
GainsExperience / GivesExperienceGainsExperience { levels } / GivesExperience { amount }
Locomotorlocomotor field in Mobile
Aircraftlocomotor: fly + Mobile with air-type locomotor⚠️
ProductionQueueProductionQueue { queue_type, items }
Crate / CrateAction*Crate { action_pool } / CrateAction enum
Mine / MinelayerMine { trigger_types, warhead } / Minelayer { mine_type }
Guard / GuardableGuard { target, leash_range } / Guardable marker
Crushable / AutoCrusherCrushable { crush_class } / Crusher { crush_classes }
TransformsTransforms { into, delay, facing, condition }
SellableSellable marker + sell order
RepairableBuildingRepairable { repair_rate, repair_cost_per_hp } component
RallyPointRallyPoint { position } component
PrimaryBuildingPrimaryBuilding marker component
GateGate { open_ticks, close_delay } component
LineBuild (walls)LineBuild { segment_types } component
BaseProvider / GivesBuildableAreaBuildArea { range } component
FactionFaction { id, side, tech_tree } YAML-defined
EncyclopediaIn-game encyclopedia (categories, stats, previews)
DeveloperModeDeveloperMode flags (#[cfg(feature = "dev-tools")])
WithInfantryBody (sub-cell)InfantryBody { sub_cell } with SubCell enum
ScaredyCat / TakeCoverScaredyCat / TakeCover components
KillsSelfSelfDestruct { delay, warhead } component
SpawnActorOnDeathSpawnOnDeath { actor, probability } component
HuskPart of death mechanics (husk actor + DamageStates)

Phase 2 Additions (Sim — Months 6–12)

These gaps need to be designed before or during Phase 2 since they’re core simulation mechanics.

NOTE: Items 1–3 are now Phase 2 hard exit criteria per D028. Items marked with (D029) are Phase 2 deliverables per D029. The Lua API (#24) is specified per D024.

  1. Condition system — ✅ DESIGNED (D028) — Phase 2 exit criterion
  2. Multiplier system — ✅ DESIGNED (D028) — Phase 2 exit criterion
  3. Full damage pipeline — ✅ DESIGNED (D028) — Phase 2 exit criterion (Projectile → Warhead → Armor table → Modifiers → Health)
  4. Power system — ✅ DESIGNED — Power component + PowerManager resource
  5. Building mechanics — ✅ DESIGNED — BuildArea, PrimaryBuilding, RallyPoint, Exit, Sellable, Repairable, Gate, LineBuild
  6. Transport/Cargo — ✅ DESIGNED — Cargo / Passenger components
  7. Capture — ✅ DESIGNED — Capturable / Captures components
  8. Stealth/Cloak — ✅ DESIGNED — Cloak / DetectCloaked components
  9. Infantry sub-cell — ✅ DESIGNED — InfantryBody / SubCell enum
  10. Death mechanics — ✅ DESIGNED — SpawnOnDeath, ExplodeOnDeath, SelfDestruct, DamageStates
  11. Transform/Deploy — ✅ DESIGNED — Transforms component
  12. Veterancy (full system) — ✅ DESIGNED — GainsExperience / GivesExperience + condition-based promotions
  13. Guard command — ✅ DESIGNED — Guard / Guardable components
  14. Crush mechanics — ✅ DESIGNED — Crushable / Crusher components

Phase 3 Additions (UI — Months 12–16)

  1. Support Powers — ✅ DESIGNED — SupportPower component + SupportPowerManager resource
  2. Cursor system — ✅ DESIGNED — YAML-defined cursors, contextual resolution, force-modifiers
  3. Hotkey system — ✅ DESIGNED — HotkeyConfig categories, rebindable, profiles
  4. Notification framework — ✅ DESIGNED — NotificationType enum + NotificationCooldowns + EVA mapping
  5. Selection details — ✅ DESIGNED — Priority, double-click, tab cycle, control groups, selection limit
  6. Game speed presets — ✅ DESIGNED — 5 presets (SpeedPreset enum), lobby-configurable, runtime adjustable in SP
  7. Radar system (detailed) — ⚠️ PARTIAL — Minimap rendering is ic-ui responsibility; AppearsOnRadar implied but not a standalone component
  8. Power bar UI — Part of ic-ui chrome design (Phase 3)
  9. Observer UI — ✅ DESIGNED — Army/production/economy overlays, player switching, broadcast delay

Phase 4 Additions (Scripting — Months 16–20)

  1. Lua API specification — ✅ DESIGNED (D024) — strict superset of OpenRA’s 16 globals, identical signatures
  2. Crate system — ✅ DESIGNED — Crate component + CrateAction variants
  3. Mine system — ✅ DESIGNED — Mine / Minelayer components
  4. Demolition/C4 — ✅ DESIGNED — Demolition component

Phase 6a/6b Additions (Modding & Ecosystem — Months 26–32)

  1. Debug/developer tools — ✅ DESIGNED — DeveloperMode flags, overlays, profiler, asset browser
  2. Encyclopedia — ✅ DESIGNED — In-game encyclopedia with categories, stats, previews
  3. Localization framework — ✅ DESIGNED — Fluent-based .ftl files, locale resource, CJK/RTL support
  4. Faction system (formal) — ✅ DESIGNED — Faction YAML type with side grouping and tech trees
  5. Palette effects (runtime) — ✅ DESIGNED — PaletteEffect enum (flash, fade, tint, cycle, remap)
  6. Asset browser — ✅ DESIGNED — Part of IC SDK (D040)