Action List

Here is a list of all of the actions available in Doom 64. Many of the actions are labeled as "(undefined)" when they are not specifically defined for use in Doom Builder 64, but they can still be used. For linedefs, you just need to type in the corresponding number of an undefined action to use it. For macros, at the top of the script, you will use the "#define" property, followed by the name you want to use as the macro, then the macro number and its value. For example this is how the simple door open action is defined: "#define Door_Open(tag) 2:tag".

The majority of actions target a specific line, sector, or thing with a specified tag. Additional properties are sometimes assigned via action 204, which sets the global integer / macro integer. Macro actions which have two inputs are, in reality, a combination of actions where action 204 happens first, followed by another action for the specific effect.

There are some limits to moving sectors. Only one height-changing action can operate on a single sector at the same time. Therefore, it is recommended to use the wait action before doing another action on the same sector if using a macro. Further, the Doom 64 Remaster can’t have more than 30 moving ceilings and floors at the same time while EX based ports can have more.

Doors

Some doors can be opened by monsters by default, and the others can still be opened by monsters if "Trigger By Dead Thing" tag is set on the linedef.

Action #Line ActionMacro ActionDescription
1Door Open Wait Close(undefined)Opens the door of adjoining sector, waits for a few seconds, and closes it again. Monsters can activate this by default.
31Door Open(undefined)Opens the door of adjoining sector. The door won't close by itself.
4Door (Classic) Open Wait Close TaggedDoor_OpenWaitClose(tag)
Door_Raise(tag)
Opens the door of tagged sector, waits for a few seconds, and closes it again. Monsters can activate this by default.
2Door (Classic) Open TaggedDoor_Open(tag)Opens the door of tagged sector. The door won't close by itself. Monsters can activate this by default.
3Door (Classic) Close TaggedDoor_Close(tag)Closes the door of tagged sector. The door won't re-open by itself.
16Door (Classic) Close Wait 30 Sec Open TaggedDoor_CloseWaitLongOpen(tag)
Door_CloseWaitOpen(tag)
Closes the door of tagged sector, waits 30 seconds, and opens it again.
108Door (Classic) Fast Open Wait Close TaggedDoor_OpenWaitCloseFast(tag)
Door_RaiseFast(tag)
Quickly opens the door of tagged sector, waits for a few seconds, and closes it again.
109Door (Classic) Fast Open TaggedDoor_OpenFast(tag)Quickly opens the door of tagged sector. The door won't close by itself.
110Door (Classic) Fast Close TaggedDoor_CloseFast(tag)Quickly closes the door of tagged sector. The door won't re-open by itself.
117Door (Split) Fast Open Wait Close(undefined)Opens a split door of adjoining sector, waits for a few seconds, and closes it again.
118Door (Split) Fast Open(undefined)Opens a split door of adjoining sector. The door won't close by itself.

Floors

Any sector that is set to an action that can crush will instantly kill anything in sectors with special 666. There is a limit to the number of floors that can be moved at the exact same time.

Action #Line ActionMacro ActionDescription
19Floor Lower to NearestFloor_LowerToNearest(tag)
Floor_Lower(tag)
Lowers the tagged floor to the height of the highest neighboring floor.
38Floor Lower to LowestFloor_LowerToLowest(tag)Lowers the tagged floor to the height of the highest neighboring floor.
37Floor Lower to Lowest and ChangeFloor_LowerToLowestChange(tag)
Floor_LowerChange(tag)
Lowers the floor to the height of the highest neighboring floor and changes the floor texture and sector special to match the neighboring sector.
36Floor Lower to 8 Above Nearest FastFloor_LowerToNearestFast(tag)
Floor_LowerFast(tag)
Lowers the floor at turbo speed to 8 units above the height of the highest neighboring floor.
119Floor Raise to NearestFloor_RaiseToNearest(tag)Raises tagged floor to the height of the lowest neighboring floor.
5Floor Raise to CeilingFloor_RaiseToCeiling(tag)
Floor_Raise(tag)
Raises the tagged floor to the height of the lowest neighboring ceiling.
56Floor Raise to 8 Below Ceiling CrushFloor_RaiseCrush(tag)Raises the tagged floor to 8 units below the height of the lowest neighboring ceiling. Things are allowed to be crushed by this movement.
58Floor Raise by 24Floor_RaiseTwentyFour(tag)Raises the tagged floor by 24 units.
59Floor Raise by 24 and ChangeFloor_RaiseTwentyFourChange(tag)Raises the tagged floor by 24 units and changes the floor texture and sector special to match the sector adjacent to the front side of the linedef that triggered this action.
212(undefined)Floor_MoveBy(tag, value)
Floor_MoveByValue(tag, value)
Moves the floor by the amount specified by the value or global integer (action 204). Positive values raise the floor, negative values lower it.
228(undefined)Floor_MoveByFast(tag, value)
Floor_MoveByValueFast(tag, value)
Same as above, but the floor moves at turbo speed.
229(undefined)Floor_MoveByInstant(tag, value)
Floor_MoveByValueInstant(tag, value)
Same as above, but the floor moves instantly.
247(undefined)Floor_MoveTo(tag, height)
Floor_MoveByHeight(tag, height)
Moves the floor to a specific height or global integer (action 204). Direction of the movement depends on the floor's starting height.
244(undefined)Floor_Set(tag, height)
Floor_SetHeight(tag, height)
Same as above, but the floor moves instantly. Effectively sets the floor's height value.

Ceilings

Any sector that is set to an action that can crush will instantly kill anything in sectors with special 666. Once a ceiling is activated as a crusher, it will no longer respond to other ceiling actions even if stopped; it can only be restarted as a crusher. There is an upper limit to the number of crushers in Doom 64, however the EX versions have a higher upper limit.

Action #Line ActionMacro ActionDescription
43Ceiling Lower to FloorCeiling_LowerToFloor(tag)Lowers the tagged ceiling to the height of the floor.
44Ceiling Lower to Floor
(and Crush, if available)
Ceiling_LowerToFloorTwo(tag)
Ceiling_RaiseCrushTwo(tag)
Lowers the tagged ceiling to the height of the floor and crushes.
6Ceiling Crush Fast LoopCeiling_CrushFastLoop(tag)
Ceiling_RaiseCrush(tag)
Activates fast crusher moving up and down on tagged sector. Won't stop by itself.
25Ceiling Crush Slow LoopCeiling_CrushSlowLoop(tag)
Ceiling_RaiseCrushOnce(tag)
Activates slow crusher moving up and down on tagged sector. Won't stop by itself.
57Ceiling Stop CrusherCeiling_StopCrusher(tag)Stops the current crusher in the tagged sector, if applicable
141Silent Crush and Instant Kill
(needs sector special 666)
Ceiling_InstantKill(tag)
Ceiling_SilentCrusher(tag)
Activates a silent ceiling crusher on tagged sector which perpetually moves.
232Ceiling Crush and Raise Fast OnceCeiling_CrushRaiseFastOnce(tag)
Ceiling_RaiseCrushOnceFast(tag)
Performs one cycle of a fast crusher on tagged sector, then stops.
210(undefined)Ceiling_MoveBy(tag, value)
Ceiling_MoveByValue(tag, value)
Moves the ceiling by the amount specified by the value or global integer (action 204). Positive values raise the ceiling, negative values lower it.
226(undefined)Ceiling_MoveByFast(tag, value)
Ceiling_MoveByValueFast(tag, value)
Same as above, but the ceiling moves at turbo speed.
227(undefined)Ceiling_MoveByInstant(tag, value)
Ceiling_MoveByValueInstant(tag, value)
Same as above, but the ceiling moves instantly.
252(undefined)Ceiling_MoveTo(tag, height)
Ceiling_MoveByHeight(tag, height)
Moves the ceiling to a specific height or global integer (action 204). Direction of the movement depends on the ceiling's starting height.
245(undefined)Ceiling_Set(tag, height)
Ceiling_SetHeight(tag, height)
Same as above, but the ceiling moves instantly. Effectively sets the ceiling's height value.

Platforms

Action #Line ActionMacro ActionDescription
10Plat Down Wait UpPlat_DownWaitUp(tag)Lowers the tagged floor to the lowest neighboring floor, waits for 3 seconds, and raises back up. Monsters can activate this by default.
121Plat Down Wait Up FastPlat_UpWaitDownFast(tag)Quickly lowers the tagged floor to the lowest neighboring floor, waits for 3 seconds, and raises back up.
53Plat Down Wait Up LoopPlat_DownWaitUpLoop(tag)
Plat_PerpetualRaise(tag)
Lowers the tagged floor to the lowest neighboring floor at slow speed, waits for 3 seconds, and raises back up. Then, repeats forever.
54Plat Stop MovingPlat_Stop(tag)Stops the tagged platform, if it is moving.
122Plat Up Wait DownPlat_UpWaitDown(tag)Raises the tagged floor to the highest neighboring floor, waits for 3 seconds, and lowers back down.
123Plat Up Wait Down FastPlat_DownWaitUpFast(tag)Quickly raises the tagged floor to the highest neighboring floor, waits for 3 seconds, and lowers back down.
22Plat Raise and ChangePlat_RaiseChange(tag)Changes the tagged floor texture to that of the neighboring floor and raises the floor to the highest neighboring floor.
66Plat Raise by 24 Units and ChangePlat_RaiseByTwentyFourChange(tag)Changes the tagged floor texture to that of the neighboring floor and raises the floor by 24 map units.
67Plat Raise by 32 Units and ChangePlat_RaiseByThirtyTwoChange(tag)Changes the tagged floor texture to that of the neighboring floor and raises the floor by 32 map units.
236(undefined)Plat_DownWaitUpBy(tag, value)
Plat_DownUpByValue(tag, value)
Lowers the floor by the amount specified by the value or global integer (action 204), waits for 3 seconds, and raises back up. Negative values will cause undefined behaviour.
237(undefined)Plat_DownWaitUpFastBy(tag, value)
Plat_DownUpFastByValue(tag, value)
Same as above, but the platform moves at turbo speed.
238(undefined)Plat_UpWaitDownBy(tag, value)
Plat_UpDownByValue(tag, value)
Raises the floor by the amount specified by the value or global integer (action 204), waits for 3 seconds, and lowers back up. Negative values will cause undefined behaviour.
239(undefined)Plat_UpWaitDownFastBy(tag, value)
Plat_UpDownFastByValue(tag, value)
Same as above, but the platform moves at turbo speed.

Stairs

Action #Line ActionMacro ActionDescription
8Stairs Build 8 Units SlowStairs_BuildEight(tag)
Stairs_Build(tag)
Builds steps 8 units high, starting from tagged sector.
100Stairs Build 16 Units FastStairs_BuildSixteenFast(tag)
Stairs_BuildFast(tag)
Builds steps 16 units high, starting from tagged sector. The building process moves at turbo speed.

Teleports

These actions can only teleport the thing which activates them (with some caveats). Here tid is the teleport destination's tag number. On the Doom 64 Remaster, only one teleport action per macro is permitted on the player.

Action #Line ActionMacro ActionDescription
39TeleportTeleport_Normal(tid)
Teleport_ToDest(tid)
Teleports the activating thing normally (with sound and green glow) to tagged destination. On the Doom 64 Remaster you can not teleport via a switch.
125Teleport (monsters only)(undefined)Teleports monsters only (with sound and green glow) to tagged destination.
249Silent TeleportTeleport_Silent(tid)
Teleport_Stomp(tid)
Teleports the activating thing without any sound and glow to tagged destination. On the Doom 64 Remaster you can not use this via a switch if it is a single action but it works with a macro. Originally thought to be player-only, monsters can activate this too if "Trigger By Dead Thing" is set on the referencing linedef.

Thing Specials

Action #Line ActionMacro ActionDescription
224Thing SpawnThing_Spawn(tid)Spawns things of same tag, they must have "Spawner" checked.
94Thing AlertThing_Alert(tid)Alerts all things with this tag toward the thing which activated this action. Can cause a crash in Doom 64 EX if a dead thing triggers this action.
93Thing Disable InfightingThing_ModifyFlags(tid)Stops monsters of same tag from infighting.
242Thing Fade OutThing_FadeOut(tid)
Thing_Dissolve(tid)
Tagged thing fades away and is removed. Most often used to remove corpses.
233Freeze Player (Tag = Tics)Player_Freeze(tics)
Thing_SetReactionTime(tics)
Freezes the player or, if activated by a monster, delays their projectile/hitscan attacks for a specified number of tics (30 tics = 1 second). Player can still turn in the Doom 64 Remaster but can't turn in Doom 64 EX.
202Spawn DartThing_SpawnDart(tid) Tagged thing must be a Projectile Spot (thing type 2050) and must not have "Spawner" checked. Shoots a dart in the direction the projectile spot is facing.
231Spawn TracerThing_SpawnTracer(tid)Tagged thing must be a Projectile Spot (thing type 2050) and must not have "Spawner" checked. Spawns an explosive projectile which homes in on the player.
211Thing Spawn Silent(undefined)(Doom 64 EX+) Spawns things of same tag without sound, they must have "Spawner" checked.
255Spawn Projectile
(Global Integer = Type#)
(undefined)(Doom 64 EX+) Use action 204 to set global integer, which will spawn that particular enemy projectile.

"Ghost things" can be created if the "Thing Spawn" process is interupted by a "Thing Fade Out". Ghost enemies will not take any damage and ghost items cannot be picked up. The ghost things page demonstrates how they are created and used.

Lights

Action #Line ActionMacro ActionDescription
17Start Light Strobing(undefined)Starts a light which brightens every second on the tagged sector which matches the linedef tag.
222(undefined)Sector_CopyLights(dsttag, srctag)Instantly copies the lights at sector with the line tag / dsttag, from the sector with the tag defined by srctag or global integer (action 204).
234Change Light by Tag
Blend High Light
SetLightID(dsttag, srctag)Smoothly blends upper wall and ceiling lights at sector with the line tag / dsttag, from the sector with the tag defined by srctag or global integer (action 204).
235(undefined)Sector_CopyLightsAndInterpolate(dsttag, srctag)Smoothly transitions the lights at sector with the line tag / dsttag, from the sector with the tag defined by srctag or global integer (action 204). This action operates on the "LIGHTS" lump and will change the color of any sector that has the same color as the destination tag. Therefore, it is recommended to give the destination sector a unique sector color.
205(undefined)Sector_SetFloorColorID(tag, id)Changes the tagged sector floor color to the light index given by the id or global integer (action 204).
206(undefined)Sector_SetCeilingColorID(tag, id)Changes the tagged sector ceiling color to the light index given by the id or global integer (action 204).
207(undefined)Sector_SetThingColorID(tag, id)Changes the tagged sector thing color to the light index given by the id or global integer (action 204).
208(undefined)Sector_SetUpperWallColorID(tag, id)Changes the tagged sector upper wall color to the light index given by the id or global integer (action 204).
209(undefined)Sector_SetLowerWallColorID(tag, id)Changes the tagged sector lower wall color to the light index given by the id or global integer (action 204).

The light id, as opposed to the tag, refers to a specific light index. The first set of lights (0 to 255) are grayscale from black to white. The subsequent light indices refer directly to the lights lump, that is built in the map WAD, where the first light begins at 256. It can be hard to tell which light you are referring to just in a map editor, however you can look at the lights lump in a program like Slade to determine which lights are in which order.

Macro Control

Action #Line ActionMacro ActionDescription
246Macro Restart at Batch IDloop(times){ }In a macro this loops actions within the brackets a given amount of times (see the example). If used as a line action, the line tag will determine the number of times to loop, although it will not loop until this action is triggered again. Use action 204 to set the line of the macro to restart the macro in powers of 10. First set of actions is 10, then if a wait is used the the following actions begin at 20, and ect...
248Macro SuspendMacro_Suspend(id)Stops the macro that is currently active. Any actions that were started prior will still finish, such as camera movements. The id is not used.
250Macro Toggle OnMacro_Enable(id)Enables the macro referenced to by the id to be activated when triggered. By default this is the state the macros are in.
251Macro Toggle OffMacro_Disable(id)Disables the macro referenced to by the id from being activated. Use action 250 to re-enable the macro.
256 - 511Macro #(undefined)Activate specific macro where the macro number added to 255. For example macro 1 is activated by action 256.
(none)(not available)waitThe macro will complete all preceding actions before continuing the subsequent actions when used. This is a macro-specific action which sets a new line of actions in a macro.
203Delay (Tag = Tics)delay(tics)If used in a macro, it will delay the start of the subsequent actions by tics (30 tics is 1 second) and set a new line of actions.

When controlling macros the id does not refer to the macro number itself but how it is referenced to in linedef actions, where 255 is added to the macro number. Thus the id for macro 1 would be 256. For linedef actions the id is set by the line tag.

Looping Specifics

Actions can be looped within a macro with action 246. It will loop back to the line of actions where it started, thus it is recommended to use wait or delay actions to set new lines. A looping macro can be canceled early by line action 248: Macro Suspend. Below is an example of how a loop is formatted.

macro 1
{
  non looping action;
  delay(0);
  loop(times)
  {
	  action to loop;
	  action to loop;
  }
  non looping action;
} //end of macro

Specials

Action #Line ActionMacro ActionDescription
201Camera SetCamera_Set(tid)Set camera view and angle to the camera (or thing) tagged with tid.
200Camera ClearCamera_Clear(tid)Set camera view to the camera (or thing) tagged with tid and aim at player (click here for example).
243Camera MoveCamera_MoveAndAim(tid, nexttid)Aim camera view at camera (or thing) tagged with tid and gradually move camera to camera (or thing) tagged with tid + 1. Once the camera reaches thing tagged with tid + 1 it will keep moving to things with sequentially higher tags until the next thing tag is missing. nexttid is not used (click here for example).
225Quake (Tag = Tics)Quake(tics)Shakes the screen for the specified number of tics (30 tics = 1 second) with sound. This sound can bug out if it is playing during a level exit.
204Set Global Integer
Macro Integer (value = tag)
PushVar(var)Used in combination with other actions and sets the value used in them.
240Trigger Line Group
(Pick random of group)
Line_TriggerRandomLinesByTag(tag)Will trigger a random line out of a set of lines with the same tag. This is not compatible with the "Trigger By Dead Thing" flag on the Doom 64 Remaster.

When using action 243 (Camera Move) it will move around the thing used for the target, as if the thing itself was a camera. That means using a key as a target, the key will end up where the camera stops at the very end. However if the moved thing collides with its prior position it will crash the game; which is a potential problem for players and monsters. When the camera is set to a monster, the camera's height will be at the bottom of the monster. For flying monsters this is not an issue, however for other monsters it can partially clip through the floor.

Additional Sector Properties

Action #Line ActionMacro ActionDescription
220(undefined)Sector_CopyFlags(dsttag, srctag)Copies the flags from one sector to another one. In Doom Builder 64, the flags are the Settings checkboxes found on the Edit Sector Properties dialog. For example: Echo Effect, Liquid Effect, etc. If used as a line action, use action 204 to set the dsttag.
221(undefined)Sector_CopySpecials(dsttag, srctag)Copies sector specials of one sector to another. For example: Light Blinks, Very Slow Pulse, etc. If used as a line action, use action 204 to set the dsttag.
223(undefined)Sector_CopyTextures(dsttag, srctag)Copies floor and ceiling textures of one sector to another. If used as a line action, use action 204 to set the dsttag.
214(undefined)Elevator_MoveBy(tag, value)
Elevator_MoveByValue(tag, value)
Moves the floor and ceiling in the tagged sector in the same direction at the same time by the amount specified in value or global integer (action 204). Positive values raise, negative values lower.
241(undefined)Pillar_OpenBy(tag, value)
Pillar_OpenByValue(tag, value)
Moves the floor and ceiling in the tagged sector in opposite directions at the same time by the amount specified in value or global integer (action 204). Positive values move the floor and the ceiling apart, negative values move them closer together.

Linedef Properties

Copying attributes, settings, and textures between single-sided and double-sided linedefs will cause most engines to crash, sometimes unpredictably.

Action #Line ActionMacro ActionDescription
218(undefined)Line_CopyFlags(dsttag, srctag)Copies flags from one linedef to another. For example: Impassable, Block Sound, etc. If used as a line action, use action 204 to set the dsttag. When copying flags to enable or disable scrolls, only lines which have a scroll "thinker" spawned at the start of the map will be affected. This is fine for linedefs already scrolling that you want to stop. But if you want to start a linedef scrolling that is not, then you need to have the linedef scrolling when the map loads initially, then stop it, and then restart it again when you want it moving again.
219(undefined)Line_CopyTextures(dsttag, srctag)Copies upper, middle, and lower textures from one linedef to another. On some Nintendo 64 ports, it only copies the texture of the front sides. If used as a line action, use action 204 to set the dsttag.
230(undefined)Line_CopySpecials(dsttag, srctag)Copies the Action Special (Door Open, Floor Lower, etc.), Activation Type (Use, Cross, Blue Key, etc.), and Switch Setup properties from one linedef to another. If used as a line action, use action 204 to set the dsttag.

Artifact Switches

Action #Line ActionMacro ActionDescription
90Artifact Switch 1 (Orange)(undefined)Will check if player has the orange artifact and will activate line with the tag one higher than the current line.
91Artifact Switch 2 (Blue)(undefined)Will check if player has the blue artifact and will activate line with the tag one higher than the current line.
92Artifact Switch 3 (Purple)(undefined)Will check if player has the purple artifact and will activate line with the tag one higher than the current line.

Exits

Action #Line ActionMacro ActionDescription
52Exit to Next LevelExitExit to the next sequential level
124Exit to Level (Tag = Map#)ExitToLevel(map)Exit to level number defined by the tag

Miscellaneous

Action #Line ActionMacro ActionDescription
0(default) NoneNo_OpNo action
213Play Sound (Tag = Sound#)(undefined)(Doom 64 EX+) Play specific in-game sound effect based on sound load order
215Stop Music(undefined)(Doom 64 EX+) Stops the music currently playing
216Change Music (Tag = Music#)(undefined)(Doom 64 EX+) Plays music track corresponding to MUSAMB##
217Change Sky (Tag = Sky#)(undefined)(Doom 64 EX+) Changes sky based on sky load order in SKYDEFS
253Unlock Cheat MenuUnlockCheatMenuUnlock the "features" cheat menu
254Draw D64 Logo on F_SKYG flatDisplaySkyLogoDisplays the backpic graphic on the sky. This only works on skies with the "fadeinbackground" designation.