c1338368d861bfca8e145c2f818d31a84a87c47f
[xonotic/xonotic-maps.pk3dir.git] / scripts / entities.def
1 /*QUAKED _skybox (0.77 0.88 1.0) (-4 -4 -4) (4 4 4) 
2 Compiler-only entity that specifies a the origin of a sky box (a wholly contained, separate area of the map), similar to some games' portal skies. When compiled with Q3Map2, the sky box surfaces will be visible from any place where sky is normally visible. It will cast shadows on the normal parts of the map, and can be used with cloud layers and other effects. As it is compiler-only, it can't "scale up" entities in its box.
3 To use this, carve a small box in some larger structure on your map, place this entity inside that box hole, and make a small version on what should be seen in the sky there.
4 -------- KEYS --------
5 angle: rotation angle of the sky surfaces.
6 angles: Individual control of PITCH, YAW, and ROLL (default 0 0 0).
7 _scale: scaling factor (default 64), good values are between 50 and 300, depending on the map.
8 */
9
10 /*QUAKED dom_controlpoint (.3 .3 1) (-16 -16 -16) (16 16 16) 
11 Domination  control point
12 In order to get Domination working well in your map, you need to place dom_team and dom_controlpoint entities.  You *must* have at least 3 dom_team entities - 2 minimum teams and one blank one (empty netname and no team).  You can have up to 4 teams (5 dom_team entities).
13 -------- KEYS --------
14 message: message to be displayed to all players when this point is captured, preceded by the team's name.  This defaults to " has captured a control point".  You can specify different names for each point, for example " has captured the Lava Room".
15 wait: How often this point gives its controlling team frags.
16 frags: How many frags this point gives each wait cycle.
17 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
18 zbqry="zbqryf/qbzvangvba/qbz_hapynvzrq.zq3"
19
20 */
21
22 /*QUAKED dom_team (.3 .3 1) (-16 -16 -16) (16 16 16) 
23 Domination team.
24 In order to get Domination working well in your map, you need to place dom_team and dom_controlpoint entities.  You *must* have at least 3 dom_team entities - 2 minimum teams and one blank one (empty netname and no team).  You can have up to 4 teams (5 dom_team entities).
25 -------- KEYS --------
26 netname: name of team (Red Team).  Set to "" or don't define for the required blank team.
27 cnt: color of the team.  See the "Helpful Extras" section for info.
28 model: When this team captures control points, the points turn to this model.  If this is the neutral team, points start out as this model.
29 noise: Sound to be played on the control point when it's captured.  Only players nearby will hear it.
30 noise1: Sound to be played to all players when the control point is captured.  Also good for an announcer voice ("Red Team has captured a control point")
31 */
32
33 /*QUAKED func_assault_destructible (.5 0 .5) ? - - - - - - - - NOSPLASH
34 This is a brush model which can be damaged. Once triggered it's active and will happily receive damage players inflict upon it. Once all health is consumed it'll disappear and trigger the targeted entity/entities. As damage is received the brush model will be tinted in an increasingly visible flavor of red to give visible feedback.
35 -------- KEYS --------
36 health: The damage this trigger can take
37 target: The entity/entities to be triggered once this entity gets invisible
38 targetname: The name other entities can use to target this entity
39 mdl: particle effect name to show when destroyed
40 count: particle effect multiplier
41 mdl_dead: optional replacement model to show when destroyed
42 debris: names of debris models to show when destroyed, separated by spaces
43 noise: sound to play when destroyed
44 dmg: damage to deal to the environment when destroyed
45 dmg_edge: edge damage to deal to the environment when destroyed
46 dmg_radius: damage radius
47 dmg_force: damage force
48 message: death message when a player gets hit by the explosion
49 message2: death message when someone gets pushed into this (default: "was pushed into an explosion by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
50 debrismovetype: way in which the debris moves: one of 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE
51 debrissolid: solidity of the debris: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE
52 debrisvelocity: initial velocity vector of the debris (static part)
53 debrisvelocityjitter: initial velocity vector of the debris (random part)
54 debrisavelocityjitter: initial angular velocity vector of the debris (random part)
55 debristime: time till the debris fades (average)
56 debristimejitter: time till the debris fades (random part)
57 debrisfadetime: how long debris takes to fade
58 debrisdamageforcescale: how much debris is affected by damage force (e.g. explosions)
59 debrisskin: skin number of debris
60 -------- SPAWNFLAGS --------
61 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
62 */
63
64 /*QUAKED func_assault_wall (.5 0 .5) ?
65 Brush model that will disappear once the targeted target_objective is fulfilled. This can be used to restrict access to parts of the map until a certain objective has been conquered.
66 -------- KEYS --------
67 target: targetname of a target_objective
68 */
69
70 /*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS
71 Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked.
72 -------- KEYS --------
73 speed: amount of time in seconds for one complete oscillation cycle (default 4).
74 height: sets the amount of travel of the oscillation movement (default 32). 
75 phase: sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0).
76 noise: path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
77 dmg: damage a player who gets crushed by it receives
78 dmgtime: interval to apply dmg to a player who is s in the way
79 message: death message when a player gets crushed
80 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
81 -------- SPAWNFLAGS --------
82 X_AXIS: entity will bob along the X axis.
83 Y_AXIS: entity will bob along the Y axis.
84 */
85
86 /*QUAKED func_button (0 .5 .8) ? - - - - - - - - NOSPLASH
87 When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again.
88 -------- KEYS --------
89 angle: determines the direction in which the button will move (up = -1, down = -2).
90 target: all entities with a matching targetname will be triggered.
91 target2: all entities with a matching targetname will be triggered.
92 target3: all entities with a matching targetname will be triggered.
93 target4: all entities with a matching targetname will be triggered.
94 speed: speed of button's displacement (default 40).
95 wait: number of seconds button stays pressed (default 1, -1 = return immediately).
96 lip: lip remaining at end of move (default 4 units).
97 health: (default 0) if set to any non-zero value, the button must take damage (any amount) to activate.
98 -------- SPAWNFLAGS --------
99 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
100 */
101
102 /*QUAKED func_door (0 .5 .8) ? START_OPEN - DOOR_DONT_LINK - - TOGGLE - - NOSPLASH
103 Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it.
104 If DOOR_DONT_LINK is not set, the door will be linked with all doors it touches. Note however that for linked doors to work properly, it is necessary that ALL linked doors have SOME volume of common area (that is, there must be a point that is part of ALL doors).
105 -------- KEYS --------
106 message: is printed when the door is touched if it is a trigger door and it hasn't been fired yet, or death message if dmg is set
107 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
108 angle: determines the opening direction
109 targetname: if set, no touch field will be spawned and a remote button or trigger field activates the door.
110 health: if set, door must be shot open
111 speed: movement speed (100 default)
112 wait: wait before returning (3 default, -1 = never return)
113 lip: lip remaining at end of move (8 default)
114 dmg: damage to inflict when blocked (when triggered and someone is in the way)
115 sounds: when 1, use default door sounds
116 noise1: sound when the door opens
117 noise2: sound when the door closes
118 -------- SPAWNFLAGS --------
119 START_OPEN: 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 damage triggered doors).
120 DOOR_DONT_LINK: the door won't link with another door it touches
121 TOGGLE: causes the door to wait in both the start and end states for a trigger event.
122 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
123 */
124
125 /*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN BIDIR DOOR_DONT_LINK BIDIR_IN_DOWN - TOGGLE X_AXIS Y_AXIS NOSPLASH
126 Normal rotating door entity that opens by rotating around an axis (default: Z). Use an origin brush to specify the rotation axis.
127 By default, the door will activate when player walks close to it or when damage is inflicted to it.
128 If DOOR_DONT_LINK is not set, the door will be linked with all doors it touches.
129 BIDIR makes the door work bidirectional, so that the opening direction is always away from the requestor.
130 The usage of bidirectional doors requires two manually instantiated triggers (trigger_multiple), the one to open it in the other direction
131 must have set trigger_reverse to 1.
132 BIDIR_IN_DOWN will the door prevent from reopening while closing if it is triggered from the other side.
133 -------- KEYS --------
134 message: is printed when the door is touched if it is a trigger door and it hasn't been fired yet, or death message if dmg is set
135 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
136 angle: determines the destination angle for opening. negative values reverse the direction (90 default)
137 targetname: if set, no touch field will be spawned and a remote button or trigger field activates the door.
138 health: if set, door must be shot open
139 speed: speed to rotate (in degrees per second)
140 wait: wait before returning (3 default, -1 = never return)
141 dmg: damage to inflict when blocked (when triggered and someone is in the way)
142 sounds: when 1, use default door sounds
143 noise1: sound when the door opens
144 noise2: sound when the door closes
145 -------- SPAWNFLAGS --------
146 START_OPEN: 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 damage triggered doors).
147 DOOR_DONT_LINK: the door won't link with another door it touches
148 TOGGLE: causes the door to wait in both the start and end states for a trigger event.
149 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
150 */
151
152 /*QUAKED func_door_secret (0 .5 .8) ? OPEN_ONCE 1ST_LEFT 1ST_DOWN NO_SHOOT ALWAYS_SHOOT
153 Basic secret door. Slides back, then to the side. Angle determines direction. Opens when targeted or when shot; does not create its own trigger field like func_door does.
154 -------- KEYS --------
155 wait: # of seconds before coming back
156 key1: first entity key with one-line description
157 key2: second entity key with one-line description
158 t_width: override WIDTH to move back (or height if going down)
159 t_length: override LENGTH to move sideways
160 dmg: damage to inflict when blocked (2 default)
161 message: text to display when activating the door, or death message if dmg is set
162 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
163 noise1: sound when opening backwards or closing
164 noise2: sound when opening sideways
165 noise3: sound when stopping
166 -------- SPAWNFLAGS --------
167 OPEN_ONCE: only work once, then stay open
168 1ST_LEFT: 1st move is left of arrow
169 1ST_DOWN: 1st move is down from arrow
170 NO_SHOOT: never respond to shots
171 ALWAYS_SHOOT: even if targetname is set, respond to shots
172 */
173
174 /*QUAKED func_group (0 .5 .8) ? 
175 This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this.
176 -------- Q3MAP2 KEYS --------
177 _lightmapscale: light map resolution factor
178 _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
179 _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
180 _celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
181 -------- KEYS --------
182 _indexmap: Path/name for the TGA file used to guide the mapping of textures on the terrain surface.
183 _layers: number of unique root shaders that will be use on the terrain.
184 _shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
185 _offsets: space separated list of height offsets for the index map
186 */
187
188 /*QUAKED func_ladder (0 .5 .8) ? 
189 a ladder, need i say no more
190 grab a trigger brush and put it in front of the part that you want the player to climb
191 */
192
193 /*QUAKED func_plat (0 .5 .8) ? - - CRUSH
194 Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off.
195 -------- KEYS --------
196 speed: determines how fast the plat moves (default 150).
197 lip: lip remaining at end of move (default 16). Has no effect if "height" is set.
198 height: if set, this will determine the total amount of vertical travel of the plat.
199 dmg: damage to inflict on player when he blocks operation of plat. Plat will reverse direction when blocked.
200 targetname: if set, the trigger that points to this will lower the plat each time it fires. The plat lowers and lifts someone up later.
201 sounds: 2 for alternate sound set, -1 for silence, or use the fields below
202 sound1: platform starts moving sound
203 sound2: platform stop sound
204 message: kill message, when someone gets killed by this plat
205 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
206 -------- SPAWNFLAGS --------
207 CRUSH: crush players hit by the platform instantly
208 -------- NOTES --------
209 By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
210 */
211
212 /*QUAKED func_rain (0 .5 .8) ? 
213 This is an invisible area like a trigger, which rain falls inside of.
214 -------- KEYS --------
215 velocity: falling direction (should be something like '0 0 -700', use the X and Y velocity for wind)
216 cnt: sets color of rain in the Quake palette (default 12 - white)
217 count: adjusts density, this many particles fall every second for a 1024x1024 area, default is 2000
218 */
219
220 /*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS
221 Brush entity that spins in place on one axis (default Z). Use an origin brush to specify the rotation axis.
222 To rotate around another axis, make a func_wall with an explicit avelocity given.
223 -------- KEYS --------
224 speed: speed to rotate (in degrees per second)
225 noise: path/name of looping .wav file to play.
226 dmg: Do this much dmg every .dmgtime interval when blocked
227 dmgtime: See above. (0.25s default)
228 message: kill message when crushed by this
229 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
230 -------- SPAWNFLAGS --------
231 X_AXIS: rotate around the X axis
232 Y_AXIS: rotate around the Y axis
233 */
234
235 /*QUAKED func_snow (0 .5 .8) ? 
236 This is an invisible area like a trigger, which snow falls inside of.
237 -------- KEYS --------
238 velocity: falling direction (should be something like '0 0 -300', use the X and Y velocity for wind)
239 cnt: sets color of snow in the Quake palette (default 12 - white)
240 count: adjusts density, this many particles fall every second for a 1024x1024 area, default is 2000
241 */
242
243 /*QUAKED func_stardust (.5 .5 .5) (-8 -8 -8) (8 8 8) 
244 Point entity with EF_STARDUST applied. This will spawn a particle cloud with mostly golden particles. Used as eye-candy.
245 */
246
247 /*QUAKED func_train (0 .5 .8) ? 
248 Trains are moving solids that follow a cycle of path_corner entities. Origin brushes are NOT supported; they use the "mins" corner as reference (that is, lowest x, y, and z coordinates).
249 At each node, the train's mins corner hits exactly the path_corner.
250 Trains always start on in the game.
251 Trains do not damage the played when blocked.
252 Trains cannot emit sound.
253 Trains are not trigger-able or toggle-able.
254 Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it.
255 -------- KEYS --------
256 speed: default/initial speed of train (default 100 or overridden by speed value of targeted path_corner)
257 target: targetname of first path_corner to move to at the default speed; ideally, this path_corner shall be exactly where the train starts
258 noise: path/name of .wav or .ogg file to play while moving. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
259 dmg: damage a player who gets crushed by it receives
260 dmgtime: interval to apply dmg to a player who is s in the way
261 message: death message when a player gets crushed
262 message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
263 */
264
265 /*QUAKED info_location (1 1 0) (-8 -8 -8) (8 8 8) 
266 Location for use by the %l escape in "say" messages.
267 The closest "visible" info_location entity is chosen to find the right location name for a point.
268 -------- KEYS --------
269 netname: name of location, possibly with color codes
270 */
271
272 /*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) 
273 Entity that does nothing, but may be targeted (e.g. to use its position)
274 -------- KEYS --------
275 targetname: must match the target key of entity that uses this for pointing.
276 */
277
278 /*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) 
279 Aiming target for q3map2-internal entities like _decal or light. Removes itself when loaded, so it can NOT be used for in-game stuff!
280 -------- KEYS --------
281 targetname: the entity that requires an aiming direction points to this.
282 */
283
284 /*QUAKED info_player_attacker (1 0.5 0) (-16 -16 -24) (16 16 45) 
285 Attacking team's player spawning location in Assault. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
286 -------- KEYS --------
287 target: this should point to a target_objective to decide when this spawning point is active.
288 target2: trigger all entities with this targetname when someone spawns
289 cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
290 restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
291 */
292
293 /*QUAKED info_player_deathmatch (0 1 0) (-16 -16 -24) (16 16 45) 
294 Normal player spawning location in game types without team spawns. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
295 -------- KEYS --------