Skip to content
build edited this page Dec 22, 2013 · 56 revisions

Documentation

This documentation is aimed at modders and contributors of OpenRA. It displays all traits with default values and developer commentary. Please do not edit it directly, but add new [Desc("String")] tags to the source code. This file has been automatically generated on 23/12/2013 7:49:42 AM. Type make docs to create a new one. A copy of this is uploaded to https://github.com/OpenRA/OpenRA/wiki/Traits as well as compiled to HTML and shipped with every release during the automated packaging process.

	RenderSprites:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderSimple:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RejectsOrders:
		Except:  # Type: String[]
	ScreenShaker:
		MinMultiplier: (-3,-3) # Type: float2
		MaxMultiplier: (3,3) # Type: float2
	ResourceLayer:
	ScreenMap:
		BinSize: 250 # Type: Int32. Size of partition bins (world pixels)
	Country:
		Name:  # Type: String
		Race:  # Type: String
		Selectable: True # Type: Boolean
	ActorMap:
		BinSize: 10 # Type: Int32. Size of partition bins (cells)
	Shroud:
	ResourceType:
		EditorSprite:  # Type: String
		Variants:  # Type: String[]
		Palette: terrain # Type: String
		ResourceType: 1 # Type: Int32
		ValuePerUnit: 0 # Type: Int32
		MaxDensity: 10 # Type: Int32
		Name:  # Type: String
		TerrainType: Ore # Type: String
		AllowedTerrainTypes:  # Type: String[]
		AllowUnderActors: False # Type: Boolean
		PipColor: Yellow # Type: PipType
	CreatesShroud:
		Range: 0 # Type: Int32
	DebugPauseState:
	Selectable:
		Selectable: True # Type: Boolean
		Priority: 10 # Type: Int32
		Bounds:  # Type: Int32[]
		Voice:  # Type: String
	BodyOrientation:
		QuantizedFacings: -1 # Type: Int32. Number of facings for gameplay calculations. -1 indiciates auto-detection from sequence
		CameraPitch: 113 # Type: WAngle. Camera pitch for rotation calculations
	Waypoint:
	ValidateOrder:
	SelectionDecorations:
	EditorTilesetFilter:
		RequireTilesets:  # Type: String[]
		ExcludeTilesets:  # Type: String[]
	RevealsShroud:
		Range: 0 # Type: Int32
	Armor:
		Type:  # Type: String
	EditorAppearance:
		RelativeToTopLeft: False # Type: Boolean
		UseTerrainPalette: False # Type: Boolean
	Health:
		HP: 0 # Type: Int32
		Radius: 10 # Type: Single
	PlayerHighlightPalette: # Add this to the Player actor definition.
		BaseName: highlight # Type: String. The prefix for the resulting player palettes
	FrozenActorLayer:
	PlayerColorPalette: # Add this to the Player actor definition.
		BasePalette:  # Type: String. The name of the palette to base off.
		BaseName: player # Type: String. The prefix for the resulting player palettes
		RemapIndex:  # Type: Int32[]. Remap these indices to player colors.
		Ramp: 0.05 # Type: Single. Luminosity range to span.
		AllowModifiers: True # Type: Boolean. Allow palette modifiers to change the palette.
	DeveloperMode:
		Cash: 20000 # Type: Int32
		FastBuild: False # Type: Boolean
		FastCharge: False # Type: Boolean
		DisableShroud: False # Type: Boolean
		PathDebug: False # Type: Boolean
		UnlimitedPower: False # Type: Boolean
		BuildAnywhere: False # Type: Boolean
		ShowMuzzles: False # Type: Boolean
		ShowDebugGeometry: False # Type: Boolean
	PlayerResources:
		SelectableCash: 2500,5000,10000,20000 # Type: Int32[]
		DefaultCash: 5000 # Type: Int32
		AdviceInterval: 250 # Type: Int32
	DrawLineToTarget:
		Ticks: 60 # Type: Int32
	RepairsUnits:
		ValuePercentage: 20 # Type: Int32
		HpPerStep: 10 # Type: Int32
		Interval: 24 # Type: Int32
	Armament: # Allows you to attach weapons to the unit (use @IdentifierSuffix for > 1)
		Name: primary # Type: String
		Weapon:  # Type: String. Has to be defined here and in weapons.yaml.
		Turret: primary # Type: String
		FireDelay: 0 # Type: Int32. Time (in frames) until the weapon can fire again.
		LocalOffset:  # Type: WRange[]. Muzzle position relative to turret or body. (forward, right, up) triples
		LocalYaw:  # Type: WAngle[]. Muzzle yaw relative to turret or body.
		Recoil: 0 # Type: WRange. Move the turret backwards when firing.
		RecoilRecovery: 9 # Type: WRange. Recoil recovery per-frame
	RenderRangeCircle:
		RangeCircleType:  # Type: String
	WithSmoke:
	WithVoxelWalkerBody:
		TickRate: 5 # Type: Int32
	RenderUnitReload:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderInfantry:
		MinIdleWaitTicks: 30 # Type: Int32
		MaxIdleWaitTicks: 110 # Type: Int32
		IdleAnimations:  # Type: String[]
		StandAnimations: stand # Type: String[]
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithResources:
		Sequence: resources # Type: String. Sequence name to use
	WithBuildingExplosion:
	RenderFlare:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderHarvester:
		ImagesByFullness: harv # Type: String[]
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithHarvestAnimation:
		Sequence: harvest # Type: String. Sequence name to use
		Offset: 0,0,0 # Type: WVec. Position relative to body
	RenderVoxels:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		NormalsPalette: normals # Type: String
		Scale: 10 # Type: Single. Change the image size.
		LightPitch: 142 # Type: WAngle
		LightYaw: 682 # Type: WAngle
		LightAmbientColor: 0.6,0.6,0.6 # Type: Single[]
		LightDiffuseColor: 0.4,0.4,0.4 # Type: Single[]
	WithCrateBody:
		Images: crate # Type: String[]
		XmasImages:  # Type: String[]
	WithIdleOverlay:
		Sequence: idle-overlay # Type: String. Sequence name to use
		Offset: 0,0,0 # Type: WVec. Position relative to body
	RenderBuildingWarFactory:
		HasMakeAnimation: True # Type: Boolean
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithVoxelTurret:
		Sequence: turret # Type: String. Voxel sequence name to use
		Turret: primary # Type: String. Turreted 'Turret' key to display
	RenderBuildingCharge:
		ChargeAudio: tslachg2.aud # Type: String
		HasMakeAnimation: True # Type: Boolean
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderEditorOnly:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithTurret:
		Sequence: turret # Type: String. Sequence name to use
		AimSequence:  # Type: String. Sequence name to use when prepared to fire
		Turret: primary # Type: String. Turreted 'Turret' key to display
		Recoils: True # Type: Boolean. Render recoil
	WithVoxelBody:
	WithRotor:
		Sequence: rotor # Type: String. Sequence name to use when flying
		GroundSequence: slow-rotor # Type: String. Sequence name to use when landed
		Offset: 0,0,0 # Type: WVec. Position relative to body
		Id: rotor # Type: String
	RenderBuildingTurreted:
		HasMakeAnimation: True # Type: Boolean
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithVoxelBarrel:
		Sequence: barrel # Type: String. Voxel sequence name to use
		Armament: primary # Type: String. Armament to use for recoil
		LocalOffset: 0,0,0 # Type: WVec. Visual offset
	RenderSpy:
		MinIdleWaitTicks: 30 # Type: Int32
		MaxIdleWaitTicks: 110 # Type: Int32
		IdleAnimations:  # Type: String[]
		StandAnimations: stand # Type: String[]
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderInfantryPanic:
		MinIdleWaitTicks: 30 # Type: Int32
		MaxIdleWaitTicks: 110 # Type: Int32
		IdleAnimations:  # Type: String[]
		StandAnimations: stand # Type: String[]
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithMuzzleFlash:
		Sequence: muzzle # Type: String. Sequence name to use
		Armament: primary # Type: String. Armament name
		SplitFacings: False # Type: Boolean. Are the muzzle facings split into multiple shps?
		FacingCount: 8 # Type: Int32. Number of separate facing images that are defined in the sequences.
	WithShadow:
	RenderBuildingSilo:
		HasMakeAnimation: True # Type: Boolean
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderUnit:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderBuilding:
		HasMakeAnimation: True # Type: Boolean
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	RenderBuildingWall:
		HasMakeAnimation: True # Type: Boolean
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	ParachuteAttachment:
		ParachuteSprite: parach # Type: String
		Offset: 0,0,0 # Type: WVec
	Harvester:
		DeliveryBuildings:  # Type: String[]
		Capacity: 28 # Type: Int32
		LoadTicksPerBale: 4 # Type: Int32
		UnloadTicksPerBale: 4 # Type: Int32
		PipCount: 7 # Type: Int32
		HarvestFacings: 0 # Type: Int32
		Resources:  # Type: String[]
		FullyLoadedSpeed: 0.85 # Type: Decimal
		SearchFromProcRadius: 24 # Type: Int32
		SearchFromOrderRadius: 12 # Type: Int32
	AnnounceOnBuild:
	Chronoshiftable:
		ExplodeInstead: False # Type: Boolean
		ChronoshiftSound: chrono2.aud # Type: String
	ShroudRenderer:
		Sequence: shroud # Type: String
		Variants: shroud # Type: String[]
		Index: 12,9,8,3,1,6,4,2,13,11,7,14 # Type: Int32[]
		# Bitfield of shroud directions for each frame. Lower four bits are
		# corners clockwise from TL; upper four are edges clockwise from top
		UseExtendedIndex: False # Type: Boolean. Use the upper four bits when calculating frame
		ShroudColor: 12 # Type: Int32. Palette index for synthesized unexplored tile
		ShroudBlend: Alpha # Type: BlendMode
	JamsMissiles:
		Range: 0 # Type: Int32
		AlliedMissiles: True # Type: Boolean
		Chance: 100 # Type: Int32
	GivesBounty: # You get money for playing this actor.
		Percentage: 10 # Type: Int32. Calculated by Cost or CustomSellValue so they have to be set to avoid crashes.
		LevelMod: 125 # Type: Int32. Higher ranked units give higher bounties.
		Stances: Neutral,Enemy # Type: Stance[]. Destroying creeps and enemies is rewarded.
	CreateMPPlayers:
	OreRefinery:
		DockOffset: 1,2 # Type: int2
		ShowTicks: True # Type: Boolean
		TickLifetime: 30 # Type: Int32
		TickVelocity: 2 # Type: Int32
		TickRate: 10 # Type: Int32
		DockAngle: 64 # Type: Int32
	Allies02Script:
	DesertShellmapScript:
	DesertShellmapAutoUnload:
	Survival02Script:
	DefaultShellmapScript:
	Allies04Script:
	Allies04Hijackable:
	Allies04RenderHijacked:
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	Allies04TrivialBuilding:
	Allies04MaintainBuilding:
		Player:  # Type: String
	Allies04TransformOnLabInfiltrate:
		ToActor:  # Type: String
	Allies04HazyPaletteEffect:
	MonsterTankMadnessScript:
		FirstStartUnits:  # Type: String[]
		SecondStartUnits:  # Type: String[]
		ThirdStartUnits:  # Type: String[]
		FirstBaseUnits:  # Type: String[]
		CivilianEvacuees:  # Type: String[]
	FortLonestarScript:
	Soviet01ClassicScript:
	Soviet01ClassicContainsActors:
		Actors:  # Type: String[]
	Allies03Script:
	MissionObjectivesPanel:
		ObjectivesPanel:  # Type: String
	Survival01Script:
	Allies01Script:
	ScaredyCat:
		PanicLength: 250 # Type: Int32
		PanicSpeedModifier: 2 # Type: Decimal
		AttackPanicChance: 20 # Type: Int32
	Bridge:
		Long: False # Type: Boolean
		RepairPropagationDelay: 20 # Type: Int32. Delay (in ticks) between repairing adjacent spans in long bridges
		Template: 0 # Type: UInt16
		DamagedTemplate: 0 # Type: UInt16
		DestroyedTemplate: 0 # Type: UInt16
		DestroyedPlusNorthTemplate: 0 # Type: UInt16
		DestroyedPlusSouthTemplate: 0 # Type: UInt16
		DestroyedPlusBothTemplate: 0 # Type: UInt16
		ShorePieces: br1,br2 # Type: String[]
		NorthOffset:  # Type: Int32[]
		SouthOffset:  # Type: Int32[]
	ActorLostNotification:
		Notification: UnitLost # Type: String
		NotifyAll: False # Type: Boolean
	SpyToolTip:
		Description:  # Type: String
		Name:  # Type: String
		Icon: icon # Type: String. Sequence of the actor that contains the cameo.
	Spy:
	IgnoresDisguise:
	MPStartUnits:
		Class: none # Type: String
		Races:  # Type: String[]
		BaseActor:  # Type: String
		SupportActors:  # Type: String[]
		InnerSupportRadius: 2 # Type: Int32. Inner radius for spawning support actors
		OuterSupportRadius: 4 # Type: Int32. Outer radius for spawning support actors
	Tooltip: # Shown in the build palette widget.
		Description:  # Type: String
		Name:  # Type: String
		Icon: icon # Type: String. Sequence of the actor that contains the cameo.
	ParaDrop:
		LZRange: 4 # Type: Int32
		ChuteSound: chute1.aud # Type: String
	BridgeHut:
	RenderJammerCircle:
	ProductionBar: # Visualizes the remaining build time of actor produced here.
	EjectOnDeath: # Eject a ground soldier or a paratrooper while in the air.
		PilotActor: E1 # Type: String
		SuccessRate: 50 # Type: Int32
		ChuteSound: chute1.aud # Type: String
		EjectInAir: False # Type: Boolean
		EjectOnGround: False # Type: Boolean
	SelfHealing:
		Step: 5 # Type: Int32
		Ticks: 5 # Type: Int32
		HealIfBelow: 0.5 # Type: Single
		DamageCooldown: 0 # Type: Int32
		RequiresTech:  # Type: String
	SelfHealingTech:
		Type:  # Type: String
	Reloads: # Unit will reload its limited ammo itself.
		Count: 0 # Type: Int32. How much ammo is reloaded after a certain period.
		Period: 50 # Type: Int32. How long it takes to do so.
	CrushableInfantry:
		CrushSound: squish2.aud # Type: String
		CorpseSequence: die-crushed # Type: String
		CrushClasses: infantry # Type: String[]
		WarnProbability: 75 # Type: Int32
	AnnounceOnKill:
	Burns:
		Anim: 1 # Type: String
		Damage: 1 # Type: Int32
		Interval: 8 # Type: Int32
	Husk:
		AllowedTerrain:  # Type: String[]
	FrozenUnderFog:
		StartsRevealed: False # Type: Boolean
	HiddenUnderFog:
	AutoHeal: # Used together with AttackMedic: to make the healer do it's job automatically to nearby units.
	DemoTruck:
	Invulnerable:
	Infiltratable:
		Type:  # Type: String
	Infiltrates:
		Types: Cash,SupportPower,Exploration # Type: String[]
	PaletteFromRGBA: # Creates a single color palette without any base palette file.
		Name:  # Type: String. internal palette name
		Tileset:  # Type: String. If defined, load the palette only for this tileset.
		R: 0 # Type: Int32. red color component
		G: 0 # Type: Int32. green color component
		B: 0 # Type: Int32. blue color component
		A: 255 # Type: Int32. alpha channel (transparency)
		AllowModifiers: True # Type: Boolean
	Capturable: # This actor can be captured by a unit with Captures: trait.
		Type: building # Type: String. Type of actor (the Captures: trait defines what Types it can capture).
		AllowAllies: False # Type: Boolean
		AllowNeutral: True # Type: Boolean
		AllowEnemies: True # Type: Boolean
		CaptureThreshold: 0.5 # Type: Single. Health percentage the target must be at (or below) before it can be captured.
	Mine:
		CrushClasses:  # Type: String[]
		AvoidFriendly: True # Type: Boolean
		DetonateClasses:  # Type: String[]
	MineImmune:
	TargetableUnit:
		TargetTypes:  # Type: String[]
	Valued: # How much the unit is worth.
		Cost: 0 # Type: Int32. Used in production, but also for bounties so remember to set it > 0 even for NPCs.
	ProximityCapturable:
		Permanent: False # Type: Boolean
		Range: 5 # Type: Int32
		MustBeClear: False # Type: Boolean
		CaptorTypes: Vehicle,Tank,Infantry # Type: String[]
	SeedsResource:
		Interval: 75 # Type: Int32
		ResourceType: Ore # Type: String
		MaxRange: 100 # Type: Int32
		AnimationInterval: 750 # Type: Int32
	RepairableNear:
		Buildings: spen,syrd # Type: String[]
		CloseEnough: 4 # Type: Int32
	CaptureNotification:
		Notification: BuildingCaptured # Type: String
		NewOwnerVoice: True # Type: Boolean
	TargetableBuilding:
		TargetTypes:  # Type: String[]
	ExternalCaptures: # This actor can capture other actors which have the ExternalCapturable: trait.
		CaptureTypes: building # Type: String[]. Types of actors that it can capture, as long as the type also exists in the ExternalCapturable Type: trait.
		ConsumeActor: False # Type: Boolean. Destroy the unit after capturing.
	ShroudPalette: # Adds the hard-coded shroud palette to the game
		Name: shroud # Type: String. Internal palette name
		Fog: False # Type: Boolean. Palette type
	ChronoshiftDeploy:
		ChargeTime: 30 # Type: Int32
		JumpDistance: 10 # Type: Int32
		ChronoshiftSound: chrotnk1.aud # Type: String
	NukePaletteEffect:
	GpsWatcher:
	GpsPower:
		RevealDelay: 0 # Type: Int32
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: GpsPowerInfoOrder # Type: String
	ChronoshiftPower:
		Range: 1 # Type: Int32
		Duration: 30 # Type: Int32
		KillCargo: True # Type: Boolean
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: ChronoshiftPowerInfoOrder # Type: String
	NukePower:
		MissileWeapon:  # Type: String
		SpawnOffset: 0,0,0 # Type: WVec
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: NukePowerInfoOrder # Type: String
	SupportPowerManager:
	SpyPlanePower:
		RevealTime: 6 # Type: Int32
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: SpyPlanePowerInfoOrder # Type: String
	ParatroopersPower:
		DropItems:  # Type: String[]
		UnitType: badr # Type: String
		FlareType: flare # Type: String
		FlareTime: 3000 # Type: Int32
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: ParatroopersPowerInfoOrder # Type: String
	AirstrikePower:
		UnitType: badr.bomber # Type: String
		SquadSize: 1 # Type: Int32
		SquadOffset: -1536,1536,0 # Type: WVec
		QuantizedFacings: 32 # Type: Int32
		Cordon: 5120 # Type: WRange
		FlareType:  # Type: String
		FlareTime: 3000 # Type: Int32
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: AirstrikePowerInfoOrder # Type: String
	IronCurtainPower:
		Duration: 10 # Type: Int32
		Range: 1 # Type: Int32
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: IronCurtainPowerInfoOrder # Type: String
	SupportPowerChargeBar:
	SonarPulsePower:
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: SonarPulsePowerInfoOrder # Type: String
	GivesExperience:
		Experience: -1 # Type: Int32. If -1, use the value of the unit cost.
	CrateSpawner:
		Minimum: 1 # Type: Int32. Minimum number of crates
		Maximum: 255 # Type: Int32. Maximum number of crates
		ValidGround: Clear,Rough,Road,Ore,Beach # Type: String[]. Which terrain types can we drop on?
		ValidWater: Water # Type: String[]. Which terrain types count as water?
		SpawnInterval: 180 # Type: Int32. Average time (seconds) between crate spawn
		WaterChance: 0.2 # Type: Single. Chance of generating a water crate instead of a land crate
	HarvesterHuskModifier:
		FullHuskActor:  # Type: String
		FullnessThreshold: 50 # Type: Int32
	Cargo:
		MaxWeight: 0 # Type: Int32
		PipCount: 0 # Type: Int32
		Types:  # Type: String[]
		UnloadFacing: 0 # Type: Int32
		InitialUnits:  # Type: String[]
		MaximumUnloadAltitude: 0 # Type: WRange
	AppearsOnRadar:
		UseLocation: False # Type: Boolean
	Explodes:
		Weapon: UnitExplode # Type: String
		EmptyWeapon: UnitExplode # Type: String
		Chance: 100 # Type: Int32
		InfDeath:  # Type: Int32[]
	ConquestVictoryConditions:
		NotificationDelay: 1500 # Type: Int32. Milliseconds
	MustBeDestroyed: # Tag trait for things that must be destroyed for a short game to end.
	ConquestObjectivesPanel:
		# Provides game mode information for players/observers.
		# Goes on WorldActor - observers don't have a player it can live on.
		ObjectivesPanel:  # Type: String
	LuaScriptEvents:
	LuaScriptInterface:
		LuaScripts:  # Type: String[]
	LightPaletteRotator: # Palette effect used for blinking "animations" on actors.
		ExcludePalettes:  # Type: String[]
	GainsExperience:
		CostThreshold: 2,4,8,16 # Type: Single[]. XP requirements for each level, as multiples of our own cost.
		FirepowerModifier: 1.1,1.15,1.2,1.5 # Type: Single[]
		ArmorModifier: 1.1,1.2,1.3,1.5 # Type: Single[]
		SpeedModifier: 1.1,1.15,1.2,1.5 # Type: Decimal[]
	MPStartLocations:
		InitialExploreRange: 5 # Type: Int32
	SmudgeLayer:
		Type: Scorch # Type: String
		Sequence: scorch # Type: String
		SmokePercentage: 25 # Type: Int32
		SmokeType: smoke_m # Type: String
	PathfinderDebugOverlay:
	DomainIndex:
	ChooseBuildTabOnSelect:
	PlayMusicOnMapLoad:
		Music:  # Type: String
		Loop: False # Type: Boolean
	ResourceClaimLayer:
	RadarColorFromTerrain:
		Terrain:  # Type: String
	EngineerRepair:
	EngineerRepairable:
	Minelayer:
		Mine: minv # Type: String
		RearmBuildings: fix # Type: String[]
		MinefieldDepth: 1.5 # Type: Single
	AutoTarget: # The actor will automatically engage the enemy when it is in range.
		AllowMovement: True # Type: Boolean. It will try to hunt down the enemy if it is not set to defend.
		ScanRadius: -1 # Type: Int32. Set to a value >1 to override weapons maximum range for this.
		InitialStance: AttackAnything # Type: UnitStance
		MinimumScanTimeInterval: 3 # Type: Int32. Ticks to wait until next AutoTarget: attempt.
		MaximumScanTimeInterval: 8 # Type: Int32. Ticks to wait until next AutoTarget: attempt.
	AutoTargetIgnore: # Will not get automatically targeted by enemy (like walls)
	Buildable:
		Prerequisites:  # Type: String[]
		Owner:  # Type: String[]
		Queue:  # Type: String
		Hidden: False # Type: Boolean
		BuildLimit: 0 # Type: Int32
		BuildPaletteOrder: 9999 # Type: Int32
		Hotkey: UNKNOWN None # Type: Hotkey
	HackyAI:
		Name: Unnamed Bot # Type: String
		SquadSize: 8 # Type: Int32
		AssignRolesInterval: 20 # Type: Int32
		RushInterval: 600 # Type: Int32
		AttackForceInterval: 30 # Type: Int32
		RallypointTestBuilding: fact # Type: String
		UnitQueues: Vehicle,Infantry,Plane,Ship,Aircraft # Type: String[]
		ShouldRepairBuildings: True # Type: Boolean
		UnitsToBuild:  # Type: Dictionary<String,Single>
		BuildingFractions:  # Type: Dictionary<String,Single>
		UnitsCommonNames:  # Type: Dictionary<String,String[]>
		BuildingCommonNames:  # Type: Dictionary<String,String[]>
		BuildingLimits:  # Type: Dictionary<String,Int32>
	MadTank:
		ThumpSequence: piston # Type: String
		ThumpInterval: 8 # Type: Int32
		ThumpDamageWeapon: MADTankThump # Type: String
		ThumpShakeIntensity: 3 # Type: Int32
		ThumpShakeMultiplier: (1,0) # Type: float2
		ThumpShakeTime: 10 # Type: Int32
		ChargeDelay: 96 # Type: Int32
		ChargeSound: madchrg2.aud # Type: String
		DetonationDelay: 42 # Type: Int32
		DetonationSound: madexplo.aud # Type: String
		DetonationWeapon: MADTankDetonate # Type: String
		DriverActor: e1 # Type: String
	RenderShroudCircle:
	Sellable: # Building can be sold
		RefundPercent: 50 # Type: Int32
	CloakPaletteEffect:
	Huntable:
	Guard:
	Guardable:
		Range: 2 # Type: Int32
	InfiltrateForExploration:
	RenderDetectionCircle:
	InfiltrateForCash:
		Percentage: 50 # Type: Int32
		Minimum: 500 # Type: Int32
		SoundToVictim: credit1.aud # Type: String
	StrategicPoint:
	StrategicVictoryConditions:
		TicksToHold: 7500 # Type: Int32
		ResetOnHoldLost: True # Type: Boolean
		RatioRequired: 0.5 # Type: Single
	EmitInfantryOnSell:
		ValuePercent: 40 # Type: Single
		MinHpPercent: 30 # Type: Single
		ActorTypes: e1 # Type: String[]
	Fake:
	ChronoshiftPaletteEffect:
	TeslaInstantKills:
	C4Demolition:
		C4Delay: 45 # Type: Int32
	PaletteFromFile:
		Name:  # Type: String. internal palette name
		Tileset:  # Type: String. If defined, load the palette only for this tileset.
		Filename:  # Type: String. filename to load
		ShadowIndex:  # Type: Int32[]. Map listed indices to shadow. Ignores previous color.
		AllowModifiers: True # Type: Boolean
	FallsToEarth:
		Explosion: UnitExplode # Type: String
		Spins: True # Type: Boolean
		Moves: False # Type: Boolean
		Velocity: 43 # Type: WRange
	ReturnOnIdle:
	FlyAwayOnIdle:
	Plane:
		MaximumPitch: 28 # Type: WAngle
		CruiseAltitude: 30 # Type: Int32
		RepairBuildings: fix # Type: String[]
		RearmBuildings: hpad,afld # Type: String[]
		InitialFacing: 128 # Type: Int32
		ROT: 255 # Type: Int32
		Speed: 1 # Type: Int32
		LandableTerrainTypes:  # Type: String[]
	TargetableAircraft:
		GroundedTargetTypes:  # Type: String[]
		TargetTypes:  # Type: String[]
	Aircraft:
		CruiseAltitude: 30 # Type: Int32
		RepairBuildings: fix # Type: String[]
		RearmBuildings: hpad,afld # Type: String[]
		InitialFacing: 128 # Type: Int32
		ROT: 255 # Type: Int32
		Speed: 1 # Type: Int32
		LandableTerrainTypes:  # Type: String[]
	AttackHeli:
		FacingTolerance: 1 # Type: Int32
		Cursor: attack # Type: String
	AttackPlane:
		FacingTolerance: 1 # Type: Int32
		Cursor: attack # Type: String
	Helicopter:
		IdealSeparation: 1706 # Type: WRange
		LandWhenIdle: True # Type: Boolean
		LandAltitude: 0 # Type: WRange
		AltitudeVelocity: 43 # Type: WRange
		CruiseAltitude: 30 # Type: Int32
		RepairBuildings: fix # Type: String[]
		RearmBuildings: hpad,afld # Type: String[]
		InitialFacing: 128 # Type: Int32
		ROT: 255 # Type: Int32
		Speed: 1 # Type: Int32
		LandableTerrainTypes:  # Type: String[]
	Mobile: # Unit is able to move.
		TerrainSpeeds:  # Type: Dictionary<String,TerrainInfo>. Set Water: 0 for ground units and lower the value on rough terrain.
		Crushes:  # Type: String[]. e.g. crate, wall, infantry
		WaitAverage: 5 # Type: Int32
		WaitSpread: 2 # Type: Int32
		InitialFacing: 128 # Type: Int32
		ROT: 255 # Type: Int32. Rate of Turning
		Speed: 1 # Type: Int32
		OnRails: False # Type: Boolean
		SharesCell: False # Type: Boolean. Allow multiple (infantry) units in one cell.
	PathFinder:
	Passenger:
		CargoType:  # Type: String
		PipType: Green # Type: PipType
		Weight: 1 # Type: Int32
	CrateAction:
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	LeavesHusk:
		HuskActor:  # Type: String
	BridgeLayer:
		Bridges: bridge1,bridge2 # Type: String[]
	Production: # This unit has access to build queues.
		Produces:  # Type: String[]. e.g. Infantry, Vehicles, Aircraft, Buildings
	Exit: # Where the unit should leave the building. Multiples are allowed if IDs are added: Exit@2, ...
		SpawnOffset: 0,0 # Type: int2
		ExitCell: 0,0 # Type: int2
		Facing: -1 # Type: Int32
	ExternalCapturableBar: # Visualize the remaining CaptureCompleteTime from ExternalCapturable: trait.
	SpawnMapActors:
	StoresOre:
		PipCount: 0 # Type: Int32. Number of little squares used to display how filled unit is.
		PipColor: Yellow # Type: PipType
		Capacity: 0 # Type: Int32
	FreeActor:
		# Player recives a unit for free once the building is placed. This also works for structures.
		# If you want more than one unit to appear copy this section and assign IDs like FreeActor@2, ...
		Actor:  # Type: String. Name of actor (use HARV if this trait is for refineries)
		InitialActivity:  # Type: String
		# What the unit should start doing. Warning: If this is not a harvester
		# it will break if you use FindResources.
		SpawnOffset: 0,0 # Type: int2. Offset relative to structure-center in 2D (e.g. 1, 2)
		Facing: 0 # Type: Int32. Which direction the unit should face.
	CanPowerDown:
	Bib:
		Sequence: bib # Type: String
		Palette: terrain # Type: String
	DeadBuildingState:
		LingerTime: 20 # Type: Int32
	PowerManager:
		AdviceInterval: 250 # Type: Int32
	ShakeOnDeath:
		Intensity: 10 # Type: Int32
	CustomBuildTimeValue: # Overrides the build time calculated by actor value.
		Value: 0 # Type: Int32
	SoundOnDamageTransition:
		DamagedSound:  # Type: String
		DestroyedSound:  # Type: String
	LineBuild: # Place the second actor in line to build more of the same at once (used for walls).
		Range: 5 # Type: Int32. The maximum allowed length of the line.
	GivesBuildableArea: # Remove this trait to limit base-walking by cheap or defensive buildings.
	Building:
		Power: 0 # Type: Int32. If negative, it will drain power, if positive, it will provide power.
		TerrainTypes:  # Type: String[]. Where you are allowed to place the building (Water, Clear, ...)
		Adjacent: 2 # Type: Int32. The range to the next building it can be constructed. Set it higher for walls.
		Footprint: x # Type: String. x means space it blocks, _ is a part that is passable by actors.
		Dimensions: 1,1 # Type: int2
		RequiresBaseProvider: False # Type: Boolean
		BuildSounds: placbldg.aud,build5.aud # Type: String[]
		SellSounds: cashturn.aud # Type: String[]
	RepairableBuilding: # Building can be repaired by the repair button.
		RepairPercent: 20 # Type: Int32
		RepairInterval: 24 # Type: Int32
		RepairStep: 7 # Type: Int32
		IndicatorPalettePrefix: player # Type: String
	BaseProvider:
		Range: 10 # Type: Int32
		Cooldown: 0 # Type: Int32
		InitialDelay: 0 # Type: Int32
	CustomSellValue: # Allow a non-standard sell/repair value to avoid buy-sell exploits.
		Value: 0 # Type: Int32
	Wall:
		CrushClasses:  # Type: String[]
		CrushSound:  # Type: String
	BuildingInfluence:
	RequiresPower:
	TransformOnCapture:
		IntoActor:  # Type: String
		ForceHealthPercentage: 0 # Type: Int32
		SkipMakeAnims: True # Type: Boolean
	PrimaryBuilding: # Used together with ClassicProductionQueue.
	Reservable:
	Crate:
		Lifetime: 5 # Type: Int32
		TerrainTypes:  # Type: String[]
	RepairsBridges:
	TakeCover:
		ProneTime: 100 # Type: Int32
		ProneDamage: 0.5 # Type: Single
		ProneSpeed: 0.5 # Type: Decimal
		ProneOffset: 85,0,-171 # Type: WVec
		Turret: primary # Type: String
		ROT: 255 # Type: Int32. Rate of Turning
		InitialFacing: 128 # Type: Int32
		AlignWhenIdle: False # Type: Boolean
		Offset: 0,0,0 # Type: WVec. Muzzle position relative to turret or body. (forward, right, up) triples
	RenderInfantryProne:
		MinIdleWaitTicks: 30 # Type: Int32
		MaxIdleWaitTicks: 110 # Type: Int32
		IdleAnimations:  # Type: String[]
		StandAnimations: stand # Type: String[]
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	DetectCloaked:
		Range: 5 # Type: Int32
	SupplyTruck: # Donate money to building if it has the AcceptSupplies: trait.
		Payload: 500 # Type: Int32. The amount of cash the owner of the building recieves.
	ProximityCaptor:
		Types:  # Type: String[]
	CashTrickler: # Lets the actor generate cash in a set periodic time.
		Period: 50 # Type: Int32. Number of ticks to wait between giving money.
		Amount: 15 # Type: Int32. Amount of money to give each time.
		ShowTicks: True # Type: Boolean. Whether to show the cash tick indicators (+$15 rising from actor).
		CaptureAmount: 0 # Type: Int32. Amount of money awarded for capturing the actor.
	PaletteFromCurrentTileset: # Loads the palette specified in the tileset definition
		Name:  # Type: String. internal palette name
		ShadowIndex:  # Type: Int32[]. Map listed indices to shadow. Ignores previous color.
		AllowModifiers: True # Type: Boolean
	LoadWidgetAtGameStart:
		Widget:  # Type: String
		ClearRoot: True # Type: Boolean
	TransformOnPassenger:
		PassengerTypes:  # Type: String[]
		OnEnter:  # Type: String
		OnExit:  # Type: String
		SkipMakeAnims: False # Type: Boolean
		BecomeNeutral: False # Type: Boolean
	ProvidesRadar:
	JamsRadar:
		Range: 0 # Type: Int32
	Transforms:
		IntoActor:  # Type: String
		Offset: 0,0 # Type: int2
		Facing: 96 # Type: Int32
		TransformSounds:  # Type: String[]
		NoTransformSounds:  # Type: String[]
	VoxelNormalsPalette:
		Name: normals # Type: String
		Type: TiberianSun # Type: NormalType
	LimitedAmmo:
		Ammo: 0 # Type: Int32
		PipCount: 0 # Type: Int32. Defaults to value in Ammo.
		ReloadTicks: 50 # Type: Int32. Time to reload measured in ticks.
	SmokeTrailWhenDamaged:
		Offset: 0,0,0 # Type: WVec. Position relative to body
		Interval: 3 # Type: Int32
		Sprite: smokey # Type: String
		MinDamage: Heavy # Type: DamageState
	TargetableSubmarine:
		CloakedTargetTypes:  # Type: String[]
		TargetTypes:  # Type: String[]
	InfiltrateForSupportPower:
		Proxy:  # Type: String
	Turreted:
		Turret: primary # Type: String
		ROT: 255 # Type: Int32. Rate of Turning
		InitialFacing: 128 # Type: Int32
		AlignWhenIdle: False # Type: Boolean
		Offset: 0,0,0 # Type: WVec. Muzzle position relative to turret or body. (forward, right, up) triples
	Cloak:
		InitialDelay: 10 # Type: Int32
		CloakDelay: 30 # Type: Int32
		UncloakOnMove: False # Type: Boolean
		RequiresCrate: False # Type: Boolean
		CloakSound:  # Type: String
		UncloakSound:  # Type: String
		Palette: cloak # Type: String
	BaseBuilding: # Tag trait for construction yard and MCVs. Used by the cycle bases hotkey to identify actors.
	GiveMcvCrateAction:
		NoBaseSelectionShares: 1000 # Type: Int32
		Unit:  # Type: String
		Owner:  # Type: String
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	RevealMapCrateAction:
		IncludeAllies: False # Type: Boolean
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	ExplodeCrateAction:
		Weapon:  # Type: String
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	CloakCrateAction:
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	SupportPowerCrateAction:
		Proxy:  # Type: String
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	HealUnitsCrateAction:
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	LevelUpCrateAction:
		Levels: 1 # Type: Int32
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	HideMapCrateAction:
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	GiveUnitCrateAction:
		Unit:  # Type: String
		Owner:  # Type: String
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	GiveCashCrateAction:
		Amount: 2000 # Type: Int32
		UseCashTick: False # Type: Boolean
		SelectionShares: 10 # Type: Int32. Chance of getting this crate, assuming the collector is compatible.
		Effect:  # Type: String. An animation defined in sequence yaml(s) to draw.
		Notification:  # Type: String. Audio clip to play when the crate is collected.
		ExcludedActorTypes:  # Type: String[]
	ContainsCrate:
	Captures: # This actor can capture other actors which have the Capturable: trait.
		CaptureTypes: building # Type: String[]. Types of actors that it can capture, as long as the type also exists in the Capturable Type: trait.
		Sabotage: True # Type: Boolean. Unit will do damage to the actor instead of capturing it. Unit is destroyed when sabotaging.
		SabotageHPRemoval: 0.5 # Type: Single. Only used if Sabotage=true. Sabotage damage expressed as a percentage of enemy health removed.
	CrateDrop:
		Minimum: 1 # Type: Int32. Minimum number of crates
		Maximum: 255 # Type: Int32. Maximum number of crates
		ValidGround: Clear,Rough,Road,Ore,Beach # Type: String[]. Which terrain types can we drop on?
		ValidWater: Water # Type: String[]. Which terrain types count as water?
		SpawnInterval: 180 # Type: Int32. Average time (seconds) between crate spawn
		WaterChance: 0.2 # Type: Single. Chance of generating a water crate instead of a land crate
		CrateActor: crate # Type: String
		DeliveryAircraft: badr # Type: String
	ThrowsParticle:
		Anim:  # Type: String
		Offset: 0,0,0 # Type: WVec. Initial position relative to body
		MinThrowRange: 256 # Type: WRange. Minimum distance to throw the particle
		MaxThrowRange: 768 # Type: WRange. Maximum distance to throw the particle
		MinThrowAngle: 85 # Type: WAngle. Minimum angle to throw the particle
		MaxThrowAngle: 170 # Type: WAngle. Maximum angle to throw the particle
		Velocity: 75 # Type: Int32. Speed to throw the particle (horizontal WPos/tick)
		ROT: 15 # Type: Single. Maximum rotation rate
	CombatDebugOverlay:
	AcceptsSupplies: # Tag trait for SupplyTruck: actors.
	BaseAttackNotifier:
		NotifyInterval: 30 # Type: Int32
	TechTree:
	ProvidesCustomPrerequisite:
		Prerequisite:  # Type: String
	PlayerStatistics:
	UpdatesPlayerStatistics:
	ProductionQueue:
		# Attach this to an actor (usually a building) to let it produce units or construct buildings.
		# If one builds another actor of this type, he will get a separate queue to create two actors
		# at the same time. Will only work together with the Production: trait.
		Type:  # Type: String. What kind of production will be added (e.g. Building, Infantry, Vehicle, ...)
		Group:  # Type: String. Group queues from separate buildings together into the same tab.
		BuildSpeed: 0.4 # Type: Single. This value is used to translate the unit cost into build time.
		LowPowerSlowdown: 3 # Type: Int32. The build time is multiplied with this value on low power.
		ReadyAudio: UnitReady # Type: String
		# Notification played when production is complete.
		# The filename of the audio is defined per faction in notifications.yaml.
		BlockedAudio: NoBuild # Type: String
		# Notification played when you can't train another unit
		# when the build limit exceeded or the exit is jammed.
		# The filename of the audio is defined per faction in notifications.yaml.
		QueuedAudio: Training # Type: String
		# Notification played when user clicks on the build palette icon.
		# The filename of the audio is defined per faction in notifications.yaml.
		OnHoldAudio: OnHold # Type: String
		# Notification played when player right-clicks on the build palette icon.
		# The filename of the audio is defined per faction in notifications.yaml.
		CancelledAudio: Cancelled # Type: String
		# Notification played when player right-clicks on a build palette icon that is already on hold.
		# The filename of the audio is defined per faction in notifications.yaml.
	HarvesterAttackNotifier:
		NotifyInterval: 30 # Type: Int32
	PlaceBuilding:
	ClassicProductionQueue:
		# Attach this to the world actor (not a building!) to define a new shared build queue.
		# Will only work together with the Production: trait on the actor that actually does the production.
		# You will also want to add PrimaryBuildings: to let the user choose where new units should exit.
		SpeedUp: False # Type: Boolean
		# If you build more actors of the same type,
		# the same queue will get its build time lowered for every actor produced there.
		BuildTimeSpeedReduction: 100,85,75,65,60,55,50 # Type: Int32[]
		# Every time another production building of the same queue is
		# contructed, the build times of all actors in the queue
		# decreased by a percentage of the original time.
		Type:  # Type: String. What kind of production will be added (e.g. Building, Infantry, Vehicle, ...)
		Group:  # Type: String. Group queues from separate buildings together into the same tab.
		BuildSpeed: 0.4 # Type: Single. This value is used to translate the unit cost into build time.
		LowPowerSlowdown: 3 # Type: Int32. The build time is multiplied with this value on low power.
		ReadyAudio: UnitReady # Type: String
		# Notification played when production is complete.
		# The filename of the audio is defined per faction in notifications.yaml.
		BlockedAudio: NoBuild # Type: String
		# Notification played when you can't train another unit
		# when the build limit exceeded or the exit is jammed.
		# The filename of the audio is defined per faction in notifications.yaml.
		QueuedAudio: Training # Type: String
		# Notification played when user clicks on the build palette icon.
		# The filename of the audio is defined per faction in notifications.yaml.
		OnHoldAudio: OnHold # Type: String
		# Notification played when player right-clicks on the build palette icon.
		# The filename of the audio is defined per faction in notifications.yaml.
		CancelledAudio: Cancelled # Type: String
		# Notification played when player right-clicks on a build palette icon that is already on hold.
		# The filename of the audio is defined per faction in notifications.yaml.
	AllyRepair:
	ActorGroupProxy:
	AttackMove:
		JustMove: False # Type: Boolean
	SpawnMPUnits:
	AttackWander:
		MoveRadius: 4 # Type: Int32
	AttackMedic:
		# Give the unit a "heal-weapon" that attacks friendly targets if they are damaged.
		# It conflicts with any other weapon or Attack*: trait because it will hurt friendlies during the
		# heal process then. It also won't work with buildings (use RepairsUnits: for them)
		FacingTolerance: 1 # Type: Int32
		Cursor: attack # Type: String
	AttackOmni:
		Cursor: attack # Type: String
	AttackPopupTurreted:
		CloseDelay: 125 # Type: Int32
		DefaultFacing: 0 # Type: Int32
		ClosedDamageMultiplier: 0.5 # Type: Single
		Cursor: attack # Type: String
	AttackLeap:
		Speed: 426 # Type: WRange. Leap speed (in units/tick).
		Angle: 56 # Type: WAngle
		FacingTolerance: 1 # Type: Int32
		Cursor: attack # Type: String
	AttackTesla:
		MaxCharges: 3 # Type: Int32
		ReloadTime: 120 # Type: Int32
		Cursor: attack # Type: String
	AttackLoyalty:
		FacingTolerance: 1 # Type: Int32
		Cursor: attack # Type: String
	AttackTurreted:
		Cursor: attack # Type: String
	AttackFrontal: # Unit got to face the target
		FacingTolerance: 1 # Type: Int32
		Cursor: attack # Type: String
	IronCurtainable:
	RallyPoint: # Used to waypoint units after production or repair is finished.
		RallyPoint: 1,3 # Type: Int32[]
		IndicatorPalettePrefix: player # Type: String
	WaterPaletteRotation: # Palette effect used for sprinkle "animations" on terrain tiles.
		ExcludePalettes:  # Type: String[]
	Contrail:
		Offset: 0,0,0 # Type: WVec. Position relative to body
		TrailLength: 25 # Type: Int32
		Color: 255,255,255,255 # Type: Color
		UsePlayerColor: True # Type: Boolean
	GpsDot:
		String: Infantry # Type: String
		IndicatorPalettePrefix: player # Type: String
	BelowUnits:
	Repairable:
		RepairBuildings: fix # Type: String[]
	EmitCargoOnSell:
	PlayerPaletteFromCurrentTileset:
		Name:  # Type: String. internal palette name
		ShadowIndex:  # Type: Int32[]. Map listed indices to shadow.
		AllowModifiers: True # Type: Boolean. Apply palette rotatotors or not.
	AttackBomber:
		Bombs: primary # Type: String. Armament name
		Guns: secondary # Type: String. Armament name
		FacingTolerance: 2 # Type: Int32
		Cursor: attack # Type: String
	ExternalCapturable: # This actor can be captured by a unit with ExternalCaptures: trait.
		Type: building # Type: String. Type of actor (the ExternalCaptures: trait defines what Types it can capture).
		AllowAllies: False # Type: Boolean
		AllowNeutral: True # Type: Boolean
		AllowEnemies: True # Type: Boolean
		CaptureCompleteTime: 15 # Type: Int32
		# Seconds it takes to change the owner.
		# You might want to add a ExternalCapturableBar: trait, too.
	WithFire:
	IonCannonPower:
		ChargeTime: 0 # Type: Int32
		Icon:  # Type: String
		Description:  # Type: String
		LongDesc:  # Type: String
		AllowMultiple: False # Type: Boolean
		OneShot: False # Type: Boolean
		BeginChargeSound:  # Type: String
		EndChargeSound:  # Type: String
		SelectTargetSound:  # Type: String
		LaunchSound:  # Type: String
		IncomingSound:  # Type: String
		DisplayTimer: False # Type: Boolean
		OrderName: IonCannonPowerInfoOrder # Type: String
	Nod01Script:
	Gdi01Script:
	WithRoof:
	ProductionQueueFromSelection:
		ProductionTabsWidget:  # Type: String
	TiberiumRefinery:
		DockOffset: 1,2 # Type: int2
		ShowTicks: True # Type: Boolean
		TickLifetime: 30 # Type: Int32
		TickVelocity: 2 # Type: Int32
		TickRate: 10 # Type: Int32
		DockAngle: 64 # Type: Int32
	SpawnViceroid:
		ViceroidActor: vice # Type: String
		Probability: 10 # Type: Int32
		Owner: Creeps # Type: String
		InfDeath: 6 # Type: Int32
	ProductionAirdrop: # Deliver the unit in production via skylift.
		ReadyAudio: Reinforce # Type: String
		ActorType: c17 # Type: String. Cargo aircraft used.
		Produces:  # Type: String[]. e.g. Infantry, Vehicles, Aircraft, Buildings
	RenderGunboat:
		Turret: primary # Type: String. Turreted 'Turret' key to display
		Image:  # Type: String. Defaults to the actor name.
		Palette:  # Type: String. Custom palette name
		PlayerPalette: player # Type: String. Custom PlayerColorPalette: BaseName
		Scale: 1 # Type: Single. Change the sprite image size.
	WithCargo:
		LocalOffset:  # Type: WRange[]. Cargo position relative to turret or body. (forward, right, up) triples
		DisplayTypes:  # Type: String[]
	PoisonedByTiberium:
		Weapon: Tiberium # Type: String
		Resources: Tiberium,BlueTiberium # Type: String[]
	CncMenuPaletteEffect:
		FadeLength: 10 # Type: Int32
	WithCrumbleOverlay:
		Sequence: crumble-overlay # Type: String. Sequence name to use
	D2kResourceLayer:
	FogPaletteFromR8:
		Name:  # Type: String. Internal palette name
		Filename:  # Type: String. Filename to load
		Offset: 0 # Type: Int64. Palette byte offset
		AllowModifiers: True # Type: Boolean
		InvertColor: False # Type: Boolean
	PaletteFromR8:
		Name:  # Type: String. Internal palette name
		Filename:  # Type: String. Filename to load
		Offset: 0 # Type: Int64. Palette byte offset
		AllowModifiers: True # Type: Boolean
		InvertColor: False # Type: Boolean

Clone this wiki locally