Skip to content

Latest commit

 

History

History
514 lines (491 loc) · 29.9 KB

doom_in_hexen.md

File metadata and controls

514 lines (491 loc) · 29.9 KB

Doom in Hexen

This page tracks support for the "Doom in Hexen" map format and related features, as seen in ZDoom. The first iteration of support is now complete. There are various exceptions and notes listed in the full documentation below where things may act differently compared to other source ports. Some of those points will be addressed over time, but others are intrinsic differences in how some things work in dsda-doom. The remaining planned features (:comet:) require more significant effort and will be addressed more gradually over time.

Legend

Symbol Meaning
✔️ Feature is fully supported
⚠️ Feature is partially supported
☄️ Feature is planned later
Feature is not planned

Major Features

Name Status
Levels ⚠️
Poly Objects ✔️
Thing Specials ✔️
ACS ☄️
MAPINFO ☄️
SNDINFO ☄️
SNDSEQ ☄️
ANIMDEFS ☄️

Thing Types

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 ⚠️

Notes

  • The Custom MusicChanger only supports the track number, which can be from 0 to 64

Spawn Flags

Name Status
Dormant ⚠️
Translucent ✔️
Invisible ✔️
Friendly ✔️
Stand Still

Notes

  • Dormant monsters still bleed.

Line Triggers

Name Status
Player Walkover ✔️
Player Use ✔️
Monster Walkover ✔️
Projectile Hits ✔️
Player Bumps ✔️
Projectile Crosses ✔️
Player Use (Pass Through) ✔️
Projectile Hits or Crosses ✔️

Line Flags

Name Status
Repeatable Action ✔️
Monster Activates ✔️
Block Everything ✔️
Block Players ✔️

Line Specials

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 ✔️
273 Stairs_BuildUpDoomCrush ✔️
274 Door_AnimatedClose
275 Floor_Stop ✔️
276 Ceiling_Stop ✔️
277 Sector_SetFloorGlow
278 Sector_SetCeilingGlow
279 Floor_MoveToValueAndCrush ✔️
280 Ceiling_MoveToValueAndCrush ✔️
281 Line_SetAutomapFlags ✔️
282 Line_SetAutomapStyle ✔️
283 Polyobj_StopSound

Notes

  • Specials above 255 are not accessible in hexen format.
  • Wall scrollers cannot distinguish between top, bottom, and mid textures.
  • The static init supports damage, gravity, and skies only.
  • Teleporting to a specific map currently...
    • Always triggers the intermission screen
    • Does not know about clusters (e.g., you can't bring keys through the exit)
  • There may be undefined behaviour when combining new exit specials with UMAPINFO
  • Line flags coming from extra arguments are ignored.
  • TranslucentLine does not support additive translucency.
  • Line_SetBlocking sight, hitscan, and sound are not possible in hexen format.
  • Sector_ChangeFlags only supports silent, friction, and push in hexen format.
    • UDMF additionally supports endgodmode, endlevel, hazard, and noattack.
  • 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).

Sector Specials

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* ✔️

Notes

  • Terrain effects (e.g., from lava specials) don't exist.