func_arena Monday, September 21, 2026
Building, modding and fragging like it's 1998

142778 visitors
YOUR #1 SOURCE FOR RETRO FPS DEVELOPMENT Y2K READY
  *** func_arena goes live, let the carnage begin!   ***   ET: Legacy 2.86.0 is out!   ***   Engine of the Week: qrustyquake by cyanbun96   ***   Server admins: read our migration guide before Friday   ***   Ironwail 0.8.2 is out!   ***  
NAVIGATION
Wiki » Reference » func_ entities » func_door
ARTICLE

func_door

This is an entity, present on Quake, Quake II, Quake III Arena, RTCW Single Player, RTCW Multiplayer, Enemy Territory, DOOM 3, Quake 4 and Prey. Below you can find its spawnflags, keys and editor settings for each game that defines it.

Quake

if two doors touch, they are assumed to be connected and operate as a unit.

Key doors are always wait -1.

Spawnflags

Flag Bit Description
START_OPEN 1 causes the door to move to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
DOOR_DONT_LINK 4
GOLD_KEY 8
SILVER_KEY 16
TOGGLE 32 causes the door to wait in both the start and end states for a trigger event.

Keys

Key Description
message is printed when the door is touched if it is a trigger door and it hasn't been fired yet
angle determines the opening direction
targetname if set, no touch field will be spawned and a remote button or trigger field activates the door.
health if set, door must be shot open
speed movement speed (default 100)
wait wait before returning (default 3, -1 = never return)
lip lip remaining at end of move (default 8)
dmg damage to inflict when blocked (default 2)
sounds 0) no sound 1) stone 2) base 3) stone chain 4) screechy metal

Editor

Property Value
Type brush entity
Color 0 .5 .8

Quake II

Spawnflags

Flag Bit Description
START_OPEN 1 the door to moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
CRUSHER 4
NOMONSTER 8 monsters will not trigger this door
ANIMATED 16
TOGGLE 32 wait in both the start and end states for a trigger event.
ANIMATED_FAST 64

Keys

Key Description
message is printed when the door is touched if it is a trigger door and it hasn't been fired yet
angle determines the opening direction
targetname if set, no touch field will be spawned and a remote button or trigger field activates the door.
health if set, door must be shot open
speed movement speed (100 default)
wait wait before returning (3 default, -1 = never return)
lip lip remaining at end of move (8 default)
dmg damage to inflict when blocked (2 default)
sounds 1) silent 2) light 3) medium 4) heavy

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_door

Quake III Arena

TOGGLE wait in both the start and end states for a trigger event.

NOMONSTER monsters will not trigger this door

Spawnflags

Flag Bit Description
START_OPEN 1 the door to moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
CRUSHER 4

Keys

Key Description
model2 .md3 model to also draw
angle determines the opening direction
targetname if set, no touch field will be spawned and a remote button or trigger field activates the door.
speed movement speed (100 default)
wait wait before returning (3 default, -1 = never return)
lip lip remaining at end of move (8 default)
dmg damage to inflict when blocked (2 default)
color constantLight color
light constantLight radius
health if set, the door must be shot open

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_door

RTCW Single Player

NOMONSTER monsters will not trigger this door

SOUND NAMING INFO - inside "sound/movers/doors/door<number>... _open.wav // opening _endo.wav // open _close.wav // closing _endc.wav // closed _loopo.wav // opening loop _loopc.wav // closing loop _locked.wav // locked

_openq.wav // opening quietly _endoq.wav // open quietly _closeq.wav // closing quietly _endcq.wav // closed quietly

and for rotating doors: _kicked.wav _kickedend.wav

Spawnflags

Flag Bit Description
START_OPEN 1 the door to moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
TOGGLE 2 wait in both the start and end states for a trigger event.
CRUSHER 4
TOUCH 8
SHOOT-THRU 16 Bullets don't stop when they hit the door. Set "shoot_thru_scale" with bullet damage scale (see below)

Keys

Key Description
key -1 for locked, key number for which key opens, 0 for open. default '0' unless door is targeted. (trigger_aidoor entities targeting this door do /not/ affect the key status)
model2 .md3 model to also draw
angle determines the opening direction
targetname if set, no touch field will be spawned and a remote button or trigger field activates the door.
speed movement speed (100 default)
closespeed optional different movement speed for door closing
wait wait before returning (3 default, -1 = never return)
lip lip remaining at end of move (8 default)
dmg damage to inflict when blocked (2 default)
color constantLight color
light constantLight radius
health if set, the door must be shot open
team team name. other doors with same team name will open/close in syncronicity
noisescale multiplier for how far the noise from the door will travel to alert AI
type use sounds based on construction of door: 0 - nosound (default) 1 - metal 2 - stone 3 - lab 4 - wood 5 - iron/jail 6 - portcullis 7 - wood (quiet)

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_door

RTCW Multiplayer

NOMONSTER monsters will not trigger this door

SOUND NAMING INFO - inside "sound/movers/doors/door<number>... _open.wav // opening _endo.wav // open _close.wav // closing _endc.wav // closed _loopo.wav // opening loop _loopc.wav // closing loop _locked.wav // locked

_openq.wav // opening quietly _endoq.wav // open quietly _closeq.wav // closing quietly _endcq.wav // closed quietly

and for rotating doors: _kicked.wav _kickedend.wav

Spawnflags

Flag Bit Description
START_OPEN 1 the door to moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
TOGGLE 2 wait in both the start and end states for a trigger event.
CRUSHER 4
TOUCH 8
SHOOT-THRU 16 Bullets don't stop when they hit the door. Set "shoot_thru_scale" with bullet damage scale (see below)

Keys

Key Description
key -1 for locked, key number for which key opens, 0 for open. default '0' unless door is targeted. (trigger_aidoor entities targeting this door do /not/ affect the key status)
model2 .md3 model to also draw
angle determines the opening direction
targetname if set, no touch field will be spawned and a remote button or trigger field activates the door.
speed movement speed (100 default)
closespeed optional different movement speed for door closing
wait wait before returning (3 default, -1 = never return)
lip lip remaining at end of move (8 default)
dmg damage to inflict when blocked (2 default)
color constantLight color
light constantLight radius
health if set, the door must be shot open
team team name. other doors with same team name will open/close in syncronicity
shoot_thru_scale Multiplier for how much damage bullets do that have passed through the door. Effectively how much damage the door 'absorbs'. 0.0 - 1.0 (0.0 will turn SHOOT-THRU off, 1.0 is full damage)
type use sounds based on construction of door: 0 - nosound (default) 1 - metal 2 - stone 3 - lab 4 - wood 5 - iron/jail 6 - portcullis 7 - wood (quiet)

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_door

Enemy Territory

NOMONSTER monsters will not trigger this door

SOUND NAMING INFO - inside "sound/movers/doors/door<number>... _open.wav // opening _endo.wav // open _close.wav // closing _endc.wav // closed _loopo.wav // opening loop _loopc.wav // closing loop _locked.wav // locked

_openq.wav // opening quietly _endoq.wav // open quietly _closeq.wav // closing quietly _endcq.wav // closed quietly

and for rotating doors: _kicked.wav _kickedend.wav

Spawnflags

Flag Bit Description
START_OPEN 1 the door to moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
TOGGLE 2 wait in both the start and end states for a trigger event.
CRUSHER 4
TOUCH 8
SHOOT-THRU 16

Keys

Key Description
key -1 for locked, key number for which key opens, 0 for open. default '0' unless door is targeted. (trigger_aidoor entities targeting this door do /not/ affect the key status)
model2 .md3 model to also draw
angle determines the opening direction
targetname if set, no touch field will be spawned and a remote button or trigger field activates the door.
speed movement speed (100 default)
closespeed optional different movement speed for door closing
wait wait before returning (3 default, -1 = never return)
lip lip remaining at end of move (8 default)
dmg damage to inflict when blocked (2 default)
color constantLight color
light constantLight radius
health if set, the door must be shot open
team team name. other doors with same team name will open/close in syncronicity
lockpickTime time to unpick the lock on a locked door - use with key set to 99
type use sounds based on construction of door: 0 - nosound (default) 1 - metal 2 - stone 3 - lab 4 - wood 5 - iron/jail 6 - portcullis 7 - wood (quiet)

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_door

DOOM 3

Door.

Keys

Key Type Default Description
start_open bool 0 the door moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
no_touch bool 0 the door should not be triggered by the player touching it, only by another trigger. in multiplayer, this door can't be shot to open.
locked bool used in conjunction with no_touch,the door must be triggered by a trigger, after which it works normally. if locked = 1 then the door opens when unlocked, if locked = 2 then the door just becomes unlocked.
buddy var will toggle shaderparm 7 of the entity given as a buddy, this allows shaders to be remapped for lock status etc.
crusher bool 0 the door does not reverse when blocked.
angle var 0 determines the opening direction.
movedir var determines the opening direction. if set, 'angle' determines orientation.
speed var 100 movement speed.
time var movement time in seconds. overrides speed. used for doors that move different distances, but still need to be synced.
wait bool 3 wait before returning (-1 = never return).
toggle bool wait at each position until triggered again.
lip var 8 lip remaining at end of move.
dmg var 2 damage to inflict when blocked.
health var 0 if set, the door must be shot open.
triggersize var 60 sets the amount the trigger extends from the door.
gui_noninteractive bool any gui attached will not be interactive
snd_locked snd default_door_locked sound to play if door is locked and player approaches.
snd_open snd default_door_open sound to play when opening.
snd_close snd default_door_close sound to play when closing.
snd_opened snd looping sound for it's opened state.
triggerClosed var name of entity to trigger when door closes, can be iterated with triggerClosed2, 3 etc.
triggerOpened var name of entity to trigger when door opens, can be iterated with triggerOpened2, 3 etc.
triggerBlocked var name of entity to trigger when door is blocked, can be iterated with triggerBlocked2, 3 etc.

Editor

Property Value
Type brush entity
Spawn class idDoor -> idMover_Binary -> idEntity -> idClass
Color 0 .5 .8

Script events

Event Declared by
activate idDoor
open idDoor
close idDoor
lock idDoor
isOpen idDoor
isLocked idDoor
spectatorTouch idDoor
openPortal idDoor
closePortal idDoor
enable idMover_Binary
disable idMover_Binary
getName idEntity
setName idEntity
activateTargets idEntity
numTargets idEntity
getTarget idEntity
randomTarget idEntity
bindToJoint idEntity
removeBinds idEntity
bind idEntity
bindPosition idEntity
unbind idEntity
setOwner idEntity
setModel idEntity
setSkin idEntity
getShaderParm idEntity
setShaderParm idEntity
setShaderParms idEntity
setColor idEntity
getColor idEntity
isHidden idEntity
hide idEntity
show idEntity
cacheSoundShader idEntity
startSoundShader idEntity
startSound idEntity
stopSound idEntity
fadeSound idEntity
getWorldOrigin idEntity
setWorldOrigin idEntity
getOrigin idEntity
setOrigin idEntity
getAngles idEntity
setAngles idEntity
getLinearVelocity idEntity
setLinearVelocity idEntity
getAngularVelocity idEntity
setAngularVelocity idEntity
getSize idEntity
setSize idEntity
getMins idEntity
getMaxs idEntity
touches idEntity
setGuiParm idEntity
setGuiFloat idEntity
getNextKey idEntity
setKey idEntity
getKey idEntity
getIntKey idEntity
getFloatKey idEntity
getVectorKey idEntity
getEntityKey idEntity
restorePosition idEntity
distanceTo idEntity
distanceToPoint idEntity
startFx idEntity
waitFrame idEntity
wait idEntity
hasFunction idEntity
callFunction idEntity
setNeverDormant idEntity
setGui idEntity
precacheGui idEntity
getGuiParm idEntity
getGuiParmFloat idEntity
guiNamedEvent idEntity
remove idClass

Quake 4

Door.

Keys

Key Type Default Description
start_open bool 0 the door moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
no_touch bool 0 the door should not be triggered by the player touching it, only by another trigger. in multiplayer, this door can't be shot to open.
locked bool used in conjunction with no_touch,the door must be triggered by a trigger, after which it works normally. if locked = 1 then the door opens when unlocked, if locked = 2 then the door just becomes unlocked.
buddy var will toggle shaderparm 7 of the entity given as a buddy, this allows shaders to be remapped for lock status etc.
crusher bool 0 the door does not reverse when blocked.
angle var 0 determines the opening direction.
movedir var determines the opening direction. if set, 'angle' determines orientation.
speed var 100 movement speed.
time var movement time in seconds. overrides speed. used for doors that move different distances, but still need to be synced.
wait bool 3 wait before returning (-1 = never return).
toggle bool wait at each position until triggered again.
lip var 8 lip remaining at end of move.
dmg var 2 damage to inflict when blocked.
health var 0 if set, the door must be shot open.
triggersize var 60 sets the amount the trigger extends from the door.
gui_noninteractive bool any gui attached will not be interactive
snd_locked snd door_default_locked sound to play if door is locked and player approaches.
snd_open snd door_default_open sound to play when opening.
snd_close snd door_default_close sound to play when closing.
snd_opened snd door_default_opened looping sound for it's opened state.
triggerClosed var name of entity to trigger when door closes, can be iterated with triggerClosed2, 3 etc.
triggerOpened var name of entity to trigger when door opens, can be iterated with triggerOpened2, 3 etc.
triggerBlocked var name of entity to trigger when door is blocked, can be iterated with triggerBlocked2, 3 etc.
triggerOnOpen var entity to trigger when the door trigger is first touched. When using openWait,

Editor

Property Value
Type brush entity
Spawn class idDoor -> idMover_Binary -> idEntity -> idClass
Color 0 .5 .8

Script events

Event Declared by
activate idDoor
open idDoor
close idDoor
lock idDoor
isOpen idDoor
isLocked idDoor
spectatorTouch idDoor
openPortal idDoor
closePortal idDoor
enable idMover_Binary
disable idMover_Binary
getName idEntity
setName idEntity
activateTargets idEntity
numTargets idEntity
getTarget idEntity
randomTarget idEntity
bindToJoint idEntity
removeBinds idEntity
bind idEntity
bindPosition idEntity
unbind idEntity
setOwner idEntity
setModel idEntity
setSkin idEntity
getShaderParm idEntity
setShaderParm idEntity
setShaderParms idEntity
setColor idEntity
getColor idEntity
isHidden idEntity
hide idEntity
show idEntity
cacheSoundShader idEntity
startSoundShader idEntity
startSound idEntity
stopSound idEntity
fadeSound idEntity
getWorldOrigin idEntity
setWorldOrigin idEntity
getOrigin idEntity
setOrigin idEntity
getAngles idEntity
setAngles idEntity
getLinearVelocity idEntity
setLinearVelocity idEntity
getAngularVelocity idEntity
setAngularVelocity idEntity
getSize idEntity
setSize idEntity
getMins idEntity
getMaxs idEntity
touches idEntity
setGuiParm idEntity
setGuiFloat idEntity
getNextKey idEntity
setKey idEntity
getKey idEntity
getIntKey idEntity
getFloatKey idEntity
getVectorKey idEntity
getEntityKey idEntity
restorePosition idEntity
distanceTo idEntity
distanceToPoint idEntity
startFx idEntity
waitFrame idEntity
wait idEntity
hasFunction idEntity
callFunction idEntity
setNeverDormant idEntity
clearSkin idEntity
setContents idEntity
getLastBlocker idEntity
playEffect idEntity
stopEffect idEntity
stopAllEffects idEntity
getHealth idEntity
hideSurface idEntity
showSurface idEntity
guiEvent idEntity
playbackCallback idEntity
getBindMaster idEntity
applyImpulse idEntity
removeNullTargets idEntity
isA idEntity
isSameTypeAs idEntity
matchPrefix idEntity
clearTargetList idEntity
appendTarget idEntity
removeTarget idEntity
setHealth idEntity
remove idClass

Prey

Door.

Keys

Key Type Default Description
start_open bool 0 the door moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
no_touch bool 0 the door should not be triggered by the player touching it, only by another trigger.
locked bool used in conjunction with no_touch,the door must be triggered by a trigger, after which it works normally. if locked = 1 then the door opens when unlocked, if locked = 2 then the door just becomes unlocked.
buddy var will toggle shaderparm 7 of the entity given as a buddy, this allows shaders to be remapped for lock status etc.
crusher bool 0 the door does not reverse when blocked.
angle var 0 determines the opening direction.
movedir var determines the opening direction. if set, 'angle' determines orientation.
speed var 100 movement speed.
time var movement time in seconds. overrides speed. used for doors that move different distances, but still need to be synced.
wait bool 3 wait before returning (-1 = never return).
toggle bool wait at each position until triggered again.
lip var 8 lip remaining at end of move.
dmg var 2 damage to inflict when blocked.
health var 0 if set, the door must be shot open.
triggersize var 60 sets the amount the trigger extends from the door.
gui_noninteractive bool any gui attached will not be interactive
snd_locked snd door_locked sound to play if door is locked and player approaches.
snd_open snd func_door_open sound to play when opening.
snd_close snd func_door_close sound to play when closing.
snd_opened snd looping sound for it's opened state.
triggerStartOpen var name of the entity to trigger when open starts.
triggerClosed var name of entity to trigger when door closes, can be iterated with triggerClosed2, 3 etc.
triggerOpened var name of entity to trigger when door opens, can be iterated with triggerOpened2, 3 etc.
triggerBlocked var name of entity to trigger when door is blocked, can be iterated with triggerBlocked2, 3 etc.
airlockTeam var name of airlock team. only one door on a given airlock team can be open at a time
airlockTeamType var 0 = force team to close before opening. 1 = binary airlock: only two doors allowed in group. Default: 0
snd_airlock snd name of sound to play when door is locked because an airlock teammate is open
airlockwait var time to wait before playing snd_airlock again in seconds. Default: 3
alwaysLocked bool forces shaderparm7 to 0 for sake of always locked doors

Editor

Property Value
Type brush entity
Spawn class hhDoor -> idDoor -> idMover_Binary -> idEntity -> idClass
Color 0.2 0.75 0.85

Script events

Event Declared by
setBuddiesShaderParm hhDoor
activate idDoor
open idDoor
close idDoor
lock idDoor
isOpen idDoor
isLocked idDoor
openPortal idDoor
closePortal idDoor
enable idMover_Binary
disable idMover_Binary
moveToJoint idEntity
moveToJointWeighted idEntity
moveJointToJoint idEntity
moveJointToJointOffset idEntity
setSkin idEntity
spawnDebris idEntity
delayDamageEntity idEntity
dispose idEntity
setDeformation idEntity
setFloatKey idEntity
setVectorKey idEntity
setEntityKey idEntity
playerCanSee idEntity
setContents idEntity
setClipmask idEntity
setPortalCollision idEntity
killbox idEntity
getName idEntity
setName idEntity
findTargets idEntity
activateTargets idEntity
numTargets idEntity
getTarget idEntity
randomTarget idEntity
bindToJoint idEntity
removeBinds idEntity
bind idEntity
bindPosition idEntity
unbind idEntity
setOwner idEntity
setModel idEntity
getShaderParm idEntity
setShaderParm idEntity
setShaderParms idEntity
setColor idEntity
getColor idEntity
isHidden idEntity
hide idEntity
show idEntity
cacheSoundShader idEntity
startSoundShader idEntity
startSound idEntity
stopSound idEntity
fadeSound idEntity
getWorldOrigin idEntity
setWorldOrigin idEntity
getOrigin idEntity
setOrigin idEntity
getAngles idEntity
setAngles idEntity
getLinearVelocity idEntity
setLinearVelocity idEntity
getAngularVelocity idEntity
setAngularVelocity idEntity
getSize idEntity
setSize idEntity
getMins idEntity
getMaxs idEntity
touches idEntity
setGuiParm idEntity
setGuiFloat idEntity
getNextKey idEntity
setKey idEntity
getKey idEntity
getIntKey idEntity
getFloatKey idEntity
getVectorKey idEntity
getEntityKey idEntity
restorePosition idEntity
updateCameraTarget idEntity
distanceTo idEntity
distanceToPoint idEntity
startFx idEntity
waitFrame idEntity
wait idEntity
hasFunction idEntity
callFunction idEntity
setNeverDormant idEntity
playRumble idEntity
stopRumble idEntity
remove idClass

Last changed Sep 21, 2026
<< back to the wiki  ·  History
RELATED GAMES
Quake III Arena
Quake
Quake II
Return to Castle Wolfenstein
Wolfenstein: Enemy Territory
DOOM 3
Quake 4
Prey
HOT FILES
No files yet.
all files >>
LATEST BLOGS
No blog posts yet.
all blogs >>
MEDIA FROM THE BLOGS
No blog post has a picture yet.
all blogs >>
LATEST DEVLOGS
No devlog entries yet.
all blogs >>
CHAT
IRC:
#func_arena @ irc.libera.chat

Discord:
Map-Center

41 fraggers right now. Be nice to others.
Powered by Debian Linux Now! Get Mozilla Now! Stop Microsoft! Dopefish Now! 1-Bit Icons by Nikoichu
home  ·  contact  ·  privacy policy  ·  forums  ·  submit content  ·  rss
func_arena is a member of the func_network. We are not responsible for user content, your ping, or your kill-to-death ratio.
Powered by fragnuke 0.7.2. Best viewed at 1024x768 in Mozilla. No frames, no Flash, no bs.