Zdoom additions to the bex type format.
Zdoom has taken the bex format and added a few extra possibilities to it.
[Update Note] This list is now quite old. Whilst I do not think anything on it is strictly obsolete there have been a number of newer additions to the Zdoom range of extensions. These can be read about in the Zdoom Wiki.
Things:
There have been a number of additions to what you can do with bex and things when using zdoom.
Bits.
The following bits mnemonics can be used with zdoom.
STEALTH Is a stealth monster
TRANSLUC25 Drawn with 25% translucency
TRANSLUC50 Drawn with 50% translucency
TRANSLUC75 Drawn with 75% translucency
LOGRAV Only one-third gravity is applied to it
FLOORBOUNCE Bounces off of floors and walls
SPAWNFLOAT Spawns at a random z location
PUSHABLE Can be pushed
CANSLIDE Can slide along walls
ONMOBJ Is currently standing on top of another thing
PASSMOBJ Can pass under/over other things
CANNOTPUSH Cannot push other things
BOSS Sight and death sounds are played in surround sound
FLOATBOB Objects bobs up and down
DONTDRAWN Is not drawn
IMPACT Can activate projectile hit specials
PUSHWALL Can activate push specials
MCROSS Can activate monster cross specials
PCROSS Can activate projectile cross specials
INVULNERABLE Thing takes no damage
REFLECTIVE Missiles bounce off of it
You can also add the following to your things section, not as bits, but as individual lines to modify how the thing is drawn (zdoom 1.23 and above).
Alpha = alpha amount
Sets the alpha value for the thing. It can be in the range 0.0 - 1.0.
and
Render Style = style
Specifies how to draw the thing. Style can be:
STYLE_None - Don't draw it at all
STYLE_Normal - Draw the thing without doing anything special
STYLE_Translucent - Draw the thing with regular translucency
STYLE_Add - Draw the thing using a type of translucency that keeps the background at full intensity. (Useful for a brighter type of translucency.)
STYLE_Fuzzy - Draw with the fuzz effect.
STYLE_OptFuzzy - Draw with fuzz or translucency depending on the r_drawfuzz cvar.
STYLE_SoulTrans - Draw translucent, but use the transsouls cvar to get the alpha value.
Translucency can also be altered in version 1.22 with the slightly less easy following format:
Add the line "Translucency=x" to your Thing block, where x is some number between 0 and 65535.
0 is invisible, and 65535 is fully opaque.
However, if you really want invisibility, you would be better off to use the dontdraw flag, because with 0 translucency, the game still goes through all the drawing calculations, which is a waste of time.
Frames:
Zdoom adds the following code pointers.
FireRailgun
FireRailgunLeft
FireRailgunRight
The above are used for player weapon frames. FireRailgun will fire a central rail beam. The left and right options are simply fire from the appropriate side, like the quake2 rail. The damage and number of shots used by the rail cannot be modified.
RailWait
Does absolutely nothing. Just allows you to add a frame of nothingness after the rail so it isnt too rapid firing.
MonsterRail
Used by a monster to fire a railgun. Use this in place of a normal monster attack to make the monster fire a rail gun. Set the monsters missile damage to the damage value required for the rail attack.
Strings
Zdoom has some extra strings in the game, notably the obituary messages you get when a player is killed. These can be modified by adding their mnemonics to the strings section of a bex file.
Strings can also be modified in Zdoom 1.23 by including a languages lump in your wad. This is a compiled lump that is actually meant to be used for alternative language support, but can be used to replace regular text strings. For details, visit the zdoom site and search the forums. Little in the way of official documentation is available for this feature yet. In addition, looking at the Zdoom beta source code, there seems to be more codepointers available too. A lot of these seem to come from Zdoom's support of Hexen/Heretic. I have had a play around with them, and got some things to work, but as they are not yet official, and may well change, I'll leave them for now.