+"dm","red-planet","3","2","15",,,"DM: Red Planet","Welcome to Xonotic!\nWe'll start off easy with Deathmatch against 3 beginner bots on Red Planet. Xonotic is mainly a multiplayer game, but before jumping into online games it can be a good idea to practice a bit against bots. After finishing the campaign you should be set for online play, either on special beginners-only servers or regular servers, that's up to you. :)"
+"tdm","stormkeep","3","4",,"5",,"TDM: Stormkeep","Next we'll try some 2on2 Team Deathmatch on Stormkeep.\nYou'll have to do your best for five minutes, because the team with the highest score after this time limit will be the winning team! The opponents are also slightly more difficult now. Don't let the warpzone get you lost!"
+"dm","glowplant","1","6",,"5",,"1v1 Duel: Glowplant","Now it's time for you to show what you've learnt so far!\nIn a duel, it is important to collect and control items, especially the bigger powerups such as the Mega Health. They all spawn at regular intervals, learning to time them is the key... This is a five minute match, the player who ends up with the highest score wins."
+"ctf","dance","5","7","3",,,"CTF: Dance","By now you are expected to know the basics so let's try something entirely new, namely Capture the Flag! In CTF you're supposed to bring the enemy flag to your own base, but that's not enough: both flags have to be in your base for a successful capture. First team to reach three flag captures wins."
+"dm","g-23","3","9",,"10",,"DM: G-23","Let's end this with a real challenge!\nYou'll face three fairly skilled bots in a 10-minute Deathmatch on the G-23 docking station. Can you prove that you are the best?
-"dm","red-planet","3","1","15",,,"DM: Red Planet","Welcome to Xonotic!\nWe'll start off easy with Deathmatch against 3 beginner bots on Red Planet. Xonotic is mainly a multiplayer game, but before jumping into online games it can be a good idea to practice a bit against bots. After finishing the campaign you should be set for online play, either on special beginners-only servers or regular servers, that's up to you. :)"
-"tdm","stormkeep","3","3",,"10",,"TDM: Stormkeep","Next we'll try some 2on2 Team Deathmatch on Stormkeep.\nYou'll have to do your best for ten minutes, because the team with the highest score after this time limit will be the winning team! The opponents are also slightly more difficult now. Don't let the warpzone get you lost!"
-"dm","glowplant","1","5",,"10",,"1v1 Duel: Glowplant","Now it's time for you to show what you've learnt so far!\nIn a duel, it is important to collect and control items, especially the bigger powerups such as the Mega Health. They all spawn at regular intervals, learning to time them is the key... This is a 10 minute match, the player who ends up with the highest score wins."
-"ctf","dance","5","7","5",,,"CTF: Dance","By now you are expected to know the basics so let's try something entirely new, namely Capture the Flag! In CTF you're supposed to bring the enemy flag to your own base, but that's not enough: both flags have to be in your base for a successful capture. First team to reach 5 flag captures wins."
-"ctf","space-elevator","5","9","5",,,"CTF: Space Elevator","More CTF!\nThis map is way more open than Dance, it is a space floater after all. Be careful not to fall down! Use the launchpads to your advantage to get up to huge speeds quick. Same story as before, 5 caps to win."
-"dm","g-23","3","14",,"10",,"DM: G-23","Let's end this with a real challenge!\nYou'll face three Godlike bots in a 10-minute Deathmatch on the G-23 docking station. Can you prove that you are the best?
@@ -719,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 --------
@@ -807,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
*/
@@ -841,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)
@@ -970,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
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
@@ -1030,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)
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)
@@ -1045,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)
*/
@@ -1606,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
+Compiler-only entity that specifies a the origin of a sky box (a wholly contained, separate area of the map), similar to some games' portal skies. When compiled with Q3Map2, the sky box surfaces will be visible from any place where sky is normally visible. It will cast shadows on the normal parts of the map, and can be used with cloud layers and other effects. As it is compiler-only, it can't "scale up" entities in its box.
+To use this, carve a small box in some larger structure on your map, place this entity inside that box hole, and make a small version on what should be seen in the sky there.
+-------- KEYS --------
+<direction key="angle" name="angle">rotation angle of the sky surfaces.</direction>
+<angles key="angles" name="angles">Individual control of PITCH, YAW, and ROLL (default 0 0 0).</angles>
+<real key="_scale" name="_scale">scaling factor (default 64), good values are between 50 and 300, depending on the map.</real>
+</point>
+
+<group name="_decal" color="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 key="target" name="target">the entity to be targeted by the projection</target>
+-------- 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).
+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).
+-------- KEYS --------
+<string key="message" name="message">message to be displayed to all players when this point is captured, preceded by the team's name. This defaults to " has captured a control point". You can specify different names for each point, for example " has captured the Lava Room".</string>
+<real key="wait" name="wait">How often this point gives its controlling team frags.</real>
+<real key="frags" name="frags">How many frags this point gives each wait cycle.</real>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+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 --------
+<string key="netname" name="netname">name of team (Red Team). Set to "" or don't define for the required blank team.</string>
+<real key="cnt" name="cnt">color of the team. See the "Helpful Extras" section in Docs/mapping.txt for info.</real>
+<model key="model" name="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.</model>
+<sound key="noise" name="noise">Sound to be played on the control point when it's captured. Only players nearby will hear it.</sound>
+<sound key="noise1" name="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")</sound>
+This is a brush model which can be damaged. Once triggered it's active and will happily receive damage players inflict upon it. Once all health is consumed it'll disappear and trigger the targeted entity/entities. As damage is received the brush model will be tinted in an increasingly visible flavor of red to give visible feedback.
+-------- KEYS --------
+<real key="health" name="health">The damage this trigger can take</real>
+<target key="target" name="target">The entity/entities to be triggered once this entity gets invisible</target>
+<targetname key="targetname" name="targetname">The name other entities can use to target this entity</targetname>
+<string key="mdl" name="mdl">particle effect name to show when destroyed</string>
+<string key="message" name="message">death message when a player gets hit by the explosion</string>
+<string key="message2" name="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)</string>
+<real key="debrismovetype" name="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</real>
+<real key="debrissolid" name="debrissolid">solidity of the debris: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE</real>
+<real3 key="debrisvelocity" name="debrisvelocity">initial velocity vector of the debris (static part)</real3>
+<real3 key="debrisvelocityjitter" name="debrisvelocityjitter">initial velocity vector of the debris (random part)</real3>
+<real3 key="debrisavelocityjitter" name="debrisavelocityjitter">initial angular velocity vector of the debris (random part)</real3>
+<real key="debristime" name="debristime">time till the debris fades (average)</real>
+<real key="debristimejitter" name="debristimejitter">time till the debris fades (random part)</real>
+<real key="debrisfadetime" name="debrisfadetime">how long debris takes to fade</real>
+<real key="debrisdamageforcescale" name="debrisdamageforcescale">how much debris is affected by damage force (e.g. explosions)</real>
+<real key="debrisskin" name="debrisskin">skin number of debris</real>
+-------- SPAWNFLAGS --------
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+</group>
+
+<group name="func_assault_wall" color=".5 0 .5">
+Brush model that will disappear once the targeted target_objective is fulfilled. This can be used to restrict access to parts of the map until a certain objective has been conquered.
+-------- KEYS --------
+<target key="target" name="target">targetname of a target_objective</target>
+</group>
+
+<group name="func_bobbing" color="0 .5 .8">
+Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked.
+-------- KEYS --------
+<real key="speed" name="speed">amount of time in seconds for one complete oscillation cycle (default 4).</real>
+<real key="height" name="height">sets the amount of travel of the oscillation movement (default 32). </real>
+<real key="phase" name="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).</real>
+<sound key="noise" name="noise">path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).</sound>
+<real key="dmg" name="dmg">damage a player who gets crushed by it receives</real>
+<real key="dmgtime" name="dmgtime">interval to apply dmg to a player who is s in the way</real>
+<string key="message" name="message">death message when a player gets crushed</string>
+<string key="message2" name="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)</string>
+-------- SPAWNFLAGS --------
+<flag key="X_AXIS" name="X_AXIS" bit="0">entity will bob along the X axis.</flag>
+<flag key="Y_AXIS" name="Y_AXIS" bit="1">entity will bob along the Y axis.</flag>
+</group>
+
+<group name="func_pendulum" color="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 --------
+<real key="speed" name="speed">angle amount of the swinging</real>
+<real key="freq" name="freq">frequency (cycles per second) of the swinging (if unspecified, a physically "somewhat correct" value is calculated that matches Quake 3)</real>
+<real key="phase" name="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).</real>
+<sound key="noise" name="noise">path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).</sound>
+<real key="dmg" name="dmg">damage a player who gets crushed by it receives</real>
+<real key="dmgtime" name="dmgtime">interval to apply dmg to a player who is s in the way</real>
+<string key="message" name="message">death message when a player gets crushed</string>
+<string key="message2" name="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)</string>
+</group>
+
+<group name="func_button" color="0 .5 .8">
+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 --------
+<direction key="angle" name="angle">determines the direction in which the button will move (up = -1, down = -2).</direction>
+<target key="target" name="target">all entities with a matching targetname will be triggered.</target>
+<target key="target2" name="target2">all entities with a matching targetname will be triggered.</target>
+<target key="target3" name="target3">all entities with a matching targetname will be triggered.</target>
+<target key="target4" name="target4">all entities with a matching targetname will be triggered.</target>
+<real key="speed" name="speed">speed of button's displacement (default 40).</real>
+<real key="lip" name="lip">lip remaining at end of move (default 4 units).</real>
+<real key="health" name="health">(default 0) if set to any non-zero value, the button must take damage (any amount) to activate.</real>
+-------- SPAWNFLAGS --------
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+</group>
+
+<group name="func_door" color="0 .5 .8">
+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 --------
+<string key="message" name="message">is printed when the door is touched if it is a trigger door and it hasn't been fired yet, or death message if dmg is set</string>
+<string key="message2" name="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)</string>
+<direction key="angle" name="angle">determines the opening direction</direction>
+<targetname key="targetname" name="targetname">if set, no touch field will be spawned and a remote button or trigger field activates the door.</targetname>
+<real key="health" name="health">if set, door must be shot open</real>
+<real key="wait" name="wait">wait before returning (3 default, -1 = never return)</real>
+<real key="lip" name="lip">lip remaining at end of move (8 default)</real>
+<real key="dmg" name="dmg">damage to inflict when blocked (when triggered and someone is in the way)</real>
+<real key="sounds" name="sounds">when 1, use default door sounds</real>
+<sound key="noise1" name="noise1">sound when the door opens</sound>
+<sound key="noise2" name="noise2">sound when the door closes</sound>
+-------- SPAWNFLAGS --------
+<flag key="START_OPEN" name="START_OPEN" bit="0">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).</flag>
+<flag key="DOOR_DONT_LINK" name="DOOR_DONT_LINK" bit="2">the door won't link with another door it touches</flag>
+<flag key="TOGGLE" name="TOGGLE" bit="5">causes the door to wait in both the start and end states for a trigger event.</flag>
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+Normal rotating door entity that opens by rotating around an axis (default: Z). Use an origin brush to specify the rotation axis.
+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.
+BIDIR makes the door work bidirectional, so that the opening direction is always away from the requestor.
+The usage of bidirectional doors requires two manually instantiated triggers (trigger_multiple), the one to open it in the other direction
+must have set trigger_reverse to 1.
+BIDIR_IN_DOWN will the door prevent from reopening while closing if it is triggered from the other side.
+-------- KEYS --------
+<string key="message" name="message">is printed when the door is touched if it is a trigger door and it hasn't been fired yet, or death message if dmg is set</string>
+<string key="message2" name="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)</string>
+<direction key="angle" name="angle">determines the destination angle for opening. negative values reverse the direction (90 default)</direction>
+<targetname key="targetname" name="targetname">if set, no touch field will be spawned and a remote button or trigger field activates the door.</targetname>
+<real key="health" name="health">if set, door must be shot open</real>
+<real key="speed" name="speed">speed to rotate (in degrees per second)</real>
+<real key="wait" name="wait">wait before returning (3 default, -1 = never return)</real>
+<real key="dmg" name="dmg">damage to inflict when blocked (when triggered and someone is in the way)</real>
+<real key="sounds" name="sounds">when 1, use default door sounds</real>
+<sound key="noise1" name="noise1">sound when the door opens</sound>
+<sound key="noise2" name="noise2">sound when the door closes</sound>
+-------- SPAWNFLAGS --------
+<flag key="START_OPEN" name="START_OPEN" bit="0">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).</flag>
+<flag key="DOOR_DONT_LINK" name="DOOR_DONT_LINK" bit="2">the door won't link with another door it touches</flag>
+<flag key="TOGGLE" name="TOGGLE" bit="5">causes the door to wait in both the start and end states for a trigger event.</flag>
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+</group>
+
+<group name="func_door_secret" color="0 .5 .8">
+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 --------
+<real key="wait" name="wait"># of seconds before coming back</real>
+<string key="key1" name="key1">first entity key with one-line description</string>
+<string key="key2" name="key2">second entity key with one-line description</string>
+<real key="t_width" name="t_width">override WIDTH to move back (or height if going down)</real>
+<real key="t_length" name="t_length">override LENGTH to move sideways</real>
+<real key="dmg" name="dmg">damage to inflict when blocked (2 default)</real>
+<string key="message" name="message">text to display when activating the door, or death message if dmg is set</string>
+<string key="message2" name="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)</string>
+<sound key="noise1" name="noise1">sound when opening backwards or closing</sound>
+<sound key="noise2" name="noise2">sound when opening sideways</sound>
+<sound key="noise3" name="noise3">sound when stopping</sound>
+-------- SPAWNFLAGS --------
+<flag key="OPEN_ONCE" name="OPEN_ONCE" bit="0">only work once, then stay open</flag>
+<flag key="1ST_LEFT" name="1ST_LEFT" bit="1">1st move is left of arrow</flag>
+<flag key="1ST_DOWN" name="1ST_DOWN" bit="2">1st move is down from arrow</flag>
+<flag key="NO_SHOOT" name="NO_SHOOT" bit="3">never respond to shots</flag>
+<flag key="ALWAYS_SHOOT" name="ALWAYS_SHOOT" bit="4">even if targetname is set, respond to shots</flag>
+</group>
+
+<group name="func_group" color="0 .5 .8">
+This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this.
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<texture key="_celshader" name="_celshader">Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.</texture>
+-------- KEYS --------
+<texture key="_indexmap" name="_indexmap">Path/name for the TGA file used to guide the mapping of textures on the terrain surface.</texture>
+<integer key="_layers" name="_layers">number of unique root shaders that will be use on the terrain.</integer>
+<texture key="_shader" name="_shader">Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.</texture>
+<string key="_offsets" name="_offsets">space separated list of height offsets for the index map</string>
+</group>
+
+<group name="func_ladder" color="0 .5 .8">
+a ladder, need i say no more
+grab a trigger brush and put it in front of the part that you want the player to climb
+</group>
+
+<group name="func_plat" color="0 .5 .8">
+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 --------
+<real key="speed" name="speed">determines how fast the plat moves (default 150).</real>
+<real key="lip" name="lip">lip remaining at end of move (default 16). Has no effect if "height" is set.</real>
+<real key="height" name="height">if set, this will determine the total amount of vertical travel of the plat.</real>
+<real key="dmg" name="dmg">damage to inflict on player when he blocks operation of plat. Plat will reverse direction when blocked.</real>
+<targetname key="targetname" name="targetname">if set, the trigger that points to this will lower the plat each time it fires. The plat lowers and lifts someone up later.</targetname>
+<real key="sounds" name="sounds">2 for alternate sound set, -1 for silence, or use the fields below</real>
+<string key="message" name="message">kill message, when someone gets killed by this plat</string>
+<string key="message2" name="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)</string>
+-------- SPAWNFLAGS --------
+<flag key="CRUSH" name="CRUSH" bit="2">crush players hit by the platform instantly</flag>
+-------- NOTES --------
+By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+</group>
+
+<group name="func_rain" color="0 .5 .8">
+This is an invisible area like a trigger, which rain falls inside of.
+-------- KEYS --------
+<real3 key="velocity" name="velocity">falling direction (should be something like '0 0 -700', use the X and Y velocity for wind)</real3>
+<real key="cnt" name="cnt">sets color of rain in the Quake palette (default 12 - white)</real>
+<real key="count" name="count">adjusts density, this many particles fall every second for a 1024x1024 area, default is 2000</real>
+</group>
+
+<group name="func_rotating" color="0 .5 .8">
+Brush entity that spins in place on one axis (default Z). Use an origin brush to specify the rotation axis.
+To rotate around another axis, make a func_wall with an explicit avelocity given.
+-------- KEYS --------
+<real key="speed" name="speed">speed to rotate (in degrees per second)</real>
+<sound key="noise" name="noise">path/name of looping .wav file to play.</sound>
+<real key="dmg" name="dmg">Do this much dmg every .dmgtime interval when blocked</real>
+<string key="message" name="message">kill message when crushed by this</string>
+<string key="message2" name="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)</string>
+-------- SPAWNFLAGS --------
+<flag key="X_AXIS" name="X_AXIS" bit="2">rotate around the X axis</flag>
+<flag key="Y_AXIS" name="Y_AXIS" bit="3">rotate around the Y axis</flag>
+</group>
+
+<group name="func_snow" color="0 .5 .8">
+This is an invisible area like a trigger, which snow falls inside of.
+-------- KEYS --------
+<real3 key="velocity" name="velocity">falling direction (should be something like '0 0 -300', use the X and Y velocity for wind)</real3>
+<real key="cnt" name="cnt">sets color of snow in the Quake palette (default 12 - white)</real>
+<real key="count" name="count">adjusts density, this many particles fall every second for a 1024x1024 area, default is 2000</real>
+Point entity with EF_STARDUST applied. This will spawn a particle cloud with mostly golden particles. Used as eye-candy.
+</point>
+
+<group name="func_train" color="0 .5 .8">
+Trains are moving solids that follow a cycle of path_corner entities. Origin brushes are NOT supported; they use the "mins" corner as reference (that is, lowest x, y, and z coordinates).
+At each node, the train's mins corner hits exactly the path_corner.
+Trains always start on in the game.
+Trains do not damage the played when blocked.
+Trains cannot emit sound.
+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 --------
+<real key="speed" name="speed">default/initial speed of train (default 100 or overridden by speed value of targeted path_corner)</real>
+<target key="target" name="target">targetname of first path_corner to move to at the default speed; ideally, this path_corner shall be exactly where the train starts</target>
+<sound key="noise" name="noise">path/name of .wav or .ogg file to play while moving. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).</sound>
+<real key="dmg" name="dmg">damage a player who gets crushed by it receives</real>
+<real key="dmgtime" name="dmgtime">interval to apply dmg to a player who is s in the way</real>
+<string key="message" name="message">death message when a player gets crushed</string>
+<string key="message2" name="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)</string>
+Attacking team's player spawning location in Assault. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<target key="target" name="target">this should point to a target_objective to decide when this spawning point is active.</target>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<real key="cnt" name="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.</real>
+<real key="restriction" name="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)</real>
+Normal player spawning location in game types without team spawns. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<real key="cnt" name="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.</real>
+<target key="target" name="target">trigger all entities with this targetname when someone spawns</target>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will assign the spawn point to the team of the activator as an additional spawn point, or reassign it if it was already assigned. Also used to assign spawn points to Onslaught control points.</targetname>
+<real key="restriction" name="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)</real>
+Defending team's player spawning location in Assault. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<target key="target" name="target">this should point to a target_objective to decide when this spawning point is active.</target>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<real key="cnt" name="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.</real>
+<real key="restriction" name="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)</real>
+Red team's player spawning location in e.g. CTF and Onslaught. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<real key="cnt" name="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.</real>
+<target key="target" name="target">trigger all entities with this targetname when someone spawns</target>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.</targetname>
+<real key="restriction" name="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)</real>
+Blue team's player spawning location in e.g. CTF and Onslaught. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<real key="cnt" name="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.</real>
+<target key="target" name="target">trigger all entities with this targetname when someone spawns</target>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.</targetname>
+<real key="restriction" name="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)</real>
+Yellow team's player spawning location, but there is no game mode to use this yet. Anyway, should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<real key="cnt" name="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.</real>
+<target key="target" name="target">trigger all entities with this targetname when someone spawns</target>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.</targetname>
+<real key="restriction" name="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)</real>
+Pink team's player spawning location, but there is no game mode to use this yet. Anyway, should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+<real key="cnt" name="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.</real>
+<target key="target" name="target">trigger all entities with this targetname when someone spawns</target>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.</targetname>
+<real key="restriction" name="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)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 30)</real>
+<real key="armorvalue" name="armorvalue">amount of armor it gives (default: 100 (g_pickup_armorlarge))</real>
+<real key="max_armorvalue" name="max_armorvalue">max of armor it increases to (default: 999 (g_pickup_armorlarge_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 20)</real>
+<real key="armorvalue" name="armorvalue">amount of armor it gives (default: 50 (g_pickup_armorlarge))</real>
+<real key="max_armorvalue" name="max_armorvalue">max of armor it increases to (default: 999 (g_pickup_armorlarge_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 20)</real>
+<real key="armorvalue" name="armorvalue">amount of armor it gives (default: 25 (g_pickup_armormedium))</real>
+<real key="max_armorvalue" name="max_armorvalue">max of armor it increases to (default: 999 (g_pickup_armormedium_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<real key="armorvalue" name="armorvalue">amount of armor it gives (default: 5 (g_pickup_armorsmall))</real>
+<real key="max_armorvalue" name="max_armorvalue">max of armor it increases to (default: 999 (g_pickup_armorsmall_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_nails" name="ammo_nails">bullets gained by this item (if unset, g_pickup_nails is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_cells" name="ammo_cells">cells gained by this item (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 20)</real>
+<real key="health" name="health">amount of health it gives (default: 50 (g_pickup_healthlarge))</real>
+<real key="max_health" name="max_health">max of health it increases to (default: 999 (g_pickup_healthlarge_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<real key="health" name="health">amount of health it gives (default: 25 (g_pickup_healthmedium))</real>
+<real key="max_health" name="max_health">max of health it increases to (default: 999 (g_pickup_healthmedium_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+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 --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 30)</real>
+<real key="health" name="health">amount of health it gives (default: 100 (g_pickup_healthmega))</real>
+<real key="max_health" name="max_health">max of health it increases to (default: 999 (g_pickup_healthmega_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<real key="health" name="health">amount of health it gives (default: 5 (g_pickup_healthsmall))</real>
+<real key="max_health" name="max_health">max of health it increases to (default: 5 (g_pickup_healthsmall_max))</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+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 --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 120)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+It only appears when playing Minstagib and prevents auto-replacement of weapon_nex & weapon_rocketlauncher when used.
+-------- KEYS --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 45)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_rockets" name="ammo_rockets">rockets gained by this item (if unset, g_pickup_rockets is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_shells" name="ammo_shells">shells gained by this item (if unset, g_pickup_shells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+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 --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 120)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+Non-displayed point light source. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights.
+Maximum intensity (in a radius 16 sphere around the light): regular lights have light/256, linear lights have light/8000-16*fade.
+Falloff radius to a negligible light amount: regular lights have light have 16*sqrt(light), linear lights have light/(fade*8000).
+By this you see that you HAVE to specify fade for a linear light... use values below 0.01 there.
+-------- KEYS --------
+<real key="light" name="light">intensity factor (default: 300). A linear</real>
+<color key="_color" name="_color">weighted RGB value of light color (default white - 1.0 1.0 1.0).</color>
+<target key="target" name="target">Lights pointed at a target will be spotlights.</target>
+<real key="radius" name="radius">radius of a spotlight at the target point (default: 64)</real>
+<real key="fade" name="fade">Fade factor of light attenuation of linear lights. Linear lights completely vanish at distance light/(fade*8000), so if you want the light to vanish at distance X, specify light/(8000*X) here.</real>
+<real key="_filterradius" name="_filterradius">filter radius for this light, similar to -light -filter</real>
+<boolean key="_sun" name="_sun">if 1, this light is an infinite sun light</boolean>
+<integer key="_samples" name="_samples">number of samples to use to get soft shadows from a light</integer>
+<real key="_deviance" name="_deviance">position deviance of the samples of a regular light (distributes the light samples in a cube of side length 2*_deviance around the origin), or angle deviance of the sun light samples in radians</real>
+-------- SPAWNFLAGS --------
+<flag key="LINEAR" name="LINEAR" bit="0">Use a linear falloff. Default is inverse distance squared (more realistic).</flag>
+Non-displayed point light source that JUST APPLIES TO THE LIGHT GRID. No idea what this is good for. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights.
+Maximum intensity (in a radius 16 sphere around the light): regular lights have light/256, linear lights have light/8000-16*fade.
+Falloff radius to a negligible light amount: regular lights have light have 16*sqrt(light), linear lights have light/(fade*8000).
+By this you see that you HAVE to specify fade for a linear light... use values below 0.01 there.
+-------- KEYS --------
+<real key="light" name="light">intensity factor (default: 300). A linear</real>
+<color key="_color" name="_color">weighted RGB value of light color (default white - 1.0 1.0 1.0).</color>
+<target key="target" name="target">Lights pointed at a target will be spotlights.</target>
+<real key="radius" name="radius">radius of a spotlight at the target point (default: 64)</real>
+<real key="fade" name="fade">Fade factor of light attenuation of linear lights. Linear lights completely vanish at distance light/(fade*8000), so if you want the light to vanish at distance X, specify light/(8000*X) here.</real>
+<real key="_filterradius" name="_filterradius">filter radius for this light, similar to -light -filter</real>
+<boolean key="_sun" name="_sun">if 1, this light is an infinite sun light</boolean>
+<integer key="_samples" name="_samples">number of samples to use to get soft shadows from a light</integer>
+<real key="_deviance" name="_deviance">position deviance of the samples of a regular light (distributes the light samples in a cube of side length 2*_deviance around the origin), or angle deviance of the sun light samples in radians</real>
+-------- SPAWNFLAGS --------
+<flag key="LINEAR" name="LINEAR" bit="0">Use a linear falloff. Default is inverse distance squared (more realistic).</flag>
+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 key="target" name="target">target_position the laser targets (may be another entity, preferably target_position, possibly controlled by misc_follow)</target>
+<string key="mdl" name="mdl">name of particle effect for the beam end point (see effectinfo.txt; default is laser_deadly if dmg is set, and none if not)</string>
+<color key="colormod" name="colormod">color of the laser beam (default: red, that is, 1 0 0)</color>
+<real key="dmg" name="dmg">damage inflicted by the beam per second, or -1 for an instant-death ray</real>
+<targetname key="targetname" name="targetname">name to target this (then its state is toggled)</targetname>
+<real key="alpha" name="alpha">when set, makes a dark laser of the given strength; may be combined with colormod</real>
+<real key="scale" name="scale">scales the beam thickness (default 1)</real>
+<real key="modelscale" name="modelscale">scales the dynamic light radius at the endpoint (default 1, -1 to turn off)</real>
+<integer key="team" name="team">team that gets hurt (5 = red, 14 = blue, etc) (when set, only this team can get hurt)</integer>
+-------- SPAWNFLAGS --------
+<flag key="START_ON" name="START_ON" bit="0">when targeted, the laser will start switched on</flag>
+<flag key="FINITE" name="FINITE" bit="1">the laser does not extend over its target like light would do, but stops there (takes more bandwidth)</flag>
+<flag key="NOTRACE" name="NOTRACE" bit="2">the laser passes through solid (faster rendering on clientside); non-FINITE lasers then never display their impact effect "mdl"!</flag>
+<flag key="INVERT_TEAM" name="INVERT_TEAM" bit="3">the team that owns this will NOT get hurt</flag>
+-------- 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.
+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 key="model" name="model">file name of model to include</model>
+<real key="_frame" name="_frame">frame of model to include</real>
+<array key="_remap" name="_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.</array>
+<direction key="angle" name="angle">view direction of the model</direction>
+<angles key="angles" name="angles">view direction of the model in PITCH YAW ROLL</angles>
+<real3 key="modelscale_vec" name="modelscale_vec">scaling vector for non-uniform scaling</real3>
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<texture key="_celshader" name="_celshader">the cel shader for this</texture>
+-------- SPAWNFLAGS --------
+<flag key="SOLID" name="SOLID" bit="1">make the model solid</flag>
+<flag key="FORCE_META" name="FORCE_META" bit="2">force the model to go through the -meta pipeline and enable lightmapping</flag>
+<flag key="EXTRUDE_NORMALS" name="EXTRUDE_NORMALS" bit="3">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)</flag>
+A way to load models from a map by the engine (e.g. self-animated zym models).
+Is non-solid by default.
+The keys below actually apply to most engine-loaded model entities as they are engine features; however, they are described here as they aren't overridden by game code in misc_gamemodel. Its q3map2 keys below will work on any brush entity!
+-------- KEYS --------
+<model key="model" name="model">when used as a point entity, file name of model to load; when used as a brush entity, do not specify that</model>
+<real key="frame" name="frame">animation frame to play (for self-animated zym models)</real>
+<real key="skin" name="skin">number of skin to load (when model is used)</real>
+<real key="movetype" name="movetype">way in which it moves: one of 0 = NONE, 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE</real>
+<real key="loddistance1" name="loddistance1">distance after which to show the first LOD model replacement (default: 1000)</real>
+<real key="loddistance2" name="loddistance2">distance after which to show the second LOD model replacement (default: 2000)</real>
+<string key="lodmodel1" name="lodmodel1">file name of the first LOD model replacement</string>
+<string key="lodmodel2" name="lodmodel2">file name of the second LOD model replacement</string>
+<targetname key="targetname" name="targetname">when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature.</targetname>
+<real3 key="originjitter" name="originjitter">a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.</real3>
+<real3 key="anglesjitter" name="anglesjitter">a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.</real3>
+<real key="anglejitter" name="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.</real>
+<string key="gametypefilter" name="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.</string>
+<string key="cvarfilter" name="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.</string>
+-------- SPAWNFLAGS --------
+<flag key="ALIGN_ORIGIN" name="ALIGN_ORIGIN" bit="0">align the origin to the surface below the model</flag>
+<flag key="ALIGN_BOTTOM" name="ALIGN_BOTTOM" bit="1">align the bottom of the model to the surface below it</flag>
+</point>
+
+<group name="func_illusionary" color="0 .5 .8">
+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 --------
+<real key="movetype" name="movetype">way in which it moves: one of 0 = NONE, 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE</real>
+<real3 key="avelocity" name="avelocity">vector giving its angular velocity (useful for spinning models)</real3>
+<real key="scale" name="scale">scale factor of the model (range: 0.0625 to 15.9375)</real>
+<real key="loddistance1" name="loddistance1">distance after which to show the first LOD model replacement (default: 1000)</real>
+<real key="loddistance2" name="loddistance2">distance after which to show the second LOD model replacement (default: 2000)</real>
+<string key="lodtarget1" name="lodtarget1">targetname of the first LOD model entity (can be used instead of lodmodel1 to use a brush model instead)</string>
+<string key="lodtarget2" name="lodtarget2">targetname of the second LOD model entity (can be used instead of lodmodel2 to use a brush model instead)</string>
+<targetname key="targetname" name="targetname">when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.</targetname>
+<real3 key="originjitter" name="originjitter">a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.</real3>
+<real3 key="anglesjitter" name="anglesjitter">a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.</real3>
+<real key="anglejitter" name="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.</real>
+<string key="gametypefilter" name="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.</string>
+-------- Q3MAP2 KEYS --------
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<target key="_clone" name="_clone">copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.</target>
+<targetname key="_clonename" name="_clonename">template name so one can clone from it</targetname>
+<real3 key="min" name="min">override automatically found minimum coordinate bounds</real3>
+<real3 key="max" name="max">override automatically found maximum coordinate bounds</real3>
+<targetname key="targetname" name="targetname">if targeted by a misc_model, its brushes get inserted into this</targetname>
+<texture key="_celshader" name="_celshader">Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.</texture>
+</group>
+
+<group name="func_wall" color="0 .5 .8">
+A solid brush entity. Use func_clientillusionary if you want it non-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 --------
+<real key="movetype" name="movetype">way in which it moves: one of 0 = NONE, 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE</real>
+<real key="solid" name="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)</real>
+<real3 key="avelocity" name="avelocity">vector giving its angular velocity (useful for spinning models)</real3>
+<real key="scale" name="scale">scale factor of the model (range: 0.0625 to 15.9375)</real>
+<real key="loddistance1" name="loddistance1">distance after which to show the first LOD model replacement (default: 1000)</real>
+<real key="loddistance2" name="loddistance2">distance after which to show the second LOD model replacement (default: 2000)</real>
+<string key="lodtarget1" name="lodtarget1">targetname of the first LOD model entity (can be used instead of lodmodel1 to use a brush model instead)</string>
+<string key="lodtarget2" name="lodtarget2">targetname of the second LOD model entity (can be used instead of lodmodel2 to use a brush model instead)</string>
+<targetname key="targetname" name="targetname">when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.</targetname>
+<real3 key="originjitter" name="originjitter">a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.</real3>
+<real3 key="anglesjitter" name="anglesjitter">a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.</real3>
+<real key="anglejitter" name="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.</real>
+<string key="gametypefilter" name="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.</string>
+-------- Q3MAP2 KEYS --------
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<target key="_clone" name="_clone">copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.</target>
+<targetname key="_clonename" name="_clonename">template name so one can clone from it</targetname>
+<real3 key="min" name="min">override automatically found minimum coordinate bounds</real3>
+<real3 key="max" name="max">override automatically found maximum coordinate bounds</real3>
+<targetname key="targetname" name="targetname">if targeted by a misc_model, its brushes get inserted into this</targetname>
+<texture key="_celshader" name="_celshader">Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.</texture>
+<targetname key="targetname" name="targetname">when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.</targetname>
+<string key="bgmscript" name="bgmscript">emitter class from the BGM script (if prefixed with <, movedir is treated as an angle value)</string>
+<real key="bgmscriptattack" name="bgmscriptattack">attack time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptdecay" name="bgmscriptdecay">decay time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptsustain" name="bgmscriptsustain">sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)</real>
+<real key="bgmscriptrelease" name="bgmscriptrelease">release time of the effect strength (0 to 3.9)</real>
+<real3 key="movedir" name="movedir">vector by which the entity moves when "pressed" by the bgmscript</real3>
+<real key="lip" name="lip">alpha change when "pressed" by the bgmscript (if > 0, it fades in when pressed, if < 0, it fades out when pressed)</real>
+<real3 key="originjitter" name="originjitter">a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.</real3>
+<real3 key="anglesjitter" name="anglesjitter">a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.</real3>
+<real key="anglejitter" name="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.</real>
+<string key="gametypefilter" name="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.</string>
+-------- SPAWNFLAGS --------
+<flag key="ALIGN_ORIGIN" name="ALIGN_ORIGIN" bit="0">align the origin to the surface below the model</flag>
+<flag key="ALIGN_BOTTOM" name="ALIGN_BOTTOM" bit="1">align the bottom of the model to the surface below it</flag>
+<targetname key="targetname" name="targetname">when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.</targetname>
+<string key="bgmscript" name="bgmscript">emitter class from the BGM script</string>
+<real key="bgmscriptattack" name="bgmscriptattack">attack time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptdecay" name="bgmscriptdecay">decay time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptsustain" name="bgmscriptsustain">sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)</real>
+<real key="bgmscriptrelease" name="bgmscriptrelease">release time of the effect strength (0 to 3.9)</real>
+<real3 key="movedir" name="movedir">vector by which the entity moves when "pressed" by the bgmscript</real3>
+<real key="lip" name="lip">alpha change when "pressed" by the bgmscript (if > 0, it fades in when pressed, if < 0, it fades out when pressed)</real>
+<real3 key="originjitter" name="originjitter">a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.</real3>
+<real3 key="anglesjitter" name="anglesjitter">a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.</real3>
+<real key="anglejitter" name="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.</real>
+<string key="gametypefilter" name="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.</string>
+-------- Q3MAP2 KEYS --------
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<target key="_clone" name="_clone">copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.</target>
+<targetname key="_clonename" name="_clonename">template name so one can clone from it</targetname>
+<real3 key="min" name="min">override automatically found minimum coordinate bounds</real3>
+<real3 key="max" name="max">override automatically found maximum coordinate bounds</real3>
+<targetname key="targetname" name="targetname">if targeted by a misc_model, its brushes get inserted into this</targetname>
+<texture key="_celshader" name="_celshader">Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.</texture>
+</group>
+
+<group name="func_clientwall" color="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.
+A client-side solid brush entity. Use func_clientillusionary if you want it non-solid.
+-------- KEYS --------
+<real key="solid" name="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)</real>
+<real key="scale" name="scale">scale factor of the model (range: 0.0625 to 15.9375)</real>
+<targetname key="targetname" name="targetname">when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.</targetname>
+<string key="bgmscript" name="bgmscript">emitter class from the BGM script</string>
+<real key="bgmscriptattack" name="bgmscriptattack">attack time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptdecay" name="bgmscriptdecay">decay time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptsustain" name="bgmscriptsustain">sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)</real>
+<real key="bgmscriptrelease" name="bgmscriptrelease">release time of the effect strength (0 to 3.9)</real>
+<real3 key="movedir" name="movedir">vector by which the entity moves when "pressed" by the bgmscript</real3>
+<real key="lip" name="lip">alpha change when "pressed" by the bgmscript (if > 0, it fades in when pressed, if < 0, it fades out when pressed)</real>
+<real3 key="originjitter" name="originjitter">a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.</real3>
+<real3 key="anglesjitter" name="anglesjitter">a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.</real3>
+<real key="anglejitter" name="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.</real>
+<string key="gametypefilter" name="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.</string>
+-------- Q3MAP2 KEYS --------
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<target key="_clone" name="_clone">copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.</target>
+<targetname key="_clonename" name="_clonename">template name so one can clone from it</targetname>
+<real3 key="min" name="min">override automatically found minimum coordinate bounds</real3>
+<real3 key="max" name="max">override automatically found maximum coordinate bounds</real3>
+<targetname key="targetname" name="targetname">if targeted by a misc_model, its brushes get inserted into this</targetname>
+<texture key="_celshader" name="_celshader">Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.</texture>
+Teleport destination location point for trigger_teleport entities. Do not let it touch the floor, but place it slightly higher (like, 16 units above) for better flow when jumping through it.
+-------- KEYS --------
+<targetname key="targetname" name="targetname">make the trigger_teleporter point to this.</targetname>
+<target key="target" name="target">target to activate when a teleporter targeting this is used</target>
+<target key="target2" name="target2">target to activate when a teleporter targeting this is used</target>
+<target key="target3" name="target3">target to activate when a teleporter targeting this is used</target>
+<target key="target4" name="target4">target to activate when a teleporter targeting this is used</target>
+<direction key="angle" name="angle">direction in which player will look when teleported, OR use</direction>
+<angles key="angles" name="angles">pitch and yaw when coming out of the teleporter (also specifies the direction the player will aim when coming out)</angles>
+<real key="cnt" name="cnt">weight for random selection, in case a teleporter points at multiple misc_teleporter_dest</real>
+<real key="speed" name="speed">maximum speed cap for the teleported player (if -1, teleported players will have no speed)</real>
+Control point. Be sure to give this enough clearance so that the shootable part has room to exist
+This should link to an onslaught_controlpoint entity or onslaught_generator entity.
+-------- KEYS --------
+<targetname key="targetname" name="targetname">name that onslaught_link entities will use to target this.</targetname>
+<target key="target" name="target">target any entities that are tied to this control point, such as vehicles and buildable structure entities.</target>
+<string key="message" name="message">name of this control point (should reflect the location in the map, such as "center bridge", "north tower", etc)</string>
+This entity targets two different onslaught_controlpoint or onslaught_generator entities, and suppresses shielding on both if they are owned by different teams.
+-------- KEYS --------
+<target key="target" name="target">first control point.</target>
+<target key="target2" name="target2">second control point.</target>
+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 key="target" name="target">point to next path_corner in the path.</target>
+<targetname key="targetname" name="targetname">the train following the path or the previous path_corner in the path points to this.</targetname>
+<real key="speed" name="speed">speed of func_train while moving to this path corner. If unset, the value from the func_train will be used.</real>
+<real key="wait" name="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</real>
+This entity triggers its targets whenever a new assault round is started. This can be used to e.g. activate the first objective.
+-------- KEYS --------
+<target key="target" name="target">targetname of entities to be enabled/triggered on round start (e.g. the first target_objective)</target>
+<target key="target2" name="target2">targetname of entities to be enabled/triggered on round start (e.g. the func_assault_destructibles targeting the target_objective)</target>
+<target key="target3" name="target3">targetname of entities to be enabled/triggered on round start</target>
+<target key="target4" name="target4">targetname of entities to be enabled/triggered on round start</target>
+target_objective controls an objective. Once triggered the objective is active and has 100 "health" points. If this "health" falls below zero it is assumed this objective has been fulfilled and entities targeted will be triggered (e.g. to activate the next objective or to end this round). Use target_objective_decrease to decrease the objective health.
+-------- KEYS --------
+<target key="target" name="target">targetname of entities to be enabled/triggered on objective fulfilling (e.g. the next target_objective, or target_assault_roundend)</target>
+<target key="target2" name="target2">targetname of entities to be enabled/triggered on objective fulfilling (e.g. the func_assault_destructibles targeting the target_objective)</target>
+<target key="target3" name="target3">targetname of entities to be enabled/triggered on objective fulfilling</target>
+<target key="target4" name="target4">targetname of entities to be enabled/triggered on objective fulfilling</target>
+<targetname key="targetname" name="targetname">targetname for this entity so it can be triggered by other entities.</targetname>
+When triggered decreases health of the targeted target_objective by the amount specified in dmg. Remember, target_objective has 100 health points and is considered conquered if health falls below zero.
+If you want e.g. two events to happen to conquer an objective you'd need two target_objective_decrease, each with a value for cnt of e.g. 51. To show attackers and defenders where to go, target_objective_decrease will show a fitting sprite ("Defend" to defenders, "Destroy"/"Push" to attackers) which can be seen through walls.
+-------- KEYS --------
+<target key="target" name="target">The targetname of the target_objective you want to manipulate.</target>
+<targetname key="targetname" name="targetname">Name for other entities to target this entity.</targetname>
+<real key="dmg" name="dmg">The amount of "health"-points you want to subtract from the objective health. Defaults to 101. Also used as score for triggering this objective.</real>
+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 --------
+<sound key="noise" name="noise">path/name of .wav/.ogg file to play</sound>
+<targetname key="targetname" name="targetname">the activating button or trigger points to this.</targetname>
+<real key="atten" name="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)</real>
+<real key="volume" name="volume">volume of the sound</real>
+-------- SPAWNFLAGS --------
+<flag key="LOOPED_ON" name="LOOPED_ON" bit="0">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.</flag>
+<flag key="LOOPED_OFF" name="LOOPED_OFF" bit="1">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.</flag>
+<flag key="GLOBAL" name="GLOBAL" bit="2">the sound plays with no attenuation (same as setting atten to -1)</flag>
+<flag key="ACTIVATOR" name="ACTIVATOR" bit="3">the sound is played to the activator only when triggered (cannot be combined with LOOPED_ON and LOOPED_OFF)</flag>
+</point>
+
+<group name="trigger_counter" color=".5 .5 .5">
+Acts as an intermediary for an action that takes multiple inputs.
+After the counter has been triggered "count" times, it will fire all of its targets and remove itself.
+-------- KEYS --------
+<real key="count" name="count">how many times this needs to be triggered to activate its targets</real>
+<target key="target" name="target">trigger all entities with this targetname when triggered</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<real key="delay" name="delay">delay the triggering by the given time</real>
+<string key="message" name="message">print this message to the player who activated the trigger</string>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
+-------- SPAWNFLAGS --------
+<flag key="NOMESSAGE" name="NOMESSAGE" bit="0">don't print a "2 more to go..."-like message when triggered</flag>
+Trigger that delays triggering by a given amount of time. Only one action can be waited for; if triggered again before the "wait" time expires, the timer will restart (as opposed to trigger_relay).
+-------- KEYS --------
+<real key="wait" name="wait">delay the triggering by the given time</real>
+<target key="target" name="target">trigger all entities with this targetname when triggered</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<string key="message" name="message">print this message to the player who activated the trigger</string>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
+</point>
+
+<group name="trigger_hurt" color=".5 .5 .5">
+Any object touching this will be hurt.
+Has the useful effect of automatically returning flags, keys and runes when they touch it.
+-------- KEYS --------
+<real key="dmg" name="dmg">amount of damage to deal (default: 1000)</real>
+<string key="message" name="message">kill message when someone gets killed by this (default: "was in the wrong place")</string>
+<string key="message2" name="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)</string>
+<integer key="team" name="team">team that gets hurt (5 = red, 14 = blue, etc) (when set, only this team can get hurt)</integer>
+-------- SPAWNFLAGS --------
+<flag key="INVERT_TEAM" name="INVERT_TEAM" bit="2">the team that owns this will NOT jump when touching this</flag>
+</group>
+
+<group name="trigger_impulse" color=".5 .5 .5">
+An accelerator/dampener/wind field.
+Can be used in two ways:
+"dampener field": just set strength to a value from 0 to 1. Entering the field will slow down to this factor.
+"accelerator field": just set strength to a value from 1 to infinity. Entering the field will accelerate by this factor.
+"wind field": set strength to the amount of velocity to add per second, and target a target_position. The field will apply force in the direction from its own origin to the target (use an origin brush to specify its own origin, or this will fail) when touched.
+"gravity field": set strength to the amount of velocity to add per second at the center, and set radius to the radius of the field. Set falloff to the desired falloff characteristics.
+-------- KEYS --------
+<target key="target" name="target">"wind field": points to the target_position to which the player will get pushed.</target>
+<real key="strength" name="strength">"wind field", "gravity field": amount of force per second to apply. "dampener/accelerator field": slowdown/speedup factor.</real>
+<real key="falloff" name="falloff">"gravity field": 0 means no falloff, 1 means linear falloff (zero at the outside), 2 means inverted linear falloff (zero at the inside)</real>
+</group>
+
+<group name="trigger_multiple" color=".5 .5 .5">
+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 --------
+<real key="health" name="health">amount of damage that has to be dealt to the trigger to activate (it then won't respond to merely touching it)</real>
+<real key="wait" name="wait">prevent triggering again for this amount of time (default: 0.2, set to -1 to wait indefinitely, or -2 to not wait at all)</real>
+<real key="sounds" name="sounds">1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav</real>
+<sound key="noise" name="noise">path to sound file, if you want to play something else</sound>
+<target key="target" name="target">trigger all entities with this targetname when triggered</target>
+<target key="target2" name="target2">trigger all entities with this targetname when triggered</target>
+<target key="target3" name="target3">trigger all entities with this targetname when triggered</target>
+<target key="target4" name="target4">trigger all entities with this targetname when triggered</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<real key="delay" name="delay">delay the triggering by the given time</real>
+<string key="message" name="message">print this message to the player who activated the trigger</string>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
+<integer key="team" name="team">team that owns this trigger (5 = red, 14 = blue, etc) (when set, only this team can trigger)</integer>
+-------- SPAWNFLAGS --------
+<flag key="NOTOUCH" name="NOTOUCH" bit="0">the trigger can only be triggered by other entities, not by touching or firing (you should probably use trigger_relay or trigger_delay instead)</flag>
+<flag key="ALLENTS" name="ALLENTS" bit="1">the trigger responds to all entities, not just players (useful for targetting trigger_items)</flag>
+<flag key="INVERT_TEAM" name="INVERT_TEAM" bit="2">the team that owns the trigger will NOT trigger when touching this</flag>
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+</group>
+
+<group name="trigger_once" color=".5 .5 .5">
+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.
+Basically, it's a use-once trigger_multiple.
+-------- KEYS --------
+<real key="health" name="health">amount of damage that has to be dealt to the trigger to activate (it then won't respond to merely touching it)</real>
+<real key="sounds" name="sounds">1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav</real>
+<sound key="noise" name="noise">path to sound file, if you want to play something else</sound>
+<target key="target" name="target">trigger all entities with this targetname when triggered</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<real key="delay" name="delay">delay the triggering by the given time</real>
+<string key="message" name="message">print this message to the player who activated the trigger</string>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
+-------- SPAWNFLAGS --------
+<flag key="NOTOUCH" name="NOTOUCH" bit="0">the trigger can only be triggered by other entities, not by touching or firing (you should probably use trigger_relay or trigger_delay instead)</flag>
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+</group>
+
+<group name="trigger_push" color="1 .5 0">
+Jump pad. What else?
+Can be used in three ways:
+Xonotic "target/height" way: put the target_position where the player should land, and tune height to get a nice jump path. A good starting value for height is 100.
+Q3A "target" way: put the target_position at the apex of the jump, and hope the player will land at the right spot. Good luck.
+Quake "movedir/speed" way: player will get velocity movedir * speed * 10 when using the jump pad
+-------- KEYS --------
+<target key="target" name="target">point the player will fly to when using the jump pad (use a target_position here)</target>
+<real key="height" name="height">if height is 0, the (player's origin at the) apex of the jump will be at the target; otherwise, the apex will be abs(height) above the higher point of player's origin and the target; if positive, the apex will be reached in the jump from initial origin to target</real>
+<real3 key="movedir" name="movedir">when target is not set, direction vector to push to</real3>
+<real key="speed" name="speed">speed of jump pad (default: 1000)</real>
+<sound key="noise" name="noise">sound to play when jump pad is used; default is misc/jumppad.wav; you can set it to "" to make the pad silent</sound>
+<integer key="team" name="team">team that owns this jump pad (5 = red, 14 = blue, etc) (when set, only this team can teleport)</integer>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will reassign the teleporter to the team of the activator.</targetname>
+-------- SPAWNFLAGS --------
+<flag key="INVERT_TEAM" name="INVERT_TEAM" bit="2">the team that owns the teleporter will NOT jump when touching this</flag>
+This fixed size trigger cannot be touched, it can only be fired by other events. It can, like any other trigger, contain killtargets, targets, delays, and messages.
+One possible use is to trigger entities with more than one targetname on an action, e.g. a button. For this, set target of your button to foobar. Create two trigger_relay with targetname=foobar. Give one of the trigger_relay entities target=ent1, and give the other target=ent2.
+More than one "trigger event" can be delayed at once, as opposed to trigger_delay.
+-------- KEYS --------
+<target key="target" name="target">trigger all entities with this targetname when triggered</target>
+<target key="target2" name="target2">trigger all entities with this targetname when triggered</target>
+<target key="target3" name="target3">trigger all entities with this targetname when triggered</target>
+<target key="target4" name="target4">trigger all entities with this targetname when triggered</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<real key="delay" name="delay">delay the triggering by the given time</real>
+<string key="message" name="message">print this message to the player who activated the trigger</string>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
+</point>
+
+<group name="trigger_swamp" color=".5 .5 .5">
+Players getting into the swamp will get slowed down and damaged
+-------- KEYS --------
+<real key="dmg" name="dmg">damage per interval to deal (default is 5)</real>
+<real key="swamp_interval" name="swamp_interval">interval of damage when in swamp (default is 1)</real>
+<real key="swamp_slowdown" name="swamp_slowdown">amount of slowdown caused by the swamp (default is 0.5)</real>
+</group>
+
+<group name="trigger_teleport" color=".5 .5 .5">
+Touching this will teleport players to the location of the targeted misc_teleporter_dest entity.
+Note that in Xonotic, teleporters preserve momentum of the player using them.
+-------- KEYS --------
+<target key="target" name="target">this must point to a misc_teleporter_dest entity. If it points to more than one, a destination is randomly selected on teleport.</target>
+<target key="target2" name="target2">target to activate when the teleporter is used</target>
+<target key="target3" name="target3">target to activate when the teleporter is used</target>
+<target key="target4" name="target4">target to activate when the teleporter is used</target>
+<integer key="team" name="team">team that owns this teleporter (5 = red, 14 = blue, etc) (when set, only this team can teleport)</integer>
+<targetname key="targetname" name="targetname">when targeted by a func_button, pressing the button will reassign the teleporter to the team of the activator.</targetname>
+-------- SPAWNFLAGS --------
+<flag key="INVERT_TEAM" name="INVERT_TEAM" bit="2">the team that owns the teleporter will NOT teleport when touching this</flag>
+<real key="ammo_cells" name="ammo_cells">initial cells of the weapon (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_cells" name="ammo_cells">initial cells of the weapon (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_rockets" name="ammo_rockets">initial rockets of the weapon (if unset, g_pickup_rockets is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_rockets" name="ammo_rockets">initial rockets of the weapon (if unset, g_pickup_rockets is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+in your mapinfo file, everyone will already spawn with one, making this pickup useless.
+-------- KEYS --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cells have been placed.
+-------- KEYS --------
+<real key="ammo_cells" name="ammo_cells">initial cells of the weapon (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15 * g_balance_nex_respawntime_modifier)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cells have been placed.
+-------- KEYS --------
+<real key="ammo_rockets" name="ammo_rockets">initial rockets of the weapon (if unset, g_pickup_rockets is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+in your mapinfo file, everyone will already spawn with one, making this pickup useless.
+-------- KEYS --------
+<real key="ammo_shells" name="ammo_shells">initial shells of the weapon (if unset, g_pickup_shells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_nails" name="ammo_nails">initial bullets of the weapon (if unset, g_pickup_nails is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+If you see this, the currently selected brush is not of an entity.
+-------- KEYS --------
+<string key="fog" name="fog">fog parameters of the map (density red green blue alpha mindist maxdist maxheight fade-height); works just like the "fog" console command</string>
+<string key="author" name="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.</string>
+<string key="message" name="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.</string>
+<string key="_description" name="_description">one-line description of the map. Will get copied to the "description" entry of the mapinfo file when none is present.</string>
+-------- Q3MAP2 KEYS --------
+<integer3 key="_blocksize" name="_blocksize">vector specifying the automatic vis subdivision block size (default: 1024 1024 1024)</integer3>
+<boolean key="_castshadows" name="_castshadows">Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting.1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.</boolean>
+<boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.</boolean>
+<texture key="_celshader" name="_celshader">Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.</texture>
+A checkpoint, for the race game mode. Be sure to make them quite long, so they actually catch a player reliably!
+-------- KEYS --------
+<real key="cnt" name="cnt">Number of the checkpoint. 0 for start/finish line, and at least two other checkpoints have to exist. They MUST be touched in sequential order!</real>
+<string key="message" name="message">Death message, when touching checkpoints in the wrong order.</string>
+<string key="message2" name="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)</string>
+<targetname key="targetname" name="targetname">Name of the checkpoint. info_player_race can target this to assign a spawn to a checkpoint. Also used for triggering a checkpoint by an event.</targetname>
+<target key="target" name="target">when the checkpoint is passed, these entities are triggered. Useful for forcing items in certain areas using trigger_items</target>
+<real key="race_penalty" name="race_penalty">when set, this penalty time is given if passing this checkpoint, and the checkpoint does not show up with a sprite. Useful for invisible checkpoints to detect driving around the intended checkpoint</real>
+<string key="race_penalty_reason" name="race_penalty_reason">reason to display when the penalty time is imposed. Default: "missing a checkpoint"</string>
+-------- SPAWNFLAGS --------
+<flag key="NOTOUCH" name="NOTOUCH" bit="0">the checkpoint will not become active when touched, it HAS to be targeted</flag>
+<flag key="STRICTTRIGGER" name="STRICTTRIGGER" bit="1">only trigger the targets when the checkpoint actually was reached in a valid way (that is, not when going back)</flag>
+<flag key="CRUSH" name="CRUSH" bit="2">the checkpoint kills when used at the wrong time</flag>
+<flag key="FINISH" name="FINISH" bit="3">when set on the last checkpoint (i.e. the one with highest cnt), it is marked as finish line and the CP with cnt=0 is the start line</flag>
+<real key="race_penalty" name="race_penalty">this penalty time is given if passing this trigger</real>
+<string key="race_penalty_reason" name="race_penalty_reason">reason to display when the penalty time is imposed. Default: "leaving the track"</string>
+-------- SPAWNFLAGS --------
+<flag key="NOTOUCH" name="NOTOUCH" bit="0">the trigger will not become active when touched, it HAS to be targeted</flag>
+NOTE for race_place: when the race starts after the qualifying, the player with the fastest lap ends up at the info_player_race with race_place 1, and so on. If there are too many players, or if someone comes in later, he will spawn at an info_player_race with highest race_place. If someone dies after reaching the the starting checkpoint, he will spawn at race_place 0. So for each trigger_race_checkpoint, there must be at least one corresponding info_player_race with race_place NOT set.
+-------- KEYS --------
+<target key="target" name="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.</target>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<real key="cnt" name="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.</real>
+<real key="race_place" name="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</real>
+<real key="restriction" name="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)</real>
+<string key="mdl" name="mdl">particle effect name from effectinfo.txt</string>
+<real key="impulse" name="impulse">when positive, number of particles to emit per second; when negative; number of particles to emit per second and 64^3 block</real>
+<real3 key="velocity" name="velocity">particle direction and speed</real3>
+<real3 key="movedir" name="movedir">when set, trace direction (particles will then be emitted from the surface the trace hits); the length of the vector is used as strength of taking the normal of the trace into account</real3>
+<sound key="noise" name="noise">sound to play when the particle is emitted</sound>
+<real key="atten" name="atten">distance attenuation of the sound (a value from 0.1 to 3.9), default is 0.5; set to -1 for no attenuation (global sound)</real>
+<real key="volume" name="volume">volume of the sound</real>
+<targetname key="targetname" name="targetname">name to target this (then its state is toggled)</targetname>
+<string key="bgmscript" name="bgmscript">emitter class from the BGM script</string>
+<real key="bgmscriptattack" name="bgmscriptattack">attack time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptdecay" name="bgmscriptdecay">decay time of the effect strength (0 to 3.9)</real>
+<real key="bgmscriptsustain" name="bgmscriptsustain">sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)</real>
+<real key="bgmscriptrelease" name="bgmscriptrelease">release time of the effect strength (0 to 3.9)</real>
+-------- SPAWNFLAGS --------
+<flag key="START_ON" name="START_ON" bit="0">when targeted, the particle emitter will start switched on</flag>
+<flag key="IMPULSE" name="IMPULSE" bit="1">only send the full amount of impulse particles when the entity is triggered</flag>
+<flag key="VISCULLING" name="VISCULLING" bit="2">only emit particles if the emitter brush is in the current PVS</flag>
+-------- 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
+ <emitter class> <time since start of background music> <0 if the emitters are to be switched off, >0 and <=1 if they are to be switched on>
+e.g.
+ smokers 4.7 1
+ smokers 4.9 0
+The lines MUST be sorted by emitter class as primary key, and by the time since start of the BGM as secondary key.
+"Mono-flop" trigger gate... turns trigger events into pairs of events
+-------- KEYS --------
+<target key="target" name="target">trigger all entities with this targetname when triggered</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<real key="wait" name="wait">time to wait until the "off" event is fired</real>
+-------- SPAWNFLAGS --------
+<flag key="FIXED" name="FIXED" bit="0">do pulses of fixed length (so the "off" delay is NOT extended as usual and new events are just ignored)</flag>
+Makes one entity follow another. Will not work with all entities.
+-------- KEYS --------
+<target key="target" name="target">points to the entity to move (e.g. something that won't move by itself)</target>
+<target key="killtarget" name="killtarget">points to the entity that is to be used as the source (e.g. a func_plat)</target>
+<string key="message" name="message">tag name to attach to (if ATTACH is used)</string>
+<real3 key="punchangle" name="punchangle">angle modifier (if LOCAL is used, and ATTACH is not)</real3>
+-------- SPAWNFLAGS --------
+<flag key="ATTACH" name="ATTACH" bit="0">attachment will be used instead of MOVETYPE_FOLLOW (mostly useful for attaching stuff to ZYM models)</flag>
+<flag key="LOCAL" name="LOCAL" bit="1">do not untransform the coordinates (that is, the map specifies local coordinates, not global ones). Mostly useful with ATTACH.</flag>
+Placing this entity on a map kills your cat, voids the warranty on your toaster, and makes your map an unenjoyable campers' paradise.
+the MinstaGib Nex. Always kills with one shot.
+-------- KEYS --------
+<real key="ammo_cells" name="ammo_cells">initial cells of the weapon (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+Portals cannot be made on noimpact surfaces, and the portal missile will bounce on slick surfaces.
+-------- KEYS --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 120)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+For the number fields, not specifying a value means not changing it. To clear armor, you need to explicitly set "armor" to "-1".
+You may want to target this by a race checkpoint, a teleporter, or a trigger_multiple with ALLENTS set (so it removes weapons thrown through the field to avoid getting a weapon through it).
+-------- KEYS --------
+<targetname key="targetname" name="targetname">used to trigger this</targetname>
+<string key="netname" name="netname">space separated list of items (either weapon short names (like in g_start_weapon_* cvars), or item short names "unlimited_ammo", "unlimited_weapon_ammo", "unlimited_superweapons", "invincible", "strength", "jetpack" and "fuel_regen"</string>
+<string key="message" name="message">message to print</string>
+<real key="ammo_shells" name="ammo_shells">amount of shells</real>
+<real key="ammo_nails" name="ammo_nails">amount of bullets</real>
+<real key="ammo_rockets" name="ammo_rockets">amount of rockets</real>
+<real key="ammo_cells" name="ammo_cells">amount of cells</real>
+<real key="ammo_fuel" name="ammo_fuel">amount of fuel</real>
+<real key="health" name="health">amount of health</real>
+<real key="armorvalue" name="armorvalue">amount of armor</real>
+<real key="strength_finished" name="strength_finished">if "strength" is specified, the time in seconds for which the strength will hold</real>
+<real key="invincible_finished" name="invincible_finished">if "invincible" is specified, the time in seconds for which the invincibility will hold</real>
+-------- SPAWNFLAGS --------
+<flag key="AND" name="AND" bit="0">any items not listed will get removed, and none will get added</flag>
+<flag key="OR" name="OR" bit="1">the player may keep items not listed</flag>
+<flag key="ANDNOT" name="ANDNOT" bit="2">the items listed will get removed from the player</flag>
+<targetname key="targetname" name="targetname">used to trigger this</targetname>
+<string key="message" name="message">entity field list</string>
+<target key="target" name="target">when set, target_spawn edits entities, instead of creating new ones; the special value *activator causes the activator to be edited</target>
+<real key="count" name="count">make sure no more than count entities have been created by this (refuse to spawn new ones if exceeded)</real>
+<target key="killtarget" name="killtarget">reference entity (can be used as $killtarget)</target>
+<target key="target2" name="target2">reference entity (can be used as $target2)</target>
+<target key="target3" name="target3">reference entity (can be used as $target3)</target>
+<target key="target4" name="target4">reference entity (can be used as $target4)</target>
+-------- SPAWNFLAGS --------
+<flag key="ONLOAD" name="ONLOAD" bit="1">create a first entity on map load</flag>
+</point>
+
+<group name="func_breakable" color="1 0 0">
+This is a brush 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 --------
+<real key="health" name="health">The damage this trigger can take</real>
+<target key="target" name="target">The entity/entities to be triggered once this entity gets invisible</target>
+<targetname key="targetname" name="targetname">The name other entities can use to target this entity</targetname>
+<string key="mdl" name="mdl">particle effect name to show when destroyed</string>
+<string key="message" name="message">death message when a player gets hit by the explosion</string>
+<string key="message2" name="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)</string>
+<real key="debrismovetype" name="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</real>
+<real key="debrissolid" name="debrissolid">solidity of the debris: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE</real>
+<real3 key="debrisvelocity" name="debrisvelocity">initial velocity vector of the debris (static part)</real3>
+<real3 key="debrisvelocityjitter" name="debrisvelocityjitter">initial velocity vector of the debris (random part)</real3>
+<real3 key="debrisavelocityjitter" name="debrisavelocityjitter">initial angular velocity vector of the debris (random part)</real3>
+<real key="debristime" name="debristime">time till the debris fades (average)</real>
+<real key="debristimejitter" name="debristimejitter">time till the debris fades (random part)</real>
+<real key="debrisfadetime" name="debrisfadetime">how long debris takes to fade</real>
+<real key="debrisdamageforcescale" name="debrisdamageforcescale">how much debris is affected by damage force (e.g. explosions)</real>
+<real key="debrisskin" name="debrisskin">skin number of debris</real>
+-------- SPAWNFLAGS --------
+<flag key="DISABLED" name="DISABLED" bit="0">do not allow damaging this until it is first activated</flag>
+<flag key="INDICATE" name="INDICATE" bit="1">indicate amount of damage already taken by coloring</flag>
+<flag key="NOSPLASH" name="NOSPLASH" bit="8">if set, splash damage cannot activate the door, only direct damage can (requires health to be set)</flag>
+<real key="ammo_cells" name="ammo_cells">initial cells of the weapon (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 30)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+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 --------
+<real key="ammo_rockets" name="ammo_rockets">initial rockets of the weapon (if unset, g_pickup_rockets is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 30)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_cells" name="ammo_cells">initial cells of the weapon (if unset, g_pickup_cells is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 30)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_nails" name="ammo_nails">initial bullets of the weapon (if unset, g_pickup_nails is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 30)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+Solid entity that oscillates according to a sum of sine waves.
+-------- KEYS --------
+<real key="speed" name="speed">amount of time in seconds for one complete oscillation cycle in the base frequency (default 4).</real>
+<real key="height" name="height">sets the amount of travel of the oscillation movement (default 32). </real>
+<real key="phase" name="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).</real>
+<sound key="noise" name="noise">path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).</sound>
+<real key="dmg" name="dmg">damage a player who gets crushed by it receives</real>
+<real key="dmgtime" name="dmgtime">interval to apply dmg to a player who is s in the way</real>
+<string key="message" name="message">death message when a player gets crushed</string>
+<string key="message2" name="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)</string>
+<string key="netname" name="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</string>
+<real key="target2factor" name="target2factor">factor by which to take the second reference entity (default 1).</real>
+<real3 key="target2normal" name="target2normal">if set, the second reference entity's location is first projected onto a plane with that normal</real3>
+<real key="target3factor" name="target3factor">factor by which to take the third reference entity (default 1).</real>
+<real3 key="target3normal" name="target3normal">if set, the third reference entity's location is first projected onto a plane with that normal</real3>
+<real key="target4factor" name="target4factor">factor by which to take the fourth reference entity (default 1).</real>
+<real3 key="target4normal" name="target4normal">if set, the fourth reference entity's location is first projected onto a plane with that normal</real3>
+<sound key="noise" name="noise">path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).</sound>
+<real key="dmg" name="dmg">damage a player who gets crushed by it receives</real>
+<real key="dmgtime" name="dmgtime">interval to apply dmg to a player who is s in the way</real>
+<string key="message" name="message">death message when a player gets crushed</string>
+<string key="message2" name="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)</string>
+-------- SPAWNFLAGS --------
+<flag key="PROJECT_ON_TARGETNORMAL" name="PROJECT_ON_TARGETNORMAL" bit="0">target's origin is projected onto the given direction vector, not on the plane perpendicular to it</flag>
+<flag key="PROJECT_ON_TARGET2NORMAL" name="PROJECT_ON_TARGET2NORMAL" bit="1">target2's origin is projected onto the given direction vector, not on the plane perpendicular to it</flag>
+<flag key="PROJECT_ON_TARGET3NORMAL" name="PROJECT_ON_TARGET3NORMAL" bit="2">target3's origin is projected onto the given direction vector, not on the plane perpendicular to it</flag>
+<flag key="PROJECT_ON_TARGET4NORMAL" name="PROJECT_ON_TARGET4NORMAL" bit="3">target4's origin is projected onto the given direction vector, not on the plane perpendicular to it</flag>
+<real key="ammo_fuel" name="ammo_fuel">fuel units gained by this item (if unset, g_pickup_fuel is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="respawntime" name="respawntime">time till it respawns (default: 120)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<real key="ammo_fuel" name="ammo_fuel">fuel units gained by this item (if unset, g_pickup_fuel_jetpack is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 120)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+Triggers targets when a given magic word has been said
+-------- KEYS --------
+<string key="message" name="message">message to wait for (can start or end with * for wildcards)</string>
+<string key="netname" name="netname">replacement text (by default, no replacement is performed if empty)</string>
+<real key="radius" name="radius">radius in which the player has to be for this to match</real>
+<target key="target" name="target">all entities with a matching targetname will be triggered.</target>
+<target key="target2" name="target2">all entities with a matching targetname will be triggered.</target>
+<target key="target3" name="target3">all entities with a matching targetname will be triggered.</target>
+<target key="target4" name="target4">all entities with a matching targetname will be triggered.</target>
+-------- SPAWNFLAGS --------
+<flag key="IGNORE_SAY" name="IGNORE_SAY" bit="0">do not respond to "say" messages</flag>
+<flag key="IGNORE_TEAMSAY" name="IGNORE_TEAMSAY" bit="1">do not respond to "say_team" messages</flag>
+<flag key="IGNORE_TELL" name="IGNORE_TELL" bit="2">do not respond to "tell" messages</flag>
+<flag key="IGNORE_INVALIDTELL" name="IGNORE_INVALIDTELL" bit="3">do not respond to "tell" messages of invalid syntax</flag>
+<flag key="REPLACE_WHOLE_MESSAGE" name="REPLACE_WHOLE_MESSAGE" bit="4">replace the whole message by netname, or drop the message if netname is empty</flag>
+<flag key="REPLACE_OUTSIDE" name="REPLACE_OUTSIDE" bit="5">also perform the replacement when outside the radius (to hide the "secret word")</flag>
+<flag key="CONTINUE" name="CONTINUE" bit="6">even if this magic ear matched, continue looking for further matches/replacements (useful for swear word filters)</flag>
+<flag key="NODECOLORIZE" name="NODECOLORIZE" bit="7">do not decolorize the input string before matching</flag>
+<real key="ammo_rockets" name="ammo_rockets">initial rockets of the weapon (if unset, g_pickup_rockets is used)</real>
+<real key="respawntime" name="respawntime">time till it respawns (default: 15)</real>
+<integer key="team" name="team">out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.</integer>
+<real key="cnt" name="cnt">weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.</real>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+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.
+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 key="target" name="target">must point to another trigger_warpzone, or...</target>
+<target key="target2" name="target2">is triggered when a player ENTERS the warpzone (and warps away)</target>
+<target key="target3" name="target3">is triggered when a player LEAVES the warpzone (from the other warp zone to this one)</target>
+<target key="target4" name="target4">is triggered in both cases</target>
+<targetname key="targetname" name="targetname">must be pointed to by another trigger_warpzone. Should be pointed to by a misc_warpzone_position entity, or...</targetname>
+<target key="killtarget" name="killtarget">should point to a target_position entity, or</target>
+<real key="warpzone_fadestart" name="warpzone_fadestart">start distance of fading out the warpzone</real>
+<real key="warpzone_fadeend" name="warpzone_fadeend">end distance of fading out the warpzone (if viewer is further, warpzone is not rendered at all)</real>
+<target key="target" name="target">must point to a trigger_warpzone</target>
+<angles key="angles" name="angles">must point perpendicular to the common/warpzone surface of the trigger_warpzone, and away from the trigger brush</angles>
+<real3 key="origin" name="origin">must be on the common/warpzone surface of the trigger_warpzone</real3>
+</point>
+
+<group name="func_camera" color="1 .5 1">
+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 key="target" name="target">must point to a target_position</target>
+<real key="warpzone_fadestart" name="warpzone_fadestart">start distance of fading out the warpzone</real>
+<real key="warpzone_fadeend" name="warpzone_fadeend">end distance of fading out the warpzone (if viewer is further, warpzone is not rendered at all)</real>
+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 key="targetname" name="targetname">The name other entities can use to target this entity (when not set, this one is the default)</targetname>
+<sound key="noise" name="noise">the music to play (as full sound file name)</sound>
+<flag key="START_OFF" name="START_OFF" bit="0">the trigger is off initially</flag>
+</group>
+
+<group name="trigger_gravity" color=".5 .5 1">
+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 --------
+<real key="gravity" name="gravity">gravity offset in this area, defaults to 0 if not set</real>
+<sound key="noise" name="noise">sound to play when an entity enters the gravity zone, leave empty to disable</sound>
+<targetname key="targetname" name="targetname">you can use this to target the grazity zone with a trigger, which will toggle it when activated</targetname>
+-------- SPAWNFLAGS --------
+<flag key="STICKY" name="STICKY" bit="0">entities keep their gravity after leaving the gravity zone</flag>
+<flag key="START_OFF" name="START_OFF" bit="1">when targeted, the gravity zone starts off and is enabled upon triggering</flag>
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+---------NOTES----------
+Basic energy cannon
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+<flag key="PILLAR" name="PILLAR" bit="1">Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)</flag>
+---------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 --------
index 32e2160c124b1f768c4415413e2cd0c631213014..9a66763ee1e8fafc6b4cf21017f8a23e30814bb4 100644 (file)
Binary files a/textures/exx/floor/floor_grate01_norm.tga and b/textures/exx/floor/floor_grate01_norm.tga differ
index b0adff73734b571f6768e4a7127b666076e8f207..48cabcf00de92c7394cb4a50549a0b6996f5f6db 100644 (file)
Binary files a/textures/exx/floor/floor_grate02_norm.tga and b/textures/exx/floor/floor_grate02_norm.tga differ
index d0c14a94c9d447be8947c0fe029582fe28bd8e57..b891db2d4cb75186ce8dc0af06164aa050c642e3 100644 (file)
Binary files a/textures/exx/floor/floor_grate03_norm.tga and b/textures/exx/floor/floor_grate03_norm.tga differ
index e0b0badb43bd1c9e26567ce07cf7617f666c8bf3..84cf16fabfb2edc97a795c99d46bcf211b573314 100644 (file)
Binary files a/textures/exx/floor/floor_grate04_norm.tga and b/textures/exx/floor/floor_grate04_norm.tga differ
index d0ed9f9418d2535b48bb895753e71c51de6f524c..86406f466522f92fef23b80f892503b3a75edf34 100644 (file)
Binary files a/textures/exx/floor/floor_metal02_norm.tga and b/textures/exx/floor/floor_metal02_norm.tga differ
index 73a79ffbf35fda184fe66d54958f347325710462..72e336aa02775638ce9fe389b26f775c1811e91b 100644 (file)
Binary files a/textures/exx/floor/floor_panel01_norm.tga and b/textures/exx/floor/floor_panel01_norm.tga differ
index 74fb66decc4df3a7b8f967a8b339bd7d7474cd3d..ec51ed517a8a53973b0124bbf4963fbefbd3d27a 100644 (file)
Binary files a/textures/exx/floor/floor_simplines_norm.tga and b/textures/exx/floor/floor_simplines_norm.tga differ
index 04d18d557623e69157de307cf0a58b9f00f13264..201a1116d2cb15836c3a246a2e2da366d9775bb1 100644 (file)
Binary files a/textures/exx/floor/floor_tile03_norm.tga and b/textures/exx/floor/floor_tile03_norm.tga differ
index faa79cfe9b2066618a009c222d9aabe7e390d885..ec0b7ac85ae7828f969e5d8283ade270bcc91d0e 100644 (file)
Binary files a/textures/exx/floor/floor_tread01_norm.tga and b/textures/exx/floor/floor_tread01_norm.tga differ
index 169ffab05d5341aa99f24544fbee5f6d268defb1..0069dc85285d62ba24c031f02b249e83b51062ea 100644 (file)
Binary files a/textures/exx/panel/panel_metal01_norm.tga and b/textures/exx/panel/panel_metal01_norm.tga differ
index 169ffab05d5341aa99f24544fbee5f6d268defb1..0069dc85285d62ba24c031f02b249e83b51062ea 100644 (file)
Binary files a/textures/exx/panel/panel_metal01b_norm.tga and b/textures/exx/panel/panel_metal01b_norm.tga differ
index 3728f0a7d81c5f60e08e031566711c4494c005ba..313dbf228e68283cb0c478c14c6910cbb5617f3d 100644 (file)
Binary files a/textures/exx/panel/panel_metal01c_norm.tga and b/textures/exx/panel/panel_metal01c_norm.tga differ
index dfe413b5cdb15a22e25f6e98df147a61dce70441..e3387bb17ac7aff7695643cdd7cb116f1c1511f2 100644 (file)
Binary files a/textures/exx/panel/panel_metal02_norm.tga and b/textures/exx/panel/panel_metal02_norm.tga differ
index 808ed4f380e763600831ea2f2fbc6777ed66ed9d..95ff79dd701b6deaf8aa95762b7fb2b146242afe 100644 (file)
Binary files a/textures/exx/panel/panel_metal03_norm.tga and b/textures/exx/panel/panel_metal03_norm.tga differ
index d29ba4e060c4ad13fd93231bc746f6f9ebfa26f5..e714e3d95edc9d35e75864dabe17ebc3bca6d11b 100644 (file)
Binary files a/textures/exx/panel/panel_metal04_norm.tga and b/textures/exx/panel/panel_metal04_norm.tga differ
index 2c45cad3d03eec8a53d8de89571a2e3b430fb3e8..e88d8b75ae6be6e2d109dfa00a91775187f24a80 100644 (file)
Binary files a/textures/exx/panel/panel_metal05_norm.tga and b/textures/exx/panel/panel_metal05_norm.tga differ
index b46e8dd40a8d55318ead2ff6a5cf7d522d87c145..d50c6002a9d5de7991b9758234a8a68e849305cd 100644 (file)
Binary files a/textures/exx/panel/panel_metalbig04_norm.tga and b/textures/exx/panel/panel_metalbig04_norm.tga differ
index 6561aa3b82c101cf3427eeb79fe46f957d309139..d9e9f5fe7204347c22b5bee962becd6550d6ee3c 100644 (file)
Binary files a/textures/exx/panel/panel_metalbig04b_norm.tga and b/textures/exx/panel/panel_metalbig04b_norm.tga differ
index 925d6c86b0271a6c9dcfacda9096d3d4e5fc0782..224c05de84b16e6e96c6b3a8c3af1802ed65b550 100644 (file)
Binary files a/textures/exx/panel/panel_q201_norm.tga and b/textures/exx/panel/panel_q201_norm.tga differ
index cc4b3d631ebe82c3ffd8563ad8ca5500a24909f1..30d493234bd8fd374732ddaaa124aae764b01fed 100644 (file)
Binary files a/textures/exx/panel/panel_q201b_norm.tga and b/textures/exx/panel/panel_q201b_norm.tga differ
index 6376ce7695b807d92d275c5c2c1073ded6fbb4c6..4c09c7e39f90b2115309a56892299bc22a2f1f3f 100644 (file)
Binary files a/textures/exx/panel/panel_q201c_norm.tga and b/textures/exx/panel/panel_q201c_norm.tga differ
index fe86bf644c69f9caca6d7207dc6555aa6b9a2ba3..69577bbe0db3895a690fe0a2d2056f02f1248dc2 100644 (file)
Binary files a/textures/exx/panel/panel_q201d_norm.tga and b/textures/exx/panel/panel_q201d_norm.tga differ
index acf40202abf62fb990c49726489f1a8e0c15ca27..1f23ddbcd8fd361b9c46b1794854de57a4059f20 100644 (file)
Binary files a/textures/exx/panel/panel_q201e_norm.tga and b/textures/exx/panel/panel_q201e_norm.tga differ
index be373262bd3c2f555a1b969b1280a1f84e8a80af..25de8cd847cfdfd27a13a0627d037defc6fd2b03 100644 (file)
Binary files a/textures/exx/panel/panel_rs01_norm.tga and b/textures/exx/panel/panel_rs01_norm.tga differ
index f89c54d60a390c7b3a9ec974a49184fccd361e34..bee3288a02a95955844ef47dbaaffab7c59e4190 100644 (file)
Binary files a/textures/exx/trim/trim_01_norm.tga and b/textures/exx/trim/trim_01_norm.tga differ
index f94b5fe979b5b1fcd50bcd619b058eca54b43df2..22e5567ad865dda56c6add96ea7dd119890f35ab 100644 (file)
Binary files a/textures/exx/trim/trim_psimple04_norm.tga and b/textures/exx/trim/trim_psimple04_norm.tga differ
index 6d944ddfb13851e645a1ea8bc25f7a15c6ff84eb..5a2d8eaa0cc9768a448d65ffed4a5d285a57eee0 100644 (file)
Binary files a/textures/exx/trim/trim_psimple05_norm.tga and b/textures/exx/trim/trim_psimple05_norm.tga differ
index 0aaf485f8bda5c6e3005cd8847941ef4219c779a..6413b81a7e18dbc91fa142bda66bfdd599340530 100644 (file)
Binary files a/textures/exx/trim/trim_simple01_norm.tga and b/textures/exx/trim/trim_simple01_norm.tga differ
index 4ea004966d21761f6252649122cb8c2ecc7e1340..c4fe6b07412a10c259224478275e77a6e3edf17d 100644 (file)
Binary files a/textures/exx/trim/trim_simple03_norm.tga and b/textures/exx/trim/trim_simple03_norm.tga differ
index 3dbf32a094e7398a4f85368d4f4c424be26ef685..34e33a2744173f9eecd72a058c1ddcee8fa27c68 100644 (file)
Binary files a/textures/exx/trim/trim_steptop01_norm.tga and b/textures/exx/trim/trim_steptop01_norm.tga differ
index 2bc4ca4c8ed2cdc881e3c02fdb4e7d8651d74377..ab754c34f41f90d638eaef7370c4ac3090943f0f 100644 (file)
Binary files a/textures/exx/trim/trim_support03_norm.tga and b/textures/exx/trim/trim_support03_norm.tga differ
index e6e725dd13e7bc7c6c9468205db23e887b9c501c..b047adefe3b13a894796dd4f974227498b1e8f6a 100644 (file)
Binary files a/textures/exx/wall/wall_bigrib02_norm.tga and b/textures/exx/wall/wall_bigrib02_norm.tga differ
index 5ed0862a6795d3c040fa667ae361269f83ca5d59..3cc338d2e19fc16c887b5703f3d96d7965573e9e 100644 (file)
Binary files a/textures/exx/wall/wall_crete01_norm.tga and b/textures/exx/wall/wall_crete01_norm.tga differ
index c21796574dfb057a36a3f1de4b492766352e5adb..6b9b76350fc3ffdaddfd7cbf6fad37fbb677fa75 100644 (file)
Binary files a/textures/exx/wall/wall_crete02_norm.tga and b/textures/exx/wall/wall_crete02_norm.tga differ
index fbbe7382509c620198bc5397633727c5cfce0dc7..1d4bb5f42cb2ced65c566b95c4edd8ec2c86b47a 100644 (file)
Binary files a/textures/exx/wall/wall_crete03_norm.tga and b/textures/exx/wall/wall_crete03_norm.tga differ
index 00e515331ce71df344164770401b2794650fe151..78e1c832ff79cdb9c9d8a003522e2e941d89c93c 100644 (file)
Binary files a/textures/exx/wall/wall_crete03b_norm.tga and b/textures/exx/wall/wall_crete03b_norm.tga differ
index ca9fcd2626f5a427c3c5f6975d476dbda4f90890..db7bf2719f6e041866ca22fc7928b788285c3ddb 100644 (file)
Binary files a/textures/exx/wall/wall_des01_norm.tga and b/textures/exx/wall/wall_des01_norm.tga differ
index a9f5ad2c022dd0b924be55aab4bb8c76b397c4ec..982cfa753077b98bdb679a09c3b1d92eae848096 100644 (file)
Binary files a/textures/exx/wall/wall_metal01_norm.tga and b/textures/exx/wall/wall_metal01_norm.tga differ
index a9f5ad2c022dd0b924be55aab4bb8c76b397c4ec..982cfa753077b98bdb679a09c3b1d92eae848096 100644 (file)
Binary files a/textures/exx/wall/wall_metal01b_norm.tga and b/textures/exx/wall/wall_metal01b_norm.tga differ
index 0e1eea78ef3cf1100db15f6587664d05c4cdecb2..676345beb26bd9847c7f44d9033958f5fb93406b 100644 (file)
Binary files a/textures/exx/wall/wall_metal02_norm.tga and b/textures/exx/wall/wall_metal02_norm.tga differ
index 086889882679876a5ee72481df465b93a2098bd9..46d1d7edbb39654aa67fa7dcc89e2b1118e0121f 100644 (file)
Binary files a/textures/exx/wall/wall_metalb01_norm.tga and b/textures/exx/wall/wall_metalb01_norm.tga differ
index 7fdf12256f7caa2a66bc63276f4a4cedad706364..19977b750528599961f4330d35abe71ab17e99e7 100644 (file)
Binary files a/textures/exx/wall/wall_metalrib01_norm.tga and b/textures/exx/wall/wall_metalrib01_norm.tga differ
index 32473fa0ad5d7072161ba46686b78134f61edbbb..8e723eba0f49c62b6493b8ad5b9838e6930ad8b8 100644 (file)
Binary files a/textures/exx/wall/wall_panels08_norm.tga and b/textures/exx/wall/wall_panels08_norm.tga differ
index 702c6b0a8e83da23efbd3ff3ccef539fc327cfe2..8e723eba0f49c62b6493b8ad5b9838e6930ad8b8 100644 (file)
Binary files a/textures/exx/wall/wall_panels08b_norm.tga and b/textures/exx/wall/wall_panels08b_norm.tga differ
index 2f98cb84c471428c4b78aa8393e682202fd8e53d..a0d08b7a69ed46e7e1afef8633b4dfcab2879dda 100644 (file)
Binary files a/textures/exx/wall/wall_u207_norm.tga and b/textures/exx/wall/wall_u207_norm.tga differ