]> de.git.xonotic.org Git - xonotic/xonotic-maps.pk3dir.git/blobdiff - scripts/entities.ent
Merge branch 'nyov/instagib-rename'
[xonotic/xonotic-maps.pk3dir.git] / scripts / entities.ent
index f5179a301f05d3e8f91ef04369dff197394b34d4..beb8620d931c7bc6544427e7628be87c062ea52e 100644 (file)
@@ -131,6 +131,26 @@ When a button is touched by a player, it moves in the direction set by the &quot
 <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_conveyor" color="0 .5 .8">
+A conveyor. Solid brush version.
+-------- KEYS --------
+<targetname key="targetname" name="targetname">if set, it can be turned on/off</targetname>
+<direction key="angle" name="angle">determines the opening direction</direction>
+<real key="speed" name="speed">movement speed (200 default)</real>
+-------- SPAWNFLAGS --------
+<flag key="START_ON" name="START_ON" bit="0">the conveyor is turned on if not triggered</flag>
+</group>
+
+<group name="trigger_conveyor" color="0 .5 .8">
+A conveyor. Nonsolid trigger version.
+-------- KEYS --------
+<targetname key="targetname" name="targetname">if set, it can be turned on/off</targetname>
+<direction key="angle" name="angle">determines the opening direction</direction>
+<real key="speed" name="speed">movement speed (200 default)</real>
+-------- SPAWNFLAGS --------
+<flag key="START_ON" name="START_ON" bit="0">the conveyor is turned on if not triggered</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).
@@ -148,11 +168,16 @@ If DOOR_DONT_LINK is not set, the door will be linked with all doors it touches.
 <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>
+<real key="itemkeys" name="itemkeys">keys required to open this door.</real>
 -------- 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="GOLD_KEY" name="GOLD_KEY" bit="3">causes the door to open only if the activator holds a gold key (Q1 compatibility).</flag>
+<flag key="SILVER_KEY" name="SILVER_KEY" bit="4">causes the door to open only if the activator holds a silver key (Q1 compatibility).</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>
+-------- NOTES --------
+More information about keys can be found in item_key description.
 </group>
 
 <group name="func_door_rotating" color="0 .5 .8">
@@ -256,7 +281,7 @@ This is an invisible area like a trigger, which rain falls inside of.
 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>
+<real key="speed" name="speed">speed to rotate (in degrees per second, default: 100)</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>
 <real key="dmgtime" name="dmgtime">See above. (0.25s default)</real>
@@ -298,6 +323,13 @@ Trains cannot be block-stopped just by getting in their way, the player must be
 <string key="message2" name="message2">death message when someone gets pushed into this (default: &quot;was thrown into a world of hurt by&quot;). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)</string>
 </group>
 
+<point name="info_autoscreenshot" color="0 0 0.2" box="-8 -8 -8 8 8 8">
+Location to make the first autoscreenshots from. At most three such entities may be used!
+-------- KEYS --------
+<angles key="angles" name="angles">view direction of the camera in PITCH YAW ROLL</angles>
+<target key="target" name="target">targetname of a target_position for the view direction, alternatively to specifying angles</target>
+</point>
+
 <point name="info_location" color="1 1 0" box="-8 -8 -8 8 8 8">
 Location for use by the %l escape in &quot;say&quot; messages.
 The closest &quot;visible&quot; info_location entity is chosen to find the right location name for a point.
@@ -333,7 +365,9 @@ Attacking team's player spawning location in Assault. Should touch the floor, bu
 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>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<target key="target3" name="target3">trigger all entities with this targetname when someone spawns</target>
+<target key="target4" name="target4">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>
 </point>
@@ -354,7 +388,9 @@ Defending team's player spawning location in Assault. Should touch the floor, bu
 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>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<target key="target3" name="target3">trigger all entities with this targetname when someone spawns</target>
+<target key="target4" name="target4">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>
 </point>
@@ -363,7 +399,9 @@ Red team's player spawning location in e.g. CTF and Onslaught. Should touch the
 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>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<target key="target3" name="target3">trigger all entities with this targetname when someone spawns</target>
+<target key="target4" name="target4">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>
 </point>
@@ -372,7 +410,9 @@ Blue team's player spawning location in e.g. CTF and Onslaught. Should touch the
 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>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<target key="target3" name="target3">trigger all entities with this targetname when someone spawns</target>
+<target key="target4" name="target4">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>
 </point>
@@ -381,7 +421,9 @@ Yellow team's player spawning location, but there is no game mode to use this ye
 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>
+<target key="target2" name="target2">trigger all entities with this targetname when someone spawns</target>
+<target key="target3" name="target3">trigger all entities with this targetname when someone spawns</target>
+<target key="target4" name="target4">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>
 </point>
@@ -532,7 +574,7 @@ modeldisabled=&quot;models/items/g_h25.md3&quot;
 
 <point name="item_health_mega" color=".9 .3 .3" box="-30 -30 0 30 30 48">
 Mega Health (default 100 health points)
-In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
+In Instagib, 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="respawntimejitter" name="respawntimejitter">respawn time randomization +/- seconds (default: 0)</real>
@@ -563,7 +605,7 @@ modeldisabled=&quot;models/items/g_h1.md3&quot;
 
 <point name="item_invincible" color=".3 .3 1" box="-30 -30 0 30 30 48">
 Strong Shield
-In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
+In Instagib, 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>
 <real key="respawntimejitter" name="respawntimejitter">respawn time randomization +/- seconds (default: 0)</real>
@@ -575,10 +617,63 @@ In Minstagib, this randomly turns into either an invisibility, an extra lives or
 modeldisabled=&quot;models/items/g_invincible.md3&quot;
 </point>
 
+<point name="item_key" color="0 .5 .8" box="-16 -16 -24 16 16 32">
+A key entity.
+The itemkeys should contain one of the following key IDs:
+1 - GOLD key - 
+2 - SILVER key
+4 - BRONZE key
+8 - RED keycard
+16 - BLUE keycard
+32 - GREEN keycard
+Custom keys:
+... - last key is 1&lt;&lt;23
+Keys with bigger Id than 32 don't have a default netname and model, if you use one of them, you MUST provide those.
+-----------KEYS------------
+<color key="colormod" name="colormod">color of the key (default: '.9 .9 .9').</color>
+<real key="itemkeys" name="itemkeys">a key Id.</real>
+<string key="message" name="message">message to print when player picks up this key.</string>
+<model key="model" name="model">custom key model to use.</model>
+<string key="netname" name="netname">the display name of the key.</string>
+<sound key="noise" name="noise">custom sound to play when player picks up the key.</sound>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+---------NOTES----------
+This is the only correct way to put keys on the map!
+
+itemkeys MUST always have exactly one bit set.
+</point>
+
+<point name="item_key1" color="0 .5 .8" box="-16 -16 -24 16 16 32">
+SILVER key.
+-----------KEYS------------
+<color key="colormod" name="colormod">color of the key (default: '.9 .9 .9').</color>
+<string key="message" name="message">message to print when player picks up this key.</string>
+<model key="model" name="model">custom model to use.</model>
+<sound key="noise" name="noise">custom sound to play when player picks up the key.</sound>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+---------NOTES----------
+Don't use this entity on new maps! Use item_key instead.
+</point>
+
+<point name="item_key2" color="0 .5 .8" box="-16 -16 -24 16 16 32">
+GOLD key.
+-----------KEYS------------
+<color key="colormod" name="colormod">color of the key (default: '1 .9 0').</color>
+<string key="message" name="message">message to print when player picks up this key.</string>
+<model key="model" name="model">custom model to use.</model>
+<sound key="noise" name="noise">custom sound to play when player picks up the key.</sound>
+-------- SPAWNFLAGS --------
+<flag key="FLOATING" name="FLOATING" bit="0">the item will float in air, instead of aligning to the floor by falling</flag>
+---------NOTES----------
+Don't use this entity on new maps! Use item_key instead.
+</point>
+
 <point name="item_minst_cells" color=".3 .3 1" box="-30 -30 0 30 30 32">
-Minstagib ammo.
-Always contains 5 (g_minstagib_ammo_drop) shots.
-It only appears when playing Minstagib and prevents auto-replacement of weapon_nex &amp; weapon_rocketlauncher when used.
+Instagib ammo.
+Always contains 5 (g_instagib_ammo_drop) shots.
+It only appears when playing Instagib and prevents auto-replacement of weapon_nex &amp; weapon_rocketlauncher when used.
 -------- KEYS --------
 <real key="respawntime" name="respawntime">time till it respawns (default: 45)</real>
 <real key="respawntimejitter" name="respawntimejitter">respawn time randomization +/- seconds (default: 0)</real>
@@ -620,7 +715,7 @@ modeldisabled=&quot;models/items/a_shells.md3&quot;
 
 <point name="item_strength" color=".3 .3 1" box="-30 -30 0 30 30 48">
 Strength aka Quad damage
-In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
+In Instagib, 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>
 <real key="respawntimejitter" name="respawntimejitter">respawn time randomization +/- seconds (default: 0)</real>
@@ -779,8 +874,8 @@ The keys below actually apply to most brush entities as they are engine features
 <boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. &gt; 1 = receive shadows only from corresponding keyed entities (see above) and world. &lt; 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>
+<real3 key="mins" name="mins">override automatically found minimum coordinate bounds</real3>
+<real3 key="maxs" name="maxs">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 &quot;textures/&quot; prefix.</texture>
 </group>
@@ -811,8 +906,8 @@ The keys below actually apply to most brush entities as they are engine features
 <boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. &gt; 1 = receive shadows only from corresponding keyed entities (see above) and world. &lt; 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>
+<real3 key="mins" name="mins">override automatically found minimum coordinate bounds</real3>
+<real3 key="maxs" name="maxs">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 &quot;textures/&quot; prefix.</texture>
 </group>
@@ -864,8 +959,8 @@ A client-side non-solid brush entity. Use func_wall if you want it solid.
 <boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. &gt; 1 = receive shadows only from corresponding keyed entities (see above) and world. &lt; 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>
+<real3 key="mins" name="mins">override automatically found minimum coordinate bounds</real3>
+<real3 key="maxs" name="maxs">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 &quot;textures/&quot; prefix.</texture>
 </group>
@@ -895,8 +990,8 @@ A client-side solid brush entity. Use func_clientillusionary if you want it non-
 <boolean key="_receiveshadows" name="_receiveshadows">Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. &gt; 1 = receive shadows only from corresponding keyed entities (see above) and world. &lt; 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>
+<real3 key="mins" name="mins">override automatically found minimum coordinate bounds</real3>
+<real3 key="maxs" name="maxs">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 &quot;textures/&quot; prefix.</texture>
 </group>
@@ -1024,6 +1119,12 @@ The sound name may also be of the form *soundname, and in that case the respecti
 <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>
 
+<point name="invasion_spawnpoint" color="1 0.5 0" box="-16 -16 -24 16 16 45">
+Monster spawnpoint in Invasion
+-------- KEYS --------
+-------- SPAWNFLAGS --------
+</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 &quot;count&quot; times, it will fire all of its targets and remove itself.
@@ -1074,6 +1175,26 @@ Can be used in two ways:
 <real key="falloff" name="falloff">&quot;gravity field&quot;: 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_keylock" color=".0 .5 .8">
+Keylock trigger.  Must target other entities.
+This trigger will trigger target entities when all required keys are provided.
+-------- KEYS --------
+<real key="itemkeys" name="itemkeys">A bit field with key IDs that are needed to open this lock.</real>
+<real key="sounds" name="sounds">1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav (3 is default)</real>
+<target key="target" name="target">trigger all entities with this targetname when triggered and all keys have been given to it, then remove this trigger</target>
+<target key="target2" name="target2">trigger all entities with this targetname when triggered without giving it all the required keys.</target>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered with all the needed keys.</target>
+<string key="message" name="message">print this message to the player who activated the trigger when all needed keys have been given.</string>
+<string key="message2" name="message2">print this message to the player who activated the trigger when not all of the needed keys have been given.</string>
+<sound key="noise" name="noise">sound to play when lock gets unlocked (default: see sounds)</sound>
+<sound key="noise1" name="noise1">sound to play when only some of the needed key were used but not all (default: misc/decreasevalue.wav)</sound>
+<sound key="noise2" name="noise2">sound to play when a key is missing (default: misc/talk.wav)</sound>
+<real key="wait" name="wait">prevent triggering again for this amount of time (default: 5) - applies to target2, target3, target4.</real>
+---------NOTES----------
+If spawned without any key specified in itemkeys, this trigger will display an error and remove itself.
+message2 and noise2 will be resent to the player every 2 seconds while he is in the trigger zone.
+</group>
+
 <group name="trigger_multiple" color=".5 .5 .5">
 Variable sized repeatable trigger.  Must be targeted at one or more entities.  If &quot;health&quot; is set, the trigger must be killed to activate each time.
 -------- KEYS --------
@@ -1149,6 +1270,20 @@ More than one &quot;trigger event&quot; can be delayed at once, as opposed to tr
 <target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
 </point>
 
+<group name="trigger_secret" color=".5 .5 .5">
+Variable sized secret trigger. Can be targeted at one or more entities.
+Basically, it's a trigger_once that additionally updates the number of secrets found.
+-------- KEYS --------
+<real key="sounds" name="sounds">1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav (default: 1)</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>
+<string key="message" name="message">print this message to the player who activated the trigger instead of the standard 'You found a secret!'</string>
+<target key="killtarget" name="killtarget">remove all entities with this targetname when triggered</target>
+-------- NOTES --------
+You should create a common/trigger textured brush covering the entrance to a secret room/area.
+Trigger secret can only be trigger by a player's touch and can not be a target itself.
+</group>
+
 <group name="trigger_swamp" color=".5 .5 .5">
 Players getting into the swamp will get slowed down and damaged
 -------- KEYS --------
@@ -1245,7 +1380,7 @@ modeldisabled=&quot;models/weapons/g_laser.md3&quot;
 
 <point name="weapon_nex" color="1 0 .5" box="-30 -30 0 30 30 32">
 the Nex
-In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cells have been placed.
+In Instagib, 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>
@@ -1260,7 +1395,7 @@ modeldisabled=&quot;models/weapons/g_nex.md3&quot;
 
 <point name="weapon_rocketlauncher" color="1 0 .5" box="-30 -30 0 30 30 32">
 the Rocket Launcher
-In Minstagib, this turns into an item_minst_cells if no explicit item_minst_cells have been placed.
+In Instagib, 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>
@@ -1457,7 +1592,7 @@ Makes one entity follow another. Will not work with all entities.
 
 <point name="weapon_minstanex" color="1 0 .5" box="-30 -30 0 30 30 32">
 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.
+the InstaGib 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>
@@ -1780,6 +1915,118 @@ Disables a trigger_relay temporarily (until triggered again)
 <targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
 </point>
 
+
+<point name="monster_mage" color="1 0 0" box="-36 -36 -24 36 36 50">
+Mage. Master of dark magic
+-------- KEYS --------
+<integer key="health" name="health">monster health amount</integer>
+<integer key="target_range" name="target_range">maximum targeting range. If current target is further away, it will be lost</integer>
+<real key="respawntime" name="respawntime">delay in seconds before re-spawning</real>
+<integer key="monster_moveflags" name="monster_moveflags">move target while not attacking. 2=wander around, 3=spawn location, 4=no moving</integer>
+<target key="target" name="target">disable/enable all relays with this targetname when killed</target>
+<target key="target2" name="target2">follow this target</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<integer key="team" name="team">5=red, 14=blue</integer>
+-------- SPAWNFLAGS --------
+<flag key="MONSTERFLAG_MINIBOSS" name="MINIBOSS" bit="6">Spawn as mini-boss (slightly more powerful)</flag>
+<flag key="MONSTERFLAG_APPEAR" name="APPEAR" bit="1">Spawn when triggered</flag>
+<flag key="MONSTERFLAG_NORESPAWN" name="NORESPAWN" bit="2">Don't re-spawn</flag>
+<flag key="MONSTERFLAG_FLY_VERTICAL" name="FLY_VERTICAL" bit="3">Allow flying/swimming monsters to move up/down</flag>
+<flag key="MONSTERFLAG_INFRONT" name="INFRONT" bit="4">Only attack targets infront of the monster</flag>
+<flag key="MONSTERSKILL_NOTEASY" name="NOTEASY" bit="8">Don't spawn this monster when skill is 1</flag>
+<flag key="MONSTERSKILL_NOTMEDIUM" name="NOTMEDIUM" bit="9">Don't spawn this monster when skill is 2</flag>
+<flag key="MONSTERSKILL_NOTHARD" name="NOTHARD" bit="10">Don't spawn this monster when skill is 3</flag>
+</point>
+
+<point name="monster_shambler" color="1 0 0" box="-41 -41 -31 41 41 65">
+Shambler. Summons lightning bolts with its large meat cleaving claws
+-------- KEYS --------
+<integer key="health" name="health">monster health amount</integer>
+<integer key="target_range" name="target_range">maximum targeting range. If current target is further away, it will be lost</integer>
+<real key="respawntime" name="respawntime">delay in seconds before re-spawning</real>
+<integer key="monster_moveflags" name="monster_moveflags">move target while not attacking. 2=wander around, 3=spawn location, 4=no moving</integer>
+<target key="target" name="target">disable/enable all relays with this targetname when killed</target>
+<target key="target2" name="target2">follow this target</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<integer key="team" name="team">5=red, 14=blue</integer>
+-------- SPAWNFLAGS --------
+<flag key="MONSTERFLAG_MINIBOSS" name="MINIBOSS" bit="6">Spawn as mini-boss (slightly more powerful)</flag>
+<flag key="MONSTERFLAG_APPEAR" name="APPEAR" bit="1">Spawn when triggered</flag>
+<flag key="MONSTERFLAG_NORESPAWN" name="NORESPAWN" bit="2">Don't re-spawn</flag>
+<flag key="MONSTERFLAG_FLY_VERTICAL" name="FLY_VERTICAL" bit="3">Allow flying/swimming monsters to move up/down</flag>
+<flag key="MONSTERFLAG_INFRONT" name="INFRONT" bit="4">Only attack targets infront of the monster</flag>
+<flag key="MONSTERSKILL_NOTEASY" name="NOTEASY" bit="8">Don't spawn this monster when skill is 1</flag>
+<flag key="MONSTERSKILL_NOTMEDIUM" name="NOTMEDIUM" bit="9">Don't spawn this monster when skill is 2</flag>
+<flag key="MONSTERSKILL_NOTHARD" name="NOTHARD" bit="10">Don't spawn this monster when skill is 3</flag>
+</point>
+
+<point name="monster_spider" color="1 0 0" box="-18 -18 -25 18 18 30">
+Spider. Freezing ice or burning fire web, both lead to an 8-legged grave
+-------- KEYS --------
+<integer key="health" name="health">monster health amount</integer>
+<integer key="spider_type" name="spider_type">spider attack type. 1=ice, 2=fire</integer>
+<integer key="target_range" name="target_range">maximum targeting range. If current target is further away, it will be lost</integer>
+<real key="respawntime" name="respawntime">delay in seconds before re-spawning</real>
+<integer key="monster_moveflags" name="monster_moveflags">move target while not attacking. 2=wander around, 3=spawn location, 4=no moving</integer>
+<target key="target" name="target">disable/enable all relays with this targetname when killed</target>
+<target key="target2" name="target2">follow this target</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<integer key="team" name="team">5=red, 14=blue</integer>
+-------- SPAWNFLAGS --------
+<flag key="MONSTERFLAG_MINIBOSS" name="MINIBOSS" bit="6">Spawn as mini-boss (slightly more powerful)</flag>
+<flag key="MONSTERFLAG_APPEAR" name="APPEAR" bit="1">Spawn when triggered</flag>
+<flag key="MONSTERFLAG_NORESPAWN" name="NORESPAWN" bit="2">Don't re-spawn</flag>
+<flag key="MONSTERFLAG_FLY_VERTICAL" name="FLY_VERTICAL" bit="3">Allow flying/swimming monsters to move up/down</flag>
+<flag key="MONSTERFLAG_INFRONT" name="INFRONT" bit="4">Only attack targets infront of the monster</flag>
+<flag key="MONSTERSKILL_NOTEASY" name="NOTEASY" bit="8">Don't spawn this monster when skill is 1</flag>
+<flag key="MONSTERSKILL_NOTMEDIUM" name="NOTMEDIUM" bit="9">Don't spawn this monster when skill is 2</flag>
+<flag key="MONSTERSKILL_NOTHARD" name="NOTHARD" bit="10">Don't spawn this monster when skill is 3</flag>
+</point>
+
+<point name="monster_wyvern" color="1 0 0" box="-20 -20 -58 20 20 20">
+Wyvern. Flies around shooting fireballs
+-------- KEYS --------
+<integer key="health" name="health">monster health amount</integer>
+<integer key="target_range" name="target_range">maximum targeting range. If current target is further away, it will be lost</integer>
+<real key="respawntime" name="respawntime">delay in seconds before re-spawning</real>
+<integer key="monster_moveflags" name="monster_moveflags">move target while not attacking. 2=wander around, 3=spawn location, 4=no moving</integer>
+<target key="target" name="target">disable/enable all relays with this targetname when killed</target>
+<target key="target2" name="target2">follow this target</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<integer key="team" name="team">5=red, 14=blue</integer>
+-------- SPAWNFLAGS --------
+<flag key="MONSTERFLAG_MINIBOSS" name="MINIBOSS" bit="6">Spawn as mini-boss (slightly more powerful)</flag>
+<flag key="MONSTERFLAG_APPEAR" name="APPEAR" bit="1">Spawn when triggered</flag>
+<flag key="MONSTERFLAG_NORESPAWN" name="NORESPAWN" bit="2">Don't re-spawn</flag>
+<flag key="MONSTERFLAG_FLY_VERTICAL" name="FLY_VERTICAL" bit="3">Allow flying/swimming monsters to move up/down</flag>
+<flag key="MONSTERFLAG_INFRONT" name="INFRONT" bit="4">Only attack targets infront of the monster</flag>
+<flag key="MONSTERSKILL_NOTEASY" name="NOTEASY" bit="8">Don't spawn this monster when skill is 1</flag>
+<flag key="MONSTERSKILL_NOTMEDIUM" name="NOTMEDIUM" bit="9">Don't spawn this monster when skill is 2</flag>
+<flag key="MONSTERSKILL_NOTHARD" name="NOTHARD" bit="10">Don't spawn this monster when skill is 3</flag>
+</point>
+
+<point name="monster_zombie" color="1 0 0" box="-18 -18 -25 18 18 47">
+Braaaiins!
+-------- KEYS --------
+<integer key="health" name="health">monster health amount</integer>
+<integer key="target_range" name="target_range">maximum targeting range. If current target is further away, it will be lost</integer>
+<real key="respawntime" name="respawntime">delay in seconds before re-spawning</real>
+<integer key="monster_moveflags" name="monster_moveflags">move target while not attacking. 2=wander around, 3=spawn location, 4=no moving</integer>
+<target key="target" name="target">disable/enable all relays with this targetname when killed</target>
+<target key="target2" name="target2">follow this target</target>
+<targetname key="targetname" name="targetname">name that identifies this entity so it can be triggered</targetname>
+<integer key="team" name="team">5=red, 14=blue</integer>
+-------- SPAWNFLAGS --------
+<flag key="MONSTERFLAG_MINIBOSS" name="MINIBOSS" bit="6">Spawn as mini-boss (slightly more powerful)</flag>
+<flag key="MONSTERFLAG_APPEAR" name="APPEAR" bit="1">Spawn when triggered</flag>
+<flag key="MONSTERFLAG_NORESPAWN" name="NORESPAWN" bit="2">Don't re-spawn</flag>
+<flag key="MONSTERFLAG_FLY_VERTICAL" name="FLY_VERTICAL" bit="3">Allow flying/swimming monsters to move up/down</flag>
+<flag key="MONSTERFLAG_INFRONT" name="INFRONT" bit="4">Only attack targets infront of the monster</flag>
+<flag key="MONSTERSKILL_NOTEASY" name="NOTEASY" bit="8">Don't spawn this monster when skill is 1</flag>
+<flag key="MONSTERSKILL_NOTMEDIUM" name="NOTMEDIUM" bit="9">Don't spawn this monster when skill is 2</flag>
+<flag key="MONSTERSKILL_NOTHARD" name="NOTHARD" bit="10">Don't spawn this monster when skill is 3</flag>
+</point>
+
 <group name="nexball_redgoal" color="1 0 0">
 Red goal. Defended by the red team.
 -------- KEYS --------
@@ -1900,6 +2147,7 @@ Triggers targets when a given magic word has been said
 <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>
 <boolean key="target_random" name="target_random">instead of triggering ALL matched entities, trigger ONE of them by random</boolean>
+<real3 key="movedir" name="movedir">if TUBA is set, this is a string of &quot;instrument+1 mintempo maxtempo&quot;. Components can be set to 0 to not match.</real3>
 -------- SPAWNFLAGS --------
 <flag key="IGNORE_SAY" name="IGNORE_SAY" bit="0">do not respond to &quot;say&quot; messages</flag>
 <flag key="IGNORE_TEAMSAY" name="IGNORE_TEAMSAY" bit="1">do not respond to &quot;say_team&quot; messages</flag>
@@ -1909,6 +2157,8 @@ Triggers targets when a given magic word has been said
 <flag key="REPLACE_OUTSIDE" name="REPLACE_OUTSIDE" bit="5">also perform the replacement when outside the radius (to hide the &quot;secret word&quot;)</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>
+<flag key="TUBA" name="TUBA" bit="8">the message is a space separated note sequence that must be played on the @!#%'n Tuba or the @!#%'n Accordeon. For example, 4.25 means a quarter note at pitch 4, where 0 is base pitch (red team primary fire with no motion). For secret triggers to open doors, use 4.25 0.25 4.25 2.25. The first one to encode a rickroll in this gets slapped with the shotgun.</flag>
+<flag key="TUBA_EXACTPITCH" name="TUBA_EXACTPITCH" bit="9">the note pitch must be accurate and cannot be transposed</flag>
 </point>
 
 <point name="weapon_fireball" color="1 0 .5" box="-30 -30 0 30 30 32">
@@ -1933,12 +2183,12 @@ 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>
+<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.</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>
 <boolean key="target_random" name="target_random">instead of triggering ALL matched entities, trigger ONE of them by random</boolean>
-<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>
 -------- SPAWNFLAGS --------