This page tracks support for the "Doom in Hexen" map format and related features, as seen in ZDoom. This is all a work in progress - the status of any feature (including whether or not it is planned) is subject to change.
The initial pass over the format has been completed. Most planned line actions and sector effects are supported. Poly objects are supported (but there are visual artifacts in some cases). New teleport destinations and map spots are implemented. Most line actions targeting thing tags are implemented.
Symbol |
Meaning |
✔️ |
Feature is supported |
⚠️ |
Feature is partially supported |
🔭 |
Feature is planned |
❔ |
Feature is under investigation |
❌ |
Feature is not planned |
Name |
Status |
Levels |
⚠️ |
Poly Objects |
✔️ |
ACS |
🔭 |
MAPINFO |
🔭 |
SNDINFO |
🔭 |
SNDSEQ |
🔭 |
ANIMDEFS |
🔭 |
Value |
Name |
Status |
118 |
ZBridge |
❌ |
- |
- |
- |
888 |
MBFHelperDog |
✔️ |
- |
- |
- |
1400-1409 |
Sound Sequence |
🔭 |
1411 |
Sound Sequence Override |
🔭 |
- |
- |
- |
1500-1501 |
Line Slopes |
❌ |
- |
- |
- |
1504-1505 |
Vertex Slopes |
❌ |
- |
- |
- |
4001-4004 |
Player 5-8 Start |
❌ |
5001 |
PointPusher |
✔️ |
5002 |
PointPuller |
✔️ |
- |
- |
- |
5010 |
Pistol |
❌ |
- |
- |
- |
5050 |
Stalagmite |
❌ |
- |
- |
- |
5061 |
InvisibleBridge32 |
❌ |
- |
- |
- |
5064 |
InvisibleBridge16 |
❌ |
5065 |
InvisibleBridge8 |
❌ |
- |
- |
- |
9001 |
MapSpot |
✔️ |
- |
- |
- |
9013 |
MapSpotGravity |
✔️ |
- |
- |
- |
9024 |
PatrolPoint |
❌ |
9025 |
SecurityCamera |
❌ |
9026 |
Spark |
❌ |
9027 |
RedParticleFountain |
❌ |
9028 |
GreenParticleFountain |
❌ |
9029 |
BlueParticleFountain |
❌ |
9030 |
YellowParticleFountain |
❌ |
9031 |
PurpleParticleFountain |
❌ |
9032 |
BlackParticleFountain |
❌ |
9033 |
WhiteParticleFountain |
❌ |
- |
- |
- |
9037 |
BetaSkull |
❌ |
9038 |
ColorSetter |
❌ |
9039 |
FadeSetter |
❌ |
9040 |
MapMarker |
❌ |
9041 |
SectorFlagSetter |
❌ |
- |
- |
- |
9043-9044 |
TeleportDest* |
✔️ |
9045 |
Waterzone |
❌ |
9046 |
SecretTrigger |
❌ |
9047 |
PatrolSpecial |
❌ |
9048 |
SoundEnvironment |
❌ |
- |
- |
- |
9050-9061 |
Stealth* |
❌ |
- |
- |
- |
9070 |
InterpolationPoint |
❌ |
9071 |
PathFollower |
❌ |
9072 |
MovingCamera |
❌ |
9073 |
AimingCamera |
❌ |
9074 |
ActorMover |
❌ |
9075 |
InterpolationSpecial |
❌ |
9076 |
HateTarget |
❌ |
9077 |
UpperStackLookOnly |
❌ |
9078 |
LowerStackLookOnly |
❌ |
- |
- |
- |
9080 |
SkyViewpoint |
❌ |
9081 |
SkyPicker |
❌ |
9082 |
SectorSilencer |
❌ |
9083 |
SkyCamCompat |
❌ |
- |
- |
- |
9100 |
ScriptedMarine |
❌ |
9101-9111 |
Marine* |
❌ |
- |
- |
- |
9200 |
Decal |
❌ |
- |
- |
- |
9300-9303 |
PolyObject* |
✔️ |
- |
- |
- |
9500-9503 |
Slopes |
❌ |
- |
- |
- |
9510-9511 |
Copy Planes |
❌ |
- |
- |
- |
9982 |
SecActEyesAboveC |
❌ |
9983 |
SecActEyesBelowC |
❌ |
- |
- |
- |
9988 |
CustomSprite |
❌ |
9989 |
SecActHitFakeFloor |
❌ |
9990 |
InvisibleBridge |
❌ |
9991 |
CustomBridge |
❌ |
9992 |
SecActEyesSurface |
❌ |
9993 |
SecActEyesDive |
❌ |
9994 |
SecActUseWall |
❌ |
9995 |
SecActUse |
❌ |
9996 |
SecActHitCeil |
❌ |
9997 |
SecActExit |
❌ |
9998 |
SecActEnter |
❌ |
9999 |
SecActHitFloor |
❌ |
- |
- |
- |
14001-14064 |
AmbientSound |
🔭 |
14065 |
Custom AmbientSound |
🔭 |
14066 |
SoundSequence |
🔭 |
14067 |
AmbientSoundNoGravity |
🔭 |
- |
- |
- |
14101-14164 |
MusicChanger |
✔️ |
14165 |
Custom MusicChanger |
🔭 |
Name |
Status |
Dormant |
⚠️ |
Translucent |
✔️ |
Invisible |
✔️ |
Friendly |
✔️ |
Stand Still |
❌ |
- Dormant monsters still bleed.
Name |
Status |
Player Walkover |
✔️ |
Player Use |
✔️ |
Monster Walkover |
✔️ |
Projectile Hits |
✔️ |
Player Bumps |
✔️ |
Projectile Crosses |
✔️ |
Player Use (Pass Through) |
✔️ |
Projectile Hits or Crosses |
✔️ |
Name |
Status |
Repeatable Action |
✔️ |
Monster Activates |
✔️ |
Block Everything |
✔️ |
Block Players |
✔️ |
Value |
Name |
Status |
1 |
Polyobj_StartLine |
✔️ |
2 |
Polyobj_RotateLeft |
✔️ |
3 |
Polyobj_RotateRight |
✔️ |
4 |
Polyobj_Move |
✔️ |
5 |
Polyobj_ExplicitLine |
✔️ |
6 |
Polyobj_MoveTimes8 |
✔️ |
7 |
Polyobj_DoorSwing |
✔️ |
8 |
Polyobj_DoorSlide |
✔️ |
9 |
Line_Horizon |
🔭 |
10 |
Door_Close |
✔️ |
11 |
Door_Open |
✔️ |
12 |
Door_Raise |
✔️ |
13 |
Door_LockedRaise |
✔️ |
14 |
Door_Animated |
❌ |
15 |
Autosave |
❌ |
16 |
Transfer_WallLight |
🔭 |
17 |
Thing_Raise |
✔️ |
18 |
StartConversation |
❌ |
19 |
Thing_Stop |
✔️ |
20 |
Floor_LowerByValue |
✔️ |
21 |
Floor_LowerToLowest |
✔️ |
22 |
Floor_LowerToNearest |
✔️ |
23 |
Floor_RaiseByValue |
✔️ |
24 |
Floor_RaiseToHighest |
✔️ |
25 |
Floor_RaiseToNearest |
✔️ |
26 |
Stairs_BuildDown |
✔️ |
27 |
Stairs_BuildUp |
✔️ |
28 |
Floor_RaiseAndCrush |
✔️ |
29 |
Pillar_Build |
✔️ |
30 |
Pillar_Open |
✔️ |
31 |
Stairs_BuildDownSync |
✔️ |
32 |
Stairs_BuildUpSync |
✔️ |
33 |
ForceField |
✔️ |
34 |
ClearForceField |
✔️ |
35 |
Floor_RaiseByValueTimes8 |
✔️ |
36 |
Floor_LowerByValueTimes8 |
✔️ |
37 |
Floor_MoveToValue |
✔️ |
38 |
Ceiling_Waggle |
✔️ |
39 |
Teleport_ZombieChanger |
✔️ |
40 |
Ceiling_LowerByValue |
✔️ |
41 |
Ceiling_RaiseByValue |
✔️ |
42 |
Ceiling_CrushAndRaise |
✔️ |
43 |
Ceiling_LowerAndCrush |
✔️ |
44 |
Ceiling_CrushStop |
✔️ |
45 |
Ceiling_CrushRaiseAndStay |
✔️ |
46 |
Floor_CrushStop |
✔️ |
47 |
Ceiling_MoveToValue |
✔️ |
48 |
Sector_Attach3dMidtex |
❌ |
49 |
GlassBreak |
🔭 |
50 |
ExtraFloor_LightOnly |
❌ |
51 |
Sector_SetLink |
❌ |
52 |
Scroll_Wall |
⚠️ |
53 |
Line_SetTextureOffset |
⚠️ |
54 |
Sector_ChangeFlags |
🔭 |
55 |
Line_SetBlocking |
⚠️ |
56 |
Line_SetTextureScale |
❌ |
57 |
Sector_SetPortal |
❌ |
58 |
Sector_CopyScroller |
✔️ |
59 |
Polyobj_OR_MoveToSpot |
✔️ |
60 |
Plat_PerpetualRaise |
✔️ |
61 |
Plat_Stop |
✔️ |
62 |
Plat_DownWaitUpStay |
✔️ |
63 |
Plat_DownByValue |
✔️ |
64 |
Plat_UpWaitDownStay |
✔️ |
65 |
Plat_UpByValue |
✔️ |
66 |
Floor_LowerInstant |
✔️ |
67 |
Floor_RaiseInstant |
✔️ |
68 |
Floor_MoveToValueTimes8 |
✔️ |
69 |
Ceiling_MoveToValueTimes8 |
✔️ |
70 |
Teleport |
✔️ |
71 |
Teleport_NoFog |
✔️ |
72 |
ThrustThing |
✔️ |
73 |
DamageThing |
✔️ |
74 |
Teleport_NewMap |
🔭 |
75 |
Teleport_EndGame |
🔭 |
76 |
TeleportOther |
✔️ |
77 |
TeleportGroup |
🔭 |
78 |
TeleportInSector |
🔭 |
79 |
Thing_SetConversation |
❌ |
80 |
ACS_Execute |
🔭 |
81 |
ACS_Suspend |
🔭 |
82 |
ACS_Terminate |
🔭 |
83 |
ACS_LockedExecute |
🔭 |
84 |
ACS_ExecuteWithResult |
🔭 |
85 |
ACS_LockedExecuteDoor |
🔭 |
86 |
Polyobj_MoveToSpot |
✔️ |
87 |
Polyobj_Stop |
✔️ |
88 |
Polyobj_MoveTo |
✔️ |
89 |
Polyobj_OR_MoveTo |
✔️ |
90 |
Polyobj_OR_RotateLeft |
✔️ |
91 |
Polyobj_OR_RotateRight |
✔️ |
92 |
Polyobj_OR_Move |
✔️ |
93 |
Polyobj_OR_MoveTimes8 |
✔️ |
94 |
Pillar_BuildAndCrush |
✔️ |
95 |
FloorAndCeiling_LowerByValue |
✔️ |
96 |
FloorAndCeiling_RaiseByValue |
✔️ |
97 |
Ceiling_LowerAndCrushDist |
✔️ |
98 |
Sector_SetTranslucent |
❌ |
99 |
Floor_RaiseAndCrushDoom |
✔️ |
100 |
Scroll_Texture_Left |
⚠️ |
101 |
Scroll_Texture_Right |
⚠️ |
102 |
Scroll_Texture_Up |
⚠️ |
103 |
Scroll_Texture_Down |
⚠️ |
104 |
Ceiling_CrushAndRaiseSilentDist |
✔️ |
105 |
Door_WaitRaise |
✔️ |
106 |
Door_WaitClose |
✔️ |
107 |
Line_SetPortalTarget |
❌ |
- |
- |
- |
109 |
Light_ForceLightning |
🔭 |
110 |
Light_RaiseByValue |
✔️ |
111 |
Light_LowerByValue |
✔️ |
112 |
Light_ChangeToValue |
✔️ |
113 |
Light_Fade |
✔️ |
114 |
Light_Glow |
✔️ |
115 |
Light_Flicker |
✔️ |
116 |
Light_Strobe |
✔️ |
117 |
Light_Stop |
✔️ |
118 |
Plane_Copy |
❌ |
119 |
Thing_Damage |
✔️ |
120 |
Radius_Quake |
🔭 |
121 |
Line_SetIdentification |
⚠️ |
- |
- |
- |
125 |
Thing_Move |
✔️ |
- |
- |
- |
127 |
Thing_SetSpecial |
🔭 |
128 |
ThrustThingZ |
✔️ |
129 |
UsePuzzleItem |
❌ |
130 |
Thing_Activate |
✔️ |
131 |
Thing_Deactivate |
✔️ |
132 |
Thing_Remove |
✔️ |
133 |
Thing_Destroy |
✔️ |
134 |
Thing_Projectile |
✔️ |
135 |
Thing_Spawn |
✔️ |
136 |
Thing_ProjectileGravity |
✔️ |
137 |
Thing_SpawnNoFog |
✔️ |
138 |
Floor_Waggle |
✔️ |
139 |
Thing_SpawnFacing |
✔️ |
140 |
Sector_ChangeSound |
🔭 |
- |
- |
- |
154 |
Teleport_NoStop |
✔️ |
- |
- |
- |
157 |
SetGlobalFogParameter |
🔭 |
158 |
FS_Execute |
❌ |
159 |
Sector_SetPlaneReflection |
❌ |
160 |
Sector_Set3DFloor |
❌ |
161 |
Sector_SetContents |
❌ |
- |
- |
- |
168 |
Ceiling_CrushAndRaiseDist |
✔️ |
169 |
Generic_Crusher2 |
✔️ |
170 |
Sector_SetCeilingScale2 |
❌ |
171 |
Sector_SetFloorScale2 |
❌ |
172 |
Plat_UpNearestWaitDownStay |
✔️ |
173 |
NoiseAlert |
⚠️ |
174 |
SendToCommunicator |
❌ |
175 |
Thing_ProjectileIntercept |
❌ |
176 |
Thing_ChangeTID |
✔️ |
177 |
Thing_Hate |
⚠️ |
178 |
Thing_ProjectileAimed |
✔️ |
179 |
ChangeSkill |
❌ |
180 |
Thing_SetTranslation |
🔭 |
181 |
Plane_Align |
❌ |
182 |
Line_Mirror |
❌ |
183 |
Line_AlignCeiling |
❌ |
184 |
Line_AlignFloor |
❌ |
185 |
Sector_SetRotation |
❌ |
186 |
Sector_SetCeilingPanning |
✔️ |
187 |
Sector_SetFloorPanning |
✔️ |
188 |
Sector_SetCeilingScale |
❌ |
189 |
Sector_SetFloorScale |
❌ |
190 |
Static_Init |
⚠️ |
191 |
SetPlayerProperty |
❌ |
192 |
Ceiling_LowerToHighestFloor |
✔️ |
193 |
Ceiling_LowerInstant |
✔️ |
194 |
Ceiling_RaiseInstant |
✔️ |
195 |
Ceiling_CrushRaiseAndStayA |
✔️ |
196 |
Ceiling_CrushAndRaiseA |
✔️ |
197 |
Ceiling_CrushAndRaiseSilentA |
✔️ |
198 |
Ceiling_RaiseByValueTimes8 |
✔️ |
199 |
Ceiling_LowerByValueTimes8 |
✔️ |
200 |
Generic_Floor |
✔️ |
201 |
Generic_Ceiling |
✔️ |
202 |
Generic_Door |
✔️ |
203 |
Generic_Lift |
✔️ |
204 |
Generic_Stairs |
✔️ |
205 |
Generic_Crusher |
✔️ |
206 |
Plat_DownWaitUpStayLip |
✔️ |
207 |
Plat_PerpetualRaiseLip |
✔️ |
208 |
TranslucentLine |
⚠️ |
209 |
Transfer_Heights |
✔️ |
210 |
Transfer_FloorLight |
✔️ |
211 |
Transfer_CeilingLight |
✔️ |
212 |
Sector_SetColor |
❌ |
213 |
Sector_SetFade |
❌ |
214 |
Sector_SetDamage |
✔️ |
215 |
Teleport_Line |
✔️ |
216 |
Sector_SetGravity |
✔️ |
217 |
Stairs_BuildUpDoom |
✔️ |
218 |
Sector_SetWind |
✔️ |
219 |
Sector_SetFriction |
✔️ |
220 |
Sector_SetCurrent |
✔️ |
221 |
Scroll_Texture_Both |
✔️ |
222 |
Scroll_Texture_Model |
✔️ |
223 |
Scroll_Floor |
✔️ |
224 |
Scroll_Ceiling |
✔️ |
225 |
Scroll_Texture_Offsets |
⚠️ |
226 |
ACS_ExecuteAlways |
🔭 |
227 |
PointPush_SetForce |
✔️ |
228 |
Plat_RaiseAndStayTx0 |
✔️ |
229 |
Thing_SetGoal |
❌ |
230 |
Plat_UpByValueStayTx |
✔️ |
231 |
Plat_ToggleCeiling |
✔️ |
232 |
Light_StrobeDoom |
✔️ |
233 |
Light_MinNeighbor |
✔️ |
234 |
Light_MaxNeighbor |
✔️ |
235 |
Floor_TransferTrigger |
✔️ |
236 |
Floor_TransferNumeric |
✔️ |
237 |
ChangeCamera |
❌ |
238 |
Floor_RaiseToLowestCeiling |
✔️ |
239 |
Floor_RaiseByValueTxTy |
✔️ |
240 |
Floor_RaiseByTexture |
✔️ |
241 |
Floor_LowerToLowestTxTy |
✔️ |
242 |
Floor_LowerToHighest |
✔️ |
243 |
Exit_Normal |
⚠️ |
244 |
Exit_Secret |
⚠️ |
245 |
Elevator_RaiseToNearest |
✔️ |
246 |
Elevator_MoveToFloor |
✔️ |
247 |
Elevator_LowerToNearest |
✔️ |
248 |
HealThing |
✔️ |
249 |
Door_CloseWaitOpen |
✔️ |
250 |
Floor_Donut |
✔️ |
251 |
FloorAndCeiling_LowerRaise |
✔️ |
252 |
Ceiling_RaiseToNearest |
✔️ |
253 |
Ceiling_LowerToLowest |
✔️ |
254 |
Ceiling_LowerToFloor |
✔️ |
255 |
Ceiling_CrushRaiseAndStaySilA |
✔️ |
256 |
Floor_LowerToHighestEE |
✔️ |
257 |
Floor_RaiseToLowest |
✔️ |
258 |
Floor_LowerToLowestCeiling |
✔️ |
259 |
Floor_RaiseToCeiling |
✔️ |
260 |
Floor_ToCeilingInstant |
✔️ |
261 |
Floor_LowerByTexture |
✔️ |
262 |
Ceiling_RaiseToHighest |
✔️ |
263 |
Ceiling_ToHighestInstant |
✔️ |
264 |
Ceiling_LowerToNearest |
✔️ |
265 |
Ceiling_RaiseToLowest |
✔️ |
266 |
Ceiling_RaiseToHighestFloor |
✔️ |
267 |
Ceiling_ToFloorInstant |
✔️ |
268 |
Ceiling_RaiseByTexture |
✔️ |
269 |
Ceiling_LowerByTexture |
✔️ |
270 |
Stairs_BuildDownDoom |
✔️ |
271 |
Stairs_BuildUpDoomSync |
✔️ |
272 |
Stairs_BuildDownDoomSync |
✔️ |
- Specials above 255 aren't accessible yet (hexen format only supports special < 256).
- Wall scrollers cannot distinguish between top, bottom, and mid textures.
- The static init supports damage, gravity, and skies only.
- The position argument for map exits is currently ignored.
- Line flags coming from extra arguments are ignored.
- Line translucency works like boom (fixed alpha).
- Line_SetBlocking only applies flags for creatures, players, monsters, sound, and everything.
- NoiseAlert only works with the default arguments.
- Thing_Hate only supports 0 for the third argument ("target only").
- ThrustThing has an implicit speed limit.
- Poly objects have no sound (no SNDSEQ lump support to define it yet).
- Poly objects may have visual errors (especially for large objects).
Value |
Name |
Status |
* |
Generalized Effects |
✔️ |
1 |
Light_Phased |
✔️ |
2-4 |
LightSequence* |
✔️ |
- |
- |
- |
26-27 |
Stairs_Special* |
✔️ |
- |
- |
- |
40-51 |
Wind* |
✔️ |
- |
- |
- |
65 |
dLight_Flicker |
✔️ |
66 |
dLight_StrobeFast |
✔️ |
67 |
dLight_StrobeSlow |
✔️ |
68 |
dLight_Strobe_Hurt |
✔️ |
69 |
dDamage_Hellslime |
✔️ |
- |
- |
- |
71 |
dDamage_Nukage |
✔️ |
72 |
dLight_Glow |
✔️ |
- |
- |
- |
74 |
dSector_DoorCloseIn30 |
✔️ |
75 |
dDamage_End |
✔️ |
76 |
dLight_StrobeSlowSync |
✔️ |
77 |
dLight_StrobeFastSync |
✔️ |
78 |
dSector_DoorRaiseIn5Mins |
✔️ |
79 |
dFriction_Low |
✔️ |
80 |
dDamage_SuperHellslime |
✔️ |
81 |
dLight_FireFlicker |
✔️ |
82 |
dDamage_LavaWimpy |
✔️ |
83 |
dDamage_LavaHefty |
✔️ |
84 |
dScroll_EastLavaDamage |
✔️ |
85 |
hDamage_Sludge |
✔️ |
- |
- |
- |
87 |
Sector_Outside |
❌ |
- |
- |
- |
104 |
sLight_Strobe_Hurt |
✔️ |
105 |
sDamage_Hellslime |
✔️ |
- |
- |
- |
115 |
Damage_InstantDeath |
✔️ |
116 |
sDamage_SuperHellslime |
✔️ |
- |
- |
- |
118 |
Scroll_StrifeCurrent |
✔️ |
- |
- |
- |
195 |
Sector_Hidden |
✔️ |
196 |
Sector_Heal |
✔️ |
197 |
Light_OutdoorLightning |
❌ |
198-199 |
Light_IndoorLightning* |
❌ |
200 |
Sky2 |
🔭 |
201-224 |
Scroll* |
✔️ |
225-244 |
Carry* |
✔️ |
- Terrain effects (e.g., from lava specials) don't exist.