]> de.git.xonotic.org Git - xonotic/xonotic-maps.pk3dir.git/blobdiff - scripts/entities.def
also rename the entity name
[xonotic/xonotic-maps.pk3dir.git] / scripts / entities.def
index 8e6b9b5bfab57388ccf6d4045bcd772afff7ec76..76d511e36fe86f1210d9a3c452aff6bb8abd25de 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 --------
@@ -355,7 +383,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_a25.md3"
+modeldisabled="models/items/g_a25.md3"
 */
 
 /*QUAKED item_armor_big (.4 .8 .4) (-30 -30 0) (30 30 32) FLOATING
@@ -369,7 +397,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_a50.md3"
+modeldisabled="models/items/g_a50.md3"
 */
 
 /*QUAKED item_armor_medium (.4 .8 .4) (-30 -30 0) (30 30 32) FLOATING
@@ -383,7 +411,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_armormedium.md3"
+modeldisabled="models/items/g_armormedium.md3"
 */
 
 /*QUAKED item_armor_small (.4 .8 .4) (-30 -30 0) (30 30 32) FLOATING
@@ -397,7 +425,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
@@ -410,7 +438,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/a_bullets.md3"
+modeldisabled="models/items/a_bullets.md3"
 */
 
 /*QUAKED item_cells (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -423,7 +451,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/a_cells.md3"
+modeldisabled="models/items/a_cells.md3"
 */
 
 /*QUAKED item_flag_team1 (1 0 0) (-32 -32 0) (32 32 74) 
@@ -463,7 +491,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_h50.md3"
+modeldisabled="models/items/g_h50.md3"
 */
 
 /*QUAKED item_health_medium (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
@@ -477,7 +505,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
@@ -492,7 +520,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_h100.md3"
+modeldisabled="models/items/g_h100.md3"
 */
 
 /*QUAKED item_health_small (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
@@ -506,7 +534,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
@@ -519,7 +547,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_invincible.md3"
+modeldisabled="models/items/g_invincible.md3"
 */
 
 /*QUAKED item_minst_cells (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -533,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/a_cells.md3"
+modeldisabled="models/items/a_cells.md3"
 */
 
 /*QUAKED item_rockets (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -546,7 +574,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/a_rockets.md3"
+modeldisabled="models/items/a_rockets.md3"
 */
 
 /*QUAKED item_shells (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
@@ -559,7 +587,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/a_shells.md3"
+modeldisabled="models/items/a_shells.md3"
 */
 
 /*QUAKED item_strength (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
@@ -572,7 +600,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_strength.md3"
+modeldisabled="models/items/g_strength.md3"
 */
 
 /*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE - - NOGRIDLIGHT
@@ -618,7 +646,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,15 +657,18 @@ 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.
 */
 
-/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) - SOLID - EXTRUDE_NORMALS EXTRUDE_TERRAIN COLOR_TO_ALPHA
+/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) - SOLID FORCE_META EXTRUDE_NORMALS EXTRUDE_TERRAIN COLOR_TO_ALPHA DONT_FIX_NORMALS
 Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported.
 -------- Q3MAP2 KEYS --------
 model: file name of model to include
@@ -653,9 +684,11 @@ _lightmapscale: light map resolution factor
 _celshader: the cel shader for this
 -------- SPAWNFLAGS --------
 SOLID: make the model solid
+FORCE_META: force the model to go through the -meta pipeline and enable lightmapping
 EXTRUDE_NORMALS: for converting triangles to clip brushes, extrude along the model normals (by default, extrusion happens in a coordinate axis direction that is decided per triangle)
 EXTRUDE_TERRAIN: always extrude downwards (for terrain)
 COLOR_TO_ALPHA: use the color value as alpha (for terrain blending)
+DONT_FIX_NORMALS: do not regenerate normals
 */
 
 /*QUAKED misc_gamemodel (0 .5 .8) (-8 -8 -8) (8 8 8) ALIGN_ORIGIN ALIGN_BOTTOM
@@ -686,12 +719,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 --------
@@ -774,7 +807,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
 */
 
@@ -808,7 +841,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)
@@ -843,6 +876,9 @@ 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
 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
@@ -934,15 +970,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
@@ -969,13 +1011,16 @@ 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)
+-------- SPAWNFLAGS --------
+INVERT_TEAM: the team that owns this will NOT jump when touching this
 */
 
 /*QUAKED trigger_impulse (.5 .5 .5) ? 
@@ -991,7 +1036,7 @@ 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_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)
@@ -1006,9 +1051,11 @@ 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)
 */
 
@@ -1075,6 +1122,9 @@ 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
 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 --------
@@ -1091,7 +1141,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/weapons/g_crylink.md3"
+modeldisabled="models/weapons/g_crylink.md3"
 */
 
 /*QUAKED weapon_electro (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1104,7 +1154,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/weapons/g_electro.md3"
+modeldisabled="models/weapons/g_electro.md3"
 */
 
 /*QUAKED weapon_grenadelauncher (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1117,7 +1167,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/weapons/g_gl.md3"
+modeldisabled="models/weapons/g_gl.md3"
 */
 
 /*QUAKED weapon_hagar (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1130,7 +1180,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/weapons/g_hagar.md3"
+modeldisabled="models/weapons/g_hagar.md3"
 */
 
 /*QUAKED weapon_laser (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1144,7 +1194,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/weapons/g_laser.md3"
+modeldisabled="models/weapons/g_laser.md3"
 */
 
 /*QUAKED weapon_nex (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1158,7 +1208,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/weapons/g_nex.md3"
+modeldisabled="models/weapons/g_nex.md3"
 */
 
 /*QUAKED weapon_rocketlauncher (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1172,7 +1222,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/weapons/g_rl.md3"
+modeldisabled="models/weapons/g_rl.md3"
 */
 
 /*QUAKED weapon_shotgun (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1187,7 +1237,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/weapons/g_shotgun.md3"
+modeldisabled="models/weapons/g_shotgun.md3"
 */
 
 /*QUAKED weapon_uzi (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1200,14 +1250,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/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.
@@ -1266,7 +1316,7 @@ race_place: if target points to the trigger_race_checkpoint with cnt 0 (finish l
 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
@@ -1287,6 +1337,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
@@ -1361,7 +1412,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/weapons/g_minstanex.md3"
+modeldisabled="models/weapons/g_minstanex.md3"
 */
 
 /*QUAKED weapon_porto (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1374,7 +1425,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/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
@@ -1431,7 +1482,7 @@ Example is a Mario-style question mark block which could throw a new weapon_nex
 -------- KEYS --------
 targetname: used to trigger this
 message: entity field list
-target: when set, target_spawn edits entities, instead of creating new ones
+target: when set, target_spawn edits entities, instead of creating new ones; the special value *activator causes the activator to be edited
 count: make sure no more than count entities have been created by this (refuse to spawn new ones if exceeded)
 killtarget: reference entity (can be used as $killtarget)
 target2: reference entity (can be used as $target2)
@@ -1498,7 +1549,21 @@ 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/weapons/g_hlac.md3"
+modeldisabled="models/weapons/g_hlac.md3"
+*/
+
+/*QUAKED weapon_seeker (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
+Placing this entity on a map kills your dog, voids the warranty on your car, and makes your map an unenjoyable noobs' paradise.
+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)
+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_seeker.md3"
 */
 
 /*QUAKED weapon_hook (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
@@ -1511,7 +1576,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/weapons/g_hookgun.md3"
+modeldisabled="models/weapons/g_hookgun.md3"
 */
 
 /*QUAKED trigger_heal (.5 .5 .5) ?
@@ -1522,8 +1587,8 @@ 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_sniperrifle (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)
@@ -1532,7 +1597,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/weapons/g_campingrifle.md3"
+modeldisabled="models/weapons/g_campingrifle.md3"
 */
 
 /*QUAKED func_fourier (0 .5 .8) ?
@@ -1549,7 +1614,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
@@ -1600,7 +1665,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
@@ -1608,7 +1673,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
@@ -1616,7 +1681,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
@@ -1624,7 +1689,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
@@ -1633,7 +1698,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
@@ -1641,7 +1706,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
@@ -1678,7 +1743,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_fuel.md3"
+modeldisabled="models/items/g_fuel.md3"
 */
 
 /*QUAKED item_fuel_regen (1 .3 1) (-30 -30 0) (30 30 48) FLOATING
@@ -1690,7 +1755,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_fuelregen.md3"
+modeldisabled="models/items/g_fuelregen.md3"
 */
 
 /*QUAKED item_jetpack (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
@@ -1703,7 +1768,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_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
@@ -1737,26 +1802,33 @@ 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/weapons/g_fireball.md3"
+modeldisabled="models/weapons/g_fireball.md3"
 */
 
 /*QUAKED trigger_warpzone (1 .5 1) ?
 A warp zone, i.e. seamlessly connecting two parts of the map.
-One surface of this entity must have the common/warpzone shader - this will be the warp plane - the others should be common/trigger.
+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.
 Should target a target_position, or be targeted by a misc_warpzone_position.
 Should be thick enough to fit a player entity (i.e. 32 units), preferably even thicker.
 -------- KEYS --------
 target: must point to another trigger_warpzone, or...
+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
 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
+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)
 */
 
-/*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) 
@@ -1773,5 +1845,109 @@ One surface of this entity must have the common/camera shader, the others should
 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)
+*/
+
+/*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.
+-------- KEYS --------
+targetname: The name other entities can use to target this entity (when not set, this one is the default)
+noise: the music to play (as full sound file name)
+volume: the volume (default: 1)
+fade_time: fade-in time
+fade_rate: fade-out time
+lifetime: when set, the music created by this target is switched back to the default one when this time expires
+-------- SPAWNFLAGS --------
+START_OFF: the trigger is off initially
+*/
+
+/*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 --------
+targetname: The name other entities can use to target this entity
+noise: the music to play (as full sound file name)
+volume: the volume (default: 1)
+fade_time: fade-in time
+fade_rate: fade-out time
+-------- SPAWNFLAGS --------
+START_OFF: the trigger is off initially
+*/
+
+/*QUAKED trigger_gravity (.5 .5 1) ? STICKY START_OFF
+An area where gravity differs from the rest of the map.
+This acts as a modifier over the normal gravity (sv_gravity). eg: 0.5 is half the normal gravity, 2 is twice the normal gravity.
+-------- KEYS --------
+gravity: gravity offset in this area, defaults to 0 if not set
+noise: sound to play when an entity enters the gravity zone, leave empty to disable
+targetname: you can use this to target the grazity zone with a trigger, which will toggle it when activated
+-------- SPAWNFLAGS --------
+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
+*/