Thing type flags
Thing type flags are properties that can be set on or off, to control special behavior. They belong to thing classes, such as Zombieman or BaronOfHell, and shouldn't be confused with the mapthing flags, which affect individual objects in a level, regardless of species (see ExtraData mapthing options for that type of flags).
Thingtype flags are used by the thingtype block in EDF, with the fields: flags, flags2, flags3, flags4, cflags, addflags and remflags. They're also used by the SetFlags and UnSetFlags codepointers.
The flags (or bits) are grouped (currently) into four categories, because only 32 bits can enter a long integer block. There are for now 101 defined thingtype bits in Eternity.
Flags up to flags4 can only use bits from their namespaces, while cflags, addflags and remflags cover any of them.
Flags
- 1 SPECIAL
Collectable item (can be picked up).
- 2 SOLID
Blocks other objects.
- 4 SHOOTABLE
Can take damage and be targeted.
- 8 NOSECTOR
Not linked within a sector. Invisible but can be hit. Never appears in the automap, even with the cheat.
- 16 NOBLOCKMAP
Not linked within a blockmap. Cannot be hit but can hit.
- 32 AMBUSH
Always with the "ambush" flag, regardless of map thing setting. Will only wake up when encountered.
- 64 JUSTHIT
Attacks as soon as activated and seeing the target.
- 128 JUSTATTACKED
Delays a bit before attacking.
- 256 SPAWNCEILING
Spawns to ceiling instead of floor. Spawn height calculation is done from ceiling.
- 512 NOGRAVITY
Doesn't fall.
- 0x400 DROPOFF
Can pass ledges or gaps deeper than 24.
- 0x800 PICKUP
Picks up items.
- 0x1000 NOCLIP
Walks through all solids and can't activate walk line specials
- 0x2000 SLIDE
No effect. Use the SLIDE flag from the third list.
- 0x4000 FLOAT
Floating monster behavior.
- 0x8000 TELEPORT
Can go past steps of any height. May need DROPOFF in order for monsters to actually do it.
- 0x10000 MISSILE
Is a projectile and acts as such (not required for those with BOUNCES). If a shootable object placed on the map, it will be propelled by first shot without stopping, until it hits a wall and dies on contact.
- 0x20000 DROPPED
Set internally for items dropped on death (such as trooper ammo clips).
- 0x40000 SHADOW
Set for spectres and such. Fuzz effect and monster accuracy confusion.
- 0x80000 NOBLOOD
Does not bleed when gun-shot. Spawns normal dust and puff.
- 0x100000 CORPSE
Slides helplessly over ledges just like the Doom corpses (effect unnoticeable if the "torque" gameplay setting is enabled).
- 0x200000 INFLOAT
Internal, used for floating monsters' maintenance.
- 0x400000 COUNTKILL
Count towards kill score (if defeated). Warning: if COUNTKILL is to be disabled, use KILLABLE instead.
- 0x800000 COUNTITEM
Count towards item score (if picked up).
- 0x1000000 SKULLFLY
Internal, used for charging monsters' maintenance.
- 0x2000000 NOTDMATCH
Never placed in deathmatch from a mapthing.
- 0x4000000 TRANSLATION1
Turn green into grey.
- 0x8000000 TRANSLATION2
Turn green into brown, or grey into red.
- 0x10000000 TOUCHY
Dies on touch from different species, unless the participants are a pain elemental and a lost soul.
- 0x20000000 BOUNCES
Bounces. Subtle different behaviors may be achieved
- BOUNCES+MISSILE: as a missile, bounces off floors and ceilings but explodes everywhere else. Useful for not allowing the BFG to conveniently explode.
- BOUNCES+NOGRAVITY: bounces off all surfaces. Can be used for projectiles despite lack of MISSILE flag.
- BOUNCES+FLOAT: usable for monsters, letting them pogo-jump to most heights.
- BOUNCES+FLOAT+DROPOFF: even higher jumping.
- BOUNCES: can be used for projectiles, allowing grenades to be implemented.
- 0x40000000 FRIEND
Friendly monster, of MBF-Eternity variety.
- 0x80000000 TRANSLUCENT
Boom style translucency.
Flags2
- 1 LOGRAV
1/3 gravity. Doesn't work if BOUNCES is also set.
- 2 NOSPLASH
Doesn't produce terrain effects
- 4 NOSTRAFE
Never uses advanced strafe logic
- 8 NORESPAWN
Never respawns
- 16 ALWAYSRESPAWN
Always respawns, regardless of difficulty level
- 32 REMOVEDEAD
Forces disappearance after its death, and not to be used for player avatars.
- 64 NOTHRUST
Unaffected by Boom environmental pushers (wind, force points, conveyors, water currents).
- 128 NOCROSS
Cannot trigger walkover linedefs.
- 256 JUMPDOWN
As a FRIEND, may jump down ledges to follow players
- 512 PUSHABLE
Can be pushed, like the Heretic pods.
- 0x400 MAP07BOSS1
Used for Mancubi, and checked by the BossDeath codepointer, active in MAP07 for tag 666.
- 0x800 MAP07BOSS2
Used for Arachnotrons, active in MAP07 for tag 667
- 0x1000 E1M8BOSS
Used for Barons of Hell and Iron Liches, active in E1M8 for tag 666
- 0x2000 E2M8BOSS
Used for Cyberdemons and Maulotaurs, active in E2M8 for level exit or tag 666 depending on game
- 0x4000 E3M8BOSS
Used for Spiderdemons and D'sparil, active in E3M8 for level exit or tag 666, depending on game
- 0x8000 BOSS
Roars loudly and is immune to radius and certain other attacks.
- 0x10000 E4M6BOSS
Used for Cyberdemons, active in E4M6 and tag 666
- 0x20000 E4M8BOSS
Used for Spiderdemons and Iron Liches, active in E4M8 and tag 666
- 0x40000 FOOTCLIP
Allows Heretic-style water feet sinking into water, and view going down if under camera.
- 0x80000 FLOATBOB
Allows Heretic-style object bobbing.
- 0x100000 DONTDRAW
Invisible, but unlike NOSECTOR, may appear on automap.
- 0x200000 SHORTMRANGE
Has a limited missile range, like the Archvile.
- 0x400000 LONGMELEE
Has a restricted non-missile proximity area, like the Revenant.
- 0x800000 RANGEHALF
Treats itself as half as far from the target as it is, resulting in slightly higher attack chance.
- 0x1000000 HIGHERMPROB
Higher attack chance.
- 0x2000000 CANTLEAVEFLOORPIC
Cannot leave the floor texture from where it's placed. Useful for water monsters.
- 0x4000000 SPAWNFLOAT
Spawns at random z coordinates within the sector.
- 0x8000000 INVULNERABLE
Can't be damaged but can be targeted (unlike SHOOTABLE)
- 0x10000000 DORMANT
Eligible for the mapthing Dormant flag, and script-wise awakening.
- 0x20000000 SEEKERMISSILE
Eligible for the Tracer, GenTracer, HticTracer and WhirlwindSeek codepointers, and the homing setting for MissileAttack etc.
- 0x40000000 DEFLECTIVE
Needs to be paired with REFLECTIVE, and sets the object invulnerable and deflecting the projectiles at a wide angle
- 0x80000000 REFLECTIVE
Reflects projectiles back, but still takes damage
Flags3
- 1 GHOST
Heretic-style ghost: stealth for the monsters, and passable by THRUGHOST objects
- 2 THRUGHOST
Passes through GHOST objects ("man-made" projectile in Heretic)
- 4 NODMGTHRUST
Cannot thrust objects against which this one causes damage.
- 8 ACTSEESOUND
50% chance to use the sight sound instead of the active sound when mumbling around.
- 16 LOUDACTIVE
Makes the active sound at full volume.
- 32 E5M8BOSS
Used for Maulotaurs, active in E5M8 and tag 666.
- 64 DMGIGNORED
"Feared" by other monsters: they won't fight this one if provoked.
- 128 BOSSIGNORE
Won't attack other monsters with BOSSIGNORE. This flag is deprecated and should not be used by EDF modifications. It will be replaced with generalized control of infighting behavior.
- 256 SLIDE
Can slide along walls, when pushing on them, like the player and Heretic pods
- 512 TELESTOMP
Can telefrag.
- 0x400 WINDTHRUST
Can be pushed by Heretic winds
- 0x800 FIREDAMAGE
Does fire type damage
- 0x1000 KILLABLE
Safety flag required to be used when COUNTKILL is not used. Allows the monster to behave normally without counting it towards the kill ratio.
- 0x2000 DEADFLOAT
Doesn't lose gravity when killed.
- 0x4000 NOTHRESHOLD
Thing always turns on the latest attacked, like in Quake.
- 0x8000 FLOORMISSILE
The missile hugs the floor.
- 0x10000 SUPERITEM
Super powerup: only respawns if a special dmflag is enabled.
- 0x20000 NOITEMRESP
Never respawns, and unlike DROPPED, won't be crushed by sectors.
- 0x40000 SUPERFRIEND
Loyal friend, never retaliates on being hit.
- 0x80000 INVULNCHARGE
Invulnerable when SKULLFLY is set (when charging)
- 0x100000 EXPLOCOUNT
Missile won't blow up if Counter 1 < Counter 2, instead it will increment Counter 1
- 0x200000 CANNOTPUSH
Cannot push PUSHABLE objects
- 0x400000 TLSTYLEADD
Uses additive translucency, can be combined with the alpha property
- 0x800000 SPACMONSTER
Can activate parameterized line specials with the MONSTER flag
- 0x1000000 SPACMISSILE
Can activate parameterized line specials with the MISSILE flag
- 0x2000000 NOFRIENDDMG
Won't take damage from FRIEND objects
- 0x4000000 3DDECORATION
Used for Doom decoration, which acts dually as a sentient actor blocker and free for projectiles
- 0x8000000 ALWAYSFAST
Always accelerated in speed and reaction despite the skill level
- 0x10000000 PASSMOBJ
Fully 3d, if z-clipping is enabled
- 0x20000000 DONTOVERLAP
Tries to avoid overlapping even if z-clipping is enabled
- 0x40000000 CYCLEALPHA
Cycles the alpha, depending on the alphavelocity property
- 0x80000000 RIP
As a missile, goes through damageable objects, dealing them pain repeatably while in them
Flags4
- 1 AUTOTRANSLATE
Automatically translates the colors of the sprite to current game's closest colors, if they belonged to Doom and are spawned in another game. Needed for a few objects, such as the MBFHelperDog, whose sprites are designed to use the Doom's palette, but are allowed to be spawned in Heretic.
- 2 NORADIUSDMG
Doesn't take radius damage.
- 4 FORCERADIUSDMG
Always takes radius damage.
- 8 LOOKALLAROUND
Sees targets in any direction during Look frames, similar to how they behave when under AMBUSH setting after hearing a shot.
- 16 NODAMAGE
Takes no damage but may still enter pain frames (unlike the invulnerability behavior).