Entity | Description |
---|---|
func_areaportal | Used to hide areas from the compiler |
func_button | Triggers other entities to act |
func_clock | An annoying to use clock |
func_door | A single-plane door |
func_door_rotating | A rotating door |
func_door_secret | Doors that look like walls until you shoot them |
func_explosive | Destroyed when triggered |
func_killbox | Kills everything inside of it |
func_object | Falls down when triggered |
func_plat | A moving platform |
func_rotating | A rotating platform |
func_timer | A timing device for other entities |
func_train | A moving object that follows path_corner entities |
func_wall | A triggered wall |
func_water | A water brush that can move |
When you make a door in quake 2, the engine see it as always open which causes it to draw polys beyond the door. Func_areaportal stops this behavior.
A func_areaportal must always be built within a func_door variation. After you make the doors, place an areaportal so that it completely covers the hole the door makes.
The areaportal needs to be there when the doors are closed, and not there when they are open. Do this by giving areaportal a targetname, and the door a target.
The func_clock acts like a time of day clock and in most instances it will be used with a target_character and target_string. It’s an annoying entity to use, and has limited uses. The easiest way to explain it is with an example. We will create a button that when pressed, makes a counter appear on a wall and countdown from 10 to 0, and trigger an explosion via target_explosion.
count: The amount of time on the clock.
pathtarget: The target that will be triggered once count runs out.
style: The visual style of the clock. There are 3 styles. 0(xx), 1(xx:xx), and 2(xx:xx:xx).
1 timer_up: Makes the timer count up.
2 timer_down: Makes the timer count down.
4 start_off: Makes the clock not start when the level does, should usually be used so the countdown be triggered later.
8 multiuse: Always keep this on.
Create a func_clock entity. This will control the clock. Set count to 10, style to 2, and pathtarget to bang. This will be the targetname of the target_explosion for the explosion. Set the “target” to “string” which will be the target_string ent that we will make next. Give the func_clock a “targetname” of “clock” so we can use a button to trigger it. Set the timer_down, start_off, and multiuse spawnflags.
Create a target_string ent, with a “targetname” of “string”, and a “team” of “countdown”.
Now create eight 8x16 brushes that represent the style 2 that we chose earlier (xx:xx:xx). Select them all and make them target_characters. You can set “count” and “team” here. “count” is the position of the number, starting at 1, ending in 8. Set “team” to countdown, just like on the target_string from earlier. The 8 brushes MUST be set to the vanilla num_0 texture.
Now make a func_button with a “target” of “clock” and a “wait” of “-1” so it can only be pressed once.
For the explosion, make a target_explosion with a “targetname” of “bang” and “dmg” of “10000”. This will create a big bang that kills everything near it.
Func_clock is also usable without the visual part, but it would be better to use a func_timer in that case.
It is exactly what it sounds like, a door. The use is well explained by just reading the keypairs and spawnflags.
message: Prints a message when the door is open. Does not work if the door is triggered remotely.
angle: The angle the door is opened.
health: If set, the health of the door will determine if it opens or not.
speed: How fast a door opens/closes.
wait: The time between opening and closing. To never close, set it to -1.
lip: The length of the door remaining when it is open.
dmg: The damage the door does if blocked.
sounds: If set to 1, the door will have no sound.
start_on: Makes the door close when triggered.
crusher: No pause between attempts to close if blocked, basically just kills things faster.
nomonster: Monster ents cannot open the door.
toggle: Only for triggered doors. One trigger to open, one to close it.
This ent uses the same values from func_door, with a few small changes.
distance: Prints a message when the door is open. Does not work if the door is triggered remotely.
1 reverse: Rotates in the opposite direction
2 x-axis: Rotates on the x-axis.
4 y-axis: Rotates on the y-axis.
A func_door_rotating must have an origin brush, or some sort of center to rotate around. Make the brushes, and set them all as a func_door_rotating, inlcuding the origin. After this, select the origin brush only, and give it the surface property of “origin”. Finally give it a distance and specify the axis in the spawnflags.
These are doors that look like walls until you shoot them. They have a few options that other doors do not.
angle: direction the door will slide open
dmg: the amount of damage the door will give off when the player blocks the progress of the door
wait: duration the door stays open
1 once_open: the door only opens once
2 1st_left: the door moves slightly to the left before using the angle of the door
4 1st_down: the door moves slightly down before using the angle of the door
8 always_shoot: door opens when shot regardless of other interactions
Commonly used along with a func_object. Simply make a brush into a func_explosive and give it a dmg keypair for a visual effect.
dmg: radius of the explosion
health: amount of damage the brush can take before exploding
mass: the amount of rubble produced by the explosion
This ent kills everything inside of it. Create a brush the size of the area you want to kill, then give it a targetname. Then create a trigger to trigger the func_killbox. This can be a button or anything else you choose. Give the trigger a target with the same name as the targetname from earlier. You also need to give the trigger a pathtarget keypair with the same targetname.
targetname: name of the ent to trigger
An ent that when triggered, falls down to the floor. Works well with a func_explosion.
targetname: name of the ent to trigger
These are easy to use ents once you know how they work. Here a few rules to follow:
speed: default 200, speed of the platform
accel: default 50, acceleration of the platform
deceleration: default 50, deceleration of the platform
lip: default 8, how high the platform is off the ground in the lowered position
height: how far the platform moves in method two
dmg default 2, how much damage the platform will do if stood under
sounds: 1 = base fast, 2 = chain slow
targetname: the name of the entity
There are two main ways to make a func_plat. The first method is to use the physical dimensions of the brush instead of some of the keypairs. In this version the height keypair is replaced by the physical height of the brush. The lip keypair is still used to specify how high off the ground the platform will be when in the lowered position.
The second method uses the height keypair and ignores the physical dimensions of the brush. This also means the lip keypair is not used. To use this method, draw the brush at the extended position, and make the height the distance the platform will travel down.
method 1 | method 2 |
---|---|
![]() |
![]() |
Like it sounds, this is a rotating entity that is used to create things like fans that you see in the single player campaign. There are two parts to a func_rotating. The first part is the part that will rotate, for example, fan blades. The second part is the origin, which forms the object the first part will rotate around.
After you create the brushes themselves, select all of them, and turn them into a func_rotating. After that select the non-moving part of the brush and change the surface property to origin. By default it will rotate on the z-axis (parallel to the floor), you can change this with spawnflags.
speed: default 100, the speed of the rotation
dmg: default 2, the amound of damage when striking a player
1 start_on: the rotation starts on
2 reverse: makes the brush spin in the opposite direction
4 x_axis: changes the axis to be parallel to the wall at 90 and 270 degrees
8 y_axis: changes the axis to be parallel to the wall at 0 and 180 degrees
16 touch_pain: by default, damage is only inflicted when stuck between the rotation and something else, touch_pain causes damage anytime it touches another ent/player
32 stop: makes the rotation stop immeadiately and not push players
64 animated: used if the rotating brush contains animated textures
128 animated_fast: same as above, but the animation runs faster
This is used to trigger it’s targets at set intervals of time. This can be used to loop music, open a door after a set amount of time, create lighting effects, and many other things. These can be used, but not touched.
wait: default 1, time between firing
random: default 0, allows for variance between waits, (wait - random) and (wait + random)
delay: default 0, delay before firing when turned on
pausetime: default 0, additional delay only used the first time, and only if the spawnflag start_on is used
target: the target(s) of the func_timer
If a delay of 10 is set, and a pausetime of 20, the timer will fire 30 seconds after you begin the level. If it is turned off, then back on, it will then have the normal delay of only 10 seconds.
1 start_on: starts as you enter the level
A moving entity that travels along a specified path. In order to work, it needs to be paired with at least 2 path_corners.
The first step is to create the actual platform that will move and make it a func_train. It does not matter where this is placed in the world, as it will automatically spawn at the first path_corner.
The second step is to make the path_corner ents. Each path_corner links to the next, so each will have a targetname, and target the next corner. If you want it to travel in a circuit make the final corner target the first corner.
speed: default 100, the speed of the train
dmg: default 100, the amount of damage you will take if crushed by the train
noise: the sound that will be played when the train is moving, a list of sounds can be found here.
target: a required keypair for a func_train to work, it should target thr first path_corner
targetname: if given a targetname, the train will have to be triggered
1 start_on: by default a train will only start moving when triggered by another entity, if this is set it will move when the level starts
2 toggle: allows the train to be toggled on and off multiple times, this can be combined with a func_button and a trigger_elevator to make an elevator.
4 block_stops: allows the train to stop when hitting a player or another ent, and will not damage it
This is just a wall that can be triggered into or out of existance. It must be triggered by something to work.
To use this ent first make a wall, then turn it into a func_wall and give it a targetname. Then create a way for it to be triggered. Anything like a func_button or a normal trigger will work. Now when triggered, the wall will trigger on/off.
trigger_spawn: always use this spawnflag when using this ent
toggle: set this is using start_on below
start_on: makes the wall work in reverse, when triggered a wall will disappear instead of appear
This is used to make a water/slime/lava brush that can move. It can simulate the effect of water slowly moving up and down in a pool.
To use this, the first step is to create the water brush, and turn it into a func_water. The water **cannot* be translucent. It must be given a targetname in order to work as well, which means it needs to be triggered by something. A func_button or a normal trigger can be used.
angle: an angle must be set, usually you will use either up (-1) or down (-2), but, it can be used in any direction
sounds: 0 = no sound, 1 = water, 2 = lava
speed: default 25, speed of the water movement
wait: default -1, how long the water waits at the destination before returning, -1 means it can be toggled
lip: default 0, lip remaining at the end of the movement
1 start_on: water will start at the destination, and then work in reverse
© Deine Mudda 2020