<?xml version="1.0"?>
<classes>

<group name="worldspawn" color="0 0 0">
  Entity, which stores regular static map primitives (brushes and patches).
  <string key="gametype" name="Gametype">Set to gladiator to make this a gladiator map</string>
  <boolean key="randomise_arena" name="Randomise Arena">Only for the gladiator shim map</boolean>
  <boolean key="_ignoreleaks" name="Keep Light Entities" value="1">Set to 1 to shut up the map compiler</boolean>
</group>

<point name="spawn_gladiator" color="0 0.2 1" box="-16 -16 -24 16 16 40" model="players/rigg/model.glb">
  Gladiator spawn point
  <angle key="angle" name="Yaw Angle">View angle, yaw</angle>
  <angles key="angles" name="Pitch Yaw Roll">View angles, pitch/yaw/roll</angles>
  <flag key="SUSPENDED" name="SUSPENDED" bit="0">don't drop the spawn to the floor</flag>
</point>

<point name="spawn_bomb_attacking" color="0 0.2 1" box="-16 -16 -24 16 16 40" model="players/rigg/model.glb">
  Bomb attacker spawn point
  <angle key="angle" name="Yaw Angle">View angle, yaw</angle>
  <angles key="angles" name="Pitch Yaw Roll">View angles, pitch/yaw/roll</angles>
  <flag key="SUSPENDED" name="SUSPENDED" bit="0">don't drop the spawn to the floor</flag>
</point>

<point name="spawn_bomb_defending" color="1 0.1 0.25" box="-16 -16 -24 16 16 40" model="players/rigg/model.glb">
  Bomb defending spawn point
  <angle key="angle" name="Yaw Angle">View angle, yaw</angle>
  <angles key="angles" name="Pitch Yaw Roll">View angles, pitch/yaw/roll</angles>
  <flag key="SUSPENDED" name="SUSPENDED" bit="0">don't drop the spawn to the floor</flag>
</point>

<group name="func_group" color="0 .4375 .7">
  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, applying special compilation parameters etc). You cannot group entities with this. Func_group contents is merged into worldspawn entity during compilation process.
</group>

<group name="func_door" color="0 .4 1">
  Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it.
  <direction key="angle" name="Direction">Determines the opening direction of door (up = -1, down = -2).</direction>
  <angles key="angles" name="Pitch Yaw Roll">Pitch and yaw opening direction angles of door (default 0 0). The roll angle does not apply.</angles>
  <target key="target" name="Target">All entities with a matching targetname will be triggered.</target>
  <targetname key="targetname" name="Target Name">If set, a func_button or trigger is required to activate the door (unless using health key).</targetname>
  <real key="speed" name="Move Speed" value="400">Determines how fast the door moves (default 400, -1 = reach the end of move instantly).</real>
  <real key="wait" name="Return Delay" value="2">Number of seconds before door returns (default 2, -1 = return immediately)</real>
  <real key="lip" name="Lip" value="8">Lip remaining at end of move. Default value is 8, which results in 6u of physical lip. I.e. for wished amount of move set key to [size + 2 - amount], 2 for full move, [size + 2] for none.</real>
  <targetname key="targetname" name="Target Name">Used to attach a misc_model entity to this entity.</targetname>
  <flag key="START_OPEN" name="Start Open" bit="0">The door will spawn in the open state and operate in reverse.</flag>
  <flag key="CRUSHER" name="Crusher" bit="2">Door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way.</flag>
</group>

<group name="func_train" color="0 .4 1">
  Trains are moving solids that follow a looped string of path_corner entities. Trains in Q3A are very basic, they also require an origin brush (see notes).
  <real key="speed" name="Move Speed" value="100">Speed of displacement of train (default 100 or overridden by speed value of path).</real>
  <target key="target" name="Target">This points to the first path_corner of the path which is also the spawn location of the train's origin.</target>
  <targetname key="targetname" name="Target Name">Used to attach a misc_model entity to this entity.</targetname>
  <flag key="START_ON" name="START_ON" bit="0">start on</flag>
  <flag key="TOGGLE" name="TOGGLE" bit="1">toggle</flag>
  <flag key="BLOCK_STOPS" name="BLOCK_STOPS" bit="2">block stops</flag>
  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="trigger_push" color=".5 .5 .5">
  Jumppad trigger brush.
  <target key="target" name="Target">this points to the target_position to which the player will jump.</target>
  <sound key="noise" name="Sound File">override default noise ("silent" doesn't make any noise)</sound>
  <flag key="PAINKILLER" name="PAINKILLER" bit="0">Player keeps sideways momentum</flag>
  To make a jump pad or launch ramp, place the target_position entity at the highest point of the jump and target it with this entity.
  If the target is horizontally aligned with the trigger the player's velocity will be set to reach the target after one second.
</group>

<group name="trigger_multiple" color=".5 .5 .5">
  Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it.
  <real key="wait" name="Repeat Time" value="0.5">Time in seconds until trigger becomes re-triggerable after it's been touched (default 0.5, -1 = trigger once).</real>
  <sound key="noise" name="Sound File">override default noise ("silent" doesn't make any noise)</sound>
  <target key="target" name="Target">This points to the entity to activate.</target>
  <targetname key="targetname" name="Target Name">Activating trigger points to this.</targetname>
</group>

<group name="trigger_hurt" color=".5 .5 .5">
  Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt.
  <integer key="dmg" name="Damage Inflicted" value="5">Number of points of damage inflicted to player per server frame (default 5 - integer values only).</integer>
  <real key="wait" name="Repeat Time" value="0.5">Time in seconds until trigger becomes re-triggerable after it's been touched (default 0.5, -1 = trigger once).</real>
  <sound key="noise" name="Sound File">override default noise ("silent" doesn't make any noise)</sound>
  <flag key="START_OFF" name="Start Disabled" bit="0">Needs to be triggered (toggle) for damage.</flag>
  <flag key="TOGGLE" name="Toggle" bit="1">Allows trigger_hurt to be toggled on/off.</flag>
  <flag key="SILENT" name="Silent" bit="2">Suppresses the sizzling sound while player is being hurt.</flag>
  <flag key="NO_PROTECTION" name="No Powerup Protection" bit="3">Player will be hurt regardless of protection (see notes).</flag>
  <flag key="SLOW" name="Damage Once Per Second" bit="4">Changes the damage rate to once per second.</flag>
  <flag key="KILL" name="Player will die instantly" bit="5">Kill player instantly</flag>
  <flag key="FALL" name="Player will die next time he touches the ground" bit="6">Kill player next time he touches the ground</flag>
</group>

<point name="bomb_site" color=".5 .5 .5" box="-8 -8 -8 8 8 8">
  A bomb site
  <targetname key="targetname" name="Target Name">the bomb site name, must match the plant_area's target</targetname>
  <targetname key="deadcam" name="Bomb site deadcam">Dead people look through this cam if they don't have anyone to spec</targetname>
</point>

<group name="plant_area" color=".5 .5 0">
  Bomb site plant area
  <target key="target" name="Target">a bomb_site entity</target>
</group>

<point name="target_position" color="0 .5 0" box="-8 -8 -8 8 8 8">
  Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular.
  <targetname key="targetname" name="Target Name">The entity that requires an aiming direction points to this.</targetname>
  To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.
</point>

<point name="model" color="1 .5 .25" box="-16 -16 -16 16 16 16">
  Place a model to be loaded at runtime
  <model key="model" name="Model File">Path/name of model to use (e.g. models/mapobjects/teleporter/teleporter.md3).</model>
  <angle key="angle" name="Yaw Angle">Direction in which model will be oriented.</angle>
  <angles key="angles" name="Pitch Yaw Roll">Individual control of PITCH, YAW, and ROLL (default 0 0 0).</angles>
  <real key="modelscale" name="Uniform Scale" value="1">Floating-point value used to scale a model up or down (default 1.0).</real>
  <real3 key="modelscale_vec" name="Scale XYZ" value="1 1 1">Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0).</real3>
</point>

<point name="decal" color="1 0 0" box="-8 -8 -8 8 8 8">
  Place a decal to be loaded at runtime. MAKE SURE RADIANT ISN'T SETTING modelscale_vec, DECALS ONLY SUPPORT UNIFORM SCALING
  <texture key="material" name="material">Name of material</texture>
  <angles key="angles" name="Pitch Yaw Roll">angles, pitch/yaw/roll</angles>
  <real key="modelscale" name="Uniform Scale" value="16">Radius</real>
  <color key="color" name="color" value="1 1 1 1">Decal color, RGBA 0-1</color>
  <model key="model" name="Model File" value="entities/decal/radiant_model.glb">We need this key so radiant lets you scale the ent, ignore</model>
</point>

<point name="jumppad" color="0 .5 0" box="-32 -32 0 32 32 24" model="entities/jumppad/model.glb">
  A jumppad
  <target key="target" name="Target">this points to the target_position to which the player will jump.</target>
  <angles key="angles" name="Pitch Yaw Roll">angles, pitch/yaw/roll</angles>
  <flag key="PAINKILLER" name="PAINKILLER" bit="0">Player keeps sideways momentum</flag>
</point>

<point name="spike" color="1 0 0" box="-16 -16 -16 16 16 16" model="models/spikes/spike_base.glb">
  A spike trap
  <angles key="angles" name="Pitch Yaw Roll">angles, pitch/yaw/roll</angles>
  <flag key="ALWAYS_EXTENDED" name="ALWAYS_EXTENDED" bit="0">Always extended</flag>
</point>

<point name="spikes" color="1 0 0" box="-16 -16 -16 16 16 16" model="models/spikes/spikes_base.glb">
  A spike trap
  <angles key="angles" name="Pitch Yaw Roll">angles, pitch/yaw/roll</angles>
  <flag key="ALWAYS_EXTENDED" name="ALWAYS_EXTENDED" bit="0">Always extended</flag>
</point>

<point name="speaker_wall" color="1 1 0" box="-32 -32 -16 32 32 16" model="models/speakers/speaker_wall.glb">
  A speaker hanging off the wall, place the box origin on the wall and the speaker points in the direction of the arrow
  <angles key="angles" name="Pitch Yaw Roll">angles, pitch/yaw/roll</angles>
</point>

<point name="deadcam" color="0.5 0.5 0.5" box="-4 -8 -4 4 14 4" model="models/deadcam/radiant_model.glb">
  Look through this camera when all your teammates are dead
  <targetname key="targetname" name="Target Name">The deadcam's name, set your bomb_site deadcam key to this</targetname>
  <angles key="angles" name="Pitch Yaw Roll">angles, pitch/yaw/roll</angles>
</point>

<point name="target_laser" color="0 0.5 0" box="-8 -8 -8 8 8 8">
  When triggered, fires a laser. You can either set a target or a direction.
  <target key="target" name="Target">point this to a target_position entity to set the laser's aiming direction.</target>
  <targetname key="targetname" name="Target Name">the activating trigger points to this.</targetname>
  <angles key="angles" name="Pitch Yaw Roll">alternate "pitch, yaw, roll" angles method of aiming laser</angles>
  <real key="size" name="Size">Beam diameter, default 8</real>
  <color key="rgba" name="rgba">colour. default 220 0 0 76</color>
  <flag key="START_ON" name="START_ON" bit="0">when set, the laser will start on in the game.</flag>
</point>

</classes>
