]> de.git.xonotic.org Git - xonotic/xonotic-maps.pk3dir.git/blobdiff - scripts/entities.def
Merge remote-tracking branch 'origin/atheros/item_keys'
[xonotic/xonotic-maps.pk3dir.git] / scripts / entities.def
index 6572153f9eea0b0226778927c112775e99ab6de1..ecd86142633cbb175c263150f3bf949c8b6a903c 100644 (file)
@@ -7,6 +7,17 @@ angles: Individual control of PITCH, YAW, and ROLL (default 0 0 0).
 _scale: scaling factor (default 64), good values are between 50 and 300, depending on the map.
 */
 
+/*QUAKED _decal (1.0 0.77 0.88) ?
+Compiler-only entity that projects a surface (which must be a patch mesh) in a direction (which is given by the vector from the center of this entity to the "target" entity)
+-------- KEYS --------
+target: the entity to be targeted by the projection
+-------- NOTES --------
+This entity MUST contain one or more patch meshes.
+The shaders of these patches SHOULD have the "polygonoffset" shader keyword (or you will get insane z-fighting).
+The targeted entity is preferably an info_null.
+The projection is a linear projection, and originates from the center of this entity (the start of the arrow line in Radiant) to the origin of the targeted entity (the end of the arrow line in Radiant).
+*/
+
 /*QUAKED dom_controlpoint (.3 .3 1) (-16 -16 -16) (16 16 16) 
 Domination  control point
 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).
@@ -22,9 +33,13 @@ zbqry="zbqryf/qbzvangvba/qbz_hapynvzrq.zq3"
 /*QUAKED dom_team (.3 .3 1) (-16 -16 -16) (16 16 16) 
 Domination team.
 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).
+
+dom_team entites declare the teams (and the models the team uses) that are available in the domination game. Their position does not matter.
+
+model should be set to models/domination/dom_<team>.md3, where <team> is either "red", "blue", "yellow", or "pink".
 -------- KEYS --------
 netname: name of team (Red Team).  Set to "" or don't define for the required blank team.
-cnt: color of the team.  See the "Helpful Extras" section for info.
+cnt: color of the team.  See the "Helpful Extras" section in Docs/mapping.txt for info.
 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.
 noise: Sound to be played on the control point when it's captured.  Only players nearby will hear it.
 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")
@@ -83,6 +98,19 @@ X_AXIS: entity will bob along the X axis.
 Y_AXIS: entity will bob along the Y axis.
 */
 
+/*QUAKED func_pendulum (0 .5 .8) ?
+Solid entity that swings back and forth in an angular motion. Entity swings on the north-south direction by default (can be changed by using a different yaw angle).
+-------- KEYS --------
+speed: angle amount of the swinging
+freq: frequency (cycles per second) of the swinging (if unspecified, a physically "somewhat correct" value is calculated that matches Quake 3)
+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).
+noise: path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
+dmg: damage a player who gets crushed by it receives
+dmgtime: interval to apply dmg to a player who is s in the way
+message: death message when a player gets crushed
+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)
+*/
+
 /*QUAKED func_button (0 .5 .8) ? - - - - - - - - NOSPLASH
 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.
 -------- KEYS --------
@@ -91,7 +119,9 @@ target: all entities with a matching targetname will be triggered.
 target2: all entities with a matching targetname will be triggered.
 target3: all entities with a matching targetname will be triggered.
 target4: all entities with a matching targetname will be triggered.
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 speed: speed of button's displacement (default 40).
+platmovetype: movement type (1 = linear, 2 = cosine [default])
 wait: number of seconds button stays pressed (default 1, -1 = return immediately).
 lip: lip remaining at end of move (default 4 units).
 health: (default 0) if set to any non-zero value, the button must take damage (any amount) to activate.
@@ -99,7 +129,7 @@ health: (default 0) if set to any non-zero value, the button must take damage (a
 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
 */
 
-/*QUAKED func_door (0 .5 .8) ? START_OPEN - DOOR_DONT_LINK - - TOGGLE - - NOSPLASH
+/*QUAKED func_door (0 .5 .8) ? START_OPEN - DOOR_DONT_LINK GOLD_KEY SILVER_KEY TOGGLE - - NOSPLASH
 Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it.
 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).
 -------- KEYS --------
@@ -109,17 +139,23 @@ 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)
+platmovetype: movement type (1 = linear, 2 = cosine [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 (when triggered and someone is in the way)
 sounds: when 1, use default door sounds
 noise1: sound when the door opens
 noise2: sound when the door closes
+itemkeys: keys required to open this door.
 -------- SPAWNFLAGS --------
 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).
 DOOR_DONT_LINK: the door won't link with another door it touches
+GOLD_KEY: causes the door to open only if the activator holds a gold key (Q1 compatibility).
+SILVER_KEY: causes the door to open only if the activator holds a silver key (Q1 compatibility).
 TOGGLE: causes the door to wait in both the start and end states for a trigger event.
 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
+-------- NOTES --------
+More information about keys can be found in item_key description.
 */
 
 /*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN BIDIR DOOR_DONT_LINK BIDIR_IN_DOWN - TOGGLE X_AXIS Y_AXIS NOSPLASH
@@ -152,6 +188,7 @@ NOSPLASH: if set, splash damage cannot activate the door, only direct damage can
 /*QUAKED func_door_secret (0 .5 .8) ? OPEN_ONCE 1ST_LEFT 1ST_DOWN NO_SHOOT ALWAYS_SHOOT
 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.
 -------- KEYS --------
+platmovetype: movement type (1 = linear, 2 = cosine [default])
 wait: # of seconds before coming back
 key1: first entity key with one-line description
 key2: second entity key with one-line description
@@ -194,6 +231,7 @@ grab a trigger brush and put it in front of the part that you want the player to
 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.
 -------- KEYS --------
 speed: determines how fast the plat moves (default 150).
+platmovetype: movement type (1 = linear, 2 = cosine [default])
 lip: lip remaining at end of move (default 16). Has no effect if "height" is set.
 height: if set, this will determine the total amount of vertical travel of the plat.
 dmg: damage to inflict on player when he blocks operation of plat. Plat will reverse direction when blocked.
@@ -254,6 +292,7 @@ Trains are not trigger-able or toggle-able.
 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.
 -------- KEYS --------
 speed: default/initial speed of train (default 100 or overridden by speed value of targeted path_corner)
+platmovetype: movement type (1 = linear, 2 = cosine [default])
 target: targetname of first path_corner to move to at the default speed; ideally, this path_corner shall be exactly where the train starts
 noise: path/name of .wav or .ogg file to play while moving. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
 dmg: damage a player who gets crushed by it receives
@@ -286,6 +325,9 @@ Attacking team's player spawning location in Assault. Should touch the floor, bu
 -------- KEYS --------
 target: this should point to a target_objective to decide when this spawning point is active.
 target2: trigger all entities with this targetname when someone spawns
+target3: trigger all entities with this targetname when someone spawns
+target4: trigger all entities with this targetname when someone spawns
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 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.
 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)
 */
@@ -304,6 +346,9 @@ Defending team's player spawning location in Assault. Should touch the floor, bu
 -------- KEYS --------
 target: this should point to a target_objective to decide when this spawning point is active.
 target2: trigger all entities with this targetname when someone spawns
+target3: trigger all entities with this targetname when someone spawns
+target4: trigger all entities with this targetname when someone spawns
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 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.
 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)
 */
@@ -348,6 +393,7 @@ restriction: when 1, only bots can spawn here; when 2, only humans can spawn her
 Large Armor (default 100 armor points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 armorvalue: amount of armor it gives (default: 100 (g_pickup_armorlarge))
 max_armorvalue: max of armor it increases to (default: 999 (g_pickup_armorlarge_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -355,13 +401,14 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_a25.md3"
+modeldisabled="models/items/g_a25.md3"
 */
 
 /*QUAKED item_armor_big (.4 .8 .4) (-30 -30 0) (30 30 32) FLOATING
 Big Armor (default 50 armor points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 20)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 armorvalue: amount of armor it gives (default: 50 (g_pickup_armorlarge))
 max_armorvalue: max of armor it increases to (default: 999 (g_pickup_armorlarge_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -369,13 +416,14 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_a50.md3"
+modeldisabled="models/items/g_a50.md3"
 */
 
 /*QUAKED item_armor_medium (.4 .8 .4) (-30 -30 0) (30 30 32) FLOATING
 Medium Armor (default 25 armor points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 20)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 armorvalue: amount of armor it gives (default: 25 (g_pickup_armormedium))
 max_armorvalue: max of armor it increases to (default: 999 (g_pickup_armormedium_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -383,13 +431,14 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_armormedium.md3"
+modeldisabled="models/items/g_armormedium.md3"
 */
 
 /*QUAKED item_armor_small (.4 .8 .4) (-30 -30 0) (30 30 32) FLOATING
 Small Armor (default 5 armor points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 armorvalue: amount of armor it gives (default: 5 (g_pickup_armorsmall))
 max_armorvalue: max of armor it increases to (default: 999 (g_pickup_armorsmall_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -397,7 +446,7 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_a1.md3"
+modeldisabled="models/items/g_a1.md3"
 */
 
 /*QUAKED item_bullets (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -405,12 +454,13 @@ Machine Gun ammo
 -------- KEYS --------
 ammo_nails: bullets gained by this item (if unset, g_pickup_nails is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/a_bullets.md3"
+modeldisabled="models/items/a_bullets.md3"
 */
 
 /*QUAKED item_cells (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -418,12 +468,13 @@ Nex, Electro and Crylink ammo
 -------- KEYS --------
 ammo_cells: cells gained by this item (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/a_cells.md3"
+modeldisabled="models/items/a_cells.md3"
 */
 
 /*QUAKED item_flag_team1 (1 0 0) (-32 -32 0) (32 32 74) 
@@ -456,6 +507,7 @@ zbqry="zbqryf/pgs/enqvnag/synt_oyhr_enqvnag.zq3"
 Large Health (default 50 health points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 20)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 health: amount of health it gives (default: 50 (g_pickup_healthlarge))
 max_health: max of health it increases to (default: 999 (g_pickup_healthlarge_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -463,13 +515,14 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_h50.md3"
+modeldisabled="models/items/g_h50.md3"
 */
 
 /*QUAKED item_health_medium (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
 Medium Health (default 25 health points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 health: amount of health it gives (default: 25 (g_pickup_healthmedium))
 max_health: max of health it increases to (default: 999 (g_pickup_healthmedium_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -477,7 +530,7 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_h25.md3"
+modeldisabled="models/items/g_h25.md3"
 */
 
 /*QUAKED item_health_mega (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
@@ -485,6 +538,7 @@ Mega Health (default 100 health points)
 In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
 -------- KEYS --------
 respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 health: amount of health it gives (default: 100 (g_pickup_healthmega))
 max_health: max of health it increases to (default: 999 (g_pickup_healthmega_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -492,13 +546,14 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_h100.md3"
+modeldisabled="models/items/g_h100.md3"
 */
 
 /*QUAKED item_health_small (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
 Small Health (default 5 health points)
 -------- KEYS --------
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 health: amount of health it gives (default: 5 (g_pickup_healthsmall))
 max_health: max of health it increases to (default: 5 (g_pickup_healthsmall_max))
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
@@ -506,7 +561,7 @@ cnt: weight of this item for random selection using "team". Set to a lower value
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_h1.md3"
+modeldisabled="models/items/g_h1.md3"
 */
 
 /*QUAKED item_invincible (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
@@ -514,12 +569,66 @@ Strong Shield
 In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
 -------- KEYS --------
 respawntime: time till it respawns (default: 120)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_invincible.md3"
+modeldisabled="models/items/g_invincible.md3"
+*/
+
+/*QUAKED item_key (0 .5 .8) (-16 -16 -24) (16 16 32) FLOATING
+A key entity.
+The itemkeys should contain one of the following key IDs:
+1 - GOLD key - 
+2 - SILVER key
+4 - BRONZE key
+8 - RED keycard
+16 - BLUE keycard
+32 - GREEN keycard
+Custom keys:
+... - last key is 1<<23
+Keys with bigger Id than 32 don't have a default netname and model, if you use one of them, you MUST provide those.
+-----------KEYS------------
+colormod: color of the key (default: '.9 .9 .9').
+itemkeys: a key Id.
+message: message to print when player picks up this key.
+model: custom key model to use.
+netname: the display name of the key.
+noise: custom sound to play when player picks up the key.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+---------NOTES----------
+This is the only correct way to put keys on the map!
+
+itemkeys MUST always have exactly one bit set.
+*/
+
+/*QUAKED item_key1 (0 .5 .8) (-16 -16 -24) (16 16 32) FLOATING
+SILVER key.
+-----------KEYS------------
+colormod: color of the key (default: '.9 .9 .9').
+message: message to print when player picks up this key.
+model: custom model to use.
+noise: custom sound to play when player picks up the key.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+---------NOTES----------
+Don't use this entity on new maps! Use item_key instead.
+*/
+
+/*QUAKED item_key2 (0 .5 .8) (-16 -16 -24) (16 16 32) FLOATING
+GOLD key.
+-----------KEYS------------
+colormod: color of the key (default: '1 .9 0').
+message: message to print when player picks up this key.
+model: custom model to use.
+noise: custom sound to play when player picks up the key.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+---------NOTES----------
+Don't use this entity on new maps! Use item_key instead.
 */
 
 /*QUAKED item_minst_cells (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -528,12 +637,13 @@ Always contains 5 (g_minstagib_ammo_drop) shots.
 It only appears when playing Minstagib and prevents auto-replacement of weapon_nex & weapon_rocketlauncher when used.
 -------- KEYS --------
 respawntime: time till it respawns (default: 45)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/a_cells.md3"
+modeldisabled="models/items/a_cells.md3"
 */
 
 /*QUAKED item_rockets (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -541,12 +651,13 @@ Rocket Launcher, Hagar and Mortar ammo
 -------- KEYS --------
 ammo_rockets: rockets gained by this item (if unset, g_pickup_rockets is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/a_rockets.md3"
+modeldisabled="models/items/a_rockets.md3"
 */
 
 /*QUAKED item_shells (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -554,12 +665,13 @@ Shotgun ammo
 -------- KEYS --------
 ammo_shells: shells gained by this item (if unset, g_pickup_shells is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/a_shells.md3"
+modeldisabled="models/items/a_shells.md3"
 */
 
 /*QUAKED item_strength (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
@@ -567,12 +679,13 @@ Strength aka Quad damage
 In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
 -------- KEYS --------
 respawntime: time till it respawns (default: 120)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_strength.md3"
+modeldisabled="models/items/g_strength.md3"
 */
 
 /*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE - - NOGRIDLIGHT
@@ -618,7 +731,7 @@ LINEAR: Use a linear falloff. Default is inverse distance squared (more realisti
 NOANGLE: Ignore angle attenuation.
 */
 
-/*QUAKED misc_laser (.5 .5 .5) (-8 -8 -8) (8 8 8) START_ON FINITE
+/*QUAKED misc_laser (.5 .5 .5) (-8 -8 -8) (8 8 8) START_ON FINITE NOTRACE INVERT_TEAM
 Laser beam emitter. Note that for the laser to be deadly, it has to start OUTSIDE the player's collision box. To ensure this, you may want to put this entity inside the walls (or directly on their surface), or cover it with a playerclip brush.
 -------- KEYS --------
 target: target_position the laser targets (may be another entity, preferably target_position, possibly controlled by misc_follow)
@@ -629,9 +742,12 @@ targetname: name to target this (then its state is toggled)
 alpha: when set, makes a dark laser of the given strength; may be combined with colormod
 scale: scales the beam thickness (default 1)
 modelscale: scales the dynamic light radius at the endpoint (default 1, -1 to turn off)
+team: team that gets hurt (5 = red, 14 = blue, etc) (when set, only this team can get hurt)
 -------- SPAWNFLAGS --------
 START_ON: when targeted, the laser will start switched on
 FINITE: the laser does not extend over its target like light would do, but stops there (takes more bandwidth)
+NOTRACE: the laser passes through solid (faster rendering on clientside); non-FINITE lasers then never display their impact effect "mdl"!
+INVERT_TEAM: the team that owns this will NOT get hurt
 -------- NOTES --------
 Use trigger_monoflop if you want the laser to turn off for a while, then turn back on.
 When the laser's target has itself target set, its targets are triggered when someone enters or leaves the laser.
@@ -642,6 +758,7 @@ Generic placeholder for inserting MD3 models in game. Requires compilation of ma
 -------- Q3MAP2 KEYS --------
 model: file name of model to include
 _frame: frame of model to include
+_skin: skin of model to include
 _remap: string of the form from;to specifying which texture name of the model to replace by which shader; * is allowed. Any key starting with this prefix will work, so if you need more remappings, create _remap2, etc.
 angle: view direction of the model
 angles: view direction of the model in PITCH YAW ROLL
@@ -688,12 +805,12 @@ anglejitter: a float describing a random yaw angle change on this entity on init
 gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
 cvarfilter: either a + sign and a space separated list of conditions, or a - sign and the same for an inverted filter. The conditions are ALWAYS combined with AND! Possible conditions are: "cvar==value", "cvar!=value", "cvar<value", "cvar>value", "cvar<=value", "cvar>=value", "cvar===string", "cvar!==string", "cvar", "!cvar". Ridiculous example filter: "-g_balance_health_start<150 g_balance_armor_start==0" spawns an item only if start health is at least 150 or start armor is not 0. Other ideas: "+g_campaign" and "-g_campaign" for enabling/disabling items when the map is played as part of the campaign.
 -------- SPAWNFLAGS --------
-ALIGN_ORIGN: align the origin to the surface below the model
+ALIGN_ORIGIN: align the origin to the surface below the model
 ALIGN_BOTTOM: align the bottom of the model to the surface below it
 */
 
 /*QUAKED func_illusionary (0 .5 .8) ? 
-NOTE: THIS ENTITY IS BROKEN REGARDING CLIENT AND PROJECTILE PREDICTION. DO NOT USE IT. USE NONSOLID SHADERS OR FUNC_CLIENTILLUSIONARY INSTEAD.
+NOTE - THIS ENTITY IS BROKEN REGARDING CLIENT AND PROJECTILE PREDICTION. DO NOT USE IT. USE NONSOLID SHADERS OR FUNC_CLIENTILLUSIONARY INSTEAD.
 A non-solid brush entity. Use func_wall if you want it solid.
 The keys below actually apply to most brush entities as they are engine features; however, they are described here as they aren't overridden by game code in misc_models. Its q3map2 keys below will work on any brush entity!
 -------- KEYS --------
@@ -776,7 +893,7 @@ anglesjitter: a vector in the order "pitch yaw roll" describing a random angles
 anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
 gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
 -------- SPAWNFLAGS --------
-ALIGN_ORIGN: align the origin to the surface below the model
+ALIGN_ORIGIN: align the origin to the surface below the model
 ALIGN_BOTTOM: align the bottom of the model to the surface below it
 */
 
@@ -810,7 +927,7 @@ _celshader: Sets the cel shader used for this geometry. Note: omit the "textures
 */
 
 /*QUAKED func_clientwall (0 .5 .8) ? 
-NOTE: THIS ENTITY IS IN MOST USE CASES BROKEN REGARDING CLIENT AND PROJECTILE PREDICTION. DO NOT USE IT. USE FUNC_WALL INSTEAD.
+NOTE - THIS ENTITY IS IN MOST USE CASES BROKEN REGARDING CLIENT AND PROJECTILE PREDICTION. DO NOT USE IT. USE FUNC_WALL INSTEAD.
 A client-side solid brush entity. Use func_clientillusionary if you want it non-solid.
 -------- KEYS --------
 solid: solidity: one of 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE (default: 4, any other value causes prediction problems and should not be used until further notice)
@@ -845,6 +962,10 @@ Teleport destination location point for trigger_teleport entities. Do not let it
 -------- KEYS --------
 targetname: make the trigger_teleporter point to this.
 target: target to activate when a teleporter targeting this is used
+target2: target to activate when a teleporter targeting this is used
+target3: target to activate when a teleporter targeting this is used
+target4: target to activate when a teleporter targeting this is used
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 angle: direction in which player will look when teleported, OR use
 angles: pitch and yaw when coming out of the teleporter (also specifies the direction the player will aim when coming out)
 cnt: weight for random selection, in case a teleporter points at multiple misc_teleporter_dest
@@ -860,7 +981,7 @@ target: target any entities that are tied to this control point, such as vehicle
 message: name of this control point (should reflect the location in the map, such as "center bridge", "north tower", etc)
 */
 
-/*QUAKED onslaught_generator (0 .5 .8) (-32 -32 -24) (32 32 64
+/*QUAKED onslaught_generator (0 .5 .8) (-52 -52 -14) (52 52 75
 Base generator.
 
 onslaught_link entities can target this.
@@ -883,6 +1004,10 @@ Path corner entity that func_train will follow.
 All path_corner entities of a train have to connect in a circular manner, while the func_train shall point to one of the path_corners (ideally the one at the train's starting point)
 -------- KEYS --------
 target: point to next path_corner in the path.
+target2: triggered when a func_train stops at this target
+target3: triggered when a func_train stops at this target
+target4: triggered when a func_train stops at this target
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 targetname: the train following the path or the previous path_corner in the path points to this.
 speed: speed of func_train while moving to this path corner. If unset, the value from the func_train will be used.
 wait: number of seconds func_train will pause on this path corner before moving to next path corner (default: 0.1; to not wait, set this to -1
@@ -908,6 +1033,7 @@ target: targetname of entities to be enabled/triggered on round start (e.g. the
 target2: targetname of entities to be enabled/triggered on round start (e.g. the func_assault_destructibles targeting the target_objective)
 target3: targetname of entities to be enabled/triggered on round start
 target4: targetname of entities to be enabled/triggered on round start
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 */
 
 /*QUAKED target_objective (.5 0 .5) (-8 -8 -8) (8 8 8) 
@@ -917,6 +1043,7 @@ target: targetname of entities to be enabled/triggered on objective fulfilling (
 target2: targetname of entities to be enabled/triggered on objective fulfilling (e.g. the func_assault_destructibles targeting the target_objective)
 target3: targetname of entities to be enabled/triggered on objective fulfilling
 target4: targetname of entities to be enabled/triggered on objective fulfilling
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 targetname: targetname for this entity so it can be triggered by other entities.
 */
 
@@ -936,15 +1063,21 @@ targetname: the entity that requires an aiming direction points to this.
 target: target to activate when a jumppad targeting this is used
 */
 
-/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) 
+/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR
 Sound generating entity that plays sound files.
 If targeted, it plays the sound file every time when triggered.
 If not targeted, it loops the sound file as an ambient noise.
+The sound name may also be of the form *soundname, and in that case the respective player sound is played
 -------- KEYS --------
 noise: path/name of .wav/.ogg file to play
 targetname: the activating button or trigger points to this.
 atten: distance attenuation of the sound (a value from 0.1 to 3.9), default is 0.5 if targeted, 3 otherwise; set to -1 for no attenuation (global sound)
 volume: volume of the sound
+-------- SPAWNFLAGS --------
+LOOPED_ON: the sound is looped and initially plays (the sound file MUST have the LOOP_START vorbis comment then!). It can be toggled by a trigger.
+LOOPED_OFF: the sound is looped and initially does not play (the sound file MUST have the LOOP_START vorbis comment then!). It can be toggled by a trigger.
+GLOBAL: the sound plays with no attenuation (same as setting atten to -1)
+ACTIVATOR: the sound is played to the activator only when triggered (cannot be combined with LOOPED_ON and LOOPED_OFF)
 */
 
 /*QUAKED trigger_counter (.5 .5 .5) ? NOMESSAGE
@@ -971,13 +1104,17 @@ message: print this message to the player who activated the trigger
 killtarget: remove all entities with this targetname when triggered
 */
 
-/*QUAKED trigger_hurt (.5 .5 .5) ? 
+/*QUAKED trigger_hurt (.5 .5 .5) ? - - INVERT_TEAM
 Any object touching this will be hurt.
 Has the useful effect of automatically returning flags, keys and runes when they touch it.
 -------- KEYS --------
 dmg: amount of damage to deal (default: 1000)
 message: kill message when someone gets killed by this (default: "was in the wrong place")
 message2: kill 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)
+team: team that gets hurt (5 = red, 14 = blue, etc) (when set, only this team can get hurt)
+targetname: if triggered using this target name, the activator will be the one who gets the frag awarded for hurting someone using this trigger (hint: The Frag Pipe)
+-------- SPAWNFLAGS --------
+INVERT_TEAM: the team that owns this will NOT jump when touching this
 */
 
 /*QUAKED trigger_impulse (.5 .5 .5) ? 
@@ -993,7 +1130,27 @@ strength: "wind field", "gravity field": amount of force per second to apply. "d
 falloff: "gravity field": 0 means no falloff, 1 means linear falloff (zero at the outside), 2 means inverted linear falloff (zero at the inside)
 */
 
-/*QUAKED trigger_multiple (.5 .5 .5) ? NOTOUCH ALLENTS - - - - - - NOSPLASH
+/*QUAKED trigger_keylock (.0 .5 .8) ?
+Keylock trigger.  Must target other entities.
+This trigger will trigger target entities when all required keys are provided.
+-------- KEYS --------
+itemkeys: A bit field with key IDs that are needed to open this lock.
+sounds: 1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav (3 is default)
+target: trigger all entities with this targetname when triggered and all keys have been given to it, then remove this trigger
+target2: trigger all entities with this targetname when triggered without giving it all the required keys.
+killtarget: remove all entities with this targetname when triggered with all the needed keys.
+message: print this message to the player who activated the trigger when all needed keys have been given.
+message2: print this message to the player who activated the trigger when not all of the needed keys have been given.
+noise: sound to play when lock gets unlocked (default: see sounds)
+noise1: sound to play when only some of the needed key were used but not all (default: misc/decreasevalue.wav)
+noise2: sound to play when a key is missing (default: misc/talk.wav)
+wait: prevent triggering again for this amount of time (default: 5) - applies to target2, target3, target4.
+---------NOTES----------
+If spawned without any key specified in itemkeys, this trigger will display an error and remove itself.
+message2 and noise2 will be resent to the player every 2 seconds while he is in the trigger zone.
+*/
+
+/*QUAKED trigger_multiple (.5 .5 .5) ? NOTOUCH ALLENTS INVERT_TEAM - - - - - NOSPLASH
 Variable sized repeatable trigger.  Must be targeted at one or more entities.  If "health" is set, the trigger must be killed to activate each time.
 -------- KEYS --------
 health: amount of damage that has to be dealt to the trigger to activate (it then won't respond to merely touching it)
@@ -1004,13 +1161,16 @@ target: trigger all entities with this targetname when triggered
 target2: trigger all entities with this targetname when triggered
 target3: trigger all entities with this targetname when triggered
 target4: trigger all entities with this targetname when triggered
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 targetname: name that identifies this entity so it can be triggered
 delay: delay the triggering by the given time
 message: print this message to the player who activated the trigger
 killtarget: remove all entities with this targetname when triggered
+team: team that owns this trigger (5 = red, 14 = blue, etc) (when set, only this team can trigger)
 -------- SPAWNFLAGS --------
 NOTOUCH: the trigger can only be triggered by other entities, not by touching or firing (you should probably use trigger_relay or trigger_delay instead)
 ALLENTS: the trigger responds to all entities, not just players (useful for targetting trigger_items)
+INVERT_TEAM: the team that owns the trigger will NOT trigger when touching this
 NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
 */
 
@@ -1058,6 +1218,7 @@ target: trigger all entities with this targetname when triggered
 target2: trigger all entities with this targetname when triggered
 target3: trigger all entities with this targetname when triggered
 target4: trigger all entities with this targetname when triggered
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 targetname: name that identifies this entity so it can be triggered
 delay: delay the triggering by the given time
 message: print this message to the player who activated the trigger
@@ -1077,6 +1238,10 @@ Touching this will teleport players to the location of the targeted misc_telepor
 Note that in Xonotic, teleporters preserve momentum of the player using them.
 -------- KEYS --------
 target: this must point to a misc_teleporter_dest entity. If it points to more than one, a destination is randomly selected on teleport.
+target2: target to activate when the teleporter is used
+target3: target to activate when the teleporter is used
+target4: target to activate when the teleporter is used
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 team: team that owns this teleporter (5 = red, 14 = blue, etc) (when set, only this team can teleport)
 targetname: when targeted by a func_button, pressing the button will reassign the teleporter to the team of the activator.
 -------- SPAWNFLAGS --------
@@ -1088,12 +1253,13 @@ the Crylink
 -------- KEYS --------
 ammo_cells: initial cells of the weapon (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_crylink.md3"
+modeldisabled="models/weapons/g_crylink.md3"
 */
 
 /*QUAKED weapon_electro (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1101,12 +1267,13 @@ the Electro
 -------- KEYS --------
 ammo_cells: initial cells of the weapon (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_electro.md3"
+modeldisabled="models/weapons/g_electro.md3"
 */
 
 /*QUAKED weapon_grenadelauncher (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1114,12 +1281,13 @@ the Mortar
 -------- KEYS --------
 ammo_rockets: initial rockets of the weapon (if unset, g_pickup_rockets is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_gl.md3"
+modeldisabled="models/weapons/g_gl.md3"
 */
 
 /*QUAKED weapon_hagar (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1127,12 +1295,13 @@ the Hagar
 -------- KEYS --------
 ammo_rockets: initial rockets of the weapon (if unset, g_pickup_rockets is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_hagar.md3"
+modeldisabled="models/weapons/g_hagar.md3"
 */
 
 /*QUAKED weapon_laser (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1141,12 +1310,13 @@ the Laser. Note that unless you use
 in your mapinfo file, everyone will already spawn with one, making this pickup useless.
 -------- KEYS --------
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_laser.md3"
+modeldisabled="models/weapons/g_laser.md3"
 */
 
 /*QUAKED weapon_nex (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1155,12 +1325,13 @@ In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cell
 -------- KEYS --------
 ammo_cells: initial cells of the weapon (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 15 * g_balance_nex_respawntime_modifier)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_nex.md3"
+modeldisabled="models/weapons/g_nex.md3"
 */
 
 /*QUAKED weapon_rocketlauncher (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1169,12 +1340,13 @@ In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cell
 -------- KEYS --------
 ammo_rockets: initial rockets of the weapon (if unset, g_pickup_rockets is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_rl.md3"
+modeldisabled="models/weapons/g_rl.md3"
 */
 
 /*QUAKED weapon_shotgun (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1184,12 +1356,13 @@ in your mapinfo file, everyone will already spawn with one, making this pickup u
 -------- KEYS --------
 ammo_shells: initial shells of the weapon (if unset, g_pickup_shells is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_shotgun.md3"
+modeldisabled="models/weapons/g_shotgun.md3"
 */
 
 /*QUAKED weapon_uzi (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1197,19 +1370,20 @@ the Machine Gun
 -------- KEYS --------
 ammo_nails: initial bullets of the weapon (if unset, g_pickup_nails is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_uzi.md3"
+modeldisabled="models/weapons/g_uzi.md3"
 */
 
 /*QUAKED worldspawn (0 0 0) ? 
 The world.
 If you see this, the currently selected brush is not of an entity.
--------- KEYS --------
-fog: fog parameters of the map (density red green blue alpha mindist maxdist); works just like the "fog" console command
+-------- KEYS --------         
+fog: fog parameters of the map (density red green blue alpha mindist maxdist maxheight fade-height); works just like the "fog" console command
 author: name of the author of the map, if not specified in "message". Will get copied to the "author" entry of the mapinfo file when none is present.
 message: text to print at user logon. Used for name of level. Ideally: "NAMEOFLEVEL by AUTHOR". Will get copied to the "title" and "author" entries of the mapinfo file when none is present.
 _description: one-line description of the map. Will get copied to the "description" entry of the mapinfo file when none is present.
@@ -1263,12 +1437,15 @@ NOTE for race_place: when the race starts after the qualifying, the player with
 -------- KEYS --------
 target: this should point to a trigger_race_checkpoint to decide when this spawning point is active. The checkpoint has to be AFTER this spawn.
 target2: trigger all entities with this targetname when someone spawns
+target3: trigger all entities with this targetname when someone spawns
+target4: trigger all entities with this targetname when someone spawns
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 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.
 race_place: if target points to the trigger_race_checkpoint with cnt 0 (finish line), this sets which place the spawn corresponds to; the special value 0 stands for spawns for players who died in game, and -1 marks the spawnpoint for qualifying mode only; any race map must have spawnpoints with race_place being 1, 2, 3 or it gets marked as a frustrating map
 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)
 */
 
-/*QUAKED func_pointparticles (.5 .5 .5) ? START_ON IMPULSE
+/*QUAKED func_pointparticles (.5 .5 .5) ? START_ON IMPULSE VISCULLING
 A brush that emits particles.
 -------- KEYS --------
 mdl: particle effect name from effectinfo.txt
@@ -1289,6 +1466,7 @@ bgmscriptrelease: release time of the effect strength (0 to 3.9)
 -------- SPAWNFLAGS --------
 START_ON: when targeted, the particle emitter will start switched on
 IMPULSE: only send the full amount of impulse particles when the entity is triggered
+VISCULLING: only emit particles if the emitter brush is in the current PVS
 -------- NOTES --------
 Use trigger_monoflop if you want the particles to turn off for a while, then turn back on.
 A BGM script is a .bgs file named like the map, in the maps directory. Its format is lines of the form
@@ -1337,6 +1515,7 @@ target: trigger all entities with this targetname when starting the game
 target2: trigger all entities with this targetname when starting the game
 target3: trigger all entities with this targetname when starting the game
 target4: trigger all entities with this targetname when starting the game
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 wait: wait so many seconds before triggering
 */
 
@@ -1358,12 +1537,13 @@ the MinstaGib Nex. Always kills with one shot.
 -------- KEYS --------
 ammo_cells: initial cells of the weapon (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_minstanex.md3"
+modeldisabled="models/weapons/g_minstanex.md3"
 */
 
 /*QUAKED weapon_porto (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1371,12 +1551,13 @@ the Port-O-Launch. Only can be shot once.
 Portals cannot be made on noimpact surfaces, and the portal missile will bounce on slick surfaces.
 -------- KEYS --------
 respawntime: time till it respawns (default: 120)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_porto.md3"
+modeldisabled="models/weapons/g_porto.md3"
 */
 
 /*QUAKED target_items (0 0 1) (-8 -8 -8) (8 8 8) AND OR ANDNOT
@@ -1443,6 +1624,44 @@ target4: reference entity (can be used as $target4)
 ONLOAD: create a first entity on map load
 */
 
+/*QUAKED misc_breakablemodel (1 0 0) ? DISABLED INDICATE - - - - - - NOSPLASH
+This is a model which can be damaged.
+Once all health is consumed it'll disappear and trigger the targeted entity/entities.
+When triggered, it resets to full health, and unbreaks.
+-------- KEYS --------
+model: file name of model to include
+health: The damage this trigger can take
+target: The entity/entities to be triggered once this entity gets invisible
+targetname: The name other entities can use to target this entity
+mdl: particle effect name to show when destroyed
+count: particle effect multiplier
+mdl_dead: optional replacement model to show when destroyed
+debris: names of debris models to show when destroyed, separated by spaces
+noise: sound to play when destroyed
+dmg: damage to deal to the environment when destroyed
+dmg_edge: edge damage to deal to the environment when destroyed
+dmg_radius: damage radius
+dmg_force: damage force
+message: death message when a player gets hit by the explosion
+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)
+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
+debrissolid: solidity of the debris: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE
+debrisvelocity: initial velocity vector of the debris (static part)
+debrisvelocityjitter: initial velocity vector of the debris (random part)
+debrisavelocityjitter: initial angular velocity vector of the debris (random part)
+debristime: time till the debris fades (average)
+debristimejitter: time till the debris fades (random part)
+debrisfadetime: how long debris takes to fade
+debrisdamageforcescale: how much debris is affected by damage force (e.g. explosions)
+debrisskin: skin number of debris
+respawntime: time till it respawns (default: no auto respawn)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
+-------- SPAWNFLAGS --------
+DISABLED: do not allow damaging this until it is first activated
+INDICATE: indicate amount of damage already taken by coloring
+NOSPLASH: if set, splash damage cannot activate the door, only direct damage can (requires health to be set)
+*/
+
 /*QUAKED func_breakable (1 0 0) ? DISABLED INDICATE - - - - - - NOSPLASH
 This is a brush model which can be damaged.
 Once all health is consumed it'll disappear and trigger the targeted entity/entities.
@@ -1472,6 +1691,8 @@ debristimejitter: time till the debris fades (random part)
 debrisfadetime: how long debris takes to fade
 debrisdamageforcescale: how much debris is affected by damage force (e.g. explosions)
 debrisskin: skin number of debris
+respawntime: time till it respawns (default: no auto respawn)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 -------- SPAWNFLAGS --------
 DISABLED: do not allow damaging this until it is first activated
 INDICATE: indicate amount of damage already taken by coloring
@@ -1495,12 +1716,27 @@ the Heavy Laser Assault Cannon.
 -------- KEYS --------
 ammo_cells: initial cells of the weapon (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+modeldisabled="models/weapons/g_hlac.md3"
+*/
+
+/*QUAKED weapon_minelayer (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
+the Mine Layer.
+-------- KEYS --------
+ammo_rockets: initial rockets of the weapon (if unset, g_pickup_rockets is used)
+respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_hlac.md3"
+modeldisabled="models/weapons/g_minelayer.md3"
 */
 
 /*QUAKED weapon_seeker (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1509,12 +1745,13 @@ the T.A.G. Seeker.
 -------- KEYS --------
 ammo_rockets: initial rockets of the weapon (if unset, g_pickup_rockets is used)
 respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_seeker.md3"
+modeldisabled="models/weapons/g_seeker.md3"
 */
 
 /*QUAKED weapon_hook (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1522,12 +1759,13 @@ the on-hand Grappling Hook.
 -------- KEYS --------
 ammo_cells: initial cells of the weapon (if unset, g_pickup_cells is used)
 respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_hookgun.md3"
+modeldisabled="models/weapons/g_hookgun.md3"
 */
 
 /*QUAKED trigger_heal (.5 .5 .5) ?
@@ -1538,17 +1776,18 @@ max_health: max health this trigger will give (default 200)
 noise: sound file to play (use misc/null.wav to make it silent), default = item_health_medium sound
 */
 
-/*QUAKED weapon_campingrifle (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
-the Camping Rifle.
+/*QUAKED weapon_rifle (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
+the Sniper Rifle.
 -------- KEYS --------
 ammo_nails: initial bullets of the weapon (if unset, g_pickup_nails is used)
 respawntime: time till it respawns (default: 30)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_campingrifle.md3"
+modeldisabled="models/weapons/g_campingrifle.md3"
 */
 
 /*QUAKED func_fourier (0 .5 .8) ?
@@ -1565,7 +1804,7 @@ message2: death message when someone gets pushed into this (default: "was thrown
 netname: list of <frequencymultiplier> <phase> <x> <y> <z> quadruples, separated by spaces; note that phase 0 represents a sine wave, and phase 0.25 a cosine wave (by default, it uses 1 0 0 0 1, to match func_bobbing's defaults
 */
 
-/*QUAKED func_vectormamamam (0 .5 .8) ? PROJECT_ON_TARGETNORMAL TARGET2NORMAL_IS_DIRECTION TARGET3NORMAL_IS_DIRECTION TARGET4NORMAL_IS_DIRECTION
+/*QUAKED func_vectormamamam (0 .5 .8) ? PROJECT_ON_TARGETNORMAL PROJECT_ON_TARGET2NORMAL PROJECT_ON_TARGET3NORMAL PROJECT_ON_TARGET4NORMAL
 Solid entity that moves according to the movement of multiple given entities (max 4)
 -------- KEYS --------
 target: first reference entity
@@ -1599,6 +1838,7 @@ target: trigger all entities with this targetname when triggered
 target2: trigger all entities with this targetname when triggered
 target3: trigger all entities with this targetname when triggered
 target4: trigger all entities with this targetname when triggered
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 targetname: name that identifies this entity so it can be triggered
 delay: delay the triggering by the given time
 message: print this message to the player who activated the trigger
@@ -1616,7 +1856,7 @@ target: disable/enable all relays with this targetname when triggered
 targetname: name that identifies this entity so it can be triggered
 */
 
-/*QUAKED nexball_redgoal (1 0 0) ?
+/*QUAKED nexball_redgoal (1 0 0) ? GOAL_TOUCHPLAYER
 Red goal. Defended by the red team.
 -------- KEYS --------
 noise: sound played when a point is scored
@@ -1624,7 +1864,7 @@ noise: sound played when a point is scored
 GOAL_TOUCHPLAYER: The trigger also affects ball-carrying players (the ball is then auto-dropped)
 */
 
-/*QUAKED nexball_bluegoal (0 0 1) ?
+/*QUAKED nexball_bluegoal (0 0 1) ? GOAL_TOUCHPLAYER
 Blue goal. Defended by the blue team.
 -------- KEYS --------
 noise: sound played when a point is scored
@@ -1632,7 +1872,7 @@ noise: sound played when a point is scored
 GOAL_TOUCHPLAYER: The trigger also affects ball-carrying players (the ball is then auto-dropped)
 */
 
-/*QUAKED nexball_yellowgoal (1 1 0) ?
+/*QUAKED nexball_yellowgoal (1 1 0) ? GOAL_TOUCHPLAYER
 Yellow goal. Defended by the yellow team. Needs both red and blue goals on the map to work.
 -------- KEYS --------
 noise: sound played when a point is scored
@@ -1640,7 +1880,7 @@ noise: sound played when a point is scored
 GOAL_TOUCHPLAYER: The trigger also affects ball-carrying players (the ball is then auto-dropped)
 */
 
-/*QUAKED nexball_pinkgoal (1 0 1) ?
+/*QUAKED nexball_pinkgoal (1 0 1) ? GOAL_TOUCHPLAYER
 Pink goal. Defended by the pink team. Needs red, blue and yellow goals on the map to work.
 -------- KEYS --------
 noise: sound played when a point is scored
@@ -1649,7 +1889,7 @@ GOAL_TOUCHPLAYER: The trigger also affects ball-carrying players (the ball is th
 */
 
 
-/*QUAKED nexball_fault (0.6 0.1 0) ?
+/*QUAKED nexball_fault (0.6 0.1 0) ? GOAL_TOUCHPLAYER
 This acts as a goal that always gives points to the opposing team.
 -------- KEYS --------
 noise: sound played when a point is scored
@@ -1657,7 +1897,7 @@ noise: sound played when a point is scored
 GOAL_TOUCHPLAYER: The trigger also affects ball-carrying players (the ball is then auto-dropped)
 */
 
-/*QUAKED nexball_out (0.1 0.6 0) ?
+/*QUAKED nexball_out (0.1 0.6 0) ? GOAL_TOUCHPLAYER
 When the ball touches this, it is returned.
 -------- KEYS --------
 noise: sound played when a point is scored
@@ -1689,24 +1929,26 @@ Jetpack fuel
 -------- KEYS --------
 ammo_fuel: fuel units gained by this item (if unset, g_pickup_fuel is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_fuel.md3"
+modeldisabled="models/items/g_fuel.md3"
 */
 
 /*QUAKED item_fuel_regen (1 .3 1) (-30 -30 0) (30 30 48) FLOATING
 Fuel regenerator
 -------- KEYS --------
 respawntime: time till it respawns (default: 120)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_fuelregen.md3"
+modeldisabled="models/items/g_fuelregen.md3"
 */
 
 /*QUAKED item_jetpack (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
@@ -1714,12 +1956,13 @@ Jetpack
 -------- KEYS --------
 ammo_fuel: fuel units gained by this item (if unset, g_pickup_fuel_jetpack is used)
 respawntime: time till it respawns (default: 120)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/items/g_jetpack.md3"
+modeldisabled="models/items/g_jetpack.md3"
 */
 
 /*QUAKED trigger_magicear (0 0 1) (-8 -8 -8) (8 8 8) IGNORE_SAY IGNORE_TEAMSAY IGNORE_TELL IGNORE_INVALIDTELL REPLACE_WHOLE_MESSAGE REPLACE_OUTSIDE CONTINUE NODECOLORIZE
@@ -1732,6 +1975,7 @@ target: all entities with a matching targetname will be triggered.
 target2: all entities with a matching targetname will be triggered.
 target3: all entities with a matching targetname will be triggered.
 target4: all entities with a matching targetname will be triggered.
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
 -------- SPAWNFLAGS --------
 IGNORE_SAY: do not respond to "say" messages
 IGNORE_TEAMSAY: do not respond to "say_team" messages
@@ -1748,15 +1992,16 @@ the Fireball
 -------- KEYS --------
 ammo_rockets: initial rockets of the weapon (if unset, g_pickup_rockets is used)
 respawntime: time till it respawns (default: 15)
+respawntimejitter: respawn time randomization +/- seconds (default: 0)
 team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
 cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
 -------- SPAWNFLAGS --------
 FLOATING: the item will float in air, instead of aligning to the floor by falling
 -------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
-model="models/weapons/g_fireball.md3"
+modeldisabled="models/weapons/g_fireball.md3"
 */
 
-/*QUAKED trigger_warpzone (1 .5 1) ?
+/*QUAKED trigger_warpzone (1 .5 1) ? WATCHMOVE
 A warp zone, i.e. seamlessly connecting two parts of the map.
 One surface of this entity must have the common/warpzone shader (or a similar selfmade shader) - this will be the warp plane - the others must be common/trigger.
 Must target, or be targeted by, another trigger_warpzone with a congruent common/warpzone surface.
@@ -1765,14 +2010,24 @@ Should be thick enough to fit a player entity (i.e. 32 units), preferably even t
 -------- KEYS --------
 target: must point to another trigger_warpzone, or...
 targetname: must be pointed to by another trigger_warpzone. Should be pointed to by a misc_warpzone_position entity, or...
-killtarget: should point to a target_position entity, or
+killtarget: should point to a target_position entity.
+target2: is triggered when a player ENTERS the warpzone (and warps away)
+target3: is triggered when a player LEAVES the warpzone (from the other warp zone to this one)
+target4: is triggered in both cases
+target_random: instead of triggering ALL matched entities, trigger ONE of them by random
+warpzone_fadestart: start distance of fading out the warpzone
+warpzone_fadeend: end distance of fading out the warpzone (if viewer is further, warpzone is not rendered at all)
+-------- SPAWNFLAGS --------
+WATCHMOVE: allow this entity to be moved by others, e.g. misc_follow in MOVETYPE_FOLLOW mode
 */
 
-/*QUAKED trigger_warpzone_reconnect (1 .5 1) (-8 -8 -8) (8 8 8)
-Reconnects (randomly) all warpzones with matching target when triggered
+/*QUAKED trigger_warpzone_reconnect (1 .5 1) (-8 -8 -8) (8 8 8) IGNORE_VISIBLE
+Reconnects (randomly) all warpzones/cameras with matching target when triggered
 -------- KEYS --------
 target: must point to multiple trigger_warpzones, or be not set (then all warpzones may get changed)
 targetname: name that identifies this entity so it can be triggered
+-------- SPAWNFLAGS --------
+IGNORE_VISIBLE: do not rearrange a warpzone if a player can currently see it
 */
 
 /*QUAKED misc_warpzone_position (1 .5 .25) (-8 -8 -8) (8 8 8) 
@@ -1783,15 +2038,19 @@ angles: must point perpendicular to the common/warpzone surface of the trigger_w
 origin: must be on the common/warpzone surface of the trigger_warpzone
 */
 
-/*QUAKED func_camera (1 .5 1) ?
+/*QUAKED func_camera (1 .5 1) ? WATCHMOVE
 A camera, i.e. a surface that shows a view from another part of the map.
 One surface of this entity must have the common/camera shader, the others should be common/caulk.
 Must target a target_position that indicates the view to be shown (and whose angles also indicate the orientation of the view)
 -------- KEYS --------
 target: must point to a target_position
+warpzone_fadestart: start distance of fading out the warpzone
+warpzone_fadeend: end distance of fading out the warpzone (if viewer is further, warpzone is not rendered at all)
+-------- SPAWNFLAGS --------
+WATCHMOVE: allow this entity to be moved by others, e.g. misc_follow in MOVETYPE_FOLLOW mode
 */
 
-/*QUAKED target_music (1 0 0) (-8 -8 -8) (8 8 8)
+/*QUAKED target_music (1 0 0) (-8 -8 -8) (8 8 8) START_OFF
 Background music target (when this is used, the cdtrack line in mapinfo must not be used, and there MUST be a default target_music).
 When triggered, the background music is switched to the given track.
 When targetname is not set, this is the default track of the map.
@@ -1806,7 +2065,7 @@ lifetime: when set, the music created by this target is switched back to the def
 START_OFF: the trigger is off initially
 */
 
-/*QUAKED trigger_music (1 0 0) ?
+/*QUAKED trigger_music (1 0 0) ? START_OFF
 Background music trigger (when this is used, the cdtrack line in mapinfo must not be used, and there MUST be a default target_music).
 When triggered, its effect is turned off until triggered again.
 -------- KEYS --------
@@ -1830,3 +2089,319 @@ targetname: you can use this to target the grazity zone with a trigger, which wi
 STICKY: entities keep their gravity after leaving the gravity zone
 START_OFF: when targeted, the gravity zone starts off and is enabled upon triggering
 */
+
+/*QUAKED relay_activate (0 1 0) (-8 -8 -8) (8 8 8) 
+Activates all .target's
+List of currently supported target ents:
+trigger_hurt
+trigger_heal
+trigger_impulse
+trigger_push
+trigger_teleport
+func_rotating
+func_bobbing
+func_button
+func_fourier
+func_vectormamamam
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+*/
+
+/*QUAKED relay_deactivate (1 0 0) (-8 -8 -8) (8 8 8) 
+Deactivates all .target's
+List of currently supported target ents:
+trigger_hurt
+trigger_heal
+trigger_impulse
+trigger_push
+trigger_teleport
+func_rotating
+func_bobbing
+func_button
+func_fourier
+func_vectormamamam
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+*/
+
+/*QUAKED relay_activatetoggle (0 1 1) (-8 -8 -8) (8 8 8) 
+Toggles all .target's de/active
+List of currently supported target ents:
+trigger_hurt
+trigger_heal
+trigger_impulse
+trigger_push
+trigger_teleport
+func_rotating
+func_bobbing
+func_button
+func_fourier
+func_vectormamamam
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+*/
+
+/*QUAKED target_changelevel (.5 .5 0) (-8 -8 -8) (8 8 8)
+Loads another map when triggered. Useful for single player maps.
+When no chmap key is set, the entity just ends the match when triggered. The player / team with the highest score at that moment wins.
+-------- KEYS --------
+targetname: The name other entities can use to target this entity
+chmap: Map file to switch to, leave empty to make this entity just end the match
+gametype: Switch to this gametype. If empty, the same gametype stays
+*/
+/*QUAKED turret_machinegun (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+Fast firing moderate damage bullet (hitscan) turret.
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/mg.md3"
+*/
+
+/*QUAKED turret_plasma (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+---------NOTES----------
+Basic energy cannon
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/plasma.md3"
+*/
+
+/*QUAKED turret_plasma_dual (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+basic energy cannon * 2
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/plasma2.md3"
+*/
+
+/*QUAKED turret_flac (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+Only kills missiles, rockets, grenadelauncher & electro secondaries to be precise.
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/flac.md3"
+*/
+
+/*QUAKED turret_mlrs (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+6 unguided rockers fired in a rapid burst.
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/mlrs.md3"
+*/
+
+/*QUAKED turret_hellion (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+2 guided moderate damage accelerating rockets 
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/hellion.md3"
+*/
+
+
+/*QUAKED turret_hk (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+Single powerful rocket with the ability to evade obstacles to find its target. Varied speed.
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/hk.md3"
+*/
+
+/*QUAKED turret_tesla (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+Fires a lightning bolt that will jump to up to 10 targets if they are close enough to each other. Missiles included.
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/tesla.md3"
+*/
+
+/*QUAKED turret_phaser (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+Constant beam weapon that will considerably slow its target down while dealing low but constant damage.
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+target: Defend the position of this entity
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/phaser.md3"
+*/
+
+
+/*QUAKED turret_fusionreactor (1 0 0) (-32 -32 0) (32 32 50) - PILLAR
+-------- KEYS --------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range: 2 = double range, 0.5 = half
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+team: 5=red, 14=blue
+-------- SPAWNFLAGS --------
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)
+---------NOTES----------
+Supplies neerby energy based turrets with more power so they can fire more often.
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/reactor.md3"
+*/
+
+/*QUAKED turret_targettrigger (.5 .5 .5) ?
+Used to feed turrets capable of it with remote target info. currently only turret_hk supports this.
+*/
+
+
+/*QUAKED turret_walker (1 0 0) (-32 -32 0) (32 32 50)
+-----------KEYS------------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range:  2 = double range, 0.5 = half
+turret_scale_refire: 2 = doubble refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo:   2 = doubble ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim:    2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+team: 5=red, 14=blue
+-----------SPAWNFLAGS-----------
+---------NOTES----------
+
+A nasty mechanical critter that will engage longrange target with missiles, midrange with its minigun and meele things up close and personal.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/walker.md3"
+*/
+
+
+/*QUAKED turret_ewheel (1 0 0) (-32 -32 0) (32 32 50)
+-----------KEYS------------
+turret_scale_damage: 2 = double damage, 0.5 = half
+turret_scale_range:  2 = double range, 0.5 = half
+turret_scale_refire: 2 = doubble refire (SLOWER!), 0.5 = half (FASTER!)
+turret_scale_ammo:   2 = doubble ammo carry & regen, 0.5 = half ammo carry & regen
+turret_scale_aim:    2 = aim twice as fast, 0,5 = aim at half speed
+turret_scale_health: 2 = double health, 0.5 = half
+team: 5=red, 14=blue
+-----------SPAWNFLAGS-----------
+---------NOTES----------
+
+Small, agile and moveing turret.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="../xonotic-data.pk3dir/models/turrets/radiant/ewheel.md3"
+*/
+
+
+/*QUAKED turret_checkpoint (1 0 1) (-32 -32 -32) (32 32 32)
+-----------KEYS------------
+target: .targetname of next wapoint in chain.
+wait:   Pause at this point # seconds.
+-----------SPAWNFLAGS-----------
+
+---------NOTES----------
+If a loop is of targets are formed, any unit entering this loop will patrol it indefinitly.
+If the checkpoint chain in not looped, the unit will go "Roaming" when the last point is reached.
+*/
+/*QUAKED vehicle_racer (0 0 1) (-48 -48 0) (48 48 32) 
+Fast moving hover type vehicle, with low shiled & health.
+Primary weapon is a rapid fire energy cannon, secondary lockable rockets.
+-------- KEYS --------
+team: 5=red, 14=blue
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/vehicles-static/wakazachi.md3"
+*/
+
+/*QUAKED vehicle_spiderbot (0 0 1) (-48 -48 0) (48 48 32)
+A slow moving 6 legged mech type vehile that has plenty of health and shiled.
+Primary weapon is twin miniguns, secondary eight rockets that can be guided by the pilot.
+-------- KEYS --------
+team: 5=red, 14=blue
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/vehicles-static/spiderbot.md3"
+*/
+
+/*QUAKED vehicle_raptor (0 0 1) (-48 -48 0) (48 48 32)
+The raptor is primaerly a air to ground frighter, its quite lightly armoured or shilded.
+Its main weapon is four rapid fire energy cannons, wich can be locked to track a target by aming at it for some time.
+Secondary is a pair of vert powerfull clusterbombs.
+-------- KEYS --------
+team: 5=red, 14=blue
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/vehicles-static/raptor.md3"
+*/