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

Combat, Rendering & Effects

6. Projectile System (8 types)

ProjectilePurpose
BulletStandard ballistic projectile with gravity, speed, inaccuracy
MissileGuided missile with tracking, jinking, terrain following
LaserZapInstant laser beam
RailgunRailgun beam effect
AreaBeamWide area beam weapon
InstantHitInstant-hit hitscan weapon
GravityBombDropped bomb with gravity
NukeLaunchNuclear missile (special trajectory)

Mod-defined projectile types: RA2 mods add at least one custom projectile type not in OpenRA core: ElectricBolt (procedurally generated segmented lightning bolts with configurable width, distortion, and segment length — see research/openra-ra2-mod-architecture.md § “Tesla Bolt / ElectricBolt System”). The ArcLaserZap projectile used for mind control links is another RA2-specific type. IC’s projectile system must support registration of custom projectile types via WASM (Tier 3) or game module system_pipeline().


7. Warhead System (15 types)

Warheads define what happens when a weapon hits. Multiple warheads per weapon.

WarheadPurpose
WarheadBase warhead class
DamageWarheadBase class for damage-dealing warheads
SpreadDamageWarheadDamage with falloff over radius
TargetDamageWarheadDirect damage to target only
HealthPercentageDamageWarheadPercentage-based damage
ChangeOwnerWarheadChanges actor ownership
CreateEffectWarheadCreates visual/sound effects
CreateResourceWarheadCreates resources (like ore)
DestroyResourceWarheadDestroys resources on ground
FireClusterWarheadFires cluster submunitions
FlashEffectWarheadScreen flash effect
FlashTargetsInRadiusWarheadFlashes affected targets
GrantExternalConditionWarheadGrants condition to targets
LeaveSmudgeWarheadCreates terrain smudges
ShakeScreenWarheadScreen shake on impact

Warhead extensibility evidence: RA2 mods extend this list with RadiationWarhead (creates persistent radiation cells in the world-level TintedCellsLayer — not target damage, but environmental contamination), and community mods like Romanovs-Vengeance add temporal displacement, infection, and terrain-modifying warheads. OpenHV adds PeriodicDischargeWarhead (damage over time). IC needs a WarheadRegistry that accepts game-module and WASM-registered warhead types, not just the 15 built-in types.


8. Render System (~80 traits)

Sprite Body Types

TraitPurpose
RenderSpritesBase sprite renderer
RenderSpritesEditorOnlySprites only in editor
WithSpriteBodyStandard sprite body
WithFacingSpriteBodySprite body with facing
WithInfantryBodyInfantry-specific animations
WithWallSpriteBodyAuto-connecting wall sprites
WithBridgeSpriteBodyBridge sprite
WithDeadBridgeSpriteBodyDestroyed bridge sprite
WithGateSpriteBodyGate open/close animation
WithCrateBodyCrate sprite
WithChargeSpriteBodyCharge-based sprite change
WithResourceLevelSpriteBodyResource level visualization

Animation Overlays

TraitPurpose
WithMakeAnimationConstruction animation
WithMakeOverlayConstruction overlay
WithIdleAnimationIdle animation
WithIdleOverlayIdle overlay
WithAttackAnimationAttack animation
WithAttackOverlayAttack overlay
WithMoveAnimationMovement animation
WithHarvestAnimationHarvesting animation
WithHarvestOverlayHarvesting overlay
WithDeathAnimationDeath animation
WithDamageOverlayDamage state overlay
WithAimAnimationAiming animation
WithDockingAnimationDocking animation
WithDockingOverlayDocking overlay
WithDockedOverlayDocked state overlay
WithDeliveryAnimationDelivery animation
WithResupplyAnimationResupply animation
WithBuildingPlacedAnimationPlaced animation
WithBuildingPlacedOverlayPlaced overlay
WithChargeOverlayCharge state overlay
WithProductionDoorOverlayFactory door animation
WithProductionOverlayProduction activity overlay
WithRepairOverlayRepair animation
WithResourceLevelOverlayResource level overlay
WithSwitchableOverlayToggleable overlay
WithSupportPowerActivationAnimationSuperweapon activation
WithSupportPowerActivationOverlaySuperweapon overlay
WithTurretAimAnimationTurret aim animation
WithTurretAttackAnimationTurret attack animation

Weapons & Effects Rendering

TraitPurpose
WithMuzzleOverlayMuzzle flash
WithSpriteBarrelVisible weapon barrel
WithSpriteTurretVisible turret sprite
WithParachuteParachute rendering
WithShadowShadow rendering
ContrailContrail effect
FloatingSpriteEmitterFloating sprite particles
LeavesTrailsTrail effects
HoversHovering animation
WithAircraftLandingEffectLanding dust effect

Decorations & UI Overlays

TraitPurpose
WithDecorationGeneric decoration
WithDecorationBaseBase decoration class
WithNameTagDecorationName tag above actor
WithTextDecorationText above actor
WithTextControlGroupDecorationControl group number
WithSpriteControlGroupDecorationControl group sprite
WithBuildingRepairDecorationRepair icon
WithRangeCircleRange circle display
WithProductionIconOverlayProduction icon modification
ProductionIconOverlayManagerManages production icon overlays

Status Bars

TraitPurpose
CashTricklerBarCash trickle progress bar
ProductionBarProduction progress
ReloadArmamentsBarWeapon reload progress
SupportPowerChargeBarSuperweapon charge progress
TimedConditionBarTimed condition remaining

Pip Decorations

TraitPurpose
WithAmmoPipsDecorationAmmo pips
WithCargoPipsDecorationPassenger pips
WithResourceStoragePipsDecorationResource storage pips
WithStoresResourcesPipsDecorationStored resources pips

Selection Rendering

TraitPurpose
SelectionDecorationsSelection box rendering
SelectionDecorationsBaseBase selection rendering
IsometricSelectionDecorationsIsometric selection boxes

Debug Rendering

TraitPurpose
RenderDebugStateDebug state overlay
RenderDetectionCircleDetection radius
RenderJammerCircleJammer radius
RenderMouseBoundsMouse bounds debug
RenderRangeCircleWeapon range debug
RenderShroudCircleShroud range debug
CustomTerrainDebugOverlayTerrain debug overlay
DrawLineToTargetLine to target debug

World Rendering

TraitPurpose
TerrainRendererRenders terrain tiles
ShroudRendererRenders fog of war/shroud
ResourceRendererRenders resource sprites
WeatherOverlayWeather effects (rain, snow)
TerrainLightingGlobal terrain lighting
TerrainGeometryOverlayTerrain cell debug
SmudgeLayerTerrain smudge rendering
RenderPostProcessPassBasePost-processing base
BuildableTerrainOverlayBuildable area overlay

9. Palette System (~22 traits)

Palette Sources

TraitPurpose
PaletteFromFileLoad palette from .pal file
PaletteFromPngPalette from PNG image
PaletteFromGimpOrJascFileGIMP/JASC palette format
PaletteFromRGBAProgrammatic RGBA palette
PaletteFromGrayscaleGenerated grayscale palette
PaletteFromEmbeddedSpritePalettePalette from sprite data
PaletteFromPaletteWithAlphaPalette with alpha modification
PaletteFromPlayerPaletteWithAlphaPlayer palette + alpha
IndexedPaletteIndex-based palette
IndexedPlayerPalettePlayer-colored indexed palette
PlayerColorPalettePlayer team color palette
FixedColorPaletteFixed color palette
ColorPickerPaletteColor picker palette

Palette Effects & Shifts

TraitPurpose
PlayerColorShiftPlayer color application
FixedPlayerColorShiftFixed player color shift
FixedColorShiftFixed color modification
ColorPickerColorShiftColor picker integration
RotationPaletteEffectPalette rotation animation (e.g., water)
CloakPaletteEffectCloak shimmer effect
FlashPostProcessEffectScreen flash post-process
MenuPostProcessEffectMenu screen effect
TintPostProcessEffectColor tint post-process

10. Sound System (~9 traits)

TraitPurpose
AmbientSoundLooping ambient sounds
AttackSoundsWeapon fire sounds
DeathSoundsDeath sounds
ActorLostNotification“Unit lost” notification
AnnounceOnKillKill announcement
AnnounceOnSeenSighting announcement
CaptureNotificationCapture notification
SoundOnDamageTransitionSound at damage thresholds
VoiceAnnouncementVoice line playback
StartGameNotificationGame start sound
MusicPlaylistMusic track management

11. Support Powers System (~10 traits)

TraitPurpose
SupportPowerManagerPlayer-level power management
SupportPowerBase support power class
AirstrikePowerAirstrike superweapon
NukePowerNuclear strike
ParatroopersPowerParadrop reinforcements
SpawnActorPowerSpawn actor (e.g., spy plane)
ProduceActorPowerProduce actor via power
GrantExternalConditionPowerCondition-granting power
DirectionalSupportPowerDirectional targeting (e.g., airstrike corridor)
SelectDirectionalTargetUI for directional targeting

12. Crate System (~13 traits)

TraitPurpose
CrateBase crate actor
CrateActionBase crate action class
GiveCashCrateActionCash bonus
GiveUnitCrateActionSpawn unit
GiveBaseBuilderCrateActionMCV/base builder
DuplicateUnitCrateActionDuplicate collector
ExplodeCrateActionExplosive trap
HealActorsCrateActionHeal nearby units
LevelUpCrateActionVeterancy level up
RevealMapCrateActionMap reveal
HideMapCrateActionRe-hide map
GrantExternalConditionCrateActionGrant condition
SupportPowerCrateActionGrant support power
CrateSpawnerWorld trait: spawns crates

13. Veterancy / Experience System

TraitPurpose
GainsExperienceGains XP from kills
GivesExperienceAwards XP to killer
ExperienceTricklerPassive XP gain over time
ProducibleWithLevelProduced at veterancy level
PlayerExperiencePlayer-wide XP pool
GainsExperienceMultiplierXP gain modifier
GivesExperienceMultiplierXP award modifier

14. Fog of War / Shroud System

Core Engine (OpenRA.Game)

TraitPurpose
ShroudCore shroud/fog state management
FrozenActorLayerFrozen actor ghost rendering

Mods.Common Traits

TraitPurpose
AffectsShroudBase for shroud-affecting traits
CreatesShroudCreates shroud around actor
RevealsShroudReveals shroud (sight)
FrozenUnderFogHidden under fog of war
HiddenUnderFogInvisible under fog
HiddenUnderShroudInvisible under shroud
ShroudRendererRenders shroud overlay
PlayerRadarTerrainPlayer-specific radar terrain
WithColoredOverlayColored overlay (e.g., frozen tint)

15. Power System

TraitPurpose
PowerProvides/consumes power
PowerManagerPlayer-level power tracking
PowerMultiplierPower amount modifier
ScalePowerWithHealthPower scales with damage
AffectedByPowerOutageDisabled during power outage
GrantConditionOnPowerStateCondition based on power level
PowerTooltipShows power info
PowerDownBotManagerAI power management

16. Radar / Minimap System

TraitPurpose
AppearsOnRadarVisible on minimap
ProvidesRadarEnables minimap
RadarColorFromTerrainRadar color from terrain type
RadarPingsRadar ping markers
RadarWidgetMinimap UI widget