List of codepointers
This list of codepointers is a list of all the action routines which can be used in EDF frames. They are common for all games, so for example Heretic codepointers can be used in Doom.
You can specify the codepointers with or without their internal A_ prefix, even inside DECORATE state syntax. For simplicity, they will be referred in this wiki without the prefix.
Note that some codepointers, inherited from MBF, use the misc1 and misc2 frame properties, instead of the more general args list. Side effects aside, this also means that they will not be usable in the DECORATE syntax, but they all have DECORATE-compatible equivalents.
IMPORTANT: Do not provide more nonzero arguments to the codepointers than specified in the reference. Doing so may break forward compatibility with versions of Eternity that implement new functionality to codepointers.
- Back to EDF state reference
- Back to Eternity Engine
Player guns
Attacks
Parameterized
- CustomPlayerMelee
- FireCustomBullets
- FirePlayerMissile: custom missile attack
- PlayerThunk (deprecated)
Classic
- FireBFG
- FireCGun
- FireMissile: rocket launcher attack
- FireOldBFG: alpha Doom BFG attack
- FirePistol
- FirePlasma
- FireShotgun
- FireShotgun2: super shotgun attack
- Punch: fist attack
- Saw: chainsaw attack
Control
- CheckReload: super shotgun reload check
- CheckReloadEx: extended version that allows counter comparison
- JumpIfNoAmmo: as it says
- Lower: "lower" effect & frame
- Raise: "raise" effect & frame
- ReFire: skip frame if shooting is maintained (plasma gun cooldown effect)
- WeaponReady: "bob" effect, ready frame
Other
- EjectCasing: throw casing
Muzzle flash effects
- GunFlash: produces gunflash sprite without firing anything
- Light0: resets the muzzle light level
- Light1: muzzle light level 1
- Light2
DOOM gun sound effects
- BFGSound
- CloseShotgun2: this one also includes ReFire
- LoadShotgun2: ...these two don't
- OpenShotgun2
Frame scripting
- PlayerStartScript: start map script
- WeaponCopyCtr
- WeaponCtrOp
- WeaponCtrJump
- WeaponCtrSwitch
- WeaponSetCtr
Map objects
Explosions
These are for area-of-effect damage, common with projectiles and bombs (e.g. barrels):
- Explode: classic DOOM splash damage. Deals 128 damage in a 128 radius.
- Detonate: like Explode, but uses the thingtype "damage" field.
- DetonateEx: complete parameterized explosion.
- HticExplode: Heretic-compatible explosion, with predefined special behaviour depending on parameter.
- Mushroom: large mushroom explosion, from MBF.
- Nailbomb: explosion with bullet shrapnels, from SMMU.
Projectile control
- Tracer: one of the required components for homing missiles
Monster behaviour
These are designed mainly for monsters and similar shootable objects. The ones here are especially useful for any generic monster.
- Look: stand in guard, looking for targets.
- Chase: pursue a target and check for attack.
- FaceTarget: turn to target, look around it if it's partly invisible.
- CPosRefire: go to seestate if target is out of sight. Typical with sustained fire monsters.
- SpidRefire: like CPosRefire but with slightly different reaction times.
- Pain: play the pain sound.
- Fall: typical during death, this removes the SOLID flag.
- Scream: plays the death sound.
- XScream: makes the extreme death (gib) sound.
- BossDeath: special monster death functions (such as Baron death in E1M8)
- KeenDie: open 666-tagged doors on death of all monsters of the same species.
Generic control
Classic monster actions
These are specific to the stock DOOM monsters and should only be used in mods if the new monsters are meant to be similar.
Simple monster attacks
- PosAttack: former human, single inaccurate bullet attack.
- SPosAttack: sergeant, three-bullet shotgun attack.
- CPosAttack: pistol attack with "shotgn" noise (like with chaingunners).
- TroopAttack: imp attack
- SargAttack: demon and spectre bite
- SkullAttack: lost soul charge
- HeadAttack: cacodemon attack
- BruisAttack: baron and hell knight attack
- BspiAttack: arachnotron plasma attack
- CyberAttack: cyberdemon rocket attack
Movement sound
- Metal: metal (spiderdemon and cyberdemon) sound effect — also includes Chase!
- BabyMetal: bspwlk (arachnotron) sound effect — also includes Chase!
- Hoof: cyberdemon hoof sound — also includes Chase!
Pain elemental
- PainAttack: elemental lost soul spawn
- PainDie: elemental death action (3 lost souls spawn)
Revenant
- SkelWhoosh: revenant swing noise — also includes FaceTarget
- SkelFist: revenant punch
- SkelMissile: revenant missile
Mancubus
- FatRaise: mancubus warning — also includes FaceTarget
- FatAttack1: mancubus left attack
- FatAttack2: mancubus right attack
- FatAttack3: mancubus front attack
Archvile
- VileChase: same as Chase, but resurrecting encountered cadavers.
- VileStart: archvile heat-up noise
- VileTarget: spawn a vile fire effect on target
- VileAttack: arch vile toss
- StartFire: flamst sound effect — also includes "Fire" action!
- Fire: stick on the face of attacker's target, like the vile fire
- FireCrackle: flame sound effect — also includes "Fire" action!
DOOM 2 final boss
- BrainAwake: loud bossit sound effect
- BrainSpit: cube spawn
- SpawnFly: spawn cube controller
- SpawnSound: boscub sound effect — also includes SpawnFly
- BrainPain: loud bospn sound effect
- BrainScream: giant demon wall explosion sequence
- BrainExplode: brain perpetual explosion controller
- BrainDie: exits the level.
Player avatar behaviour
These are designed for the player-controlled thing (e.g. DoomMarine).
- PlayerScream: player-specific, health-dependent death sound, to be used instead of Scream.
- RavenPlayerScream: Heretic variant.
- XScream: make the ex
Various effects
These specials are more advanced than what's available in the classic games and do not belong specifically to projectile or monster usage
- Face: face a specified angle
- Stop: set velocity to 0
- Turn: turn around a specified angle
- Spawn: create another object on top of this one
- LineEffect: activate a tag using a special
Sounds
- PlaySound: play a chosen sound
- PlaySoundEx: extended custom sound support
Frame scripting
- RandomJump: randomly decides to set current state to a chosen one.
- Jump: like RandomJump but compatible with the Decorate-style state syntax.
Explosions and flames
BFG9000
- BFG11KHit: SMMU BFG variant
- BFGBurst: produce a burst of smaller plasma objects
- BFGSpray: BFG explosion afterglow
- BouncingBFG: SMMU bouncing BFG
Homing projectiles
- GenTracer: generic tracer
- HticTracer: like those golem skulls
Others
Heretic specific
- BeastPuff: weredragon fire belch smoke
- BlueSpark: create a blue d'sparil attack spark
- GenWizard: create a disciple
- LichFireGrow: how the fire column expands
- LichIceImpact: how an ice globe explodes into shards
- MntrFloorFire: used by the straight flame snake
- PhoenixPuff: missile trail
- PodPain: pod goo splash on being hit
- VolcBallImpact: how a volcano ball fragments on impact
- WhirlwindSeek: used by the tornados
AI
- AlertMonsters: shout so other monsters chase the player
- GenRefire: customizable refire control
- KeepChasing: pursue target without attacking
- RandomWalk: random wandering for inactive enemies
- Sor1Chase: d'sparil mount specific chase
- Sor1Pain: d'sparil mount specific twitch. Calls Pain.
AI attacks
Parameterized
- BetaSkullAttack: remote melee attack
- BulletAttack: custom bullet shooting
- MissileAttack: custom missile shooting
- MissileSpread: MissileAttack variation, supports shooting spread shots
- SargAttack12: Old Doom 1.2 style melee attack
- ThingSummon: customized summoning
Heretic
- BeastAttack: weredragon
- ClinkAttack: sabre
- ImpChargeAtk: gargoyle charge
- ImpMeleeAtk: gargoyle scratch
- ImpMissileAtk: gargoyle fire
- KnightAttack: undead warrior
- LichAttack: iron lich random attack **only one which includes ice globes**
- LichFire: iron lich fire column
- LichWhirlwind: iron lich tornado
- MinotaurAtk1: maulotaur melee damage
- MinotaurAtk2: spreadshot
- MinotaurAtk3: straight flame snake
- MinotaurCharge: maulotaur charge
- MinotaurDecide: maulotaur ranged attack choosing
- MummyAttack: golem melee
- MummyAttack2: nitrogolem range
- SnakeAttack: ophidian blue spark
- SnakeAttack2: ophidian yellow shot
- Srcr1Attack: d'sparil mount attack
- Srcr2Attack: d'sparil sorcerer attack
- Srcr2Decide: d'sparil decide whether to teleport
- VolcanoBlast: volcano burst
- WizardAtk3: disciple tri-ball
Alterations
- CasingThrust: movement for ejected casing
- FadeIn: increments alpha
- FadeOut: decrements alpha, DOESN'T destroy the thing
- HideThing: Sets DONTDRAW flag on an object
- KillChildren: destroy all summoned things
- PainNukeSpec
- RestoreArtifact: Adds the SPECIAL flag back to an object, sets the object back into its spawnstate, and plays the object's seesound.
- RestoreSpecialThing1: Removes the DONTDRAW flag from an object. If the object defines the itemrespawnat property, it will at this time be moved to a random spot if any such spots exist on the map (otherwise the item will remain where it spawned originally). The item will play its seesound.
- RestoreSpecialThing2: Adds the SPECIAL flag back to an object and sets the object back into its spawnstate.
- SetFlags: alter flags
- SetTranslucent: modify alpha amount; setup additiveness or fuzziness
- ShowMessage: display text message
- SteamSpawn: create steam effects
- UnHideThing: Unsets DONTDRAW flag on an object
- UnSetFlags: alter flags
Heretic
- AccelGlitter: accelerate upwards
- DripBlood: spawn heretic blood
- HticBossDeath: special monster death functions for Heretic
- ImpDeath: special death for gargoyle
- ImpExplode: crash for gargoyle
- ImpXDeath1: special extreme death for gargoyle, stage 1
- ImpXDeath2: special extreme death for gargoyle, stage 2
- MakePod: generate a pod
- MummySoul: create raising soul
- PlayerSkull: player death effect, when the skull tosses in air
- RemovePod: notifies the generator that this pod was destroyed
- Sor2DthInit: d'sparil death maintenance
- Sor2DthLoop: d'sparil death maintenance
- SorcererRise: d'sparil waking up after mount crash
- SorcNukeSpec
- SpawnAbove: spawns above the summoner
- SpawnGlitter: create teleportation sparkle
- WizardAtk1: face target and clear GHOST flag
- WizardAtk2: face target and set GHOST flag
Sound effects
- AmbientThinker: ambient sound maintenance
Frame scripting
- AproxDistance: assign distance from target to a variable
- CheckPlayerDone: jump to a frame if not under player control
- CopyCounter: copy a variable to another variable
- CounterJump: counter-based next frame
- CounterJumpEx: DECORATE-compatible counter-based next frame
- CounterOp: set a variable to an operation of another 2 variables
- CounterSwitch: counter-based set of frames
- CounterSwitchEx: DECORATE-compatible counter-based set of states
- HealthJump: health-based next frame
- JumpIfTargetInLOS: jump to frame if target is in the field of view
- SetCounter: set a variable
- SetTics: set frame duration
- StartScript: run map script
- StartScriptNamed: run named map script
- TargetJump: go to designated frame if having a target