Actor properties

From ZDoom Wiki
Jump to navigation Jump to search

The following properties can be set in an actor's DECORATE or ZScript's Default {} block definition. They control various characteristics of your actor, from appearance to behavior or the actor's physical properties. To use, simply specify the property and any associated values on its own line within the actor's definition and outside the state block.

Actor properties

Map editing control

  • Game gamename (DECORATE only)
    Defines the game in which the editor number and spawn ID should take effect. For normal custom WADs this is not necessary but it may have some use in resource WADs targeted at multiple games. Valid game names are:
    • Chex
    • Doom
    • Heretic
    • Hexen
    • Strife
    • Raven (Heretic+Hexen)
    Multiple game statements are additive.
  • SpawnID value (DECORATE only)
    Defines the spawn number to be used with Thing_Spawn and its derivatives.
  • ConversationID value (DECORATE only)
    Defines the ID used by the Strife's dialogue system. This property allows to use dialogues in all games, not just Strife. If you use ZSDF instead of the binary format or USDF, then this is unnecessary and instead is set on a per-actor basis on the map.
    Note: some standard Strife actors define three numbers here, but for a mod only the first is needed. The latter two are used by the two "teaser" demo versions of Strife, and since ZDoom does not allow to use mods with a demo version, adding support for the Strife teasers in a mod is pointless.
  • Tag name
    Gives the actor a name. The names are used in the key display on Strife's status bar and the default actor name in Strife's dialogs, as well as the name of the currently selected inventory item when the invquery console command is called.


  • Health value
    Defines the health a monster or any other shootable item starts with.
    Default is 1000.
  • GibHealth value
    Defines the (negative) health below which this actor enters the extreme death sequence. If this is not set the value depends on the game, as defined in the GameInfo definition with the gibfactor property. In Doom it is the negative of the spawn health, in the other games the half of the negative of the spawn health.
  • WoundHealth value
    Defines the health below which the actor enters the Wound state. The default is 6.
  • ReactionTime value
    Time in tics (1/35 seconds) a monster takes to attack after being alerted. Attacking a monster will cause it to return attack immediately, regardless of reaction time. A negative value will cause a monster to never attack unless attacked first. There is normally no need to change this value but it can be used as a counter for A_Countdown.
    Default is 8.
  • PainChance value
  • PainChance damagetype, value
    Probability of entering the pain state (256 = always, 0 = never). You can also specify PainChance per damage type. Sources of damage that have the FORCEPAIN flag ignore this property.
    Default is 0.
  • PainThreshold value
    Minimum amount of damage required by the actor to potentially enter its Pain state. Sources of damage that have the FORCEPAIN flag ignore this property.
    Default is 0.
  • DamageFactor type, value
  • DamageFactor value
    If the actor takes damage of the specified type, that damage is multiplied by the specified value.
    A comma is required between type and value. value can be a decimal value; zero means the actor is completely immune to this kind of damage.
    Default is 1.0.
    The maximum this value can go is 32767. DamageFactor is ignored if the damage is 1,000,000 or more.
    See also Custom damage types
    If no type is provided, the factor applies to all damage types, not specified for the actor.
  • SelfDamageFactor value
    A multiplier for self-inflicted damage. This is ignored if the damage is 1,000,000 or more.
    Default is 1.0.
  • DamageMultiply value
    Generic damage multiplier. This is typically used on actors (e.g monsters) to strengthen or weaken the damage they deal from their attacks.
    Default is 1.0.
  • Damage value
  • Damage (expression) (DECORATE only)
    For a projectile defines the damage it inflicts upon impact. The formula is random(1,8) * damage, or random(1,4) * damage if the STRIFEDAMAGE flag is set.
    This also defines the damage for actors which attack like the Lost Soul. The formula for this is random(1,8) * damage.
    damage is also used to define how many bullets are fired by the generic hitscan attack function A_BulletAttack.
    Custom damage formulas can be specified by enclosing the value completely within parenthesis. For example: damage (random(4,8) * 5 + 6). This bypasses the normal calculation and does the exact damage resulting from the custom formula. Also, ACS_ExecuteWithResult and user variables can be used as part of the damage expression; this allows for more sophisticated damage calculations to be performed. The damage formula is evaluated at the moment the actor causes damage (e.g. projectile/hitscan impact).
    Default is 0.
  • DamageFunction expression (ZScript only)
    Similar to Damage, it defines the damage of the actor. What is passed is always treated as an expression, be it a single value or a formula, and is not subject to randomization like the case can be with Damage. This property and Damage are considered to be the same property, i.e. an actor can only have one or the other, but not both.
  • PoisonDamage value [, duration [, period]]
    Gives a projectile poison damage. Poison damage is not inflicted all at once, but affects the victim for a certain amount of time. The value specified here defines the time the poisoning effect lasts. Remember, poison damage only affects players if only value is specified (Hexen-style poison). Otherwise, it also affects other actors (ZDoom-style poison).
    Poison damage is inflicted every period tics (the default value of 0 means once per second). If a non-zero duration is given, it is used for the total length of the poisoning, otherwise the length depends on the value. See also ADDITIVEPOISONDAMAGE and ADDITIVEPOISONDURATION.
  • PoisonDamageType type
    Changes the damage type of poison, overriding its default type.
  • RadiusDamageFactor value
    Defines the factor radius damage on this actor is multiplied by.
  • RipperLevel value
    Used by projectiles or anything capable of performing with the RIPPER flag. Specifies the 'level' or how high up a projectile can rip through in terms of monsters with different minimum and maximum values.
    A projectile that is below a monster's minimum or above maximum means that projectile will not rip through them. All ripper properties are ignored if the DONTRIP flag is present on the monster, though, and will not rip regardless of level through that particular monster.
    When used on a monster, however, and no min or max is defined, only that specific level can rip through it.
    The value can be negative for this, RipLevelMin and RipLevelMax.
  • RipLevelMin value
    Used by monsters. Only projectiles that meet this level or higher can rip through this monster. Default is 0.
  • RipLevelMax value
    Used by monsters. Only projectiles that meet this level or lower can rip through this monster. Default is 0, which means anything above the minimum can rip through it.
  • DesignatedTeam number
    Assigns the actor to the specified team by its number from TEAMINFO. In team play, the actor will not take friendly fire from teammates unless the teamdamage console variable is set. If the monster is friendly, it will not target teammates.
    Default is no team.
  • Speed value
    Defines how fast an actor moves. For projectiles this is the distance it moves per tic (1/35 seconds). For monsters it defines the size of one step done in A_Chase. Player's movement speed also depends on the Player.ForwardMove property.
    Default is 0.
  • VSpeed value
    Gives an actor an initial vertical momentum. The higher the value, the more momentum. This is mainly used for special effect actors (e.g. weapon puffs) with the NOGRAVITY flag to make them float upwards.
  • FastSpeed value
    Defines the speed for 'fast monsters' and nightmare mode. Please note that if you use this with a monster that monster will have the different speed for the rest of its life. Fast Monster's mode will make monsters and projectiles use their FastSpeed property instead of their defined speed when +fastmonsters or +alwaysfast flag is used. Fast monsters halves the duration of actor states with the Fast keyword. Fast monsters can be set in many ways like using the +ALWAYSFAST flag or +fastmonsters.
  • FloatSpeed value
    Defines the speed the object floats up/down when FLOAT flag is set.
    Default is 4.
  • Species string
    Defines the species the monster belongs to. This determines infighting behavior, since a monster's missile do not inflict harm (except through splash damage) to other monsters belonging to the same species by default.
    When used with keys, this property allows for new keys to open the same locks as the keys they are referencing with the property, without the need to redefine the locks to add the new keys. For example, setting the key's species to RedCard will allow it to open locks as if it were a red keycard.
    Default is None that makes the game to look up the actor this actor inherits from and has this property set to something else.
  • Accuracy value
    Defines the object's accuracy. The higher the value, the more accurate the object is said to be.
    For players, this value is factored into the accuracy calculation for Strife's native weapon-firing functions.
    For monsters and other actors, this value has no predetermined effect, but it can be referenced in other places via the accuracy DECORATE variable and the APROP_Accuracy actor property.
  • Stamina value
    Defines the object's stamina.
    For players, each point of stamina will add one point to the player's maximum health pool. The value is also used in the damage calculation for Strife's punch dagger.
    For monsters and other actors, this value has no predetermined effect, but it can be referenced in other places via the stamina DECORATE variable and the APROP_Stamina actor property.
  • Activation flags
    Defines how an actor (henceforth called "thing") will execute its special. By default, the special is executed when the thing dies. If the thing is given the BUMPSPECIAL or USESPECIAL flags, the special will also execute upon being bumped into or used by another actor (the "trigger"). Several activation flags can be used, if they are separated by the | character. Available flags are:
    • THINGSPEC_Default — default behavior. The trigger (bumper/user/killer) is the activator. Only a player may activate it through BUMPSPECIAL or USESPECIAL.
    • THINGSPEC_ThingActs — the thing is considered the activator.
    • THINGSPEC_TriggerActs — the trigger is considered the activator. This is the default behavior except for specials activated upon the thing's death in maps with the ActivateOwnDeathSpecials level flag. This flag overrides the MAPINFO flag.
    • THINGSPEC_ThingTargets — the thing changes its target field to the trigger when triggered.
    • THINGSPEC_TriggerTargets — the trigger changes its target field to the thing when it triggers it.
    • THINGSPEC_MonsterTrigger — monsters are allowed to trigger the thing.
    • THINGSPEC_MissileTrigger — missiles are allowed to trigger the thing.
    • THINGSPEC_ClearSpecial — the thing's special is cleared after execution.
    • THINGSPEC_NoDeathSpecial — the thing's special will not execute on death.
    • THINGSPEC_Activate — the thing is activated when triggered.
    • THINGSPEC_Deactivate — the thing is deactivated when triggered.
    • THINGSPEC_Switch — the thing is alternatively activated and deactivated when triggered. If used in conjunction with THINGSPEC_Deactivate, it will be deactivated the first time it is triggered, otherwise it will be activated.
  • TeleFogSourceType classname
    Defines the fog to leave behind when an actor teleports away. Can be changed with A_SetTeleFog.
    Default is TeleportFog.
  • TeleFogDestType classname
    Defines the fog the actor will spawn once it arrives. Can be changed with A_SetTeleFog.
    Default is TeleportFog.
  • Threshold value
    Defines how long an actor will stick to one target after switching targets caused by infighting. e.g. if an imp changes targets because it was shot by a zombieman, it must call A_Chase this many times before it's ready to switch again. Note that further attacks which cause pain from the same target reset this value, making them stick with that target longer. QUICKTORETALIATE overwrites this property, and the property is adjustable with A_SetChaseThreshold. Note that this property is reset to DefThreshold, allowing monsters to have flexible infighting timers.
  • DefThreshold value
    Sets the default threshold reset value when the actor switches monster infighting. Adjustable with A_SetChaseThreshold.
  • FriendlySeeBlocks value
    (Warning: setting this property to high values is not recommended, as it could have a negative impact on performance.)
    Defines the maximum radius that a friendly monster or unfriendly monster with SEEFRIENDLYMONSTERS on can see enemies within. This is measured in blocks of 128x128 map units.
    Default is 10 (1280 map units).

Collisions and physics

  • Radius value
    Defines the radius of this actor.
    Default is 20.
    • Using very small values can provoke glitches in collision detection.
    • The total diameter is double this value, so an actor with a radius of 64 is actually 128 units in length and width, making it impossible for them to navigate through a corridor that's 128 units wide, for example.
  • Height value
    Defines the height of this actor.
    Default is 16.
    Note: using very small values can provoke glitches in collision detection.
  • DeathHeight value
    Defines the height this actor has after dying.
    Default is 1/4 of the original height.
  • BurnHeight value
    Defines the height this actor has after dying by fire.
    Default is 1/4 of the original height.
  • ProjectilePassHeight value
    Defines the height of the actor for the purposes of allowing projectiles to pass through. If this is 0, the actor's height is used. If the value is positive, projectiles over this height will pass through the actor. If the value is negative, the absolute value will be used if the associated compatibility option is turned on.
  • Gravity value
    The amount of gravity that affects this actor. Values less than 1 reduce gravity, while values greater than 1 increase it.
    Default is 1.0.
  • Friction value
    The amount of friction that affects this actor. Values less than 1 increase friction, while values greater than 1 reduce it. Note that this is multiplied by the sector's own friction.
    Default is 1.0.
  • Mass value
    Defines the mass of this actor. The larger the mass the less an actor moves when being thrust by damage. If less than 10, the actor will also make small terrain splashes rather than normal ones.
    Default is 100.
    Note: Giving an actor an extremely high mass in an effort to make it unthrustable is not recommended. If an actor is stuck in another or in a wall and A_RadiusThrust affects the actor, the actor could be killed almost instantly if RTF_NOIMPACTDAMAGE isn't used. It's recommended to use the DONTTHRUST flag instead of 0x7FFFFFFF or the likes.
  • MaxStepHeight value
    Defines the maximum height of a step this actor can climb up when moving. Default is 24.
  • MaxDropOffHeight value
    Defines the maximum height of a step this actor can climb down when moving. Normally this only applies to monsters but when you set the NODROPOFF flag it applies to all forms of movement.
    Default is 24.
  • MaxSlopeSteepness value
    Defines the maximum incline of a slope that can be walked on when moving, based on the Z component of its normal. Thus, a value of 1 would make only perfectly flat floors walkable, while any slope would push down the actor and a value of 0 would make practically any kind of slope walkable, no matter how steep.
    Default is STEEPSLOPE (46342 / 65536 = 0.707122...), which limits movement to slopes of 45 degrees and below.
  • BounceType name
    Defines the way the actor bounces. See also bounce flags. Valid names include:
    • None: actor does not bounce at all. This is the default value.
    • Doom: actor bounces off planes and walls until it loses enough momentum to stop.
    • Heretic: actor bounces off planes only — and is put in its Death state when bouncing!
    • Hexen: actor bounces off planes and walls.
    • Classic: actor bounces off planes only, and is considered an MBF bouncer.
    • Grenade: actor bounces off planes and walls, and is considered an MBF bouncer.
    • DoomCompat, HereticCompat, HexenCompat: same as Doom, Heretic or Hexen respectively, but the actor uses its SeeSound instead of its BounceSound and WallBounceSound.
  • BounceFactor value
    Defines the factor to which this actor's momentum will be reduced when bouncing off of ceilings and floors. This only has an effect if BounceType is not None. Default is 0.7. The WallBounceFactor property can be used to decrease the actor's momentum when it bounces off of walls.
  • WallBounceFactor value
    Defines the factor this actor's momentum will be reduced for when bouncing off walls. This only has an effect if BounceType is not None. Default is 0.75.
  • BounceCount value
    Defines the amount of bounces this actor can do before it explodes. This only has an effect if BounceType is not "None". The default is infinite but for example Strife's incendiary and explosive grenades only bounce twice before exploding.
  • ProjectileKickBack value
    Similarly to Weapon.KickBack, this affects how far the projectile will push its target upon impact. This property overrides a weapon's kickback for projectiles thrown by weapons.
  • PushFactor value
    Defines how much an actor with the PUSHABLE flag set can be pushed around. The pusher's momentum is multiplied by this amount and applied to the pushed actor. The default value is 0.25. A value of 0.0 is equivalent to not having the flag set, while a value greater than 1.0 makes it move faster than the pusher.
  • WeaveIndexXY value
    Defines the initial weave index for projectiles using the A_Weave, A_BishopMissileWeave and A_CStaffMissileSlither functions. The value must be in the 0—63 range.
  • WeaveIndexZ value
    Defines the initial weave index for projectiles using the A_Weave, A_BishopMissileWeave and A_CStaffMissileSlither functions. The value must be in the [0,63] range.
  • ThruBits value
    Allows defining collision disabling 'groups' with bit shifted numbers. This only takes effect if ALLOWTHRUBITS is on the actor.
    Default is 0, which collides with everything no matter what group is defined for others.
enum EGroups
	ThruGroup1 = 1 << 0,
	ThruGroup2 = 1 << 1,
	ThruGroup31 = 1 << 30,
	ThruGroup32 = 1 << 31 // This is the highest it can go, totaling in 32 groups.

	+ALLOWTHRUBITS // The flag is needed to activate it.

	// Anyone who is in 'ThruGroup3' or 'ThruGroup4' will pass through as well. Groups can be combined with the '|' symbol without the .
	ThruBits (ThruGroup3|ThruGroup4); 


  • ActiveSound soundname
    Defines the sound the actor makes when active.
  • AttackSound soundname
    Defines the sound the actor makes when attacking.
  • BounceSound soundname
    Defines the sound the actor makes when bouncing. If WallBounceSound is defined, applies only when bouncing off a floor.
  • CrushPainSound soundname
    Defines the sound the actor makes when being crushed.
  • DeathSound soundname
    Defines the sound the actor makes when dying or when a projectile explodes. For non-projectiles the death sound must be explicitly played with A_Scream.
  • HowlSound soundname
    Defines the sound the actor makes when being electrocuted or poisoned.
  • PainSound soundname
    Defines the sound the actor makes when in pain. To hear this sound A_Pain has to be called.
  • RipSound soundname
    Defines the sound the projectile makes when it rips through damage-able actors.
    Default is "misc/ripslop".
  • SeeSound soundname
    Defines the sound the actor makes when it sees the player (for monsters) or when a projectile is spawned.
  • WallBounceSound soundname
    Defines the sound the actor makes when bouncing off a wall. If this property is not defined, the BounceSound is played instead.


  • RenderStyle type
    Defines how this actor is rendered. Possible values include:
    • "None" - actor is invisible.
    • "Normal" - actor is visible and not translucent.
    • "Fuzzy" - like the Spectre in Doom.
    • "SoulTrans" - actor is translucent, to an amount determined by the transsouls CVAR.
    • "OptFuzzy" - actor is fuzzy or translucent, based on user preference.
    • "Stencil" - actor is drawn as a single color. Use StencilColor property to set the color to use.
    • "AddStencil" - the same as Stencil, only additive.
    • "Translucent" - actor is translucent.
    • "Add" - actor uses additive translucency.
    • "Subtract" - actor uses reverse-subtractive translucency.
    • "Shaded" - treats 8-bit indexed images as an alpha map. Index 0 = fully transparent, index 255 = fully opaque. This is how decals are drawn. Use StencilColor property to colorize the resulting sprite.
    • "AddShaded" - the same as Shaded, only additive.
    • "Shadow" - equivalent to black translucent stencil with an alpha of 0.3.
    Default is Normal.
  • Alpha value
    Defines the opacity/intensity for render styles Translucent, Add, Subtract and Stencil. The range is [0.0, 1.0].
    Default is 1.0.
  • DefaultAlpha
    Sets the alpha value of the actor to 0.4 when playing Heretic, and to 0.6 when playing the other games.
  • StealthAlpha value
    Defines the minimum visibility value of a stealth monster.
    Default is 0.
  • XScale value
    Defines the X-scaling for this actor. Negative values are valid, and will result in mirroring the sprite on the axis. The range is [-4.0, 4.0].
    Default is 1.0.
  • YScale value
    Defines the Y-scaling for this actor. The range is [0.0, 4.0].
    Default is 1.0.
  • Scale value
    Combines XScale and YScale. The range is [0.0, 4.0].
    Default is 1.0.
  • LightLevel value (New from 4.8.0)
    Specifies the absolute light level of the actor, independent of the sectors' light level. This value can range from 0 to 255. The ADDLIGHTLEVEL flag makes this property add or subtract from the actors' current sector light level.
    Default is -1, which means that the actor only uses the sectors' light level.
  • Translation value
    Sets one of Doom's standard translations (which translate the color green range) as default. The range is 0-2 and corresponds to the standard Doom translations of gray (0), brown (1), and red (2). Strife defines more, but they can be used only while playing it.
    Default is no translation.
  • Translation translationstring [, translationstring [,....]]
  • Translation "translationname"
    Defines a custom translation for this actor. There can be 65536 custom translations at the same time. All specified translation strings are added to create one final translation table (see Translation for the syntax of translation strings).
    The translation can either be set directly, or defined in TRNSLATE and then referenced by its name.
  • Translation Ice
    This special usage of the Translation property will instruct ZDoom to use the built-in ice translation when rendering this actor. The main advantage of this is for GZDoom, where the ice range uses colors outside the normal Doom palette and is thus difficult to recreate with a normal translation.
  • BloodColor color
    Sets the actor's blood color. There can be up to 256 different custom blood colors at the same time. color is either specified as 3 integers, a string "rr gg bb" or a string containing one of the special color names.
  • BloodType replaceblood [, replacebloodsplatter [, replacebloodaxe]]
    Tells ZDoom what class to spawn when the actor is hit with a weapon, replacing the standard blood. If only one type is specified it will be used for all 3 blood actors.
  • Decal decalname
    Allows specifying the decal this actor creates here instead of having to edit the DECALDEF lump as well.
    Decals can be inherited this way instead of being specified for each actor. Note that the standard Doom projectiles' decals are defined through DECALDEF and custom actors based on them will not inherit their decals.
    Decals can be specified within weapon definitions or bullet puff definitions. If both exist, the weapon definition takes precedence unless the FORCEDECAL flag is set on the puff.
    Railgun puff decals require the FORCEDECAL flag to be set on the puff.
    If a projectile is to leave a decal, it must exist for at least a tic in its Death state — otherwise no decal will be sprayed.
  • StencilColor color
    Sets the color to use when using the Stencil or Shaded RenderStyle.
  • FloatBobPhase value
    Sets the initial bob phase for the actor. Actors with the same phase value bob in-sync with each other. The range of phases is from -1 to 63, with -1 randomly choosing phase from the [0,63] range.
    Default is -1.
  • FloatBobStrength value
    Sets the magnitude of the bobbing behavior created by the FLOATBOB flag. A value of 1.0 produces the behavior seen in Heretic and Hexen, while higher and lower numbers produce a more and less extreme bobbing, respectively.
    Default is 1.0.
  • DistanceCheck cvarname
    An actor with this property is not rendered if the player's view is at a distance away from the actor which is equal or greater than the value of the specified console variable. Only integral console variables are acceptable.
  • SpriteAngle angle
    Sets the absolute angle for the sprite to draw at that given angle. This requires +SPRITEANGLE to have any effect, and once enabled, overrides all other sprite angle properties. This does not affect an actor's actual angle, rather the sprite a player would see if viewing them from that angle instead. Useful for things like decals, FLATSPRITE, and more. See GetSpriteAngle and A_SetSpriteAngle for manipulation at runtime.
0 is the actor's backside.
90 is the actor facing to the right.
180 is the actor's front. Etc.
  • SpriteRotation angle
    Offsets the actor's sprite angle in degrees. This allows for actors to visibly face one direction while truly looking another way. Use GetSpriteRotation and A_SetSpriteRotation for manipulation at runtime.
  • VisibleAngles start, end
    Defines the range to draw the sprite if the player camera is looking at it from that particular angle range. Viewing it from outside this range will not render it. Can be modified with A_SetVisibleRotation.
  • VisiblePitch start, end
    Same as VisibleAngles, but applies to pitch instead.
    NOTE: VisibleAngles and VisiblePitch requires the MASKROTATION flag to work; also they must be in bundle to work correctly (bug?), e. g. "VisibleAngles -35,35nextlineVisiblePitch -180,180".
  • RenderRadius radius
    Defines visual collision box in a similar manner to Radius. The actor is guaranteed to be drawn if any sector within this range is drawn, even if actor's main sector is not visible. This also affects dynamic lights around the actor, which is useful for ensuring distant lights illuminating an actor with a large model properly.
    If this value is smaller than Radius, Radius is used instead. A value of 0 restricts the actor to its source sector, matching vanilla Doom engine behavior; while a value of -1 causes the actor to be removed even from the source sector's render list, which can be useful to optimize performances of actors supposed to be invisible.
    Default is 0.0.
  • CameraHeight value
    Defines the height to render the view at when the actor is used as a camera.
  • CameraFOV value
    Defines the field of view when the actor is used as a camera.
    Default is 90.0.


Obituaries are messages displayed in the log when a player is killed by a monster, projectile or weapon. The string can be either used directly in the DECORATE code, or put in a LANGUAGE lump and referred to by its identifier. Starting a string with the $ character marks it as an identifier. The following placeholders can be used within the string itself:

  • %o: victim's name
  • %k: killer's name
  • %g: he/she/they/it, depending on the gender of the victim
  • %h: him/her/them/it
  • %p: his/her/their/its
  • %s: his/hers/theirs/its
  • %r: he's/she's/they're/it's

The actors defined in zdoom.pk3 always use a reference to an identifier in the LANGUAGE lump; however for reference purposes the corresponding English string is provided as a comment. You can override a standard obituary by redefining it in a custom LANGUAGE lump, avoiding the need to replace the entire actor.

Note that in deathmatch, if the cl_bbannounce console variable is true, the Bloodbath announcer replaces weapon obituaries by its own random strings.

  • HitObituary string
    Defines the obituary string for a melee attack by this actor. If not present obituary is used.
  • Obituary string
    Defines the obituary string for this actor. For weapons, this property can be used either directly on the weapon or on the puff for hitscan or rail attacks, but it should be on the projectile instead for missile attacks.


  • MinMissileChance value
    This is one part of the missile attack probability calculation. The lower this value is the more aggressive the monster is. This can be combined with the MISSILEMORE and MISSILEEVENMORE flags.
    Default value is 200.
  • DamageType type
    The attack uses a specific damage type. A number of predefined damage types are available, but it is possible to define your own custom damage types. Damage types are identified only by their name and do not need to be declared anywhere else. An attack can only use the last defined DamageType assigned to it, so more than one DamageType on an attack is pointless.
  • DeathType type
    The attack uses a specific death type, which overrides its damage type. Death types are identified only by their name and do not need to be declared anywhere else. This can be useful to combine special Death animations with a variety of different DamageFactors.
  • MeleeThreshold value
    The actor with this property set will not attack its target with a missile attack if it is within the specified range, but rather (if chasing) attempt to close in to engage in melee. To be used in place of the old LONGMELEERANGE flag.
  • MeleeRange value
    Specifies the maximum distance to a target where a melee attack inflicts damage. Distance is calculated from the attacker's center to the target's bounding box.
    All monster melee attacks use this value for melee range. This include A_BasicAttack, A_ComboAttack, A_CustomComboAttack, A_CustomMeleeAttack, A_MeleeAttack, and so on.
    Default is 44.
  • MaxTargetRange value
    A monster with this property set will not attack its target unless it is within the specified range. To be used in place of the deprecated SHORTMISSILERANGE flag. This is used by A_Chase and similar functions.
    Seeker missiles have a special use for this property. See A_SeekerMissile for more information.
  • MeleeDamage value (deprecated)
  • MeleeSound soundname (deprecated)
  • MissileHeight value (deprecated) (Except with FastProjectile)
  • MissileType classname (deprecated) (Except with FastProjectile and a few others)
    These properties served as parameters for A_MeleeAttack, A_MissileAttack and A_ComboAttack. However, these three functions have been superseded by parameterized versions called A_CustomMeleeAttack, A_CustomMissile and A_CustomComboAttack, respectively.
    Note that FastProjectile, ArtiPoisonBagShooter, ArtiPoisonBagGiver, and classes using A_LightningZap or A_LastZap make special use of the missile properties.
  • ExplosionRadius value (deprecated)
  • ExplosionDamage value (deprecated)
  • DontHurtShooter (deprecated)
    These properties were used to pass the parameters to A_Explode. Now that A_Explode allows passing the parameters directly there is no need to use these except for compatibility with older definitions.
  • PainType type
    The attack uses a specific pain type, which overrides its damage type. Pain types are identified only by their name and do not need to be declared anywhere else. This can be useful to combine special scripted effect based on custom Pain states with a variety of different DamageFactors.

Flag combos


  • Args arg0[, arg1[, arg2[, arg3[, arg4]]]]
    Hardcodes arguments of the actor, they can be any integer value. They will override any argument set in the map editor; using this property is therefore generally not recommended unless if making actors for the Doom map format or actors for the Hexen map format that needs argument values outside the [0,255] range.
  • ClearFlags
    Clears all flags previously set.
  • DropItem classname [, probability [, amount]]
    The item the actor is set to drop. The action of dropping the item is performed by A_NoBlocking, which is typically called during the death sequences of the actor. Optionally the probability can be specified. A probability of 255 or greater means the item is always dropped, while a probability of -1 or less means it is never dropped. When classname is None the drop list will be completely removed.
    amount is only applicable for ammuniton. It specifies how much single rounds the dropped item contains.
    RandomSpawner, BossEye, SpawnShot, Weapon and Skulltag's CustomMonsterInvasionSpot and CustomPickupInvasionSpot use this property differently.
    There can be more than one dropitem definitions for an actor. The amount of definitions per actor is unlimited.
    dropitem works differently with inherited actors. An actor can inherit a list of dropitem definitions from its parent but if it defines one of its own the entire parent's list is discarded. This parameter does not work for players.
  • Spawn (deprecated)
  • See (deprecated)
  • Melee (deprecated)
  • Missile (deprecated)
  • Pain (deprecated)
  • Death (deprecated)
  • XDeath (deprecated)
  • Burn (deprecated)
  • Ice (deprecated)
  • Disintegrate (deprecated)
  • Raise (deprecated)
  • Crash (deprecated)
  • Wound (deprecated)
  • Crush (deprecated)
  • Heal (deprecated)
    These keywords were originally used to remap states. However, as of 2.1.0 they have been deprecated because now it is possible to place goto statements right behind state labels which gives the same effect in a way that is much cleaner and more flexible.
  • States
    Defines an actor's states.
  • Skip_Super
    Reinitializes the actor as if it has no parent. This can be used to have access to the parent's states without inheriting its attributes.
  • VisibleToTeam team_number
    Renders the actor visible to players of a specific team. The actor's physics and code will act normally, however.
    Can be combined with VisibleToPlayerClass. Originally a Skulltag feature.
  • VisibleToPlayerClass classname[, classname2[, classname3[, ...]]]
    Same as VisibleToTeam, but for player classes.
    Can be combined with VisibleToTeam. Originally a Skulltag feature.
    Instead of just one class, a comma-separated list of classes can be given. Note that this property uses inheritance, so if an actor is visible to class DoomPlayer, it will be visible by all classes derived from DoomPlayer as well.

Additional properties

Subclasses of Actor may have additional properties. Most notably, Inventory and its own subclasses (such as Weapon) do; they are listed with their respective classes. PlayerPawn also defines its own properties.


Note that all of Inventory's subclasses (Ammo, Weapons, etc.) can be used with the following inventory properties. The Inventory base class defines the following properties which are available to all inventory subclasses:

  • Inventory.Amount value
Sets the amount of inventory items given by this item. Mostly used for item types that give larger quantities.
  • Inventory.DefMaxAmount
Sets the maximum amount the player can carry of this item to the game's default. That is normally 16 for Heretic and 25 for the other games, but can be changed in MAPINFO through the GameInfo section.
  • Inventory.MaxAmount value
Sets the maximum amount the player can carry of this item.
  • Inventory.InterHubAmount value
Sets the maximum amount the player can keep of this item when traveling between hubs or non-hub levels. The default value of one replicates the original behavior of Heretic. This property replaces the deprecated INVENTORY.INTERHUBSTRIP.
  • Inventory.Icon sprite
Defines the icon this item uses when displayed in the HUD or status bar.
  • Inventory.AltHUDIcon sprite
Defines the icon this item uses when displayed in the alternate HUD. This is of use with keys, weapons, ammunition and artifacts.
  • Inventory.PickupMessage message
Defines the message that is printed when the player picks up this item. Strings from the LANGUAGE lump can be used by passing the string's identifier prefixed with '$'. For Health items, this can be overriden by the Health.LowMessage property.
  • Inventory.PickupSound sound
Defines the sound that is played when a player picks up this item.
  • Inventory.PickupFlash actor
Defines what actor should appear when the item is picked up; normally this would be used with the PickupFlash actor to make a flash appear as the player picks up the item. If this is not specified there will be no flash when the item is picked up.
  • Inventory.UseSound sound
Defines the sound that is played when a player uses this item. The sound is played on the item channel (CHAN_ITEM) with normal attenuation.
  • Inventory.RespawnTics value
Defines the time it takes until this item respawns (if respawn is enabled) in 1/35 of a second.
  • Inventory.GiveQuest value
Also give a quest item for controlling Strife's dialogs when picking up this one. value can be in the range of [1..31]
  • Inventory.ForbiddenTo classname[, classname2[, classname3[, ...]]]
Prevents players using one of the listed classes (use actor names, not Player.DisplayName) from picking up this type of inventory item. Note that unless playing in cooperative mode, a forbidden player will still try to pickup a Weapon or WeaponPiece for ammunition, as in Hexen. Use an empty string (e.g., Inventory.ForbiddenTo "") to clear an inventory item of inherited interdictions.
  • Inventory.RestrictedTo classname[, classname2[, classname3[, ...]]]
Prevents players not using one of the listed classes (use actor names, not Player.DisplayName) from picking up this type of inventory item. Note that unless playing in cooperative mode, a forbidden player will still try to pickup a Weapon or WeaponPiece for ammunition, as in Hexen. Use an empty string (e.g., Inventory.ForbiddenTo "") to clear an inventory item of inherited restrictions.


  • FakeInventory.Respawns
Preserves the item's Thing special and arguments when respawning. This property is specific to FakeInventory, and not shared by other Inventory subclasses, because of differences in the ways FakeInventory handles its special and arguments.


  • Armor.SaveAmount amount
The amount of armor that this item gives.
  • Armor.SavePercent percentage
The percentage of damage that the armor absorbs.
Percentage is specified as a floating point value between 0.0 and 100.0 which is converted internally to a floating point value between 0.0 and 1.0
  • Armor.MaxFullAbsorb amount
The amount of damage that this armor will fully absorb per tic.
  • Armor.MaxAbsorb amount
The maximum amount of damage (after adjustment) that this armor will absorb per tic.


  • Armor.SavePercent percentage
The percentage of dealt damage that the armor absorbs.
Percentage is specified as a floating point value between 0.0 and 100.0 which is converted internally to a floating point value between 0.0 and 1.0
  • Armor.MaxSaveAmount amount
Sets the maximum amount of armor you can reach by picking up this item.
  • Armor.SaveAmount amount
The amount of armor that this item gives.
  • Armor.MaxBonus amount
The amount of armor you obtain additionally to your save amount value.
  • Armor.MaxBonusMax amount
The maximum additional save amount you can obtain with the armor.


  • Weapon.AmmoGive amount
  • Weapon.AmmoGive1 amount
The amount of primary ammo you receive from this weapon.
  • Weapon.AmmoGive2 amount
The amount of secondary ammo you get from picking up the weapon.
  • Weapon.AmmoType type
  • Weapon.AmmoType1 type
The type of primary ammo the weapon uses. This must be a valid ammo type.
  • Weapon.AmmoType2 type
The type of secondary ammo the weapon uses.
  • Weapon.AmmoUse amount
  • Weapon.AmmoUse1 amount
The amount of primary ammo the weapon uses per shot.
  • Weapon.AmmoUse2 amount
The amount of the secondary ammo that the weapon uses per shot. Normally secondary ammo is used by the secondary attack but if the WEAPON.PRIMARY_USES_BOTH flag is set the primary attack will use both types of ammo for each attack.
  • Weapon.MinSelectionAmmo1 amount
A weapon with this property will not be auto-switched to if the available amount of ammo for the primary attack is less than the value specified. The weapon can still be switched to manually, however.
  • Weapon.MinSelectionAmmo2 amount
A weapon with this property will not be auto-switched to if the available amount of ammo for the secondary attack is less than the value specified. The weapon can still be switched to manually, however.
  • Weapon.BobRangeX amount
Range multiplier for horizontal bobbing.
Default is 1.0.
  • Weapon.BobRangeY amount
Range multiplier for vertical bobbing.
Default is 1.0.
  • Weapon.BobSpeed amount
Bobbing speed multiplier. Affects how quickly the bobbing motion occurs.
Default is 1.0.
  • Weapon.BobStyle type
The type of bobbing to use. Possible values include Normal, Inverse, Alpha, InverseAlpha, Smooth, and InverseSmooth.
  • Normal is the default value and corresponds to the bobbing motion used in all old Doom-engine games.
  • Alpha is the bobbing motion used in the DoomWikiLogoIcon.pngalpha versions of Doom.
  • Smooth is a smoother version of the normal style.
  • Inverse* types mirror the motion vertically compared to the non-inverse version. InverseAlpha lowers the weapon sprite while bobbing; the others raise it.
  • Weapon.KickBack amount
How far attacks by this weapon push the enemy back. Damage is also a factor in kickback.
  • Weapon.DefaultKickBack
Weapons with this property have a kickback value which is specified by the defkickback MAPINFO property.
  • Weapon.ReadySound sound
The sound the weapon plays in its ready state.
  • Weapon.SelectionOrder value
Defines the place in the weapons list when ammo runs out. Lower numbers have higher priority. The standard Doom II weapons range from 100 for the Plasma Rifle to 3700 for the Fist.
  • Weapon.SisterWeapon weapontype
Defined weapon is also given when flagged weapon is picked up. Used primarily for Tome Of Power attacks but it can also be used to create weapons with 2 distinct attack modes. Several Strife weapons use this.
  • Weapon.SlotNumber value
Default slot for this weapon. For mods that want to add new weapons without completely redoing the player's arsenal. For other ways to assign weapons to slots, see weapon slots.
  • Weapon.SlotPriority value
Selection order within slot for this weapon. This is a floating-point value. Higher numbers mean higher priority.
  • Weapon.UpSound sound
The sound played when the select state is called.
  • Weapon.WeaponScaleX value (New from 4.8.0)
The horizontal scale multiplier of the weapon's HUD sprite.
Default is 1.0.
  • Weapon.WeaponScaleY value (New from 4.8.0)
The vertical scale multiplier of the weapon's HUD sprite.
Default is 1.2.
  • Weapon.YAdjust amount
Shifts the HUD sprites vertically when the status bar is off. Note: positive y values shift the weapon down.
The sound played when the select state is called.
  • Weapon.LookScale amount
Multiplier for the player's look sensitivity. Operates identically to the look sensitivity for FOV scaling, but without changing the FOV.


  • Ammo.BackpackAmount amount
The amount of this ammo type received from a backpack.
  • Ammo.BackpackMaxAmount amount
The maximum amount of this ammo type that can be carried with a backpack.
  • Ammo.DropAmount amount
Specifies the amount of ammo a dropped item without any explicit amount given contains. Since you can specify the amount with DropItem this is mainly to customize the amount of items dropped by Strife dialogue scripts.


  • WeaponPiece.Number number
The piece number. This can be a value between 1 and 32. To complete a weapon all available pieces as specified in the weapon must be picked up.
  • WeaponPiece.Weapon weapontype
The weapon this item helps to assemble.


  • Health.LowMessage value, message
When pickupper's health is lower than value, the pickup message is set to message.


  • PuzzleItem.Number value
Defines the number that has to be used with UsePuzzleItem to identify the item.
  • PuzzleItem.FailMessage string
Message to be displayed when this item is used and not the one requested by UsePuzzleItem.
  • PuzzleItem.FailSound sound (New from 4.8.1)
Sound to be played when the item is used, but is not the one requested by UsePuzzleItem. Default is the player class specific *puzzfail sound.


  • Player.AirCapacity value
Sets the air supply for the player class. This acts as a multiplier for the level's air supply value. A value of 2 will double the air supply, for instance. A value of 0 or less means the air supply is infinite, and thus the player class cannot drown.
Default is 1.0.
  • Player.AttackZOffset value
The height offset (in Doom map pixels) from the center of the player at which his attacks are fired. Scales according to crouched height.
  • Player.ColorRange start, end
Defines the color range in which to translate the player's sprite.
Default is no translation (0, 0).
  • Player.ColorSet number, name, start, end, color [...]
Defines a preset color set for the player class. The number must be unique. The name is used to identify the preset in the player setup menu. The start and end parameters determine the translation for the ColorRange, and the color parameter is used as the visual identifier for the set in the scoreboard.
Up to six additional color ranges can be defined, each with four parameter for range_start, range_end, first_color and last_color, in this order. See StrifePlayer for an example.
  • Player.ColorSetFile number, name, table, color
Defines a preset color set for the player class. The number must be unique. The name is used to identify the preset in the player setup menu. The translation is indicated by a translation table lump using the format defined by Hexen (TRANTBL0 to TRANTBLD). The color parameter is used as the visual identifier for the set in the scoreboard.
  • Player.ClearColorSet number
Removes a color set from the player class. This allows to remove color sets inherited from a parent class.
  • Player.CrouchSprite sprite
Defines the sprites for when your skin is crouching. If you don't define them your sprite will shrink half its vertical size to show it is crouching. For the crouch sprites you have to define all frames apart from the dying and gib frames. Please note that there is no "Crouch" state that is definable for players, as the engine would not support such a feature. Players need to be able to move seamlessly between crouching and standing during any given state (See, Missile, Melee, etc.) without losing their place in that state, hence there can be no generic "Crouch" state to jump to.
  • Player.DamageScreenColor color[, intensity[, damagetype]]
The color the player's display turns when the player is in pain. This can be specified as three hex values for R, G, B respectively, or as a literal color name (e.g. "blue"). If this isn't defined, it defaults to red. The intensity of the flash can be scaled from 0.0 to 1.0. If a damagetype is specified, the color only applies when the last damage type received is that type. If there is no color specified for a given damage type, it defaults to what is set without one.
  • Player.DisplayName string
This is the identification string of the player class. It is used in addplayerclass KEYCONF command, in playerclass console variable, in skin definitions, and in menus. Each player class used in game must have an unique display name!
  • Player.Face string
This is the three-character prefix that will be used by the status bar face display built into DOOM and by custom status bars that define faces; note that with custom status bars in SBARINFO, faces can be used in all games (not just DOOM), provided the necessary graphics are supplied. This is like the face property of S_SKIN but for player classes. To include a status bar face you must put the 3 first letters of the sprite for the face here. For example, if one of the animations was BUGST00 you would put Face "BUG".
When deciding which face to use, the engine checks for STF**** (DOOM games only), the SBARINFO face, the current player class face, the face of the currently loaded skin and finally the morphed animal player class face; whichever it finds last "wins".
The engine also maintains faces across morphing; for example, if you were playing deathmatch in HeXen and have loaded an SBARINFO which defines faces for the fighter and also a DECORATE script containing a custom morph attack weapon that changes your enemy into a dog and includes dog face graphics; if you are turned into a dog, the status bar would change to show your face as a dog and turn back to a human again when you unmorph.
  • Player.FallingScreamSpeed value_min, value_max
When a player is falling within this range of speeds, they will play *falling sound.
Default is (35.0, 40.0).
  • Player.FlechetteType string
Type of fléchette used by this player class.
  • Player.ForwardMove value[, value-run]
Speed modifier for forward/backward movement. The value is for walking and value-run is for running.
Default is 1 for both values. The default run speed is double the walking speed, so Player.ForwardMove 1, 0.5 would disable running.
  • Player.GruntSpeed value
The minimum speed a player must be falling at the time of landing to play *grunt sound.
Default is 12.0.
  • Player.HealRadiusType string
The nature of the healing effect the player offers to his allies in cooperative multiplayer when using a Mystic Ambit Incant.
Value can be Health, Armor or Mana. Default is Health.
The player's armor class values in Hexen. All values must be a multiple of five (they are divided by five when displayed on the HUD). Base value is the player class's minimum, all other values are the increases gained by picking up the corresponding Hexen armor item.
  • Player.InvulnerabilityMode string
The secondary effect an invulnerability powerup will have on the player, in addition to the invulnerability and display gimmick.
Ghost will make the player phase in an out of ghost mode rapidly; Reflective will make the player reflect projectile attacks.
Default is unnamed. To obtain the default effect, just make sure the line is not present.
  • Player.JumpZ value (fixed point)
The player's jump speed. The player's jump height in normal gravity is (value × (value + 1)) / 2). A player can still climb their MaxStepHeight while jumping, allowing to reach heights higher than indicated purely by the jump height. For example with the default values, a player can climb a height of up to 60 map units: 36 from jump, 24 from step.
Default is 8.0.
  • Player.MaxHealth value
Default is 100.
The maximum health reachable by using normal health items.
  • Player.RunHealth value
The minimum health the player can have and still be able to run. (This is normally 16% for Strife)
Default is 0.
  • Player.Portrait string
Replaces the player portrait in the class selection menu to show a customized image, much like Hexen's player classes.
  • Player.ScoreIcon sprite
The icon visible next to the player's name on multiplayer scoreboard.
  • Player.SideMove value [value-run]
Speed modifier for left/right movement. The value is for walking and value-run is for running.
Default is 1 for both values. The default run speed is double the walking speed, so Player.SideMove 1, 0.5
would disable side-running.
NOTE: Side movement running speed is actually 4/5ths forward running speed, and the side walk speed is 24/25ths forward walk.
  • Player.SoundClass string
The sound class used by SNDINFO's $playersound command.
Default is "player".
  • Player.SpawnClass spawnclass
This is the filter for spawning things in a map. The spawnclass can be one of Any, Fighter, Cleric, Mage or a number between 1 and 16. 1 is synonymous with Fighter, 2 with Cleric and 3 with Mage.
  • Player.StartItem classname [amount]
Adds an item to player's start inventory. First weapon added is the weapon selected at start.
Note: The initial startitem list is never inherited and must be specified in full for each player class.
  • Player.UseRange range
Determines how far away a player class can activate lines or objects with the +use command.
Default is 64.0.
  • Player.WeaponSlot slot, weapon1[, weapon2, weapon3, ...]
Assigns the specified weapons to the given slot number for this player class. slot can be any single digit from 0 - 9. This is followed by a comma-separated list of each weapon's class name that should be assigned to that slot. If there is more than one weapon assigned to a given slot, the player can cycle between them by repeatedly pressing the slot button. For other ways to assign weapons to slots, see weapon slots.
  • Player.ViewBob value
A multiplier for move and still bob.
Default is 1.0.
  • Player.ViewHeight value
Specifies how high above the floor the player's eyes are.
Default is 41.0.
  • Player.MorphWeapon weapon
Sets the weapon the player will use when morphed to this class.
  • Player.MugShotMaxHealth value
Defines the value that is considered to be max health for the status bar mugshot. Negative values use the player's max health as the mug shot max health, zero (default value) uses 100 as the mug shot max health, and positive values are used directly as the mug shot max health.
  • Player.TeleportFreezeTime value
The time in tics the player remains immobile after teleportation. If this is 0 or less, or the player has at least one active powerup which has the INVENTORY.NOTELEPORTFREEZE flag set, this behavior is overridden, and as a result, the player does not become immobile after teleportation.
Default is 18.


  • Powerup.Color color [, alpha]
  • Powerup.Color BlueMap
  • Powerup.Color GoldMap
  • Powerup.Color GreenMap
  • Powerup.Color InverseMap
  • Powerup.Color RedMap
  • Powerup.Color None
Specifies the color and the opacity of the screen blend that is used when the powerup is active. Color is specified either as three integers (DECORATE only), an "RR GG BB" string or a color name from the X11R6RGB lump. Alpha is optional, and is a value between 0.0 and 1.0, defaulting to 0.33333 if not specified. Instead of specifying a color you can also use the predefined values BlueMap, GoldMap, GreenMap, InverseMap and RedMap. These do not set a blending value but instead use a predefined blend.
Using a color value of None for a PowerupGiver, results in having no screen blend. Setting an arbitrary color with zero alpha, instead, to override the powerup's own does not achieve the same task.
  • Powerup.Colormap [sourcecolor, ]destcolor
A generalization of the colormaps (which, counter-intuitively, are used with Powerup.Color), this creates a color ramp from the source color to the destination color. This uses decimal numbers for the red, green, blue components, ranging from 0.0 to 1.0, inclusive. If only one color is provided, then black (0.0, 0.0, 0.0) is used as the source color. For example, Powerup.Colormap 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 and Powerup.Colormap 1.0, 1.0, 1.0 both create a grayscale, Powerup.Colormap 1.0, 1.0, 1.0, 0.0, 0.0, 0.0 creates the well known inverse map and Powerup.Colormap 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 creates a red to green effect.
  • Powerup.Duration time
The length of time the power up will last in tics (1/35 of a second). If a negative duration is given, it will be taken as the duration in seconds (e.g., -30 is half a minute, while 30 is less than a second). The maximum duration is 0x7FFFFFFF, which corresponds to about two years of real time and can therefore safely be used for permanent powerups. Note, however, that due to the design of the TimeFreezer powerup, using such a duration value for this powerup is not recommended, as the engine will add two tics to the powerup's duration if the duration's value was even and the powerup was activated on an odd game tic, resulting in a signed overflow error. A value of 0x7FFFFFFD is safe to use in such a case.
  • Powerup.Mode mode
For some powerups which may behave in different ways, specify the mode. Currently affects Invulnerability, Invisibility and Environment protection.
  • Invulnerability modes: None and Reflective. "None" is invulnerability without any added effect. "Reflective" also makes all projectiles bounce off of the player while the powerup is in effect.
  • Invisibility modes: Cumulative, Fuzzy, Opaque, Stencil and Translucent. "Cumulative" allow multiple invisibility powerups of the same type to stack when active at the same time, adding their strength value together. "Fuzzy" uses the fuzz effect renderstyle, like that of the spectre. "Opaque" results in an opaque renderstyle, making the actor not invisible graphically speaking. "Stencil" uses the stencil renderstyle, showing just the shape. "Translucent" is merely a way of explicitly specifying the default invisibility mode.
  • Environment protection modes: Normal and Full. "Normal" is environment protection's default mode. "Full" is total-protection mode. It is similar to "Normal", but it also protects against the types of damaging floors that the "Normal" mode does not protect against, whether it is partial protection or not.
  • Powerup.Strength strength
The magnitude of a powerup's effect. Currently applies to Invisibility and Regeneration, as other powerups have unquantifiable effects or use predetermined fields such as DamageFactor.
  • Invisibility strength: determines how translucent the affected actor becomes. 0 is for opaque, and 100 is for fully invisible. Does not apply to "Fuzzy" mode.
  • Regeneration strength: determines the amount of health regenerated.


The PowerSpeed base class defines the following properties which are available to all subclasses:

  • PowerSpeed.NoTrail value
If set to 1, it disables the speed trail effect that is created while the player is moving.
Default is 0.


All the Powerup properties, which they override, and in addition the following ones:

  • Powerup.Type power_name
The type of powerup given when item is used. This must be the name of an existing powerup. In DECORATE only, when passing the powerup's name, the "Power" prefix is optional and may be left out.


  • HealthPickup.AutoUse value
Determines whether (and how) the item is set to be automatically used when the player's health drops below a certain point.
The following values are accepted:
0 - Item will never be auto-used.
1 - Item will be automatically used when the player would die from damage taken, but only if the currently-selected skill level has the "autousehealth" flag set. (Like the Quartz Flask from Heretic/Hexen)
2 - Item will be automatically used when the player would die from damage taken, but only if the currently-selected skill level has the "autousehealth" flag set or during a deathmatch game. (Like the Mystic Urn from Heretic/Hexen)
3 - Item is auto-used when the player drops below 50% health; if the player has more than 1 such item, they will continue to be consumed until the player is over 50% health. However, if damage takes the player below 0% health, this will not save them from death. (Like Strife's small health items).


  • MorphProjectile.PlayerClass classname
Defines what class to morph players into.
  • MorphProjectile.MonsterClass classname
Defines what class to morph monsters into.
  • MorphProjectile.Duration tics
Defines the time that the victim stays morphed.
  • MorphProjectile.MorphStyle flags
Defines the behaviour of the morphing effects. Use | to use multiple flags at once. Omitting this property or specifying it as zero causes the default Heretic/Hexen behaviour to be applied; see the notes below for more information. These flags only affect morphed players (not morphed monsters) except where explicitly stated in a flag's description.
  • MRF_ADDSTAMINA — The current stamina is added to the maximum health that is effect (see MRF_FULLHEALTH) whenever the player receives health via normal means. This is normal under-the-hood behaviour that is by default suppressed when morphed. You would normally leave it off for a morph curse and turn it on for a morph powerup. Note that by default, only Strife games define a stamina mechanism.
  • MRF_FULLHEALTH — The morphed player's maximum health is the MaxHealth of the morphed player class (instead of hardcoded to 30).
  • MRF_UNDOBYTOMEOFPOWER — A morphed player unmorphs when they activate a Tome of Power.
  • MRF_UNDOBYCHAOSDEVICE — A morphed player unmorphs when they activate a Chaos Device.
  • MRF_FAILNOTELEFRAG — A morphed player stays morphed if unmorph by Tome of Power fails, instead of being telefragged.
  • MRF_FAILNOLAUGH — A morphed player doesn't laugh if unmorph by Chaos Device fails.
  • MRF_WHENINVULNERABLE — A player can morph when invulnerable but ONLY if morphing themselves via a morph powerup.
  • MRF_LOSEACTUALWEAPON — When the player unmorphs, the actual weapon given by the Player.MorphWeapon property is taken away.
  • MRF_NEWTIDBEHAVIOUR — A morphed actor's TID is by default transferred from the old actor to the new actor. (Applies to players and monsters)
  • MRF_UNDOBYDEATH — A morphed actor unmorphs when killed and (unless MORPH_UNDOBYDEATHSAVES is also used) stays dead. (Applies to players and monsters)
  • MRF_UNDOBYDEATHFORCED — A morphed actor having the MRF_UNDOBYDEATH style flag, is guaranteed to unmorph when killed. (Applies to players and monsters)
  • MRF_UNDOBYDEATHSAVES — A morphed actor having the MRF_UNDOBYDEATH style flag unmorphs normally when killed, instead of dying. (Applies to players and monsters)
  • MRF_UNDOALWAYS — Certain conditions would prevent an unmorph from occurring when the morph powerup expires, such as not having enough room, so it would continue to attempt unmorphing every second. This disables these conditions entirely and forces them to unmorph no matter what.
  • MRF_TRANSFERTRANSLATION — Transfers the actor's translation to the morphed actor. (Applies to players and monsters)
  • MorphProjectile.MorphFlash classname
Defines the effect flash actor to spawn when the victim morphs. If omitted, the game's default teleport fog is used.
  • MorphProjectile.UnMorphFlash classname
Defines the effect flash actor to spawn when the victim unmorphs. If omitted, the game's default teleport fog is used.