Func door rotating

From Valve Developer Community

This Brush-based Entity is available in all Source Games.

Table of contents

Entity description

A brush entity for use as a rotating player-usable door. (For a sliding door, use func_door instead.) Normally Source games will use prop_door_rotating entities using special door models. This entity is only suitable if no such model exists for the door. Either its brush can be shaped into a door with a door texture, or, if a non-door model exists, a prop_dynamic using the model can be parented to a little nodrawed func_door_rotating at the rotating origin.

To make a pair of doors open and close together, give them the same targetname.

Notes

Axes

The a func_door_rotating entity can only rotate around either the x, y or z axis and no combination of the two other then x and y. By default, the entity is set to rotate on the Z-axis and can be changed through altering the flags section of the object properties.

Setting the Origin

The point of rotation can be changed through the alteration of the entities origin. The origin sets which point on the plane of movement the object will rotate through, think of it as a hinge for a door. With the show helpers option enabled in Hammer, the origin will appear as a small white circle in the center of the entity that can be dragged to a new location.

Example

Here in the 3D view we have a brush we selected, 1, that is tied to the func_door_rotating entity. We want it to rotate downward to land in position 2, bridging the gap between the two ledges. To do this we need to alter the door's origin to sit at point 3.Image:Door_rotate_1.jpg
First thing to do is to find the axis we want the brush to rotate on. A good way to do this is to look through the grid views and find the view which shows exactly where we want to place the origin. Once found, drag the cursor to the upper left hand side of the view port to reveal which view port it is, 1. This view only shows two of the three axes, the missing one is the one we want, which in this case would be the Y axis. Go to the flag section of the door's object properties, and check the Y Axis box. The other thing to keep in mind is by default, a func_door_rotating moves clockwise around the point of rotation in the 2D view, we want it to move the other way, so we also need to check the Reverse Dir box as well in the flags tab of the object properties. Now move the cursor over the door's origin, 2.Image:Door_rotate_2.jpg
We want to rotate around the bottom right corner or the door, A, so we need to drag the origin there. When the mouse is over the origin it should change into a plus sign (B) meaning it is ready to be moved, click on it and drag in down to point A, you should notice a red doted line that follows it as you move it. Once the origin is in point A we're done setting the origin. Now when the door is opened, it should rotate around point A.Image:Door_rotate_3.jpg

Keyvalues

Defines the name that other entities refer to this entity by.
  • hammerid [New with Orange Box]
<integer readonly> This id is used for debugging purposes in Hammer.
Specifies the targetname of this entity's Parent in a movement hierarchy. Child entities mimic the movements of their Parent.
  • renderfx
<choices>
Literal Value Description
0 Normal
1 Slow Pulse
2 Fast Pulse
3 Slow Wide Pulse
4 Fast Wide Pulse
5 Slow Fade Away
6 Fast Fade Away
7 Slow Become Solid
8 Fast Become Solid
9 Slow Strobe
10 Fast Strobe
11 Faster Strobe
12 Slow Flicker
13 Fast Flicker
14 Constant Glow
15 Distort
16 Hologram (Distort + fade)
17 Scale up
22 Spotlight FX
23 Cull By Distance (TEST)
24 Fade Wider Pulse
  • rendermode
<choices> Used to set a non-standard rendering mode on this entity. See also 'FX Amount' and 'FX Color'.
Literal Value Render Mode Description (Click for more info.)
0 Normal Default rendering.
1 Color Obsolete.
2 Texture Plain opacity.
3 Glow No Z buffer checks. Fixed size on screen.
4 Solid / Alphatest Obsolete. (Use alphatest capabilities in materials instead.)
5 Additive Obsolete. Add this entity's color to what's behind it.
7 Additive Fractional Frame Obsolete? Blend between animation frames.
8 Alpha Add (Not in FGD.) Add alpha.
9 World Space Glow No Z buffer checks. Fixed size in world (as opposed to on screen).
10 Dont Render / None Don't render.
  • renderamt
<integer> FX Amount (0 - 255) - How opaque the entity will be rendered. (0 is fully transparent, while 255 is fully opaque). Will not work if the rendermode keyvalue is set to Normal or Dont Render.
  • rendercolor
<color255> FX Color - What color the entity will be rendered in (to the degree of the opacity set with renderamt).
  • globalname
<string> Name by which this entity is linked to another entity in a different map. When the player transitions to a new map, entities in the new map with globalnames matching entities in the previous map will have the previous map's state copied over their state.
  • disableshadows
<boolean> Used to disable dynamic shadow casting from this entity.
  • speed
<integer> Speed that the door moves in units per second.
  • wait
<float> Time until the door returns to the closed position. A value of 0 means the door never closes.
  • lip
<integer> This is the number of units the door is from the frame in the open position.
  • dmg
<integer> Damage to deal to objects blocking the door.
  • forceclosed
<boolean> Force the door closed even if blocked.
  • health
Door can be shot open if nonzero.
  • locked_sentence
<choices> Easy alternative to the locked_sound keyvalue.
Literal Value Description
0 None
1 Gen. Access Denied
2 Security Lockout
3 Blast Door
4 Fire Door
5 Chemical Door
6 Radiation Door
7 Gen. Containment
8 Maintenance Door
9 Broken Shut Door
  • unlocked_sentence
<choices> Easy alternative to the unlocked_sound keyvalue.
Literal Value Description
0 None
1 Gen. Access Granted
2 Security Disengaged
3 Blast Door
4 Fire Door
5 Chemical Door
6 Radiation Door
7 Gen. Containment
8 Maintenance area
  • loopmovesound
<boolean> Loop Moving Sound? - If set to true, the door's noise1 (Start Sound) will be continually looped until the door finishes moving. Note that some samples already has a built in loop that isn't used when you play them in the Hammer editor. If such samples are also looped by this keyvalue, they have been known to continue looping forever, and further attempts to open or close the door will only add another looping sample to the noise.
  • noise1
<sound> Plays when the door opens. / Sound to play when the door starts moving.
  • noise2
<sound> Plays when the door closes. / Sound to play when the door stops moving.
  • message
Done on trigger. Image:Todo.png To do: More info here.
  • locked_sound
<sound> Audio to play when the player tries to open the door and it is locked.
  • unlocked_sound
<sound> Audio to play when the door becomes unlocked.
  • _minlight
<integer> Minimum light level.
  • ignoredebris [Episode One Update]
<boolean> If set, this will change the door's collision group to one that ignore collisions with debris objects (note that this is not compatible with the non-solid-to-player spawnflag).
  • origin
<origin> The position of this entity's center in the world. Rotating entities rotate around their origin.
Pitch Yaw Roll (Y Z X)
This entity's angular orientation in the world (also used for angular effect entities).
  • distance
<integer> The amount, in degrees, that the door should rotate when it's opened.
  • solidbsp
<boolean> If set, use VPhysics, otherwise use BSP.

Flags

  • 1 : Starts Open - This door spawns open.
  • 2 : Reverse Dir - This door opens in the opposite direction.
  • 4 : Non-solid to Player - This door does not collide with the player or NPCs.
  • 8 : Passable - This door does not collide with anything.
  • 16 : One-way - This door only opens in one direction.
  • 32 : Toggle - This door switches between open and closed on each input.
  • 64 : X Axis - This door rotates on the X axis.
  • 128: Y Axis - This door rotates on the Y axis.
  • 256 : Use Opens - The +use key triggers this door.
  • 512 : NPCs Can't - NPCs can't use this door.
  • 1024 : Touch Opens - Collision with the door triggers it.
  • 2048 : Starts locked - This door spawns locked to the player or NPCs (though an input can still trigger it).
  • 4096 : Door Silent - This door makes no noise.

Inputs

  • Kill
Removes this entity from the world.
Removes this entity and all its children from the world.
  • AddOutput <string>
Evaluates a keyvalue/output on this entity. It can be potentially very dangerous, use with care.
Format: <key> <value>
Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire (-1 == infinite)>
Causes this entity's OnUser1-4 outputs to be fired. See User Inputs and Outputs.
Set the rendercolor.
Set the renderamt.
Changes the entity's parent in the movement hierarchy.
Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment.
Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the Parent's Origin and Angles at the time it is attached.
Removes this entity from its current movement hierarchy.
  • DisableShadow
Turn shadow off.
  • EnableShadow
Turn shadow on.
  • Open
Open the door, if it is not fully open.
  • Close
Close the door, if it is not fully closed.
  • Toggle
Toggle the door between open and closed.
  • Lock
Lock the door.
  • Unlock
Unlock the door.
  • SetSpeed <float>
Set the door speed.

Outputs

Fired in response to FireUser1-4 inputs. See User Inputs and Outputs.
!activator = activator
  • OnClose
Fired when the door is told to close.
!activator = opener (sometimes = !this)
  • OnOpen
Fired when the door is told to open.
!activator = opener (sometimes = !this)
  • OnFullyOpen
Fired when the door reaches the fully open position.
!activator = user
  • OnFullyClosed
Fired when the door reaches the fully closed position.
!activator = user
  • OnBlockedClosing
Fired when the door is blocked while closing.
!activator = blocker
  • OnBlockedOpening
Fired when the door is blocked while opening.
!activator = blocker
  • OnUnblockedClosing
Fired when the door is unblocked while closing.
  • OnUnblockedOpening
Fired when the door is unblocked while opening.