Actor properties

From ZDoom Wiki
Jump to: navigation, search

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.

Actor Properties

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:
  • Chex
  • Doom
  • Heretic
  • Hexen
  • Strife
  • Raven (Heretic+Hexen)
Multiple game statements are additive.
  • SpawnID value
Defines the spawn number to be used with Thing_Spawn and its derivatives.
  • 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. (Note that 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.) 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.
  • Tag name
Gives the object 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 CCMDs is called.

Behavior

  • 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 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
  • 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.
The maximum this value can go is 32767, and going over this will cause them to take the damage as if it was unspecified.
See also Custom damage types
If no type is provided, the factor applies to all 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. 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.
Default is 0.
  • PoisonDamage value[, duration[, period]]
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 affects players if only value is specified. Otherwise, it also affects enemies.
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.
  • DesignatedTeam team
Assigns the actor to the specified team by number. In team play, the actor will not take friendly fire from teammates unless the teamdamage CVAR is set. If the monster is friendly, it will not target said teammates.
  • 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. To set a player's movement speed, use player.forwardmove instead.
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.
  • FloatSpeed value
Defines the speed the object floats up/down when FLOAT flag is set.
  • 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.
In addition, 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 instance, having a key set its species to RedCard will make locks requiring a red card to be opened with this new key. (development version 75cde0b only)
  • 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 and 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.

Collision and 'Physics'

  • Radius value
Defines the radius of this actor.
Default is 20.
Note: Using very low or null values can provoke glitches in collision detection.
  • Height value
Defines the height of this actor.
Default is 16.
Note: Using very low or null 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.
  • 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.
  • BounceType bouncename
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 to which this actor's momentum will be reduced when bouncing off of 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.

Sound

  • 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.
  • 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).
  • WallBounceSound soundname
Defines the sound the actor makes when bouncing off a wall. If this property is not defined, the BounceSound is played instead.

Rendering

  • 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. (development version 30f57c0 only)
  • "Translucent" - actor is translucent.
  • "Add" - actor uses additive translucency.
  • "Subtract" - actor uses reverse-subtractive translucency. (development version c959b3f2 only)
  • "Shaded" - treats 8-bit indexed images as an alpha map. Index 0 = fully transparent, index 255 = fully opaque. This is how decals are drawn.
  • "AddShaded" - the same as Shaded, only additive. (development version 30f57c0 only)
  • "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.
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.
  • XScale value
Defines the X-scaling for this actor.
Negative values are valid, and will result in mirroring the sprite on the axis. (development version e7225bc only)
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 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).
  • 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 exists, the weapon definition takes precedence.
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 Stencil renderstyle.
  • FloatBobPhase value (New from 2.7.1)
Sets the initial bob phase for the actor. Actors with the same phase value bob in-sync with each other. The range of phases can be from -1 to 63. With -1 being randomly chosen phase from the 0-to-63 range.
Default is -1

Obituaries

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/it, depending on the gender of the victim
%h: him/her/it
%p: his/her/its

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.

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
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.
  • 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 old 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.
These properties serve 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.
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

  • Monster
Sets all appropriate flags to make this actor act like a regular monster. The following flags are set:
  • Projectile
Sets all appropriate flags to make this actor act like a regular projectile. The following flags are set:
When playing Heretic or Hexen BLOODSPLATTER is also set.

Special

  • Args arg0[, arg1[, arg2[, arg3[, arg4]]]]
Hardcode arguments to the actor. These 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 higher than 255.
  • 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.
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.
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 define its own properties.

Inventory

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 used when displayed in the HUD or status bar.
  • 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.
  • 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

  • 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.

BasicArmorPickup

  • Armor.SaveAmount amount
The amount of armor that this item gives.
  • Armor.SavePercent percentage
Percentage is specified as a floating point value between 0.0 and 100.0
The percentage of damage that the armor absorbs.
  • 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.

BasicArmorBonus

  • Armor.SavePercent percentage
Percentage is specified as a floating point value between 0.0 and 100.0
The percentage of dealt damage that the armor absorbs.
  • 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.

Weapons

  • 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 (New from 2.7.1)
A weapon with this property won't 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 (New from 2.7.1)
A weapon with this property won't 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.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.
  • 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. 0 puts it at the start of the slot, and 1 puts it at the end of the slot (as written with setslot). This means that weapons with higher numbers will be selected first. You can also use fractional values to put it somewhere in the middle.
  • Weapon.UpSound sound
The sound played when the select state is called.
  • Weapon.YAdjust amount
Shifts the HUD sprites vertically when the status bar is off. Note: positive y values shift the weapon down.

Ammo

  • 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.

Weapon Pieces

  • 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

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

Puzzle Items

  • 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.

Player

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 colour 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 (New from 2.7.1)
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 (New from 2.7.1)
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)²/2.
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 screen 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.
  • 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.
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.ViewHeight value
Specifies how high above the floor the player's eyes are.
Default is 41.
  • 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.

Powerup

  • Powerup.Color color, alpha
  • Powerup.Color BlueMap
  • Powerup.Color GoldMap
  • Powerup.Color GreenMap
  • Powerup.Color InverseMap
  • Powerup.Color RedMap
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, an "RR GG BB" string or a color name from the X11R6RGB lump. Alpha is a value between 0.0 and 1.0. Instead of specifying a color you can also use the predefined values 'BlueMap', 'GoldMap', 'GreenMap', 'InverseMap' and 'RedMap'. These don't set a blending value but instead use a predefined blend.
  • 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.
  • Powerup.Mode mode
For some powerups which may behave in different ways, specify the mode. Currently affects Invulnerability and Invisibility.
  • 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.
  • Powerup.Strength strength
The magnitude of a powerup's effect. Currently applies to Invisibility (and Regeneration (development version 1c889dc only)), 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. (development version 1c889dc only)

Powerup Giver

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; though optionally the "Power" prefix may be left out.
Standard powerups are: Damage, DoubleFiringSpeed, Drain, Flight, Frightener, Ghost, HighJump, InfiniteAmmo, Invisibility, Invulnerable, IronFeet, LightAmp, Mask, Minotaur, Morph, Protection, Regeneration, Scanner, Shadow, Speed, Strength, Targeter, Torch, WeaponLevel2 and TimeFreezer.

Health Pickup

  • 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).

Morph Projectile

  • 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.
  • 1 (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.
  • 2 (MRF_FULLHEALTH) - The morphed player's maximum health is the MaxHealth of the morphed player class (instead of hardcoded to 30).
  • 4 (MRF_UNDOBYTOMEOFPOWER) - A morphed player unmorphs when they activate a Tome of Power.
  • 8 (MRF_UNDOBYCHAOSDEVICE) - A morphed player unmorphs when they activate a Chaos Device.
  • 16 (MRF_FAILNOTELEFRAG) - A morphed player stays morphed if unmorph by Tome of Power fails, instead of being telefragged.
  • 32 (MRF_FAILNOLAUGH) - A morphed player doesn't laugh if unmorph by Chaos Device fails.
  • 64 (MRF_WHENINVULNERABLE) - A player can morph when invulnerable but ONLY if morphing themselves via a morph powerup.
  • 128 (MRF_LOSEACTUALWEAPON) - When the player unmorphs, the actual weapon given by the Player.MorphWeapon property is taken away.
  • 256 (MRF_NEWTIDBEHAVIOUR) - A morphed actor's TID is by default transferred from the old actor to the new actor. (Applies to players and monsters)
  • 512 (MRF_UNDOBYDEATH) - A morphed actor unmorphs when killed and (unless MORPH_UNDOBYDEATHSAVES is also used) stays dead. (Applies to players and monsters)
  • 1024 (MRF_UNDOBYDEATHFORCED) - A morphed actor having the MRF_UNDOBYDEATH style flag, is guaranteed to unmorph when killed. (Applies to players and monsters)
  • 2048 (MRF_UNDOBYDEATHSAVES) - A morphed actor having the MRF_UNDOBYDEATH style flag unmorphs normally when killed, instead of dying. (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.