From ZDoom Wiki
Jump to: navigation, search

A_Explode [(int explosiondamage [, int explosionradius [, int flags [, bool alert[, int fulldamageradius[, int nails[, int naildamage[, str pufftype]]]]]]])]


Performs an explosive (radius) attack. The amount of damage and the attack's radius are specified with explosiondamage and explosionradius, respectively. If the actor is a missile, you can set hurtshooter to 0 so that its originator will not be harmed by the attack. If the hurtshooter parameter is omitted, the shot will assume normal behavior and damage the shooter.


  • explosiondamage: How much damage are inflicted at the center of the explosion. (Default: 128)
  • explosionradius: The area covered by the damage (damage inflicted drop linearly with distance). Note that a radius larger than 32767 extends beyond ZDoom's map space limitations, and will overflow with undesired results (such as becoming too small and damaging nothing). (Default: 128)
  • flags: The following flags can be combined by using the | character between the constant names:
    • XF_HURTSOURCE — Hurts the source: if set, the source can be damaged by the explosion. Note that the source is not necessarily the calling actor. This flag is set by default.
    • XF_NOTMISSILE — Not a missile: if set, the calling actor is considered to be the source. By default, the calling actor is assumed to be a projectile, and the source is therefore considered to be the calling actor's target.
  • alert: Whether the explosion rings the alarm? (Default: false)
  • fulldamageradius: The area within which full damage is inflicted. (Default: 0)
  • nails: The number of horizontal hitscan attacks performed in a ring. (Default: 0) A value of 30 emulates the A_NailBomb codepointer from SMMU, while still allowing to modify all other parameters from A_Explode.
  • naildamage: The amount of damage inflicted by nails, if any. (Default: 10)
  • pufftype: The name of the puff to use upon calling the explosion, originating from the actor's center. If nothing is supplied, BulletPuff is used.

Do not use the old actor property method of passing the parameters. Only use the parameters of A_Explode directly.


Actor MyGrenade : Grenade
	Speed 17
	BounceFactor 0.4
	BounceCount 6
		QEX1 A 0 A_PlaySound("Weapon/GenericExplode", CHAN_WEAPON)
		QEX1 A 5 A_Explode(100, 128)