Actor properties
From ZDoom Wiki
The following properties can be set in an actor's DECORATE 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.
Contents |
Map Editing Control
- game gamename
- 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:
- Doom
- Heretic
- Hexen
- Strife
- Raven (Heretic+Hexen)
- Multiple game statements are additive.
- spawnid value
- Defines the spawn ID to be used with Thing_Spawn and its derivates.
- conversationid value
- Define the ID which is used with Strife's dialogue system. This property allows use of dialogues in all games, not just Strife.
- tag name
- Gives the object a name. The only places where names are used currently is the key display on Strife's status bar and the default actor name in Strife's dialogs.
Behaviour
- 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. 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 needs to attack back. 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
- Probability of entering the pain state (255 = always, 0 = never). You can also specify painchance per damage type.
- Default is 0.
- damagefactor type, 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.
- See also Custom damage types
- damage value
- For a projectile defines the damage it inflicts upon impact.
- The formula is random(1,8)*damage or random(1,4)*damage if 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.
- Default is 0.
- poisondamage value
- Gives a projectile poison damage. Poison damage isn't 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 effects players.
- radiusdamagefactor value
- Defines the factor radius damage on this actor is multiplied by.
- 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.
- Default is 0.
- vspeed value
- Gives an actor an initial vertical momentum.
- 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.
- floatspeed value
- Defines the speed the object floats up/down when FLOAT flag is set.
Collision and 'Physics'
- radius value
- Defines the radius of this actor.
- Default is 20.
- height value
- Defines the height of this actor.
- Default is 16.
- 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.
- cameraheight value
- Defines the height to render the view at when the actor is used as camera.
- 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
- mass value
- Defines the mass of this actor. The larger the mass the less an actor moves when being thrust by damage.
- Default is 100.
- 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
- bouncefactor value
- Defines the factor to which this actor's momentum will be reduced when bouncing. This only has an effect if one of the bounce flags is being set. Default is 0.7.
- bouncecount value
- Defines the amount of bounces this actor can do before it explodes. The default is infinite but for example Strife's grenades only bounce twice before exploding.
Sound
- seesound soundname
- Defines the sound the actor makes when it sees the player (for monsters) or when a projectile is spawned. Sound names are strings which have to be enclosed in "'s (defined in SNDINFO).
- attacksound soundname
- Defines the sound the actor makes when attacking.
- painsound soundname
- Defines the sound the actor makes when in pain. To hear this sound A_Pain has to be called.
- 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.
- activesound soundname
- Defines the sound the actor makes when active.
- howlsound soundname
- Defines the sound the actor makes when being electrocuted or poisoned.
Rendering
- renderstyle type
- Defines how this actor is rendered. Useful values are:
- None - actor is invisible.
- Normal - actor is visible and not translucent.
- Fuzzy - like the Spectre in Doom.
- Translucent - actor is translucent.
- Add - actor uses additive translucency.
- Stencil - actor is drawn as a single color. Use stencilcolor to set the color to use.
- Shaded (development version only) - treats 8-bit indexed images as an alpha map. Index 0 = fully transparent, index 255 = fully opaque. This is how decals are drawn.
- Default is Normal.
- alpha value
- defines the opacity/intensity for render styles Translucent and Add.
- Range is [0.0, 1.0]
- Default is 1.0.
- xscale value
- Defines the X-scaling for this actor.
- Range is [0.0, 4.0].
- Default is 1.0.
- yscale value
- Defines the Y-scaling for this actor.
- Range is [0.0, 4.0].
- Default is 1.0.
- scale value
- Combines xscale and yscale.
- Range is [0.0, 4.0].
- Default is 1.0.
- translation value
- Sets one of Doom's standard translations (which translate the color green range) as default
- Range is 0-2 and corresponds to the standard Doom translations of gray (0), brown (1), and red (2).
- Default is no translation.
- translation translationstring [, translationstring [,....]]
- Defines a custom translation for this actor. There can be 256 custom translations at the same time. All specified translation strings are added to create one final translation table (see CreateTranslation).
- translation ice
- This special usage of the translation proprety 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 exists, the weapon definition takes precedence. (development version only)
- stencilcolor color
- Sets the color to use when using Stencil renderstyle.
Obituaries
- obituary string
- Defines the obituary string for this actor. This string uses a few placeholders:
- %o: victim's name
- %k: killer's name
- %g: he/she/it, depending on the gender of the victim
- %h: him/her/it
- %p: his/her/its
- hitobituary string
- Defines the obituary string for a melee attack by this actor. If not present obituary is used. The same format as for obituary appplies.
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.
- damagetype type
- type can be Normal, Ice, Fire or Disintegrate. Ice damage causes any actor that does not have the NOICEDEATH flag set to freeze. The other damage types cause the dying actor to enter a special death state if it is present.
- meleethreshold value
- The actor with this property set will not attack its target with a missile attack if it's 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.
- These properties serve as parameters for A_MeleeAttack and A_ComboAttack.
- maxtargetrange value
- The actor with this property set will not attack its target unless it's within the specified range. To be used in place of the old SHORTMISSILERANGE flag.
- meleedamage value (deprecated)
- meleesound soundname (deprecated)
- missileheight value (deprecated)
- missiletype classname (deprecated)
- These properties serve as parameters for A_MissileAttack and A_ComboAttack. However, these 2 functions have been superseded by parameterized versions called A_CustomMeleeAttack and A_CustomComboAttack.
- 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.
Flag Combos
- MONSTER
- Sets all appropriate flags to make this actor act like a regular monster. The following flags are set:
- SHOOTABLE
- COUNTKILL
- SOLID
- CANPUSHWALLS
- CANUSEWALLS
- ACTIVATEMCROSS
- CANPASS
- ISMONSTER
- PROJECTILE
- Sets all appropriate flags to make this actor act like a regular projectile. The following flags are set:
- NOBLOCKMAP
- NOGRAVITY
- DROPOFF
- MISSILE
- ACTIVATEIMPACT
- ACTIVATEPCROSS
- NOTELEPORT
- When playing Heretic or Hexen BLOODSPLATTER is also set.
Special
- clearflags
- clears all flags
- dropitem classname [probability [amount]]
- Drops an item of type classname when dying. Optionally the probability can be specified. A probability of 255 means the item is always dropped, a probability of 0 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.
- 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.
- 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.
Inventory properties
Various inventory types also define their own properties. They are listed with their respective classes. PlayerPawn class also define its own properties.

