Ship.fgd

From: \Ship_SDK_20150423.zip\SourceSDK\bin\source2009\bin\ship.fgd
//====== Copyright © 1996-2003, Valve Corporation, All rights reserved. =======
//
// Purpose: Half-Life 2 game definition file (.fgd) 
//
//=============================================================================
@BaseClass = Angles
[ 
	angles(angle) : "Pitch Yaw Roll (Y Z X)" : "0 0 0" : "This entity's orientation in the world. Pitch is rotation around the Y axis, " +
		"yaw is the rotation around the Z axis, roll is the rotation around the X axis."
]
@BaseClass = Studiomodel
[
	model(studio) : "World Model"
	skin(integer) : "Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
	disableshadows(choices) : "Disable Shadows" : 0 : "Used to disable dynamic shadows on this entity." =
	[
		0 : "No"
		1 : "Yes"
	]
	// Inputs
	input Skin(integer) : "Changes the model skin to the specified number."
	input DisableShadow(void) : "Turn shadow off."
	input EnableShadow(void) : "Turn shadow on."
	input AlternativeSorting(bool) : "Used to attempt to fix sorting problems when rendering. True activates, false deactivates"
	// Outputs
	output OnIgnite(void) : "Fired when this object catches fire."
]
// Inherit from this to get the ability to only include an object in a range of dx levels.
// NOTE!!: MAKE SURE THAT YOU DON'T USE THIS WITH ANYTHING THAT WILL BREAK SAVE-GAMES SWITCHING
// BETWEEN DXLEVELS!!!!
@BaseClass = DXLevelChoice
[ 
	mindxlevel(choices) : "Minimum DX Level" : 0 = 
	[
		0 : "default (lowest)"
		70 : "dx7"
	]
	maxdxlevel(choices) : "Maximum DX Level" : 0 = 
	[
		0 : "default (highest)"
		60 : "dx6"
	]
]
@BaseClass = Targetname 
[ 
	targetname(target_source) : "Name" : : "The name that other entities refer to this entity by."
	
	// Inputs
	input Kill(void) : "Removes this entity from the world."
	input KillHierarchy(void) : "Removes this entity and all its children from the world."
	input AddOutput(string) : "Adds an entity I/O connection to this entity. Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire (-1 == infinite)>. Very dangerous, use with care."
	input FireUser1(void) : "Causes this entity's OnUser1 output to be fired."
	input FireUser2(void) : "Causes this entity's OnUser2 output to be fired."
	input FireUser3(void) : "Causes this entity's OnUser3 output to be fired."
	input FireUser4(void) : "Causes this entity's OnUser4 output to be fired."
	// Outputs	
	output OnUser1(void) : "Fired in response to FireUser1 input."
	output OnUser2(void) : "Fired in response to FireUser2 input."
	output OnUser3(void) : "Fired in response to FireUser3 input."
	output OnUser4(void) : "Fired in response to FireUser4 input."
]
@BaseClass = Parentname
[ 
	parentname(target_destination) : "Parent" : : "The name of this entity's parent in the movement hierarchy. Entities with parents move with their parent."
	// Inputs
	input SetParent(string) : "Changes the entity's parent in the movement hierarchy."
	input SetParentAttachment(string) : "Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment."
	input SetParentAttachmentMaintainOffset(string) : "Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached."
	input ClearParent(void) : "Removes this entity from the the movement hierarchy, leaving it free to move independently."
]
@BaseClass = Global 
[ 
	globalname(string) : "Global Entity Name" : "" : "Name by which this entity is linked to another entity in a different map. When the player transitions to a new map, entities in the new map with globalnames matching entities in the previous map will have the previous map's state copied over their state."
]
@PointClass base(Targetname, Parentname, Angles, Global, Studiomodel) studioprop() = prop_door_rotating : 
	"An entity used to place a door in the world."
[
	slavename(target_destination) : "Slave Name" : : "The name of any doors that should be slaved to this door (i.e. should open when this one opens, and close when this one closes)."
	hardware(choices) : "Hardware Type" : 1 =
	[
		0 : "<None>"
		1 : "Lever"
		2 : "Push bar"
		3 : "Keypad"
	]
	
	ajarangles(angle) : "Ajar Angles (Pitch Yaw Roll)" : "0 0 0" : "If the door 'Spawn Position' is set to Ajar, these are the angles to spawn at, instead of being open or closed."
	spawnpos(choices) : "Spawn Position" : 0 =
	[
		0 : "Closed"
		1 : "Open forward"
		2 : "Open back"
		3 : "Ajar (use Ajar Angles)"
	]
	
	axis(axis) : "Hinge Axis"
	distance(float) : "Rotation Distance (deg)" : 90 : "The amount, in degrees, that the door should rotate when opened."
	speed(integer) : "Speed" : 100 : "The speed at which the door moves."
	soundopenoverride(sound) : "Fully Open Sound" : : "Sound played when the door has finished opening."
	soundcloseoverride(sound) : "Fully Closed Sound" : : "Sound played when the door has finished closing."
	soundmoveoverride(sound) : "Moving Sound" : : "Sound played when the door starts to move."
	returndelay(integer) : "Delay Before close (-1 stay open)" : -1 : "Amount of time, in seconds, after the door has opened before it closes. If the value is set to -1, the door never closes itself."
	dmg(integer) : "Damage Inflicted When Blocked" : 0 : "Amount of damage done to entities that block the movement of this door, per frame."
	health(integer) : "Health (0 = Unbreakable)" : 0			// NEEDHELP: Doesn't look like this is hooked up anymore?
	soundlockedoverride(sound) : "Locked Sound" : : "Sound played when the player tries to open the door, and fails because it's locked."
	soundunlockedoverride(sound) : "Unlocked Sound" : : "Sound played when the door is unlocked."
	forceclosed(choices) : "Force Closed" : 0 : "If set, this door will close no matter what. Useful for doors that have to close even if the player tries to block them with objects." =
	[
		0 : "No"
		1 : "Yes"
	]
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		//512: "NPCs Can't" : 0
		2048: "Starts locked" : 0
		4096: "Door silent (No sound, and does not alert NPCs)" : 0
		8192: "Use closes" : 1
		16384 : "Door silent to NPCS (Does not alert NPCs)" : 0
		32768 : "Ignore player +USE" : 0
	]
	opendirection(choices) : "Open Direction" : 0 : "Force the door to open only forwards or only backwards. Both directions is the standard door behavior." =
	[
		0 : "Open Both Directions"
		1 : "Open Forward Only"
		2 : "Open Backward Only"
	]
	// Outputs
	output OnClose(void) : "Fired when the door is told to close."
	output OnOpen(void) : "Fired when the door is told to open."
	output OnFullyOpen(void) : "Fired when the door reaches the fully open position."
	output OnFullyClosed(void) : "Fired when the door reaches the fully closed position."
	output OnBlockedClosing(void) : "Fired when the door is blocked while closing."
	output OnBlockedOpening(void) : "Fired when the door is blocked while opening."
	output OnUnblockedClosing(void) : "Fired when the door is unblocked while closing."
	output OnUnblockedOpening(void) : "Fired when the door is unblocked while opening."
	// Inputs
	input Open(void) : "Open the door, if it is not fully open."
	input OpenAwayFrom(string) : "Open the door away from the specified entity."
	input Close(void) : "Close the door, if it is not fully closed."
	input Toggle(void) : "Toggle the door between open and closed."
	input Lock(void) : "Lock the door."
	input Unlock(void) : "Unlock the door."
	input SetRotationDistance(float) : "Set the distance (in degrees) between Open and Closed."
]
@BaseClass base(Angles, DXLevelChoice) = prop_static_base
[
	targetname(target_source) : "Interaction Name" : "" : "The interaction name of this static prop. Used to associate static props with interactions. This name must be unique - static props are not entities - this is not a target name. Use this name to associate interaction entities with a static object."
	model(studio) : "World Model"
	skin(integer) : "Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
	solid(choices) : "Collisions" : 6 =
	[
		0: "Not Solid"
		2: "Use Bounding Box"
		6: "Use VPhysics"
	]
	disableshadows(choices) : "Disable Shadows" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	screenspacefade(choices) : "Screen Space Fade" : 0 : "The method by which the fading distance should be determined. If 'No', the fade distances is the distance from the player's view to the object, in inches. If 'Yes', the fade distance is the size of the object onscreen, in pixels." =
	[
		0 : "No"
		1 : "Yes"
	]
	fademindist(float) : "Start Fade Dist/Pixels" : -1 : "Distance at which the prop starts to fade (<0 = use fademaxdist). If 'Screen Space Fade' is selected, this represents the number of pixels wide covered by the prop when it starts to fade."
	fademaxdist(float) : "End Fade Dist/Pixels" : 0 : "Maximum distance at which the prop is visible (0 = don't fade out). If 'Screen Space Fade' is selected, this represents the *minimum* number of pixels wide covered by the prop when it fades."
	fadescale(float) : "Fade Scale" : 1 : "If you specify a fade in the worldspawn, or if the engine is running under dx7, then the engine will forcibly fade out props even if fademindist/fademaxdist isn't specified." +
												 " This scale factor gives you some control over the fade. Using 0 here turns off the forcible fades." +
												 " Numbers smaller than 1 cause the prop to fade out at further distances, and greater than 1 cause it to fade out at closer distances."
	lightingorigin(target_destination) : "Lighting Origin" : "" : "Select an info_lighting to specify a location to sample lighting from, instead of using this entity's origin."
	disablevertexlighting(choices) : "Disable Vertex lighting" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	disableselfshadowing(choices) : "Disable Self-Shadowing with vertex lighting" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
]
@include "base.fgd"
//-------------------------------------------------------------------------
//
// NPCs
//
//-------------------------------------------------------------------------
@BaseClass base(BaseNPC) = TalkNPC
[
	UseSentence(string) : "Use Sentence"
	UnUseSentence(string) : "Un-Use Sentence"
	input SpeakResponseConcept(string) : "Speak the specified response concept."
]
@BaseClass base(BaseNPC) = PlayerCompanion
[
	input OutsideTransition(void) : "Use this input to teleport the NPC to a hintnode with the Player Squad Transition Point hint type."
]
@BaseClass base(BaseNPC ) = RappelNPC
[
	waitingtorappel(choices) : "Waiting to Rappel?" : "No" : "If yes, this NPC spawns suspended in air and awaits a BeginRappel input. It will then spawn a zipline and slide down. When it hits the ground, NPC will cut away the line and try to move forward a few feet to make room for the next NPC. The NPC will not attempt to clear its landing space if it cannot do so by taking a few steps forward" =
	[
		0 : "No"
		1 : "Yes"
	]
	// Inputs
	input BeginRappel(void) : "BeginRappel"
	// Outputs
	output OnRappelTouchdown(void) : "Fires when done rappeling"
]
@BaseClass = AlyxInteractable
[
	// Outputs
	output OnAlyxStartedInteraction(void) : "Fired when Alyx begins to interact with this entity."
	output OnAlyxFinishedInteraction(void) : "Fired when Alyx has finished interacting with this entity."
	input InteractivePowerDown(void) : "Shutdown this target."
]
@BaseClass base(Targetname, Origin, Angles, Global) = CombineBallSpawners
[
	spawnflags(Flags) = 
	[
		4096 : "Start inactive" : 1
		8192 : "Combine power supply" : 0
	]
	ballcount(integer) : "Ball count" : 3 : "This is how many balls will be bouncing around inside the spawner"
	minspeed(float) : "Min ball speed" : "300.0" : "The minimum speed of balls that fly in the spawner"
	maxspeed(float) : "Max ball speed" : "600.0" : "The maximum speed of balls that fly in the spawner"
	ballradius(float) : "Ball radius" : "20.0" : "The radius of the energy balls"
	balltype(choices) : "Ball Type" : "Combine Energy Ball 1" =
	[
		0 : "Combine Energy Ball 1"
		1 : "Combine Energy Ball 2"
		2 : "Combine Energy Ball 3"
	]
	ballrespawntime(float) : "Ball Respawn Time" : "4.0f" : "The energy balls respawn time"
	input Enable(void) : "Enable spawning of combine balls"
	input Disable(void) : "Disable spawning of combine balls"
	output OnBallGrabbed(void) : "Fired when a combine ball is grabbed from the field by a mega physcannon"
	output OnBallReinserted(void) : "Fired when a combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
	output OnBallHitTopSide(void) : "Fired when a combine ball in hits the top side of the field (only gets triggered when Combine Power supply is checked)"
	output OnBallHitBottomSide(void) : "Fired when a combine ball in hits the bottom side of the field (only gets triggered when Combine Power supply is checked)"
	output OnLastBallGrabbed(void) : "Fired when the last combine ball is grabbed from the field by a mega physcannon"
	output OnFirstBallReinserted(void) : "Fired when the first combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
]
@PointClass base(BasePropPhysics) studioprop() = prop_combine_ball :
	"A prop that physically simulates as a single rigid body. It can be constrained to other physics objects using hinges "+
	"or other constraints. It can also be configured to break when it takes enough damage."
[
	// Inputs
	input Explode(void) : "Explode"
]
@SolidClass base(Trigger, Angles) = trigger_physics_trap :
	"A volumetric trigger that disintegrates enemies"
[
	dissolvetype(choices) : "Dissolve Type" : "Energy" =
	[
		0 : "Energy"
		1 : "Heavy electrical"
		2 : "Light electrical"
	]
]
@SolidClass base(Trigger) = trigger_weapon_dissolve :
	"A volumetric trigger that dissolves all weapons within it"
[
	emittername(target_destination) : "Emitter Name" : "" : "Name of a single or multiple entities to use as the basis for the emitted effects."
	// Outputs
	output OnDissolveWeapon(void) : "Fires when one weapon is starting to dissolve in the trigger volume."
	output OnChargingPhyscannon(void) : "Fires when the trigger begins to charge the physcannon."
	// Inputs
	input StopSound(void) : "Stops all sounds."
]
@SolidClass base(Trigger) = trigger_weapon_strip :
	"A volumetric trigger that strips combat characters of all weapons"
[
	KillWeapons(choices) : "Kill Weapons" : "No" =
	[
		0 : "No"
		1 : "Yes"
	]
]
@SolidClass base(Trigger) = trigger_super_armor :
	"A volumetric trigger that bestows super armor to the player"
[
]
@SolidClass base(CombineBallSpawners) = func_combine_ball_spawner :
	"A volumetric trigger that bestows super armor to the player"
[
	output OnBallReinserted(void) : "Fired when a combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
	output OnLastBallGrabbed(void) : "Fired when the last combine ball is grabbed from the field by a mega physcannon"
]
@PointClass base(CombineBallSpawners) = point_combine_ball_launcher :
	"Launches combine balls."
[
	launchconenoise(float) : "Noise to launch direction" : "0.0" : "Noise in degrees added to the launch direction."
	bullseyename(string) : "Name of bullseye" : "" : "If you select the Attach Bullseye spawnflag, you may specify a name here which will be given to the bullseye."
	maxballbounces(integer) : "Max number of bounces" : 8 : "Maximum number of bounces the balls are allowed to do before they are removed."
	spawnflags(Flags) =
	[
		1 : "Attach Bullseye" : 0
	]
]
@BaseClass base(BaseNPC) = VehicleDriverNPC
[
	vehicle(target_destination) : "Vehicle to drive"
	spawnflags(Flags) = 
	[
		65536 : "Start Inactive"			: 1
	]
	input StartFiring(void) : "Tell the driver to attack nearby enemies with the vehicle's weaponry (if any)"
	input StopFiring(void) : "Tell the driver to stop attacking nearby enemies with the vehicle's weaponry."
	input GotoPathCorner(string) : "Tell the driver to go to a specific path corner and continue from there."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_vehicledriver : 
	"NPC used to drive a target vehicle."
[
	drivermaxspeed(float) : "Maxspeed (percentage of vehicle's maxspeed)." : 1
	driverminspeed(float) : "MinSpeed (percentage of vehicle's maxspeed)." : 0
	input SetDriversMaxSpeed(float)	: "Set the Maxspeed (percentage of vehicle's maxspeed)."
	input SetDriversMinSpeed(float)	: "Set the Minspeed (percentage of vehicle's maxspeed)."
	input StartForward(void) : "Tell the driver to start driving."
	input Stop(void) : "Tell the driver to stop driving."
]
@NPCClass base(Parentname, BaseNPC) iconsprite("editor/bullseye.vmt") color(255 0 0) = npc_bullseye : "Bullseye"
[
	// Unlike other NPCs level designers are allowed to set the health on bullseyes
	health(Integer) : "Health" : 35
	spawnflags(Flags) = 
	[
		65536 : "Not Solid" : 0
		131072 : "Take No Damage" : 0
		262144 : "Enemy Damage Only" : 0
		524288 : "Bleed" : 0
		1048576 : "Perfect Accuracy" : 0
		2097152 : "Collide against physics objects (Creates VPhysics Shadow)" : 0
	]
	output OnTargeted(void) : "Fires when targeted"
	output OnReleased(void) : "Fires when no longer targeted"
]
@NPCClass base(Parentname, BaseNPC) size(-16 -16 -16, 16 16 16) color(255 150 0) = npc_enemyfinder : "EnemyFinder"
[
	spawnflags(flags) =
	[
		65536 : "Check Visibility" : 1
		131072 : "APC Visibility checks" : 0
		262144 : "Short memory" : 0
		524288 : "Can be an enemy" : 0
	]
	FieldOfView(string)				: "FieldOfView"		: "0.2" : "How far to look (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
	MinSearchDist(integer)			: "Min Search Dist"	: 0
	MaxSearchDist(integer)			: "Max Search Dist"	: 2048
	freepass_timetotrigger(float)	: "Player pass issue time" : 0 : "Amount of time an enemy is hidden after which a 'free pass' on reaquire is granted"
	freepass_duration(float)		: "Player pass duration" : 0 : "After granted 'free pass', the amount of time a target is allowed before reaquire"
	freepass_movetolerance(float)	: "Player pass move tolerance" : 120 : "After granted 'free pass', the distance the target is allowed to move before reaquire"
	freepass_refillrate(float)		: "Player pass refill rate" : "0.5" : "After free pass begins expiring, how much the time the target gets back for every second they hide again"
	freepass_peektime(float)		: "Player pass peek time" : 0 : "How long targets in cover are allowed to peek without penalty"
	StartOn(choices) : "Start On" : 1 =
	[
		0 : "No"
		1 : "Yes"
	]
	// Inputs
	input TurnOn(void)				: "Turn on: Look for enemies"
	input TurnOff(void)				: "Turn off: Stop looking for enemies"
]
@PointClass base(Targetname, Parentname, Targetname, EnableDisable) = env_gunfire : "Gunfire Effect"
[
	target(target_destination) : "Target" : "" : "Shoot at this target. REMEMBER - this is an effect only! It does not do damage!"
	minburstsize(integer) : "Min Burst Size" : 2 : "Minimum number of rounds in a burst."
	maxburstsize(integer) : "Max Burst Size" : 7 : "Maximum number of rounds in a burst."
	minburstdelay(float) : "Min Delay Between Bursts" : 2 : "Minimum delay between bursts. (seconds)"
	maxburstdelay(float) : "Max Delay Between Bursts" : 5 : "Maximum delay between bursts. (seconds)"
	rateoffire(float) : "Rate of fire" : 10 : "Expressed as rounds per second"
	spread(choices) : "Bullet spread" : 5 : "The 'cone of inaccuracy' of the shots fired by this entity." =
	[
		1 : "1 Degree"
		5 : "5 Degrees"
		10 : "10 Degrees"
		15 : "15 Degrees"
	]
	bias(choices) : "Bullet distribution should be..." : 1 : "How to distribute bullets within the spread. Even distribution is a true scatter throughout the spread. Biased towards the outside makes the shots 'miss' the target by tending towards the outside of the spread." =
	[
		1 : "Evenly distributed"
		-1 : "Biased towards the outside"
	]
	collisions(choices) : "Collision detection" : 0 : "Whether/how to handle bullet collision detection. NOTE: If you select NONE, this entity will be very cheap to use, but all bullets will stop short at their target's position in space and there will be no impact effects. Normal collision detection does the same things NPCs do when they fire their guns (except harm anything)." =
	[
		0 : "None. Cheap for performance."
		1 : "Normal collision detection."
	]
	shootsound(choices) : "Shoot Sound" : "Weapon_AR2.NPC_Single" : "Gunfire sound to make" = 
	[
		"Weapon_AR2.NPC_Single"		: "AR2"
		"Weapon_SMG1.NPC_Single"	: "SMG1"
	]
	tracertype(choices) : "Tracer" : "AR2TRACER" : "Type of tracer to display" = 
	[
		""		: "Default"
		"AR2TRACER"	: "AR2"
	]
]
@PointClass base(BaseNPC, RenderFields, Shadow) studio() = monster_generic : "Generic Script NPC"
[
	spawnflags(Flags) = 
	[
		65536 : "Not solid"	: 0
	]
	model(studio) : "Model"
	body(Integer) : "Body" : 0
]
@PointClass base(BaseNPC, Parentname, RenderFields, Shadow) studio() = generic_actor : "Generic Actor NPC"
[
	model(studio) : "Model"
	hull_name(choices) : "Hull type" : "Human" =
	[
		"HUMAN_HULL" : "Human"
		"WIDE_HUMAN_HULL" : "Wide"
		"TINY_HULL" : "Tiny"
		"MEDIUM_HULL" : "Medium"
		"LARGE_HULL" : "Large"
	]
]
@PointClass base(BaseNPC, RenderFields, Shadow) studio() = cycler_actor : "Actor Cycler"
[
	model(studio) : "Model"
	Sentence(string) : "Sentence Group" : ""
	input Alpha(integer) : "Set Alpha Value"
]
@PointClass base(Angles, BaseNPCMaker) iconsprite("editor/npc_maker.vmt") = npc_maker : "NPC Maker"
[
	spawnflags(Flags) = 
	[
		16	: "Fade Corpse"		 : 0
	]
	NPCType(npcclass) : "Class name of spawned NPC"
	NPCTargetname(string) : "Childrens' Name"
	NPCSquadname(string) : "Childrens' Squad Name"
	NPCHintGroup(string) : "Childrens' Hint Group"
	
	additionalequipment(choices) : "Weapons" : "0" =
	[
		"weapon_pistol"		: "Pistol"
		"weapon_ar2"		: "AR2"
		"weapon_shotgun"	: "Shotgun"
		"weapon_smg1"		: "SMG1"
		"weapon_stunstick"	: "Stun Stick"
		"weapon_annabelle"	:"Grigori's Shotgun"
		"0"			: "Nothing"
	]
]
//-------------------------------------------------------------------------
//
// Player Control Entities
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname) size(-10 -10 -10, 10 10 10) color(255 0 255) = player_control
[
	// Inputs
	input Activate(void)		: "Turns on"
	input Deactivate(void)		: "Turns off"
	input SetThrust(string)		: "Set Thrust"
	input SetSideThrust(string) : "Set Side Thrust"
]
 
//-------------------------------------------------------------------------
//
// Scripted Events
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Parentname, Angles) color(255 0 255) sphere(m_flRadius) = BaseScripted
[
	m_iszEntity(target_destination) : "Target NPC" : : "The name or class name (such as 'npc_zombie') of an NPC to use for this script."
	m_iszIdle(string) : "Pre Action Idle Animation" : "" : "The name of the sequence (such as 'idle01') or activity (such as 'ACT_IDLE') to play before the action animation if the NPC must wait for the script to be triggered. Use 'Start on Spawn' flag or MoveToPosition input to play this idle animation."
	m_iszPlay(string) : "Action Animation" : "" : "The name of the main sequence (such as 'reload02') or activity (such as 'ACT_RELOAD') to play."
	m_iszPostIdle(string) : "Post Action Idle Animation" : "" : "The name of the sequence (such as 'idle01') or activity (such as 'ACT_IDLE') to play after the action animation."
	m_iszCustomMove(string) : "Custom Move Animation" : "" : "Used in conjunction with the 'Custom movement' setting for the 'Move to Position' property, specifies the sequence (such as 'crouch_run01') or activity (such as 'ACT_RUN') to use while moving to the scripted position."
	m_flRadius(integer) : "Search Radius (0=everywhere)" : 0 : "Radius to search within for an NPC to use. 0 searches everywhere."
	m_flRepeat(integer) : "Repeat Rate ms" : 0
	m_fMoveTo(Choices) : "Move to Position" : 1 =
	[
		0 : "No"
		1 : "Walk"
		2 : "Run"
		3 : "Custom movement"
		4 : "Instantaneous"
		5 : "No - Turn to Face"
	]
	m_iszNextScript(target_destination) : "Next Script" : : "The name of the script to run immediately after this script completes. The NPC will not return to AI between the two scripts."
	// Inputs
	input BeginSequence(void) : "Summons an NPC to act out the scripted sequence."
	input MoveToPosition(void) : "Summons an NPC to the script location. They will play their scripted idle (or ACT_IDLE if none is specified) until BeginSequence is triggered."
	input CancelSequence(void) : "Stops the scripted sequence. If fired after a sequence starts, this input will not take effect until the NPC finishes playing the scripted action animation."
	// Outputs
	output OnBeginSequence(void) : "Fires when the action animation begins playing."
	output OnEndSequence(void) : "Fires when the action animation completes."
	output OnScriptEvent01(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 1 } in the QC."
	output OnScriptEvent02(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 2 } in the QC."
	output OnScriptEvent03(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 3 } in the QC."
	output OnScriptEvent04(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 4 } in the QC."
	output OnScriptEvent05(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 5 } in the QC."
	output OnScriptEvent06(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 6 } in the QC."
	output OnScriptEvent07(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 7 } in the QC."
	output OnScriptEvent08(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 8 } in the QC."
]
@PointClass sphere() iconsprite("editor/scripted_sentence.vmt") base(Targetname) = scripted_sentence : "Scripted Sentence"
[
	spawnflags(Flags) = 
	[
		1 : "Fire Once" 	: 1
		2 : "Followers Only"	: 0
		4 : "Interrupt Speech"	: 1
		8 : "Concurrent"	: 0
		16 : "Speak to Activator" : 1
	]
	sentence(string) : "Sentence Name" : ""
	entity(string) : "Speaker Type"
	delay(string) : "Additional Sentence Time" : "0"
	radius(integer) : "Search Radius" : 512
	refire(string) : "Delay Before Refire" : "3"
	listener(string) : "Listener Type"
	volume(string) : "Volume 0-10" : "10"
	attenuation(Choices) : "Sound Radius" : 0 =
	[
		0 : "Small Radius"
		1 : "Medium Radius"
		2 : "Large Radius"
		3 : "Play Everywhere"
	]
	// Inputs
	input BeginSentence(void) : "Starts the scripted sentence."
	// Outputs
	output OnBeginSentence(void) : "Fires when the sentence begins"
	output OnEndSentence(void) : "Fires when the sentence ends"
]
@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = scripted_target : "Scripted Target"
[
	StartDisabled(choices) : "Start Disabled" : 1 =
	[
		0 : "No"
		1 : "Yes"
	]
	m_iszEntity(npcclass)	: "Target NPC"
	m_flRadius(integer) : "Search Radius (0=everywhere)" : 0 : "Radius to search within for an NPC to use. 0 searches everywhere."
	MoveSpeed(integer)		: "Move Speed"			: 5		// How quickly should target move between scripted targets
	PauseDuration(integer)	: "Pause Duration"		: 0		// How long should target pause at scripted target
	EffectDuration(integer)	: "Effect Duration"		: 2		// How long should any associated effect last
	target(target_destination) : "Next Target"				// Next scripted target
	// Inputs
	input Enable(void) : "Enable this entity"
	input Disable(void) : "Disable this entity"
	// outputs
	output AtTarget(void)		: "Fires when NPC reaches this target"
	output LeaveTarget(void)	: "Fires when NPC leaves this target"
]
@PointClass base(Targetname) iconsprite("editor/ai_relationship.vmt") sphere() = ai_relationship : "AI Relationship - Sets relationships between groups of NPCs in the AI."
[
	subject(target_name_or_class) : "Subject(s)" : "" : "This is the NPC(s) whose disposition will change. May be a targetname or a classname."
	target(target_name_or_class) : "Target(s)" : "" : "This is the NPC(s) about whom the Subject(s) will change their disposition. May be a tarGetname or a classname."
	disposition(choices) : "Disposition" : 3 : "Choose the way the Subject(s) should feel about the Target(s)" =
	[
		// These MUST match the enum in the code! (basecombatcharacter.h)
		1 : "Hate"
		2 : "Fear"
		3 : "Like"
		4 : "Neutral"
	]
	radius(float) : "Radius for subject" : 0
	rank(integer) : "Disposition Priority" : 0 : "How much the Subject(s) should Like/Hate/Fear the Target(s). Higher priority = stronger feeling."
	StartActive(choices) : "Start Active" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	Reciprocal(choices) : "Reciprocal" : 0 : "Set this to YES to have the new relationship mirrored by Target" =
	[
		0 : "No"
		1 : "Yes"
	]
	// Inputs
	input ApplyRelationship(void) : "Apply relationship changes"
	input RevertRelationship(void) : "Revert relationship changes"
]
@BaseClass base(Targetname) = LeadGoalBase
[
	actor(target_name_or_class) : "Actor(s) to affect"
	goal(string) : "Target Entity"
	WaitPointName(target_destination) : "Point to wait at if the target's not visible."
	WaitDistance(float) : "Wait until player gets this close."
	LeadDistance(float) : "Lead Distance." : "64" : "The player is considered to be lagging if he's beyond this distance."
	Run(choices) : "Run instead of Walk" : "0" =
	[
		"0" : "No"
		"1" : "Yes"
	]
	Retrieve(choices) : "Retrieve player?" : 1 =
	[
		0 : "No, just idle and wait"
		1 : "Yes, move to retrieve"
	]
	
	AttractPlayerConceptModifier(string)	: "Attract player concept modifier"
	WaitOverConceptModifier(string)		: "Player wait over concept modifier"
	ArrivalConceptModifier(string)		: "Arrival concept modifier"
	PostArrivalConceptModifier(string)	: "Post-arrival concepts modifier"
	SuccessConceptModifier(string)		: "Success concept modifier"
	FailureConceptModifier(string)		: "Failure concept modifier"
	
	// Spawnflags
	spawnflags(Flags) = 
	[
		1 : "No def success" : 0
		2 : "No def failure" : 0
		4 : "Use goal facing" : 1
	]
	// Inputs
	input Activate( void ) 		: "Begin the leading behavior"
	input Deactivate( void ) 	: "Stop the leading behavior"
	
	input SetSuccess( void )	: "Notify success of leading"
	input SetFailure( void )	: "Notify failure of leading"
	
	// Outputs
	output OnArrival( void )	: "Fires when NPC reaches the lead point"
	output OnArrivalDone( void ) : "Fires when NPC has played out any arrival speech"
	output OnSuccess( void )	: "Fires when NPC achieves the goal"
	output OnFailure( void )	: "Fires when NPC fails to achieves the goal"
	output OnDone( void )		: "Fires when NPC completes behavior (any post-success or fail acting is complete)"
]
@PointClass base(LeadGoalBase) iconsprite("editor/ai_goal_lead.vmt") = ai_goal_lead : "AI Goal Lead"
[
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = 
	[
		0 : "Entity Name"
		1 : "Classname"
	] 
]
@PointClass base(LeadGoalBase) iconsprite("editor/ai_goal_lead.vmt") = ai_goal_lead_weapon : "AI Goal Lead (Weapon). A version of the ai_goal_lead entity that requires the player to have the specified weapon before the Actor(s) will lead the player to their target."
[
	WeaponName(choices) : "Weapon" : "weapon_bugbait" =
	[
		"weapon_bugbait" : "Bugbait"
		"weapon_smg1" : "SMG1"
		"weapon_ar2" : "AR2"
	]
	MissingWeaponConceptModifier(string)	: "Missing weapon concept modifier"
	
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = 
	[
		0 : "Entity Name"
		1 : "Classname"
	] 
]
@PointClass base(Targetname) iconsprite("editor/ai_goal_follow.vmt") = ai_goal_follow : "AI Goal Follow"
[
	actor(target_name_or_class) : "Actor(s) to affect"
	goal(string) : "Target Entity" : : "The name of the entity to follow. If blank, and the actor likes the player, then defaults to player"
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = 
	[
		0 : "Entity Name"
		1 : "Classname"
	]
	StartActive(choices) : "Start Active" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	MaximumState(choices) : "Maximum state" : 1 =
	[
		1 : "Idle"
		2 : "Alert"
		3 : "Combat"
	]
	Formation(choices) : "Formation" : 0 =
	[
		0 : "Close circle"
		1 : "Wide circle"
		5 : "Medium circle"
	]
	// Inputs
	input Activate( void ) : "Begin the follow behavior"
	input Deactivate( void ) : "Cease the follow behavior"
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Angles, Parentname) studio("models/pigeon.mdl") = ai_battle_line : "Battle line"
[																									 
	// Spawnflags
	spawnflags(Flags) = 
	[
		1 : "Use parent's orientation" : 0
	]
	actor(target_name_or_class) : "Actor(s) or squad to affect"
	Active(choices) : "Active" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	Strict(choices) : "Strict" : 1 : "Player orders can override, applies to allies only" =
	[
		0 : "No"
		1 : "Yes"
	]
	input Activate(void)
	input Deactivate(void)
]
@PointClass base(Targetname) iconsprite("editor/ai_goal_standoff.vmt") = ai_goal_standoff : "AI Goal Standoff"
[
	actor(target_name_or_class) : "Actor(s) to affect"
//	goal(string) : "Target Entity (self by default) [NOT IMPLEMENTED]"
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = 
	[
		0 : "Entity Name"
		1 : "Classname"
	]
	StartActive(choices) : "Start Active" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	HintGroupChangeReaction(Choices) : "Reaction to tactical change" : 1 : "What to do if leader moves, threat is neutralized, hint group changes, etc" =
	[
		0 : "Move when ready (default AI)"
		1 : "Move when seek cover"
		2 : "Move immediately"
	]
	Aggressiveness(Choices) : "Aggressiveness" : 2 =
	[
		0 : "Very low"
		1 : "Low"
		2 : "Medium"
		3 : "High"
		4 : "Very High"
		// Custom agression disabled
		// 		100 : "Custom"
	]
	PlayerBattleline(choices) : "Player battleline" : 1 : "Player defines a battle line, applies to allies only" =
	[
		0 : "No"
		1 : "Yes"
	]
	StayAtCover(choices) : "Stay at cover location" : 0 : "When have suitable cover, don't change it (disables advancing to battle line)" =
	[
		0 : "No"
		1 : "Yes"
	]
	AbandonIfEnemyHides(choices) : "Abandon if enemies hide" : 0 : "If no enemy detected recently, stop the standoff" =
	[
		0 : "No"
		1 : "Yes"
	]
	// Custom aggression
//	CustomCoverOnReload(choices)	: "Custom: Take cover to reload" : 1 =
//	[
//		0 : "No"
//		1 : "Yes"
//	]
//	CustomMinTimeShots(float)		: "Custom: Min time wait to shoot"	 : 2 : "Minimum duration of time after a burst of shooting before trying again"
//	CustomMaxTimeShots(float)		: "Custom: Max time wait to shoot"	 : 4 : "Minimum duration of time after a burst of shooting before trying again"
//	CustomMinShots(integer)			: "Custom: Min shots in a burst"	 : 1
//	CustomMaxShots(integer)			: "Custom: Max shots in a burst"	 : 4
//	CustomOddsCover(integer)		: "Custom: Odds cover on damage"	 : 25 : "If damaged, the chances react by taking immediate cover"
	// Inputs
	input Activate( void ) : "Begin contesting position"
	input Deactivate( void ) : "Cease contesting position"
	input SetAggressiveness(integer) : "Set aggressiveness"
]
@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/assault_rally.vmt") line(255 255 255, targetname, assaultpoint) = assault_rallypoint : "(Assault) rally point"
[
	assaultpoint(target_destination) 	: "Assault Point" : "" : "Location to move to as assault begins"
	assaultdelay(float)		: "Assault Delay" : 0 : "How long to wait after cue is given before assault begins."
	rallysequence(string)	: "Rally Sequence" : "" : "Override the NPC's wait activity by entering a sequence name."
	priority(integer)		: "Priority" : 1 : "Higher priority rally points get selected first."
	output OnArrival(void)	: "Fires when the NPC reaches this rally point"
]
@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/assault_point.vmt") line(255 255 255, targetname, nextassaultpoint) = assault_assaultpoint : "(Assault) assault point"
[
	assaultgroup(string) 	: "Assault Hint Group" : "" : "NPC's movements are constrained to this hint group once assault has begun"
	nextassaultpoint(target_destination) : "Next assault point (optional)"
	assaulttimeout(float)	: "Assault time out" : "3.0" : "This point is cleared when no enemies are seen for this long (seconds)"
	clearoncontact(choices) : "Clear on contact with enemies" : 0 : "If you come in contact with enemies while approaching the assault point, clear our assault point" =
	[
		0 : "No"
		1 : "Yes"
	]
	allowdiversion(choices) : "Allow diversion" : 0 : "If you come in contact with enemies while approaching the assault point, divert to kill them. Resume the assault once contact is lost." =
	[
		0 : "No"
		1 : "Yes"
	]
	nevertimeout(choices) : "Never Timeout" : 0 : "If set, the assault never ends for NPCs assaulting this point. Useful for forcing NPCs back to a point." =
	[
		0 : "No"
		1 : "Yes"
	]
	spawnflags(Flags) = 
	[
		1 : "Clear this point upon arrival, UNCONDITIONALLY"	: 0
	]
	// Inputs
	input SetClearOnContact(integer) : "Set the clear on contact flag."
	input SetAllowDiversion(integer) : "Set the allow diversion flag."
	// Outputs
	output OnArrival(void)	: "Fires when the NPC reaches this assault point"
	output OnAssaultClear(void)	: "Fires when this assault point is cleared of enemies"
]
@PointClass base(Targetname) = ai_goal_assault : "AI Goal Assault"
[
	actor(target_name_or_class)		: "Actor(s) to affect" : "" : "NPC's that should perform this assault"
	rallypoint(target_destination)	: "Rally Point Set" : "" : "Root name of rally points for this assault. Use an asterisk '*' after the root name to match all with the same root."
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = 
	[
		0 : "Entity Name"
		1 : "Classname"
	]
	StartActive(choices) : "Start Active" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	AssaultCue(choices) : "Assault Cue" : 1 =
	[
		1 : "Entity System Input"
		2 : "Gunfire"
		3 : "Don't wait for a cue."
	]
	// Inputs
	input Activate( void ) : "Begin the assault behavior"
	input Deactivate( void ) : "Cease the assault behavior"
	input BeginAssault( void ) : "Begin assault phase"
]
@BaseClass base(Targetname) = BaseActBusy
[
	actor(target_name_or_class)	: "Actor(s) to affect" : "" : "NPC's that should act busy"
	StartActive(choices) : "Start Active" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = 
	[
		0 : "Entity Name"
		1 : "Classname"
	]
	busysearchrange(float) : "Search Range for Busy Hints" : 2048
	visibleonly(choices) : "Visible Busy Hints Only" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	// Inputs
	input Activate( void ) : "Begin acting busy"
	input Deactivate( void ) : "Cease acting busy"
	input SetBusySearchRange( float ) : "Update the busy search range for all actors."
	input ForceNPCToActBusy( string ) : "Force an NPC to act busy. Takes parameters, separated by spaces: <Targetname> <hint node targetname> <optional:teleport> <optional:$customactivityorsequence> <maximum time to actbusy>. If no hint node targetname is specified, it'll search for a random one. If no max time is specified, it'll use the default. Specifying 0 as the max time will make the NPC act busy until disturbed. If the optional teleport parameter is specified, the NPC will teleport to the act busy point. A custom move animation can be specified by prepending $ to the name of it. i.e. $ACT_RUN will make the NPC Run. Sequence names can be used instead of activities."
	input ForceThisNPCToActBusy( string ) : "Force an NPC outputted from another entity to act busy. (only usable from an output that specifies an entity)"
	input ForceThisNPCToLeave( string ) : "Force an NPC outputted from another entity to find a HINT_NPC_EXIT_POINT hintnode and vanish."
	// Outputs
	output OnNPCStartedBusy(string) : "Fired when an NPC targeted by this goal starts an ActBusy animation."
	output OnNPCFinishedBusy(string) : "Fired when an NPC targeted by this goal finishes an ActBusy."
	output OnNPCLeft(string) : "Fired when an NPC target by this goal finishes a forced Leave."
]
@PointClass base(BaseActBusy) = ai_goal_actbusy : "AI Goal Act Busy"
[
]
@PointClass base(BaseActBusy) = ai_goal_actbusy_queue : "AI Goal Act Busy Queue"
[
	node_exit(target_destination) : "Exit Node" : "" : "The name of the node the first NPC in the queue should move to when he leaves the head of the queue."
	node01(target_destination) : "Node 1" : "" : "The name of the first actbusy hint node in the queue."
	node02(target_destination) : "Node 2" : "" : "The name of the second actbusy hint node in the queue."
	node03(target_destination) : "Node 3" : "" : "The name of the third actbusy hint node in the queue."
	node04(target_destination) : "Node 4" : "" : "The name of the fourth actbusy hint node in the queue."
	node05(target_destination) : "Node 5" : "" : "The name of the fifth actbusy hint node in the queue."
	node06(target_destination) : "Node 6" : "" : "The name of the sixth actbusy hint node in the queue."
	node07(target_destination) : "Node 7" : "" : "The name of the seventh actbusy hint node in the queue."
	node08(target_destination) : "Node 8" : "" : "The name of the eighth actbusy hint node in the queue."
	node09(target_destination) : "Node 9" : "" : "The name of the ninth actbusy hint node in the queue."
	node10(target_destination) : "Node 10" : "" : "The name of the tenth actbusy hint node in the queue."
	node11(target_destination) : "Node 11" : "" : "The name of the eleventh actbusy hint node in the queue."
	node12(target_destination) : "Node 12" : "" : "The name of the twelfth actbusy hint node in the queue."
	node13(target_destination) : "Node 13" : "" : "The name of the thirteenth actbusy hint node in the queue."
	node14(target_destination) : "Node 14" : "" : "The name of the fourteenth actbusy hint node in the queue."
	node15(target_destination) : "Node 15" : "" : "The name of the fifteenth actbusy hint node in the queue."
	node16(target_destination) : "Node 16" : "" : "The name of the sixteenth actbusy hint node in the queue."
	node17(target_destination) : "Node 17" : "" : "The name of the seventeenth actbusy hint node in the queue."
	node18(target_destination) : "Node 18" : "" : "The name of the eighteenth actbusy hint node in the queue."
	node19(target_destination) : "Node 19" : "" : "The name of the nineteenth actbusy hint node in the queue."
	node20(target_destination) : "Node 20" : "" : "The name of the twentieth actbusy hint node in the queue."
	 
	mustreachfront(choices) : "Must Reach Front" : 0 : "If true, NPCs much reach the front node in the queue before they're allowed to leave the queue." =
	[
		0 : "No"
		1 : "Yes"
	]
	// Inputs
	input PlayerStartedBlocking(float) : "Tell the queue manager that the player has started blocking a spot in the queue."
	input PlayerStoppedBlocking(float) : "Tell the queue manager that the player has stopped blocking a spot in the queue."
	input MoveQueueUp(void) : "Force the queue to move up, sending the front-most NPC out of the queue."
	// Outputs
	output OnQueueMoved(float) : "Fired when the queue moves. Outputs the number of NPCs left in the queue."
	output OnNPCStartedLeavingQueue(string) : "Fired when the NPC at the head of the queue starts to leave. The activator is the NPC, and the string is the name of the NPC."
	output OnNPCLeftQueue(string) : "Fired when the NPC at the head of the queue leaves. The activator is the NPC, and the string is the name of the NPC."
]
@PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = ai_changetarget : "Change Target"
[
	target(target_destination) : "Target entity" : : "Name of entity whose target will be changed."
	m_iszNewTarget(string) : "New Target"
	input Kill( void ) : "Removes this entity from the world"
	input Activate( void ) : "Changes the entities target"
]
@PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = ai_npc_eventresponsesystem : "An entity that allows you to generate events for nearby friendly NPCs to respond to."
[
	input TriggerResponseEvent(string) : "Fire an NPC Response Event. The parameter should match the response rules concept that any nearby friendly NPCs will try to speak."
]
@PointClass base(Targetname) sphere(Radius) size(-8 -8 -8, 8 8 8) = ai_changehintgroup : "Change Hint Group"
[
	SearchType(choices) : "Search Type" : 0 : "How to search for the entities to change." = 
	[
		0 : "Entity Name"
		1 : "Classname"
		2 : "Old Hint Group"
	] 
	SearchName(string) : "Name to search for"
	NewHintGroup(string) : "New Hint Group"
	Radius(string) : "Search Radius" : "0.0" : "Radius to search (0 for all of map)"
	hintlimiting(choices) : "Hint Limit Nav" : 0 : "Limits NPC to using specified hint group for navigation requests, does not limit local navigation." =
	[
		0 : "No"
		1 : "Yes"
	]
	input Kill( void ) : "Removes this entity from the world"
	input Activate( void ) : "Change the Hint Group"
]
@PointClass base(Targetname) = ai_script_conditions : "AI Script Conditions"
[
	Actor(target_destination) : "Actor" : : "NPC Target"
	
	StartDisabled(choices) : "Start Disabled" : 1 =
	[
		0 : "No"
		1 : "Yes"
	]
	MinimumState(choices) : "Minimum state" : 1 =
	[
		1 : "Idle"
		2 : "Alert"
		3 : "Combat"
	]
	MaximumState(choices) : "Maximum state" : 3 =
	[
		1 : "Idle"
		2 : "Alert"
		3 : "Combat"
	]
	
	ScriptStatus(choices) : "Actor is running a script?" : 0 =
	[
		0 : "No"
		1 : "Yes"
		2 : "Don't care"
	]
		
	RequiredTime(float)		: "Required Time"	 : 0 : "Duration of time that all the conditions must be true"
	MinTimeout(float)		: "Minimum time out" : 0 : "Minimum time before OnConditionsTimeout is fired. 0 = never expire"
	MaxTimeout(float)		: "Maximum time out" : 0 : "Maximum time before OnConditionsTimeout is fired. 0 = ignore"
	
	ActorSeePlayer(choices) : "Actor Sees Player" : 2 =
	[
		0 : "No"
		1 : "Yes"
		2 : "Don't care"
	]
	PlayerActorProximity(float)	: "Player distance" 	 : 0 : "The distance the player must/must not be to the actor. Negative values for NOT, 0 for ignore."
	PlayerActorFOV(float)		: "Player FOV for Actor " : 360 : "Specify angle of view cone in degrees. Negative value = NOT"
	PlayerActorFOVTrueCone(choices ) : "Play FOV to Actor is a true view cone" : 0 : "Player's view cone is evaluated as a true cone, not pie slice " = 
	[
		0 : "No - Tall pie slice"
		1 : "Yes - True view cone"
	]
	PlayerActorLOS(choices)		: "Player has LOS to Actor" : 2 : "Checks that the player has clear Line of Sight to the Actor" =
	[
		0 : "No"
		1 : "Yes"
		2 : "Don't care"
	]
	target(target_destination)	: "Target (Optional)" : : "Optional entity to include in conditions"
	ActorSeeTarget(choices) 	: "Actor Sees Target" : 2 =
	[
		0 : "No"
		1 : "Yes"
		2 : "Don't care"
	]
	ActorTargetProximity(float)		: "Target distance" 	 : 0 : "The distance the actor must/must not be to the Target. Negative values for NOT, 0 for ignore."
	PlayerTargetProximity(float)	: "Player distance from Target" 	 : 0 : "The distance the player must/must not be to the Target. Negative values for NOT, 0 for ignore."
	PlayerTargetFOV(float)			: "Player FOV for Target" : 360 : "Specify angle of view cone in degrees. Negative value = NOT"
	PlayerTargetFOVTrueCone(choices ) : "Play FOV to Target is a true view cone" : 0 : "Player's view cone is evaluated as a true cone, not pie slice " = 
	[
		0 : "No - Tall pie slice"
		1 : "Yes - True view cone"
	]
	PlayerTargetLOS(choices)		: "Player has LOS to Target" : 2 : "Checks that the player has clear Line of Sight to the Target" =
	[
		0 : "No"
		1 : "Yes"
		2 : "Don't care"
	]
	
	PlayerBlockingActor(choices)	: "Player blocking Actor" : 2 : "Checks that the player is blocking the Actor's path" =
	[
		0 : "No"
		1 : "Yes"
		2 : "Don't care"
	]
	
	// Outputs
	output OnConditionsSatisfied(void) : "Fires when AI conditions satisfied"
	output OnConditionsTimeout(void) : "Fires when AI conditions timed out"
	// Inputs
	input Enable(void) : "Enable this entity"
	input Disable(void) : "Disable this entity"
]
@PointClass base(BaseScripted, Angles, DXLevelChoice) studio("models/editor/scriptedsequence.mdl") sphere(m_flRadius) = scripted_sequence :
	"Grabs an NPC and makes them play a specified set of animations. The NPC can be told to move to the scripted sequence position or can "+
	"be told to play the script wherever they currently are. "+
	"Multiple scripted sequences of the same name will frame-synchronize in the action animation once all the actors have moved to position. "+
	"This allows tight interaction between actors (one actor grabbing another, hitting them, etc.) The flow is as follows:\n\n"+
	"1) Move to position using the specified movement animation. If 'Move to Position' is set to NONE, skip to step 2.\n"+
	"2) If forced to wait for another actor to move to position, play the pre-action idle animation, otherwise skip to step 3. If there is no pre-action idle specified, ACT_IDLE is used.\n"+
	"3) Fire the OnBeginSequence output.\n"+
	"4) Play the action animation. If no action animation is specified, skip to step 5.\n"+
	"5) Play the post-action idle animation. If none is specified, skip to step 6. If the 'Loop in Post Idle' spawnflag is set, keep playing the post-action idle until the script is cancelled. If no post-action idle animation is specified, ACT_IDLE is used.\n"+
	"6) Fire the OnEndSequence output.\n"+
	"7) If a next script to play is specified, hand the NPC to the next script and repeat this process for that script.\n\n"+
	"The MoveToPosition input runs steps 1 and 2, then waits while playing the pre-action idle animation until the BeginSequence input is received."
[
	spawnflags(Flags) = 
	[
		4 : "Repeatable"	: 0
		8 : "Leave Corpse"	: 0
		16 : "Start on Spawn" : 0
		32: "No Interruptions"	: 0
		64: "Override AI"	: 0
		128: "No Script Movement" : 0
		256: "Loop in Post Idle" : 0
		512: "Priority Script" : 0
	]
]
@PointClass base(Targetname) sphere(m_flRadius) color(255 0 255) iconsprite("editor/aiscripted_schedule") = aiscripted_schedule :
	"Issues a command to an NPC without taking the NPC out of its AI. This does not seize control of the NPC as " +
	"a scripted_sequence does" 
[
	m_iszEntity(target_destination) : "Target NPC" : : "The name or classname of an NPC to use."
	m_flRadius(integer) : "Search Radius (0=everywhere)" : 0 : "Radius to search within for an NPC to use. 0 searches everywhere."
	graball(choices) 	: "All in radius" : 0: "Whether to grab all matching NPCs in the specified radius, instead of just one" =
	[
		0 : "No"
		1 : "Yes"
	]
	spawnflags(Flags) = 
	[
		4 : "Repeatable" : 0
		1024 : "Search Cyclically" : 0
		2048 : "Don't Complain" : 0
	]
	forcestate(choices) : "AI state to set" : 0 =
	[
		0 : "<None>"
		1 : "Set state to IDLE"
		2 : "Set state to ALERT"
		3 : "Set state to COMBAT"
	]
		
	schedule(choices) : "Schedule to run" : 1 =
	[
		0 : "<None>"
		1 : "Walk to Goal Entity"
		2 : "Run to Goal Entity"
		3 : "Set enemy to Goal Entity"
		4 : "Walk Goal Path"
		5 : "Run Goal Path"
		6 : "Set enemy to Goal Entity AND Run to Goal Entity"
	]
	
	interruptability(choices) : "Interruptability" : 0 =
	[
		0 : "General"
		1 : "Damage or Death"
		2 : "Death"
	]
	goalent(target_destination) : "Goal entity" : : "Provides the name of a schedule-specific goal entity (see 'Schedule to run')"
	input StartSchedule(void) : "Starts the scripted schedule. This will first locate an NPC that " +
		"matches the given target, then tell the NPC to run the specified schedule."
]
@PointClass base(Targetname) = ai_citizen_response_system :
	"If placed in the level, will manage citizens responses to player's actions."
[
	input ResponseVitalNPC(void) : "Fire the VitalNPC Died response."
]
//-------------------------------------------------------------------------
//
// Solid Entities
//
//-------------------------------------------------------------------------
@SolidClass base(EnableDisable, Parentname, Origin, Global) = func_healthcharger: "Wall health recharger" 
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"
	output OutRemainingHealth(float) : "Remaining Health."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
//-------------------------------------------------------------------------
//
// Solid Entities
//
//-------------------------------------------------------------------------
@SolidClass base(EnableDisable, Parentname, Origin, Global) = func_healthcharger: "Wall health recharger" 
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"
	output OutRemainingHealth(float) : "Remaining Health."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
@SolidClass base(Targetname, Parentname, Origin) = func_recharge: "Battery recharger" 
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"
	spawnflags(flags) =
	[
		8192 : "Citadel recharger" : 0
	]
	input Recharge(void) : "Recharge to full"
	output OutRemainingCharge(float) : "Remaining Charge."
	output OnHalfEmpty(void) : "Half-Empty"
	output OnEmpty(void) : "Empty"
	output OnFull(void) : "Recharged to full."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
@SolidClass base(Parentname, Origin, Global) = func_extinguishercharger: "Wall fire extinguisher recharger" 
[
	_minlight(string) : "Minimum light level"
]
@SolidClass base(Parentname, Targetname, Global) = func_vehicleclip: "Vehicle Clip" 
[
	input Kill( void ) : "Removes this entity from the world"
]
@SolidClass base(func_movelinear) = func_lookdoor : "A door that moves either when looked by a targeted object or when " +
	"a target object comes near the door. Behavior can be either based on viewing direction or proximity " +
	"alone, or on a combination of both. If inverted the doors behavior will be the opposite." 
[
	spawnflags(flags) =
	[
		8192 : "LookDoor Threshold" : 0
		16384 : "LookDoor Invert"	 : 0
		32768 : "LookDoor From Open" : 0
	]
	ProximityDistance(string)		: "Proximity Distance"		: "0.0" : "If non-zero, proximity range over which door will move"
	ProximityOffset(string)			: "Proximity Offset"		: "0.0"	 : "Offset from the target object"
	FieldOfView(string)				: "FieldOfView"				: "0.0" : "If non-zero, field of view over which door will move"
	// Input
	input InvertOn(void)		: "InvertOn - when set behavior of door is inverted."
	input InvertOff(void)		: "InvertOff - when set behavior of door is normal."
]
//-------------------------------------------------------------------------
//
// Tanks
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Parentname, Origin, Angles, RenderFields, Global, Shadow) = BaseTank
[
	spawnflags(flags) =
	[
		1 : "Active" : 0
		16: "Only Direct" : 0
		32: "Controllable" : 0
		64: "Damage Kick" : 0
	 1024: "NPC Controllable" : 0
 2048: "NPC Set Controller" : 0
	 4096: "Allow friendlies to hit player" : 0
	 32768: "Non-solid." : 0
	 131072: "Cheat when shooting player" : 0
	]
	control_volume(target_destination) : "Control Volume" : "" : "Name of a trigger the specifies the volume in which a player must be to control this tank."
	// Mainly for use with 1009 team settings (game_team_master)
	master(string) : "(Team) Master"
	yawrate(string) : "Yaw rate" : "30"
	yawrange(string) : "Yaw range" : "180"
	yawtolerance(string) : "Yaw tolerance" : "15"
	pitchrate(string) : "Pitch rate" : "0"
	pitchrange(string) : "Pitch range" : "0"
	pitchtolerance(string) : "Pitch tolerance" : "5"
	barrel(string) : "Barrel Length" : "0"
	barrely(string) : "Barrel Horizontal" : "0"
	barrelz(string) : "Barrel Vertical" : "0"
	spritesmoke(sprite) : "Smoke Sprite" : ""
	spriteflash(sprite) : "Flash Sprite" : ""
	spritescale(string) : "Sprite scale" : "1"
	rotatestartsound(sound) : "Rotate Start Sound" : ""
	rotatesound(sound) : "Rotate Loop Sound" : ""
	rotatestopsound(sound) : "Rotate Stop Sound" : ""
	firerate(string) : "Rate of Fire" : "1"
	bullet_damage(string) : "Damage Per Bullet" : "0" : "If set to 0, it'll use the base weapon bullet's damage."
	bullet_damage_vs_player(string) : "Damage Per Bullet Vs Player" : "0" : "If set to 0, it'll use the Damage Per Bullet value."
	persistence(string) : "Firing persistence" : "1" : "(Seconds) How long to keep firing at last known position after lose sight of target"
	persistence2(string) : "Firing persistence2" : "0" : "(Seconds) After lost enemy and persistence time has passed, how long to occasionally fire at enemy's last known position"
	firespread(choices) : "Bullet accuracy" : 0 =
	[
		0: "Perfect Shot"
		1: "Small cone"
		2: "Medium cone"
		3: "Large cone"
		4: "Extra-large cone"
	]
	minRange(string) : "Minmum target range" : "0"
	maxRange(string) : "Maximum target range" : "0"
	_minlight(string) : "Minimum light level"
	gun_base_attach(string) : "Gun Base Attachment" : "" : "If Parent is specified, this is the attachment point on the parent to aim from."
	gun_barrel_attach(string) : "Gun Barrel Attachment" : "" : "If Parent is specified, this is the attachment point on the parent to fire from. If you specify this, you'll want to specify the Gun Base Attachment too."
	gun_yaw_pose_param(string) : "Gun Yaw Pose Param" : "" : "If Parent + the Gun Pitch Pose Param is specified, then the gun itself will be invisible and the func_tank will steer a gun on the parent using the pose parameters."
	gun_yaw_pose_center(float) : "Gun Yaw Pose Center" : "0" : "The center yaw pose parameter of the gun on the parent"
	gun_pitch_pose_param(string) : "Gun Pitch Pose Param" : "" : "If Parent + the Gun Yaw Pose Param is specified, then the gun itself will be invisible and the func_tank will steer a gun on the parent using the pose parameters."
	gun_pitch_pose_center(float) : "Gun Pitch Pose Center" : "0" : "The center pitch pose parameter of the gun on the parent"
	ammo_count(integer) : "Ammunition Count" : -1 : "Only applies to player use. -1 = unlimited ammo."
	LeadTarget(choices) : "Lead Target" : "No" =
	[
		0 : "No"
		1 : "Yes"
	]
	npc_man_point(target_destination) : "NPC Man Point" : "" : "Point where NPC must stand to man this func_tank."
	playergraceperiod(float) : "Post-NPC Attack Grace Period" : "0" : "If specified, NPC's manning this func tank won't fire at the player, after firing at a non-player, for this amount of time."
	ignoregraceupto(float) : "Ignore Grace Upto" : "768" : "The player grace period is ignored if the player's under this distance from the func_tank."
	playerlocktimebeforefire(float) : "Player Lock Time" : "0" : "The tank must have the player as a target for this amount of time before it's allowed to fire."
	effecthandling(choices) : "Effect Handling" : 0 =
	[
		0 : "Use Individual Settings."
		1 : "AR2"
	]
	// input
	input Activate(void)				: "Turn the tank on"
	input Deactivate(void)				: "Turn the tank off (go dormant)"
	input SetFireRate(string)			: "How fast to fire (0 = don't fire)"
	input SetDamage(string)				: "Set the Damage Per Bullet"
	input SetTargetPosition(string)		: "World position that I should aim at"
	input SetTargetDir(vector)			: "Direction to aim at."
	input SetTargetEntityName(string)	: "Name of entity I should follow/attack"
	input SetTargetEntity(string)		: "Entity I should follow/attack (output from other entity only)"
	input ClearTargetEntity(void)		: "Clear the entity I should be attacking."
	input FindNPCToManTank(string)		: "Find a nearby NPC to man this func_tank."
	input StartFindingNPCs(void)		: "Start searching for NPCs to man this func_tank."
	input StopFindingNPCs(void)		: "Stop searching for NPCs to man this func_tank."
	input ForceNPCOff(void)			: "Force the NPC manning this func_tank (if any) to leave."
	input SetMaxRange(float)		: "Set the max range of the func_tank."
	output OnFire(void)				: "Fires when the tank fires its bullets"
	output OnAquireTarget(void)		: "Fires when target is newly in range and can be shot"
	output OnLoseTarget(void)		: "Fires when when target goes out of range"
	output OnAmmoDepleted(void)		: "Fires when tank runs out of ammo"
	output OnGotController(void)	: "Fires when an NPC starts to control this tank. Players do NOT fire this input."
	output OnLostController(void)	: "Fires when the NPC controller of the tank stops controlling it. Players do NOT fire this input."
	output OnGotPlayerController(void)	: "Fires when a Player starts to control this tank. NPCs do NOT fire this input."
	output OnLostPlayerController(void)	: "Fires when the Player controller of the tank stops controlling it. NPCs do NOT fire this input."
	output OnReadyToFire(void) : "Fires once when the tank is done waiting to fire between rounds"
]
@SolidClass base(BaseTank) = func_tank : "Brush Gun Turret" 
[
	bullet(choices) : "Bullets" : 0 = 
	[
		0: "None"
		1: "Pistol"
		2: "SMG1"
		3: "AR2"
		4: "Laser"
	]
	spawnflags(flags) =
	[
		8192: "Ignore range when making viewcone checks" : 0
		256 : "Aiming Assistance (Player Only)" : 0
	]
]
@SolidClass base(BaseTank) = func_tankpulselaser : "Brush Pulse Laser" 
[
	PulseSpeed(float)		: "Pulse Speed"		 : 1000		: "How fast does pulse travel"
	PulseColor(color255)	: "Pulse Color"		 : "255 0 0" : "Color of the pulse"
	PulseWidth(float)		: "Pulse Width"		 : "20"		: "Width of the pulse"
	PulseLife(float)		: "Pulse Life"		 : 2			: "(Seconds) How long the pulse lasts"
	PulseLag(float)			: "Pulse Lag"		 : "0.05"	: "(Seconds) How far behind is pulse tail"
	PulseFireSound(sound) : "Pulse Fire Sound" : ""		: "Sound played when pulse fires"
]
@SolidClass base(BaseTank) = func_tanklaser : "Brush Laser Turret" 
[
	laserentity(target_destination) : "env_laser Entity"
]
@SolidClass base(BaseTank) = func_tankrocket : "Brush Rocket Turret"
[
	rocketspeed(float) : "Projectile speed" : 800 : "Speed the rocket will travel at."
]
@SolidClass base(BaseTank) = func_tankairboatgun : "Airboat Gun Turret"
[
	airboat_gun_model(target_destination) : "Name of a prop_dynamic which is the airboat gun model"
]
@SolidClass base(BaseTank) = func_tankapcrocket : "APC Rocket Turret"
[
	rocketspeed(float) : "Projectile speed" : 800 : "Speed the rocket will travel at."
	burstcount(integer) : "Burst shot count" : 10 : "Number of missiles to shoot in a burst"
	input DeathVolley(void) : "Fire a burst of rockets cause we're dying."
]
@SolidClass base(BaseTank) = func_tankmortar : "Brush Mortar Turret" 
[
	iMagnitude(Integer) : "Explosion Magnitude" : 100
	firedelay(string) : "Shell travel time" : 2 : "How long after the turret fires before the shell impacts"
	firestartsound(sound) : "Firing start sound" : "" : "Sound of the mortar firing"
	fireendsound(sound) : "Firing end sound" : "" 
	incomingsound(sound) : "Incoming Shell Sound" : "" : "Sound of the shell falling on the target"
	warningtime(float) : "Incoming warning time" : "1" : "How long before the shell impacts to play the warning sound"
	firevariance(float) : "Fire time variance" : "0" : "How much variability to add to fire rate (time +-)"
	input FireAtWill(void) : "Allow tank to fire next shot as soon as ready."
]
@SolidClass base(BaseTank) = func_tankphyscannister : "PhysCannister Turret"
[
	barrel_volume(target_destination) : "Barrel Volume" : "" : "Name of a trigger the specifies the volume in which cannisters must be placed."
]
@PointClass base(Targetname, Angles) iconsprite("sprites/obsolete.vtf") = player_overlay_render_location
[
]
@PointClass base(Targetname, Angles) iconsprite("sprites/obsolete.vtf") = quarry_overlay_render_location
[
]
//-------------------------------------------------------------------------
//
// Items
//
//-------------------------------------------------------------------------
@BaseClass color(0 0 200) base(Targetname, Angles, Shadow) = Item
[
	output OnPlayerTouch(void) : "Fires when the player touches this object"
]
@PointClass base(Targetname) iconsprite("editor/base_shop.vtf") = base_shop
[
	ShopType(choices) : "Shop" : 0 : "Which shop is this? Data for each shop is read from scripts/ship_shops.txt" =
	[
		0 : "Menswear"
		1 : "Womenswear"
		2 : "Underwear"
		3 : "Swimwear"
		4 : "Sports"
		5 : "Antiques"
		6 : "Jewellers"
		7 : "Hairdresser"
 8 : "Vending Machine"
 9 : "shop_graza_suit_m"
 10 : "shop_graza_golf_m"
 11 : "shop_graza_braces_m"
 12 : "shop_graza_accessories_m"
 13 : "shop_usher_suit_m"
 14 : "shop_usher_golf_m"
 15 : "shop_usher_braces_m"
 16 : "shop_usher_accessories_m"
 17 : "shop_pourvous_suit_m"
 18 : "shop_pourvous_golf_m"
 19 : "shop_pourvous_braces_m"
 20 : "shop_pourvous_accessories_m"
 21 : "shop_graza_coat_f"
 22 : "shop_graza_trousers_f"
 23 : "shop_graza_dress_f"
 24 : "shop_graza_accessories_f"
 25 : "shop_usher_coat_f"
 26 : "shop_usher_trousers_f"
 27 : "shop_usher_dress_f"
 28 : "shop_usher_accessories_f"
 29 : "shop_pourvous_coat_f"
 30 : "shop_pourvous_trousers_f"
 31 : "shop_pourvous_dress_f"
 32 : "shop_pourvous_accessories_f"
 33 : "Sports 2"
 34 : "shop_graza_safari_m"
 35 : "shop_graza_kilt_m"
 36 : "shop_graza_flapper_f"
 37 : "shop_graza_ballgown_f"
 38 : "shop_usher_safari_m"
 39 : "shop_usher_kilt_m"
 40 : "shop_usher_flapper_f"
 41 : "shop_usher_ballgown_f"
 42 : "shop_pourvous_safari_m"
 43 : "shop_pourvous_kilt_m"
 44 : "shop_pourvous_flapper_f"
 45 : "shop_pourvous_ballgown_f"
 46 : "shop_graza_farmer_f"
 47 : "shop_usher_farmer_f"
 48 : "shop_pourvous_farmer_f"
 49 : "shop_waikikibeachhut"
 50 : "shop_waikikibeachhut_safari_m"
 51 : "shop_waikikibeachhut_farmer_f"
	]
]
@PointClass base(Targetname, Angles, Studiomodel) sphere(NoDuplicateRadius) iconsprite("editor/ship_item_spawn_dest.vtf") studioprop() = ship_item_spawn_dest_physical
[
	RespawnDelay(float) : "Respawn Delay" : "-1" :	"Minimum time in seconds between items spawning at this point." +
													" -1 for no limit"
	NoDuplicateRadius(float) : "No Duplicate Spawn Radius" : "20.0" :	"If any item which was spawned at this " +
																		"destination is within this radius, the" +
																		" spawn point will refuse to spawn anything new"
]
@PointClass base(ship_item_spawn_dest_physical) sphere(NoDuplicateRadius) iconsprite("editor/ship_item_spawner.vtf") = ship_item_spawner : "Item Spawner"
[
	MaxSpawns(integer)			: "Max Number of Spawns" : -1 :	"Total number of spawns possible - once it's reached" +
																" this spawner is permanently disabled. Set to -1 for" +
																" unlimited spawns"
	MaxLiveChildren(integer)	: "Max Live Children" : -1 :	"Number of entities this spawner is allowed to have in a" +
																" map at any one time. Like Max Number of Spawns" +
																" except that as soon as an entity is removed from" +
																" the map it will be able to spawn again." +
																" -1 for no limit"
	SpawnFrequency(float)		: "Spawn Frequency" : "-1.0" :	"Time in seconds between spawns. -1.0 means it will" +
																" never spawn"
	StartEnabled(choices)		: "Start Enabled" : 1 :			"Whether this spawner is on or off by default" =
	[
		0 : "Off"
		1 : "On"
	]
	
	DestinationGroup(string) : "Destination Group" : "<none>" : "Name of a spawn destination where entities from "+
																"this spawner will appear. If more then one " +
																"destination shares this name, one will be picked" +
																" at random, or all at once, depending on the" +
																" Spawn to Which Destinations field" +
																". If no name is specified, the spawner " +
																"will attempt to spawn on itself."
	
	SpawnerPickItemType(choices) : "Pick Item Method" : 0 : "<Random> - picks an item at random from all those available " +
															"<Cyclic> - cycles through all available items in order," +
															" then starts again from beginning " +
															"<Hybrid> - shuffles items into random order, then cycles" +
															" through them. Once all items have been picked, " +
															"it reshuffles and starts again" =
	[
		0: "Random"
		1: "Cyclic"
		2: "Hybrid"
	]
	
	SpawnerPickDestType(choices) : "Spawn to Which Destinations" : 2 :	"<All> - will try to spawn an individually "+
																		"picked item at every available destination " +
																		"<All Same> - will try to spawn identical " +
																		"items at every available destination " +
																		"<Individual> - will pick an item and try to" +
																		" spawn it at a single available, randomly" +
																		" chosen destination" =
	[
		0 : "All"
		1 : "All Same"
		2 : "Individual"
	]
	
	SpawnItemGroup(choices) : "Spawn Items From Group" : "none" :	"The item group (specified in " +
																	"scripts/items/ship_spawnable_items.txt) from"+
																	" which this spawner will pick items to spawn" =
	[
		"none"					: "<none>"
		"spawnable" : "spawnable"
 "weapons"				: "Weapons"
		"bludgeon"				: "Bludgeon"
		"engineering"			: "Engineering"
		"shops"					: "Shops"
		"kitchen"				: "Kitchen"
		"security"				: "Security"
		"stab"					: "Stab"
		"slash"					: "Slash"
		"shoot"					: "Shoot"
		"needs_items"			: "Needs Items"
		"food"					: "Food"
		"drinks"				: "Drinks"
		"entertainment"			: "Entertainment"
		"hygiene"				: "Hygiene"
		"medical"				: "Medical"
 "doctorbag" : "Doctor Bag"
 "books" : "Books"
 "magazines" : "Magazines"
 "cabin_wardrobe" : "Cabin Wardrobe"
 "ration_pack" : "Ration Pack"
 "cabin_dresser" : "Cabin Dresser"
 "cabin_desk" : "Cabin Desk"
 "outfits"				: "All Outfits"
 "male_outfits"			: "Male Outfits"
 "female_outfits"		: "Female Outfits"
	"all_clothing"			: "All Clothing"
	"male_clothing"			: "Male Clothing"
	"female_clothing"		: "Female Clothing"
 "attachments"			: "Character Attachments"
 "hats"					: "Hats"
 "male_hats"				: "Male Hats"
 "female_hats"			: "Female Hats"
 "glasses"				: "Glasses"
 "male_glasses"			: "Male Glasses"
 "female_glasses"		: "Female Glasses"
 "suitcase" : "suitcase"
 "box" : "Box"
 "guard" : "Security Guard"
	"male_locker"			: "Male Locker"
	"female_locker"			: "Female Locker"
	"unisex_locker"			: "Unisex Locker"
 "xmas_stocking" : "Xmas Stocking"
 "xmas_present" : "Xmas Present"
	]
	
	SpawnItem1(choices) : "Spawn Item 1" : "none" : "An individual item which this spawner will try and spawn" =
	[
		"none"			: "<none>"
		"weapon_crowbar"	: "Crowbar"
		"weapon_truncheon"	: "Truncheon"
		"weapon_mannequin_arm"	: "Mannequin Arm"
		"weapon_wrench"		: "Wrench"
		"weapon_spanner"	: "Spanner"
		"weapon_pipe"		: "Pipe"
		"weapon_hammer"		: "Hammer"
		"weapon_rolling_pin"	: "Rolling Pin"
		"weapon_cleaver"	: "Cleaver"
		"weapon_hunting_knife"	: "Hunting Knife"
		"weapon_kitchen_knife"	: "Kitchen Knife"
		"weapon_syringe"	: "Syringe"
		"weapon_syringe_sleep"	: "Syringe Sleep"
		"weapon_letter_knife"	: "Letter Knife"
		"weapon_screwdriver"	: "Screwdriver"
		"weapon_revolver"	: "Revolver"
		"weapon_flaregun"	: "Flare Gun"
		"weapon_axe"		: "Axe"
		"item_food_candycane" 	: "Candy Cane"
		"item_food_chocolate" 	: "Chocolate Bar"
		"item_food_crisps" 	: "Crisps"
		"item_entertaiment_magazine" 	: "Magazine"
		"item_food_large_healthy_breakfast" : "Large Healthy Breakfast"
		"item_drink_can"	: "Drink Can"
		"item_drink_energy"	: "Drink Energy"
		"item_catheter"		: "Catheter"
		"item_colostomy_bag"	: "Colostomy Bag"
		"item_sleeping_pills"	: "Sleeping Pills"
		"item_prozac"		: "Prozac"
		"item_deoderant"	: "Deoderant"
		"weapon_katana"		: "Katana"
		"weapon_pool_cue"	: "Pool Cue"
		"weapon_frying_pan"	: "Frying Pan"
		"weapon_shovel"		: "Shovel"
		"weapon_bbq_fork"	: "BBQ Fork"
		"weapon_scalpel"	: "Scalpel"
		"weapon_winchester"	: "Winchester"
		"weapon_blunder"	: "Blunderbuss"
		"weapon_tommygun"	: "Tommy Gun"
		"weapon_ghurka"		: "Khukri"
		"weapon_cut_throat"	: "Cutthroat Razor"
		"weapon_satchel"	: "Wallet"
		"weapon_purse"		: "Purse"
		"weapon_needle"		: "Needle"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_racquet"	: "Tennis Racquet"
		"weapon_claymore"	: "Claymore"
		"weapon_umbrella"	: "Umbrella"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_needle"			: "Needle"
		"weapon_baseball_bat"	: "Baseball Bat"
		"weapon_croquet_mallet"	: "Croquet Mallet"
		"weapon_golf_club"		: "Golf Club"
		"weapon_paddle"			: "Paddle"
		"weapon_candlestick"	: "Candlestick"
		"weapon_walking_stick"	: "Walking Stick"
		"weapon_shank"		: "Shank"
 "item_kamasutra" : "item_kamasutra"
 "item_prideandprejudice": "item_prideandprejudice"
 "item_huckfinn" : "item_huckfinn"
 "item_alice" : "item_alice"
 "item_dracula" : "item_dracula"
 "item_paradiselost" : "item_paradiselost"
 "item_treasureisland" : "item_treasureisland"
 "item_theraven" : "item_theraven"
 "item_onoff" : "item_onoff"
 "item_huntersquarry" : "item_huntersquarry"
 "item_thebible" : "item_thebible"
			"outfit_male_swimming_1"	: "outfit_male_swimming_1"
			"outfit_male_swimming_2"	: "outfit_male_swimming_2"
			"outfit_male_swimming_3"	: "outfit_male_swimming_3"
			"outfit_male_braces_1"		: "outfit_male_braces_1"
			"outfit_male_braces_2"		: "outfit_male_braces_2"	
			"outfit_male_braces_3"		: "outfit_male_braces_3"	
			"outfit_male_suit_1"		: "outfit_male_suit_1"	
			"outfit_male_suit_2"		: "outfit_male_suit_2"	
			"outfit_male_suit_3"		: "outfit_male_suit_3"	
			"outfit_male_golf_1"		: "outfit_male_golf_1"	
			"outfit_male_golf_2"		: "outfit_male_golf_2"	
			"outfit_male_golf_3"		: "outfit_male_golf_3"	
			"outfit_male_safari_1"		: "outfit_male_safari_1"	
			"outfit_male_safari_2"		: "outfit_male_safari_2"	
			"outfit_male_safari_3"		: "outfit_male_safari_3"	
			"outfit_male_kilt_1"		: "outfit_male_kilt_1"	
			"outfit_male_kilt_2"		: "outfit_male_kilt_2"	
			"outfit_male_kilt_3"		: "outfit_male_kilt_3"	
			"outfit_male_prisoner"		: "outfit_male_prisoner"	
			"outfit_male_patient"		: "outfit_male_patient"	
			"outfit_male_guard"		: "outfit_male_guard"	
			"outfit_female_swimming_1"	: "outfit_female_swimming_1"	
			"outfit_female_swimming_2"	: "outfit_female_swimming_2"	
			"outfit_female_swimming_3"	: "outfit_female_swimming_3"	
			"outfit_female_coat_1"		: "outfit_female_coat_1"	
			"outfit_female_coat_2"		: "outfit_female_coat_2"	
			"outfit_female_coat_3"		: "outfit_female_coat_3"	
			"outfit_female_trousers_1"	: "outfit_female_trousers_1"	
			"outfit_female_trousers_2"	: "outfit_female_trousers_2"	
			"outfit_female_trousers_3"	: "outfit_female_trousers_3"	
			"outfit_female_dress_1"		: "outfit_female_dress_1"	
			"outfit_female_dress_2"		: "outfit_female_dress_2"	
			"outfit_female_dress_3"		: "outfit_female_dress_3"	
			"outfit_female_flapper_1"	: "outfit_female_flapper_1"	
			"outfit_female_flapper_2"	: "outfit_female_flapper_2"	
			"outfit_female_flapper_3"	: "outfit_female_flapper_3"	
			"outfit_female_ballgown_1"	: "outfit_female_ballgown_1"	
			"outfit_female_ballgown_2"	: "outfit_female_ballgown_2"	
			"outfit_female_ballgown_3"	: "outfit_female_ballgown_3"	
			"outfit_female_farmer_1"	: "outfit_female_farmer_1"	
			"outfit_female_farmer_2"	: "outfit_female_farmer_2"	
			"outfit_female_farmer_3"	: "outfit_female_farmer_3"	
			"outfit_female_prisoner"	: "outfit_female_prisoner"	
			"outfit_female_patient"		: "outfit_female_patient"
			"outfit_female_guard"		: "outfit_female_guard"	
			
			"glasses_dark_male"			: "glasses_dark_male"
			"glasses_dark_female"		: "glasses_dark_female"
			"glasses_half_female"		: "glasses_half_female"
			"glasses_round_female"		: "glasses_round_female"
			"glasses_half_male"			: "glasses_half_male"
			"glasses_round_male"		: "glasses_round_male"
			"glasses_monocle_male"		: "glasses_monocle_male"
			"glasses_eyepatch_male"		: "glasses_eyepatch_male"
			
			"hat_top_male"				: "hat_top_male"	
			"hat_bowler_male"			: "hat_bowler_male"	
			"hat_cap_male"				: "hat_cap_male"	
			"hat_deerstalker_male"		: "hat_deerstalker_male"	
			"hat_fedora_male"			: "hat_fedora_male"
			"hat_flapper_female"		: "hat_flapper_female"
			"hat_turban_female"			: "hat_turban_female"	
			"hat_sun_female"			: "hat_sun_female"
			"hat_male_guard"			: "hat_male_guard"
			"hat_ascot_female"			: "hat_ascot_female"
			"hat_beret_female"			: "hat_beret_female"
			"hat_bonnet_male"			: "hat_bonnet_male"
			"hat_gangster_male"			: "hat_gangster_male"
			"hat_safari_male"			: "hat_safari_male"
			"hat_farmer_female"			: "hat_farmer_female"
			
			"special_holy_grail"		: "special_holy_grail"
			"special_painting"			: "special_painting"
			"special_helmet"			: "special_helmet"
			"special_bible"				: "special_bible"
	]
	
	SpawnItem2(choices) : "Spawn Item 2" : "none" : "An individual item which this spawner will try and spawn" =
	[
		"none"			: "<none>"
		"weapon_crowbar"	: "Crowbar"
		"weapon_truncheon"	: "Truncheon"
		"weapon_mannequin_arm"	: "Mannequin Arm"
		"weapon_wrench"		: "Wrench"
		"weapon_spanner"	: "Spanner"
		"weapon_pipe"		: "Pipe"
		"weapon_hammer"		: "Hammer"
		"weapon_rolling_pin"	: "Rolling Pin"
		"weapon_cleaver"	: "Cleaver"
		"weapon_hunting_knife"	: "Hunting Knife"
		"weapon_syringe"	: "Syringe"
		"weapon_syringe_sleep"	: "Syringe Sleep"
		"weapon_letter_knife"	: "Letter Knife"
		"weapon_screwdriver"	: "Screwdriver"
		"weapon_revolver"	: "Revolver"
		"weapon_flaregun"	: "Flare Gun"
		"weapon_axe"		: "Axe"
		"item_food_candycane" 	: "Candy Cane"
		"item_food_chocolate" 	: "Chocolate Bar"
		"item_food_crisps" 	: "Crisps"
		"item_entertaiment_magazine" : "Magazine"
		"item_food_large_healthy_breakfast" : "Large Healthy Breakfast"
		"item_drink_can"	: "Drink Can"
		"item_drink_energy"	: "Drink Energy"
		"item_catheter"		: "Catheter"
		"item_colostomy_bag"	: "Colostomy Bag"
		"item_sleeping_pills"	: "Sleeping Pills"
		"item_prozac"		: "Prozac"
		"item_deoderant"	: "Deoderant"
		"weapon_katana"		: "Katana"
		"weapon_pool_cue"	: "Pool Cue"
		"weapon_frying_pan"	: "Frying Pan"
		"weapon_shovel"		: "Shovel"
		"weapon_bbq_fork"	: "BBQ Fork"
		"weapon_scalpel"	: "Scalpel"
		"weapon_winchester"	: "Winchester"
		"weapon_blunder"	: "Blunderbuss"
		"weapon_tommygun"	: "Tommy Gun"
		"weapon_ghurka"		: "Khukri"
		"weapon_cut_throat"	: "Cutthroat Razor"
		"weapon_satchel"	: "Wallet"
		"weapon_purse"		: "Purse"
		"weapon_needle"		: "Needle"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_racquet"	: "Tennis Racquet"
		"weapon_claymore"	: "Claymore"
		"weapon_umbrella"	: "Umbrella"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_needle"			: "Needle"
		"weapon_baseball_bat"	: "Baseball Bat"
		"weapon_croquet_mallet"	: "Croquet Mallet"
		"weapon_golf_club"		: "Golf Club"
		"weapon_paddle"			: "Paddle"
		"weapon_candlestick"	: "Candlestick"
		"weapon_walking_stick"	: "Walking Stick"
		"weapon_shank"		: "Shank"
 "item_kamasutra" : "item_kamasutra"
 "item_prideandprejudice": "item_prideandprejudice"
 "item_huckfinn" : "item_huckfinn"
 "item_alice" : "item_alice"
 "item_dracula" : "item_dracula"
 "item_paradiselost" : "item_paradiselost"
 "item_treasureisland" : "item_treasureisland"
 "item_theraven" : "item_theraven"
 "item_onoff" : "item_onoff"
 "item_huntersquarry" : "item_huntersquarry"
 "item_thebible" : "item_thebible"
			"outfit_male_swimming_1"	: "outfit_male_swimming_1"
			"outfit_male_swimming_2"	: "outfit_male_swimming_2"
			"outfit_male_swimming_3"	: "outfit_male_swimming_3"
			"outfit_male_braces_1"		: "outfit_male_braces_1"
			"outfit_male_braces_2"		: "outfit_male_braces_2"	
			"outfit_male_braces_3"		: "outfit_male_braces_3"	
			"outfit_male_suit_1"		: "outfit_male_suit_1"	
			"outfit_male_suit_2"		: "outfit_male_suit_2"	
			"outfit_male_suit_3"		: "outfit_male_suit_3"	
			"outfit_male_golf_1"		: "outfit_male_golf_1"	
			"outfit_male_golf_2"		: "outfit_male_golf_2"	
			"outfit_male_golf_3"		: "outfit_male_golf_3"	
			"outfit_male_safari_1"		: "outfit_male_safari_1"	
			"outfit_male_safari_2"		: "outfit_male_safari_2"	
			"outfit_male_safari_3"		: "outfit_male_safari_3"	
			"outfit_male_kilt_1"		: "outfit_male_kilt_1"	
			"outfit_male_kilt_2"		: "outfit_male_kilt_2"	
			"outfit_male_kilt_3"		: "outfit_male_kilt_3"	
			"outfit_male_prisoner"		: "outfit_male_prisoner"	
			"outfit_male_patient"		: "outfit_male_patient"	
			"outfit_male_guard"		: "outfit_male_guard"
			"outfit_female_swimming_1"	: "outfit_female_swimming_1"	
			"outfit_female_swimming_2"	: "outfit_female_swimming_2"	
			"outfit_female_swimming_3"	: "outfit_female_swimming_3"	
			"outfit_female_coat_1"		: "outfit_female_coat_1"	
			"outfit_female_coat_2"		: "outfit_female_coat_2"	
			"outfit_female_coat_3"		: "outfit_female_coat_3"	
			"outfit_female_trousers_1"	: "outfit_female_trousers_1"	
			"outfit_female_trousers_2"	: "outfit_female_trousers_2"	
			"outfit_female_trousers_3"	: "outfit_female_trousers_3"	
			"outfit_female_dress_1"		: "outfit_female_dress_1"	
			"outfit_female_dress_2"		: "outfit_female_dress_2"	
			"outfit_female_dress_3"		: "outfit_female_dress_3"	
			"outfit_female_flapper_1"	: "outfit_female_flapper_1"	
			"outfit_female_flapper_2"	: "outfit_female_flapper_2"	
			"outfit_female_flapper_3"	: "outfit_female_flapper_3"	
			"outfit_female_ballgown_1"	: "outfit_female_ballgown_1"	
			"outfit_female_ballgown_2"	: "outfit_female_ballgown_2"	
			"outfit_female_ballgown_3"	: "outfit_female_ballgown_3"	
			"outfit_female_farmer_1"	: "outfit_female_farmer_1"	
			"outfit_female_farmer_2"	: "outfit_female_farmer_2"	
			"outfit_female_farmer_3"	: "outfit_female_farmer_3"	
			"outfit_female_prisoner"	: "outfit_female_prisoner"	
			"outfit_female_patient"		: "outfit_female_patient"	
			"outfit_female_guard"		: "outfit_female_guard"
			
			"glasses_dark_male"			: "glasses_dark_male"
			"glasses_dark_female"		: "glasses_dark_female"
			"glasses_half_female"		: "glasses_half_female"
			"glasses_round_female"		: "glasses_round_female"
			"glasses_half_male"			: "glasses_half_male"
			"glasses_round_male"		: "glasses_round_male"
			"glasses_monocle_male"		: "glasses_monocle_male"
			"glasses_eyepatch_male"		: "glasses_eyepatch_male"
			
			"hat_top_male"				: "hat_top_male"	
			"hat_bowler_male"			: "hat_bowler_male"	
			"hat_cap_male"				: "hat_cap_male"	
			"hat_deerstalker_male"		: "hat_deerstalker_male"	
			"hat_fedora_male"			: "hat_fedora_male"
			"hat_flapper_female"		: "hat_flapper_female"
			"hat_turban_female"			: "hat_turban_female"	
			"hat_sun_female"			: "hat_sun_female"
			"hat_male_guard"		: "hat_male_guard"
			"hat_ascot_female"			: "hat_ascot_female"
			"hat_beret_female"			: "hat_beret_female"
			"hat_bonnet_male"			: "hat_bonnet_male"
			"hat_gangster_male"			: "hat_gangster_male"
			"hat_safari_male"			: "hat_safari_male"
			"hat_farmer_female"			: "hat_farmer_female"
			
			"special_holy_grail"		: "special_holy_grail"
			"special_painting"			: "special_painting"
			"special_helmet"			: "special_helmet"
			"special_bible"				: "special_bible"
	]
	
	SpawnItem3(choices) : "Spawn Item 3" : "none" : "An individual item which this spawner will try and spawn" =
	[
		"none"			: "<none>"
		"weapon_crowbar"	: "Crowbar"
		"weapon_truncheon"	: "Truncheon"
		"weapon_mannequin_arm"	: "Mannequin Arm"
		"weapon_wrench"		: "Wrench"
		"weapon_spanner"	: "Spanner"
		"weapon_pipe"		: "Pipe"
		"weapon_hammer"		: "Hammer"
		"weapon_rolling_pin"	: "Rolling Pin"
		"weapon_cleaver"	: "Cleaver"
		"weapon_hunting_knife"	: "Hunting Knife"
		"weapon_kitchen_knife"	: "Kitchen Knife"
		"weapon_syringe"	: "Syringe"
		"weapon_syringe_sleep"	: "Syringe Sleep"
		"weapon_letter_knife"	: "Letter Knife"
		"weapon_screwdriver"	: "Screwdriver"
		"weapon_revolver"	: "Revolver"
		"weapon_flaregun"	: "Flare Gun"
		"weapon_axe"		: "Axe"
		"item_food_candycane" 	: "Candy Cane"
		"item_food_chocolate" 	: "Chocolate Bar"
		"item_food_crisps" 	: "Crisps"
		"item_entertaiment_magazine" : "Magazine"
		"item_food_large_healthy_breakfast" : "Large Healthy Breakfast"
		"item_drink_can"	: "Drink Can"
		"item_drink_energy"	: "Drink Energy"
		"item_catheter"		: "Catheter"
		"item_colostomy_bag"	: "Colostomy Bag"
		"item_sleeping_pills"	: "Sleeping Pills"
		"item_prozac"		: "Prozac"
		"item_deoderant"	: "Deoderant"
		"weapon_katana"		: "Katana"
		"weapon_pool_cue"	: "Pool Cue"
		"weapon_frying_pan"	: "Frying Pan"
		"weapon_shovel"		: "Shovel"
		"weapon_bbq_fork"	: "BBQ Fork"
		"weapon_scalpel"	: "Scalpel"
		"weapon_winchester"	: "Winchester"
		"weapon_blunder"	: "Blunderbuss"
		"weapon_tommygun"	: "Tommy Gun"
		"weapon_ghurka"		: "Khukri"
		"weapon_cut_throat"	: "Cutthroat Razor"
		"weapon_satchel"	: "Wallet"
		"weapon_purse"		: "Purse"
		"weapon_needle"		: "Needle"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_racquet"	: "Tennis Racquet"
		"weapon_claymore"	: "Claymore"
		"weapon_umbrella"	: "Umbrella"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_needle"			: "Needle"
		"weapon_baseball_bat"	: "Baseball Bat"
		"weapon_croquet_mallet"	: "Croquet Mallet"
		"weapon_golf_club"		: "Golf Club"
		"weapon_paddle"			: "Paddle"
		"weapon_candlestick"	: "Candlestick"
		"weapon_walking_stick"	: "Walking Stick"
		"weapon_shank"		: "Shank"
 "item_kamasutra" : "item_kamasutra"
 "item_prideandprejudice": "item_prideandprejudice"
 "item_huckfinn" : "item_huckfinn"
 "item_alice" : "item_alice"
 "item_dracula" : "item_dracula"
 "item_paradiselost" : "item_paradiselost"
 "item_treasureisland" : "item_treasureisland"
 "item_theraven" : "item_theraven"
 "item_onoff" : "item_onoff"
 "item_huntersquarry" : "item_huntersquarry"
 "item_thebible" : "item_thebible"
			"outfit_male_swimming_1"	: "outfit_male_swimming_1"
			"outfit_male_swimming_2"	: "outfit_male_swimming_2"
			"outfit_male_swimming_3"	: "outfit_male_swimming_3"
			"outfit_male_braces_1"		: "outfit_male_braces_1"
			"outfit_male_braces_2"		: "outfit_male_braces_2"	
			"outfit_male_braces_3"		: "outfit_male_braces_3"	
			"outfit_male_suit_1"		: "outfit_male_suit_1"	
			"outfit_male_suit_2"		: "outfit_male_suit_2"	
			"outfit_male_suit_3"		: "outfit_male_suit_3"	
			"outfit_male_golf_1"		: "outfit_male_golf_1"	
			"outfit_male_golf_2"		: "outfit_male_golf_2"	
			"outfit_male_golf_3"		: "outfit_male_golf_3"	
			"outfit_male_safari_1"		: "outfit_male_safari_1"	
			"outfit_male_safari_2"		: "outfit_male_safari_2"	
			"outfit_male_safari_3"		: "outfit_male_safari_3"	
			"outfit_male_kilt_1"		: "outfit_male_kilt_1"	
			"outfit_male_kilt_2"		: "outfit_male_kilt_2"	
			"outfit_male_kilt_3"		: "outfit_male_kilt_3"	
			"outfit_male_prisoner"		: "outfit_male_prisoner"	
			"outfit_male_patient"		: "outfit_male_patient"	
			"outfit_male_guard"		: "outfit_male_guard"
			"outfit_female_swimming_1"	: "outfit_female_swimming_1"	
			"outfit_female_swimming_2"	: "outfit_female_swimming_2"	
			"outfit_female_swimming_3"	: "outfit_female_swimming_3"	
			"outfit_female_coat_1"		: "outfit_female_coat_1"	
			"outfit_female_coat_2"		: "outfit_female_coat_2"	
			"outfit_female_coat_3"		: "outfit_female_coat_3"	
			"outfit_female_trousers_1"	: "outfit_female_trousers_1"	
			"outfit_female_trousers_2"	: "outfit_female_trousers_2"	
			"outfit_female_trousers_3"	: "outfit_female_trousers_3"	
			"outfit_female_dress_1"		: "outfit_female_dress_1"	
			"outfit_female_dress_2"		: "outfit_female_dress_2"	
			"outfit_female_dress_3"		: "outfit_female_dress_3"	
			"outfit_female_flapper_1"	: "outfit_female_flapper_1"	
			"outfit_female_flapper_2"	: "outfit_female_flapper_2"	
			"outfit_female_flapper_3"	: "outfit_female_flapper_3"	
			"outfit_female_ballgown_1"	: "outfit_female_ballgown_1"	
			"outfit_female_ballgown_2"	: "outfit_female_ballgown_2"	
			"outfit_female_ballgown_3"	: "outfit_female_ballgown_3"	
			"outfit_female_farmer_1"	: "outfit_female_farmer_1"	
			"outfit_female_farmer_2"	: "outfit_female_farmer_2"	
			"outfit_female_farmer_3"	: "outfit_female_farmer_3"	
			"outfit_female_prisoner"	: "outfit_female_prisoner"	
			"outfit_female_patient"		: "outfit_female_patient"	
			"outfit_female_guard"		: "outfit_female_guard"
			
			"glasses_dark_male"			: "glasses_dark_male"
			"glasses_dark_female"		: "glasses_dark_female"
			"glasses_half_female"		: "glasses_half_female"
			"glasses_round_female"		: "glasses_round_female"
			"glasses_half_male"			: "glasses_half_male"
			"glasses_round_male"		: "glasses_round_male"
			"glasses_monocle_male"		: "glasses_monocle_male"
			"glasses_eyepatch_male"		: "glasses_eyepatch_male"
			
			"hat_top_male"				: "hat_top_male"	
			"hat_bowler_male"			: "hat_bowler_male"	
			"hat_cap_male"				: "hat_cap_male"	
			"hat_deerstalker_male"		: "hat_deerstalker_male"	
			"hat_fedora_male"			: "hat_fedora_male"
			"hat_flapper_female"		: "hat_flapper_female"
			"hat_turban_female"			: "hat_turban_female"	
			"hat_sun_female"			: "hat_sun_female"
			"hat_male_guard"		: "hat_male_guard"
			"hat_ascot_female"			: "hat_ascot_female"
			"hat_beret_female"			: "hat_beret_female"
			"hat_bonnet_male"			: "hat_bonnet_male"
			"hat_gangster_male"			: "hat_gangster_male"
			"hat_safari_male"			: "hat_safari_male"
			"hat_farmer_female"			: "hat_farmer_female"
			"special_holy_grail"		: "special_holy_grail"
			"special_painting"			: "special_painting"
			"special_helmet"			: "special_helmet"
			"special_bible"				: "special_bible"
	]
	
	SpawnItem4(choices) : "Spawn Item 4" : "none" : "An individual item which this spawner will try and spawn" =
	[
		"none"			: "<none>"
		"weapon_crowbar"	: "Crowbar"
		"weapon_truncheon"	: "Truncheon"
		"weapon_mannequin_arm"	: "Mannequin Arm"
		"weapon_wrench"		: "Wrench"
		"weapon_spanner"	: "Spanner"
		"weapon_pipe"		: "Pipe"
		"weapon_hammer"		: "Hammer"
		"weapon_rolling_pin"	: "Rolling Pin"
		"weapon_cleaver"	: "Cleaver"
		"weapon_hunting_knife"	: "Hunting Knife"
		"weapon_kitchen_knife"	: "Kitchen Knife"
		"weapon_syringe"	: "Syringe"
		"weapon_syringe_sleep"	: "Syringe Sleep"
		"weapon_letter_knife"	: "Letter Knife"
		"weapon_screwdriver"	: "Screwdriver"
		"weapon_revolver"	: "Revolver"
		"weapon_flaregun"	: "Flare Gun"
		"weapon_axe"		: "Axe"
		"item_food_candycane" 	: "Candy Cane"
		"item_food_chocolate" 	: "Chocolate Bar"
		"item_food_crisps" 	: "Crisps"
		"item_entertaiment_magazine" : "Magazine"
		"item_food_large_healthy_breakfast" : "Large Healthy Breakfast"
		"item_drink_can"	: "Drink Can"
		"item_drink_energy"	: "Drink Energy"
		"item_catheter"		: "Catheter"
		"item_colostomy_bag"	: "Colostomy Bag"
		"item_sleeping_pills"	: "Sleeping Pills"
		"item_prozac"		: "Prozac"
		"item_deoderant"	: "Deoderant"
		"weapon_katana"		: "Katana"
		"weapon_pool_cue"	: "Pool Cue"
		"weapon_frying_pan"	: "Frying Pan"
		"weapon_shovel"		: "Shovel"
		"weapon_bbq_fork"	: "BBQ Fork"
		"weapon_scalpel"	: "Scalpel"
		"weapon_winchester"	: "Winchester"
		"weapon_blunder"	: "Blunderbuss"
		"weapon_tommygun"	: "Tommy Gun"
		"weapon_ghurka"		: "Khukri"
		"weapon_cut_throat"	: "Cutthroat Razor"
		"weapon_satchel"	: "Wallet"
		"weapon_purse"		: "Purse"
		"weapon_needle"		: "Needle"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_racquet"	: "Tennis Racquet"
		"weapon_claymore"	: "Claymore"
		"weapon_umbrella"	: "Umbrella"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_needle"			: "Needle"
		"weapon_baseball_bat"	: "Baseball Bat"
		"weapon_croquet_mallet"	: "Croquet Mallet"
		"weapon_golf_club"		: "Golf Club"
		"weapon_paddle"			: "Paddle"
		"weapon_candlestick"	: "Candlestick"
		"weapon_walking_stick"	: "Walking Stick"
		"weapon_shank"		: "Shank"
 "item_kamasutra" : "item_kamasutra"
 "item_prideandprejudice": "item_prideandprejudice"
 "item_huckfinn" : "item_huckfinn"
 "item_alice" : "item_alice"
 "item_dracula" : "item_dracula"
 "item_paradiselost" : "item_paradiselost"
 "item_treasureisland" : "item_treasureisland"
 "item_theraven" : "item_theraven"
 "item_onoff" : "item_onoff"
 "item_huntersquarry" : "item_huntersquarry"
 "item_thebible" : "item_thebible"
			"outfit_male_swimming_1"	: "outfit_male_swimming_1"
			"outfit_male_swimming_2"	: "outfit_male_swimming_2"
			"outfit_male_swimming_3"	: "outfit_male_swimming_3"
			"outfit_male_braces_1"		: "outfit_male_braces_1"
			"outfit_male_braces_2"		: "outfit_male_braces_2"	
			"outfit_male_braces_3"		: "outfit_male_braces_3"	
			"outfit_male_suit_1"		: "outfit_male_suit_1"	
			"outfit_male_suit_2"		: "outfit_male_suit_2"	
			"outfit_male_suit_3"		: "outfit_male_suit_3"	
			"outfit_male_golf_1"		: "outfit_male_golf_1"	
			"outfit_male_golf_2"		: "outfit_male_golf_2"	
			"outfit_male_golf_3"		: "outfit_male_golf_3"	
			"outfit_male_safari_1"		: "outfit_male_safari_1"	
			"outfit_male_safari_2"		: "outfit_male_safari_2"	
			"outfit_male_safari_3"		: "outfit_male_safari_3"	
			"outfit_male_kilt_1"		: "outfit_male_kilt_1"	
			"outfit_male_kilt_2"		: "outfit_male_kilt_2"	
			"outfit_male_kilt_3"		: "outfit_male_kilt_3"	
			"outfit_male_prisoner"		: "outfit_male_prisoner"	
			"outfit_male_patient"		: "outfit_male_patient"	
			"outfit_male_guard"		: "outfit_male_guard"
			"outfit_female_swimming_1"	: "outfit_female_swimming_1"	
			"outfit_female_swimming_2"	: "outfit_female_swimming_2"	
			"outfit_female_swimming_3"	: "outfit_female_swimming_3"	
			"outfit_female_coat_1"		: "outfit_female_coat_1"	
			"outfit_female_coat_2"		: "outfit_female_coat_2"	
			"outfit_female_coat_3"		: "outfit_female_coat_3"	
			"outfit_female_trousers_1"	: "outfit_female_trousers_1"	
			"outfit_female_trousers_2"	: "outfit_female_trousers_2"	
			"outfit_female_trousers_3"	: "outfit_female_trousers_3"	
			"outfit_female_dress_1"		: "outfit_female_dress_1"	
			"outfit_female_dress_2"		: "outfit_female_dress_2"	
			"outfit_female_dress_3"		: "outfit_female_dress_3"	
			"outfit_female_flapper_1"	: "outfit_female_flapper_1"	
			"outfit_female_flapper_2"	: "outfit_female_flapper_2"	
			"outfit_female_flapper_3"	: "outfit_female_flapper_3"	
			"outfit_female_ballgown_1"	: "outfit_female_ballgown_1"	
			"outfit_female_ballgown_2"	: "outfit_female_ballgown_2"	
			"outfit_female_ballgown_3"	: "outfit_female_ballgown_3"	
			"outfit_female_farmer_1"	: "outfit_female_farmer_1"	
			"outfit_female_farmer_2"	: "outfit_female_farmer_2"	
			"outfit_female_farmer_3"	: "outfit_female_farmer_3"	
			"outfit_female_prisoner"	: "outfit_female_prisoner"	
			"outfit_female_patient"		: "outfit_female_patient"	
			"outfit_female_guard"		: "outfit_female_guard"
			
			"glasses_dark_male"			: "glasses_dark_male"
			"glasses_dark_female"		: "glasses_dark_female"
			"glasses_half_female"		: "glasses_half_female"
			"glasses_round_female"		: "glasses_round_female"
			"glasses_half_male"			: "glasses_half_male"
			"glasses_round_male"		: "glasses_round_male"
			"glasses_monocle_male"		: "glasses_monocle_male"
			"glasses_eyepatch_male"		: "glasses_eyepatch_male"
			
			"hat_top_male"				: "hat_top_male"	
			"hat_bowler_male"			: "hat_bowler_male"	
			"hat_cap_male"				: "hat_cap_male"	
			"hat_deerstalker_male"		: "hat_deerstalker_male"	
			"hat_fedora_male"			: "hat_fedora_male"
			"hat_flapper_female"		: "hat_flapper_female"
			"hat_turban_female"			: "hat_turban_female"	
			"hat_sun_female"			: "hat_sun_female"
			"hat_male_guard"		: "hat_male_guard"
			"hat_ascot_female"			: "hat_ascot_female"
			"hat_beret_female"			: "hat_beret_female"
			"hat_bonnet_male"			: "hat_bonnet_male"
			"hat_gangster_male"			: "hat_gangster_male"
			"hat_safari_male"			: "hat_safari_male"
			"hat_farmer_female"			: "hat_farmer_female"
			
			"special_holy_grail"		: "special_holy_grail"
			"special_painting"			: "special_painting"
			"special_helmet"			: "special_helmet"
			"special_bible"				: "special_bible"
	]
	
	SpawnItem5(choices) : "Spawn Item 5" : "none" : "An individual item which this spawner will try and spawn" =
	[
		"none"			: "<none>"
		"weapon_crowbar"	: "Crowbar"
		"weapon_truncheon"	: "Truncheon"
		"weapon_mannequin_arm"	: "Mannequin Arm"
		"weapon_wrench"		: "Wrench"
		"weapon_spanner"	: "Spanner"
		"weapon_pipe"		: "Pipe"
		"weapon_hammer"		: "Hammer"
		"weapon_rolling_pin"	: "Rolling Pin"
		"weapon_cleaver"	: "Cleaver"
		"weapon_hunting_knife"	: "Hunting Knife"
		"weapon_kitchen_knife"	: "Kitchen Knife"
		"weapon_syringe"	: "Syringe"
		"weapon_syringe_sleep"	: "Syringe Sleep"
		"weapon_letter_knife"	: "Letter Knife"
		"weapon_screwdriver"	: "Screwdriver"
		"weapon_revolver"	: "Revolver"
		"weapon_flaregun"	: "Flare Gun"
		"weapon_axe"		: "Axe"
		"item_food_candycane" 	: "Candy Cane"
		"item_food_chocolate" 	: "Chocolate Bar"
		"item_food_crisps" 	: "Crisps"
		"item_entertaiment_magazine" : "Magazine"
		"item_food_large_healthy_breakfast" : "Jumbo Bag of Crisps"
		"item_drink_can"	: "Drink Can"
		"item_drink_energy"	: "Drink Energy"
		"item_catheter"		: "Catheter"
		"item_colostomy_bag"	: "Colostomy Bag"
		"item_sleeping_pills"	: "Sleeping Pills"
		"item_prozac"		: "Happy Pills"
		"item_deoderant"	: "Deoderant"
		"weapon_katana"		: "Katana"
		"weapon_pool_cue"	: "Pool Cue"
		"weapon_frying_pan"	: "Frying Pan"
		"weapon_shovel"		: "Shovel"
		"weapon_bbq_fork"	: "BBQ Fork"
		"weapon_scalpel"	: "Scalpel"
		"weapon_winchester"	: "Winchester"
		"weapon_blunder"	: "Blunderbuss"
		"weapon_tommygun"	: "Tommy Gun"
		"weapon_ghurka"		: "Khukri"
		"weapon_cut_throat"	: "Cutthroat Razor"
		"weapon_satchel"	: "Wallet"
		"weapon_purse"		: "Purse"
		"weapon_needle"		: "Needle"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_racquet"	: "Tennis Racquet"
		"weapon_claymore"	: "Claymore"
		"weapon_umbrella"	: "Umbrella"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_needle"			: "Needle"
		"weapon_baseball_bat"	: "Baseball Bat"
		"weapon_croquet_mallet"	: "Croquet Mallet"
		"weapon_golf_club"		: "Golf Club"
		"weapon_paddle"			: "Paddle"
		"weapon_candlestick"	: "Candlestick"
		"weapon_walking_stick"	: "Walking Stick"		
		"weapon_shank"		: "Shank"
 "item_kamasutra" : "item_kamasutra"
 "item_prideandprejudice": "item_prideandprejudice"
 "item_huckfinn" : "item_huckfinn"
 "item_alice" : "item_alice"
 "item_dracula" : "item_dracula"
 "item_paradiselost" : "item_paradiselost"
 "item_treasureisland" : "item_treasureisland"
 "item_theraven" : "item_theraven"
 "item_onoff" : "item_onoff"
 "item_huntersquarry" : "item_huntersquarry"
 "item_thebible" : "item_thebible"
			"outfit_male_swimming_1"	: "outfit_male_swimming_1"
			"outfit_male_swimming_2"	: "outfit_male_swimming_2"
			"outfit_male_swimming_3"	: "outfit_male_swimming_3"
			"outfit_male_braces_1"		: "outfit_male_braces_1"
			"outfit_male_braces_2"		: "outfit_male_braces_2"	
			"outfit_male_braces_3"		: "outfit_male_braces_3"	
			"outfit_male_suit_1"		: "outfit_male_suit_1"	
			"outfit_male_suit_2"		: "outfit_male_suit_2"	
			"outfit_male_suit_3"		: "outfit_male_suit_3"	
			"outfit_male_golf_1"		: "outfit_male_golf_1"	
			"outfit_male_golf_2"		: "outfit_male_golf_2"	
			"outfit_male_golf_3"		: "outfit_male_golf_3"	
			"outfit_male_safari_1"		: "outfit_male_safari_1"	
			"outfit_male_safari_2"		: "outfit_male_safari_2"	
			"outfit_male_safari_3"		: "outfit_male_safari_3"	
			"outfit_male_kilt_1"		: "outfit_male_kilt_1"	
			"outfit_male_kilt_2"		: "outfit_male_kilt_2"	
			"outfit_male_kilt_3"		: "outfit_male_kilt_3"	
			"outfit_male_prisoner"		: "outfit_male_prisoner"	
			"outfit_male_patient"		: "outfit_male_patient"	
			"outfit_male_guard"		: "outfit_male_guard"
			"outfit_female_swimming_1"	: "outfit_female_swimming_1"	
			"outfit_female_swimming_2"	: "outfit_female_swimming_2"	
			"outfit_female_swimming_3"	: "outfit_female_swimming_3"	
			"outfit_female_coat_1"		: "outfit_female_coat_1"	
			"outfit_female_coat_2"		: "outfit_female_coat_2"	
			"outfit_female_coat_3"		: "outfit_female_coat_3"	
			"outfit_female_trousers_1"	: "outfit_female_trousers_1"	
			"outfit_female_trousers_2"	: "outfit_female_trousers_2"	
			"outfit_female_trousers_3"	: "outfit_female_trousers_3"	
			"outfit_female_dress_1"		: "outfit_female_dress_1"	
			"outfit_female_dress_2"		: "outfit_female_dress_2"	
			"outfit_female_dress_3"		: "outfit_female_dress_3"	
			"outfit_female_flapper_1"	: "outfit_female_flapper_1"	
			"outfit_female_flapper_2"	: "outfit_female_flapper_2"	
			"outfit_female_flapper_3"	: "outfit_female_flapper_3"	
			"outfit_female_ballgown_1"	: "outfit_female_ballgown_1"	
			"outfit_female_ballgown_2"	: "outfit_female_ballgown_2"	
			"outfit_female_ballgown_3"	: "outfit_female_ballgown_3"	
			"outfit_female_farmer_1"	: "outfit_female_farmer_1"	
			"outfit_female_farmer_2"	: "outfit_female_farmer_2"	
			"outfit_female_farmer_3"	: "outfit_female_farmer_3"	
			"outfit_female_prisoner"	: "outfit_female_prisoner"	
			"outfit_female_patient"		: "outfit_female_patient"	
			"outfit_female_guard"		: "outfit_female_guard"
			
			"glasses_dark_male"			: "glasses_dark_male"
			"glasses_dark_female"		: "glasses_dark_female"
			"glasses_half_female"		: "glasses_half_female"
			"glasses_round_female"		: "glasses_round_female"
			"glasses_half_male"			: "glasses_half_male"
			"glasses_round_male"		: "glasses_round_male"
			"glasses_monocle_male"		: "glasses_monocle_male"
			"glasses_eyepatch_male"		: "glasses_eyepatch_male"
			
			"hat_top_male"				: "hat_top_male"	
			"hat_bowler_male"			: "hat_bowler_male"	
			"hat_cap_male"				: "hat_cap_male"	
			"hat_deerstalker_male"		: "hat_deerstalker_male"	
			"hat_fedora_male"			: "hat_fedora_male"
			"hat_flapper_female"		: "hat_flapper_female"
			"hat_turban_female"			: "hat_turban_female"	
			"hat_sun_female"			: "hat_sun_female"
			"hat_male_guard"		: "hat_male_guard"
			"hat_ascot_female"			: "hat_ascot_female"
			"hat_beret_female"			: "hat_beret_female"
			"hat_bonnet_male"			: "hat_bonnet_male"
			"hat_gangster_male"			: "hat_gangster_male"
			"hat_safari_male"			: "hat_safari_male"
			"hat_farmer_female"			: "hat_farmer_female"
			
			"special_holy_grail"		: "special_holy_grail"
			"special_painting"			: "special_painting"
			"special_helmet"			: "special_helmet"
			"special_bible"				: "special_bible"
	]
	
	input Spawn(void)	: "Force this spawner to try and spawn an item"
	input Enable(void)	: "Turn this spawner on"
	input Disable(void)	: "Turn this spawner off"
	input Toggle(void)	: "Toggle this spawner on->off/off->on"
]
@PointClass base(Item) studio("models/items/healthkit.mdl") = item_dynamic_resupply : "Dynamic item"
[
	spawnflags(Flags) =
	[
		1 : "Use Master's values" : 1
		2 : "Is Master" : 0
	]
	DesiredHealth(float) : "Desired Health Ratio" : "1" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max health."
	DesiredArmor(float) : "Desired Armor Ratio" : "0.3" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max armor."
	DesiredAmmoPistol(float) : "Desired Pistol Ammo Ratio" : "0.5" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoSMG1(float) : "Desired SMG1 Ammo Ratio" : "0.5" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoSMG1_Grenade(float) : "Desired SMG1 Grenade Ammo Ratio" : "0.1" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoAR2(float) : "Desired AR2 Ammo Ratio" : "0.4" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoBuckshot(float) : "Desired Shotgun Ammo Ratio" : "0.5" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoRPG_Round(float) : "Desired RPG Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoGrenade(float) : "Desired Grenade Ammo Ratio" : "0.1" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmo357(float) : "Desired 357 Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	DesiredAmmoCrossbow(float) : "Desired Crossbow Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
	input CalculateType(void) : "Force the dynamic resupply to calculate which item it should spawn."
	input BecomeMaster(void) : "Make this resupply the master resupply. All other resupplies set to Use Master's Values will now use this resupply's values."
]
@PointClass base(Item) studio("models/items/boxsrounds.mdl")= item_ammo_pistol : "Box of Pistol ammo" []
@PointClass base(Item) studio("models/items/largeBoxSRounds.mdl")= item_ammo_pistol_large : "Large Box of Pistol ammo" []
@PointClass base(Item) studio("models/items/BoxMRounds.mdl")= item_ammo_smg1 : "Box of SMG1 ammo" []
@PointClass base(Item) studio("models/items/LargeBoxMRounds.mdl")= item_ammo_smg1_large : "Large Box of SMG1 ammo" []
@PointClass base(Item) studio("models/items/BoxBRounds.mdl")= item_ammo_ar2 : "Box of AR2 ammo" []
@PointClass base(Item) studio("models/items/LargeBoxBRounds.mdl")= item_ammo_ar2_large : "Large Box of AR2 ammo" []
@PointClass base(Item) studio("models/items/357ammo.mdl")= item_ammo_357 : "Box of 357 ammo" []
@PointClass base(Item) studio("models/items/357ammobox.mdl")= item_ammo_357_large : "Large Box of 357 ammo" []
@PointClass base(Item) studio("models/items/CrossbowRounds.mdl")= item_ammo_crossbow : "Box of Crossbow ammo" []
@PointClass base(Item) studio("models/items/BoxBuckshot.mdl")= item_box_buckshot : "Box Buckshot" []
@PointClass base(Item) studio("models/weapons/w_missile_closed.mdl")= item_rpg_round : "RPG Round" []
@PointClass base(Item) studio("models/items/AR2_Grenade.mdl")= item_ammo_smg1_grenade : "SMG1 Grenade" []
@PointClass base(Item) studio("models/items/battery.mdl") = item_battery : "HEV battery" []
@PointClass base(Item) studio("models/items/healthkit.mdl") = item_healthkit : "Small Health Kit" []
@PointClass base(Item) studio("models/healthvial.mdl") = item_healthvial : "Personal Health Kit" []
@PointClass base(Item) studio("models/items/combine_rifle_ammo01.mdl") = item_ammo_ar2_altfire : "AR2 Alt-fire Round" []
@PointClass base(Item) studio("models/items/hevsuit.mdl") = item_suit : "HEV Suit" 
[
	spawnflags(Flags) =
	[
		1 : "Short Logon" : 0
	]
]
@PointClass base(Targetname, Angles) studio("models/items/ammocrate_rockets.mdl") = item_ammo_crate : "Ammo Crate"
[
	AmmoType(choices) : "Ammo Type" : 0 =
	[
		0 : "Pistol"
		1 : "SMG1"
		2 : "AR2"
		3 : "RPG Rounds"
		4 : "Buckshot"
		5 : "Grenades"
		6 : "357"
		7 : "XBowBolt"
		8 : "AR2 Alt-Fire Round"
	]
	// Inputs
	input Kill(void) : "Remove the ammo crate"
	output OnUsed(void) : "Fires when +used by the player."
]
@PointClass base(BasePropPhysics, Targetname, Angles, DamageFilter) studio("models/items/item_item_crate.mdl") = item_item_crate : "Item Crate"
[
	CrateType(choices) : "Crate Contains" : 0 =
	[
		0 : "Contains specified item"
	]
	ItemClass(pointentityclass) : "Item Type" : "item_dynamic_resupply" : "Class name of the entity to spawn when the crate is broken"
	ItemCount(integer) : "Item Count" : 1 : "Number of items to emit upon breakage"
	// Inputs
	input Kill(void) : "Remove the item crate"
	input Break(void) : "Breaks the breakable."
	input SetHealth(integer) : "Sets a new value for health. If the breakable's health reaches zero it will break."
	input AddHealth(integer) : "Adds health to the breakable. If the breakable's health reaches zero it will break."
	input RemoveHealth(integer) : "Removes health from the breakable. If the breakable's health reaches zero it will break."
	
	output OnBreak(void) : "Fires when broken."
	output OnHealthChanged(float) : "Fires when the health of this breakable changes, passing the new value of health as a percentage of max health, from [0..1]."
]
@PointClass base(Targetname, Angles) studio( "models/props_combine/health_charger001.mdl" ) = item_healthcharger : "Health Charger"
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"
	output OutRemainingHealth(float) : "Remaining Health."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
@PointClass base(Targetname, Angles) studio( "models/props_combine/suit_charger001.mdl" ) = item_suitcharger : "Battery recharger"
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"
	spawnflags(flags) =
	[
		8192 : "Citadel recharger" : 0
		16384 : "Kleiner's recharger" : 0
	]
	input Recharge(void) : "Recharge to full"
	output OutRemainingCharge(float) : "Remaining Charge."
	output OnHalfEmpty(void) : "Half-Empty"
	output OnEmpty(void) : "Empty"
	output OnFull(void) : "Recharged to full."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
//-------------------------------------------------------------------------
//
// Weapons
//
//-------------------------------------------------------------------------
@BaseClass color(0 0 200) base(Targetname, Angles) = Weapon
[
	spawnflags(Flags) =
	[
		1 : "Start constrained" : 0
	]
	output OnPlayerUse(void) : "Fires when the player +uses this weapon"
	output OnPlayerPickup(void) : "Fires when the player picks up this weapon"
	output OnNPCPickup(void) : "Fires when an NPC picks up this weapon"
]
// The Ship Weapons
// Bludgeon Weapons
@PointClass base(Weapon) studio("models/Env/Weapons/crowbar/crowbar.mdl") = weapon_crowbar : "Crowbar" []
@PointClass base(Weapon) studio("models/Env/Weapons/hammer/hammer.mdl") = weapon_hammer : "Hammer" []
@PointClass base(Weapon) studio("models/Env/Weapons/mann_arm/mann_arm.mdl") = weapon_mannequin_arm : "Mannequin Arm" []
@PointClass base(Weapon) studio("models/Env/Weapons/pipe/pipe.mdl") = weapon_pipe : "Pipe" []
@PointClass base(Weapon) studio("models/Env/Weapons/rolling_pin/rolling_pin.mdl") = weapon_rolling_pin : "Rolling Pin" []
@PointClass base(Weapon) studio("models/Env/Weapons/spanner/spanner.mdl") = weapon_spanner : "Spanner" []
@PointClass base(Weapon) studio("models/Env/Weapons/truncheon/prison_truncheon.mdl") = weapon_truncheon : "Truncheon" []
@PointClass base(Weapon) studio("models/Env/Weapons/wrench/wrench.mdl") = weapon_wrench : "Wrench" []
@PointClass base(Weapon) studio("models/Env/Weapons/cleaver/cleaver.mdl") = weapon_cleaver : "Cleaver" []
@PointClass base(Weapon) studio("models/Env/Weapons/hunt_knife/hunt_knife.mdl") = weapon_hunting_knife : "Hunting Knife" []
@PointClass base(Weapon) studio("models/Env/Weapons/kit_knife/kit_knife.mdl") = weapon_kitchen_knife : "Kitchen Knife" []
@PointClass base(Weapon) studio("models/Env/Weapons/lett_knife/lett_knife.mdl") = weapon_letter_knife : "Letter knife" []
@PointClass base(Weapon) studio("models/Env/Weapons/screwdriver/screwdriver.mdl") = weapon_screwdriver : "Screwdriver" []
@PointClass base(Weapon) studio("models/Env/Weapons/revolver/revolver.mdl") = weapon_revolver : "Revolver" []
@PointClass base(Weapon) studio("models/Env/Weapons/flaregun/flaregun.mdl") = weapon_flaregun : "Flare Gun" []
@PointClass base(Weapon) studio("models/Env/Weapons/weapon_axe/weapon_axe.mdl") = weapon_axe : "Axe" []
@PointClass base(Weapon) studio("models/Env/Weapons/katana/katana.mdl") = weapon_katana : "Katana" []
@PointClass base(Weapon) studio("models/Env/Weapons/pcue/pcue.mdl") = weapon_pool_cue : "Pool Cue" []
@PointClass base(Weapon) studio("models/Env/Weapons/frying_pan/frying_pan.mdl") = weapon_frying_pan : "Frying Pan" []
@PointClass base(Weapon) studio("models/Env/Weapons/shovel/shovel.mdl") = weapon_shovel : "Shovel" []
@PointClass base(Weapon) studio("models/Env/Weapons/bbq_fork/bbq_fork.mdl") = weapon_bbq_fork : "BBQ Fork" []
@PointClass base(Weapon) studio("models/Env/Weapons/scalpel/scalpel.mdl") = weapon_scalpel : "Scalpel" []
@PointClass base(Weapon) studio("models/Env/Weapons/winchester/winchester.mdl") = weapon_winchester : "Winchester" []
@PointClass base(Weapon) studio("models/Env/Weapons/blunder/blunder.mdl") = weapon_blunder : "Blunderbuss" []
@PointClass base(Weapon) studio("models/Env/Weapons/tommygun/tommygun.mdl") = weapon_tommygun : "Tommy Gun" []
@PointClass base(Weapon) studio("models/Env/Weapons/ghurka/ghurka.mdl") = weapon_ghurka : "Khukri" []
@PointClass base(Weapon) studio("models/Env/Weapons/cut_throat/cut_throat.mdl") = weapon_cut_throat : "Cutthroat Razor" []
@PointClass base(Weapon) studio("models/Env/Weapons/syringe/syringe.mdl") = weapon_syringe : "Syringe" []
@PointClass base(Weapon) studio("models/Env/Weapons/syringe/syringe.mdl") = weapon_syringe_sleep : "Syringe Sleep" []
@PointClass base(Weapon) studio("models/Env/Weapons/satchel_charge/wallet.mdl") = weapon_satchel : "Wallet" []
@PointClass base(Weapon) studio("models/Env/Weapons/satchel_charge/purse.mdl") = weapon_purse : "Purse" []
@PointClass base(Weapon) studio("models/Env/Weapons/claymore/claymore.mdl") = weapon_claymore : "Claymore" []
@PointClass base(Weapon) studio("models/Env/Weapons/tennis_racquet/tennis_racquet.mdl") = weapon_racquet : "Tennis Racquet" []
@PointClass base(Weapon) studio("models/Env/Weapons/umbrella/umbrella.mdl") = weapon_umbrella : "Umbrella" []
@PointClass base(Weapon) studio("models/Env/Weapons/knitting/knitting_contain.mdl") = weapon_needle : "Knitting_Needle" []
@PointClass base(Weapon) studio("models/Env/Weapons/cooking_pot/cooking_pot.mdl") = weapon_cooking_pot : "Cooking Pot" []
@PointClass base(Weapon) studio("models/Env/Weapons/baseball_bat/baseball_bat.mdl") = weapon_baseball_bat : "Baseball Bat" []
@PointClass base(Weapon) studio("models/Env/Weapons/croquet_mallet/croquet_mallet.mdl") = weapon_croquet_mallet : "Croquet Mallet" []
@PointClass base(Weapon) studio("models/Env/Weapons/golfclub/golfclub.mdl") = weapon_golf_club : "Golf Club" []
@PointClass base(Weapon) studio("models/Env/Weapons/onehand_paddle/onehand_paddle.mdl") = weapon_paddle : "Paddle" []
@PointClass base(Weapon) studio("models/Env/Weapons/candlestick/candlestick.mdl") = weapon_candlestick : "Candlestick" []
@PointClass base(Weapon) studio("models/Env/Weapons/walking_stick/walking_stick.mdl") = weapon_walking_stick : "Walking Stick" []
@PointClass base(Weapon) studio("models/Env/Weapons/shank/shank.mdl") = weapon_shank : "Shank" []
@PointClass base(Weapon) studio("models/Env/Weapons/short_sword/short_sword.mdl") = weapon_short_sword : "Short Sword" []
// Special items
@PointClass base(Item) studio("models/Env/Decor/holy_grail/holy_grail.mdl") = special_holy_grail : "The Holy Grail" []
@PointClass base(Item) studio("models/Env/Decor/paint_rembrandt/paint_rembrandt.mdl") = special_painting : "A Rembrandt painting" []
@PointClass base(Item) studio("models/Env/Decor/Artifacts/king_meska.mdl") = special_helmet : "King Meskalamdug’s helmet" []
@PointClass base(Item) studio("models/env/misc/bible/bible.mdl") = special_bible : "The Holy Bible" []
@SolidClass base(Trigger) = trigger_rpgfire :
	"A volumetric trigger that triggers whenever an RPG is fired within it."
[
	// Outputs
	output OnTrigger(void) : "Fires while the trigger is activated"
]
@SolidClass base(Trigger) = trigger_vphysics_motion :
	"A volumetric trigger that affects the motion of vphysics objects that touch it."
[
	spawnflags(Flags) =
	[
		4096 : "Can move (through hierarchical attachment)" : 0
	]
	StartDisabled(choices) : "Start Disabled" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator triggers me. See filter_activator_name for more explanation."
	SetGravityScale(float) : "Scale gravity of objects in the field." : "1.0"
	input SetGravityScale(float) : "Scale gravity of objects in the field."
	SetAdditionalAirDensity(float) : "Additional air density for drag" : "0"
	input SetAdditionalAirDensity(float) : "Additional air density for drag"
	SetVelocityLimit(float) : "Max velocity in field (0 disables)" : "0.0"
	input SetVelocityLimit(float) : "Max velocity in field."
	SetVelocityLimitDelta(float) : "Max amount to reduce velocity per second when it exceeds the velocity limit (0 disables)" : "0.0"
	input SetVelocityLimitDelta(float) : "Max amount to reduce velocity per second"
	input SetVelocityLimitTime(string) : "Accepts two arguments: the first is the new velocity limit, the second is the time it takes to ramp to that value"
	SetVelocityScale(float) : "Velocity scale/drag" : "1.0"
	input SetVelocityScale(float) : "Velocity scale/drag"
	SetAngVelocityLimit(float) : "Max angular velocity in field (degrees/s, 0 disables)" : "0.0"
	input SetAngVelocityLimit(float) : "Max angular velocity in field."
	SetAngVelocityScale(float) : "Angular Velocity scale/drag" : "1.0"
	input SetAngVelocityScale(float) : "Angular Velocity scale/drag"
	SetLinearForce(float) : "Linear force (0 disables)" : "0.0"
	input SetLinearForce(float) : "Linear force (0 disables)"
	SetLinearForceAngles(angle) : "Direction of linear force (Pitch Yaw Roll (Y Z X))" : "0 0 0"
//	input SetLinearForceAngles(angle) : "Direction of linear force (Pitch Yaw Roll (Y Z X))"
	ParticleTrailMaterial(string) : "Particle Trail Material" : : "Name of a material to use for the particle trail, no name means no particle trail"
	ParticleTrailLifetime(float) : "Particle Trail Lifetime" : 4 : "Lifetime of the particles to emit"
	ParticleTrailStartSize(float) : "Particle Trail Starting Sprite Size" : 2 : "Starting size of the sprite to emit"
	ParticleTrailEndSize(float) : "Particle Trail Ending Sprite Size" : 3 : "Ending size of the sprite to emit"
	// Inputs
	input	Enable(void) : "Enable the trigger."
	input	Disable(void): "Disable the trigger."
	input	Toggle(void) : "Toggle enable/disable."
]
@PointClass base(Targetname) size( 16 16 16) sphere() color( 255 255 0 ) = point_bugbait : "Bugbait sensor point"
[
	Enabled(choices) : "Start Enabled" : 1 =
	[
		0 : "No"
		1 : "Yes"
	]
	spawnflags(Flags) =
	[
		1: "Do not call antlions to position" : 0
		2: "Don't activate on thrown bugbait splashes" : 0
		4: "Don't activate on squeezed bugbait" : 0
	]
	radius(integer) : "Sensor Radius" : 512
	// Inputs
	input	Enable(void) : "Enable the sensor."
	input	Disable(void): "Disable the sensor."
	input	Toggle(void) : "Toggle the sensor."
	// Outputs
	output OnBaited(void) : "Fires when bugbait lands within a radius of the sensor"
]
@PointClass base(Targetname, Angles) size(16 16 16) line(255 255 255, targetname, target) color(247 181 82) = path_corner : "Generic path point"
[
	spawnflags(Flags) =
	[
		1: "Wait for retrigger" : 0
		2: "Teleport to THIS path_corner" : 0
	]
	target(target_destination) : "Next stop target"
	wait(integer) : "Wait here (secs)" : 0
	speed(integer) : "New Train Speed" : 0
	yaw_speed(integer) : "New Train rot. Speed" : 0
	// Inputs 
	input SetNextPathCorner(string) : "Sets next pathcorner"
	// Outputs
	output OnPass(void) : "Fires when a path follower passes this point"
]
@PointClass base(Targetname) size(16 16 16) color(255 0 0) = path_corner_crash : "Helicopter Crash Path"
[
	target(target_destination) : "Next stop target"
]
//-------------------------------------------------------------------------
//
// Player effects
//
//-------------------------------------------------------------------------
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_loadsaved : "Load Auto-Saved game" 
[
	duration(string) : "Fade Duration (seconds)" : "2"
	holdtime(string) : "Hold Fade (seconds)" : "0"
	renderamt(integer) : "Fade Alpha" : 255
	rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
	loadtime(string) : "Reload delay" : "0"
	input Reload(void) : "Ends this game and reloads"
]
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_weaponstrip : "Strips player's weapons"
[
	input Strip(void) : "Strip player's weapons"
	input StripWeaponsAndSuit(void) : "Strip player's weapons and his suit"
]
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_speedmod: "Speeds up or slows down player velocity over time (slow mo/fast forward)"
[
	input ModifySpeed(float) : "Modifies player speed by X ammount."
]
//-------------------------------------------------------------------------
//
// Logic Entities
//
//-------------------------------------------------------------------------
@PointClass color(0 0 255) base(Targetname) iconsprite("editor/choreo_scene.vmt") = logic_choreographed_scene :
	"Manages a choreographed scene of one or more actors."
[
	spawnflags(flags) =
	[
		1 : "Allow Player to Skip when Frozen" : 0 
	]
	
	// Keys
	SceneFile(scene) : "Scene file"
	// Links
	target1(target_destination)	: "Target 1"
	target2(target_destination)	: "Target 2"
	target3(target_destination)	: "Target 3"
	target4(target_destination)	: "Target 4"
	target5(target_destination)	: "Target 5"
	target6(target_destination)	: "Target 6"
	target7(target_destination)	: "Target 7"
	target8(target_destination)	: "Target 8"
	busyactor(choices) : "If an Actor is talking..." : 0 : "What to do if an actor this scene needs is already talking when this scene is told to start." =
	[
		0: "Default"
		1: "Wait for actor to finish"
	]
	// Inputs
	input Start(void) : "Starts playback of the scene file"
	input Pause(void) : "Pauses playback of the scene file"
	input Resume(void) : "Resumes playback of the scene if it has been paused"
	input Cancel(void) : "Cancels playback of the scene"
	input InterjectResponse(string) : "Finds an actor who can respond to the specified concept string while the scene continues playing"
	input StopWaitingForActor(void) : "Stop waiting on an actor to stop talking."
	output OnStart(void) : "The scene has started"
	output OnCompletion(void) : "The scene has completed"
	output OnCanceled(void) : "The scene has been canceled"
	output OnTrigger1(void) : "Scene trigger 1"
	output OnTrigger2(void) : "Scene trigger 2"
	output OnTrigger3(void) : "Scene trigger 3"
	output OnTrigger4(void) : "Scene trigger 4"
	output OnTrigger5(void) : "Scene trigger 5"
	output OnTrigger6(void) : "Scene trigger 6"
	output OnTrigger7(void) : "Scene trigger 7"
	output OnTrigger8(void) : "Scene trigger 8"
]
@PointClass base(Targetname, Parentname) sphere(volume) iconsprite("editor/ai_sound.vmt") = ai_sound :
	"This entity makes sounds or smells that can be sensed by NPCs, butnot by the player. This can be used " +
	"to cause reactions in nearby NPCs.\n\n" +
	"Sound Types\n" +
	" Combat: Will cause most NPCs to become alert\n" +
	" World: Will cause most NPCs to become alert\n" +
	" Danger: Will cause most NPCs to move away from the position of the sound\n" +
	" Bullet Impact: \n" +
	" Carcass: \n" +
	" Meat: \n" +
	" Garbage: \n" +
	" Thumper: causes antlions to run away briefly\n" +
	" Readiness: (Low, Medium, High) Causes player companions that can hear this sound to change readiness\n"
[
	//input InsertSound(Integer) : "THIS IS NOW OBSOLETE. Use InsertAISound"
	input EmitAISound(void) : "Make the sound."
	volume(integer) : "Volume" : 120 : "How far away this sound can be heard. This is a radius."
	duration(float) : "Duration" : "0.5" : "How long the sound persists each time you insert it."
	soundtype(choices) : "Sound Type" : 0 : "The type of sound or smell will determine the reaction of NPCs that sense it." =
	[
		0: "Select one"
		1: "Combat"
		2: "World"
		//4: "Player (Don't use)"
		8: "Danger"
		16: "Bullet Impact"
		32: "Carcass"
		64: "Meat"
		128: "Garbage"
		256: "Thumper"
		16384 : "Readiness - Low"
		32768 : "Readiness - Medium"
		65536 : "Readiness - High"
	]
	soundcontext(choices) : "Sound Context" : 0 : "Additional sound context (optional)" =
	[
		0 : "Select one"
		8388608 : "Only Combine hear"
		67108864 : "Combine cannot hear"
	]
	locationproxy(target_destination) : "Location Proxy" : "" : "The name of an entity to use as a proxy to determine the location at which to make the sound. If you specify an entity here, the sound will be made at that entity's location (!player included)" 
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname) = env_rotorwash : "Rotorwash Effect"
[
	spawnflags(Flags) =
	[
		1 : "Ignore solid" : 0
	]
	input DoEffect(Void) : "Make a rotor puff"
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname) studio("models/props_combine/combine_mine01.mdl") = combine_mine : "Combine Land Mine"
[
	bounce(choices) : "Bounce" : 1 : "Whether the mine should bounce up in the air before exploding." =
	[
		0: "No"
		1: "Yes"
	]
	LockSilently(choices) : "Lock Silently" : 1 : "If yes, mine plays no sound when clamps close" =
	[
		0: "No"
		1: "Yes"
	]
	StartDisarmed(choices) : "Start Disarmed" : 0 : "If yes, mine begins dormant." =
	[
		0 : "No"
		1 : "Yes"
	]
	// Outputs
	output OnPulledUp(void) : "Fires when this mine is uprooted with physgun"
	// Inputs
	input Disarm(void) : "Disarm this mine (open hooks and shut off) if not placed by player."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname) = env_ar2explosion :
	"AR2 explosion visual effect. Big, volume-filling brown cloud. Does not cause damage or emit sound."
[
	input Explode(Void) : "Make the explosion effect."
	material(material) : "Particle Material" : "particle/particle_noisesphere" : "The material to use for each particle in the explosion."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname) = env_starfield : "Starfield effect" 
[
	input TurnOn(void) : "Turn on"
	input TurnOff(void) : "Turn off"
	input SetDensity(float) : "Set the density of the starfield. It's a multiplier, so 1 is the default."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname, Angles) = env_flare : "Flare"
[
	scale(float) : "Scale" : 1
	duration(float) : "Duration" : 30
	
	spawnflags(Flags) =
	[
		1 : "No DLight" : 0
		2 : "No Smoke" : 0
		4 : "Infinite" : 0
		8 : "Start off" : 0
	]
	input Start(float) : "Start"
	input Die(float) : "Die"
	input Launch(float) : "Launch the flare forward with the specified speed."
]
@PointClass base(Targetname, Parentname, Angles) = env_extinguisherjet : "Fire Extinguisher Jet"
[
	length(integer) : "Length" : 128
	size(integer)	: "Size of jet" : 8
	radius(integer)	: "Radius of extinguishment at impact point" : 32
	strength(float)	: "Strength of the extinguisher" : "0.97"
	
	enabled(choices) : "Start On" : 1 =
	[
		0 : "No"
		1 : "Yes"
	]
	input Enable(void) : "Enables the extinguisher"
	input Disable(void) : "Disables the extinguisher"
	input Toggle(void) : "Toggles the extinguisher"
]
@PointClass base(Targetname, Parentname, Angles) = env_muzzleflash : "Muzzle Flash" 
[
	parentattachment(string) : "Parent Attachment" : "" : "The name of an attachment on the parent to hierarchically attach to."
	scale(float) : "Scale" : "1" : "Size of the muzzle flash."
	
	input Fire(void) : "Fires the effect once."
]
@PointClass base(Targetname, Parentname) size(-4 -4 -4, 4 4 4) color(0 180 0) = env_terrainmorph : 
	"Morphs terrain by pulling vertices along a normal.\n\n" +
	"Place this entity the desired distance from a terrain surface and set ANGLES " +
	"to the normal along which you want to pull the surface's vertices. If you set the INSTANT spawnflag, " +
	"the morph will take place instantly instead of over time.\n"
[
	startradius( integer ) : "Start Radius" : 500 : "Radius of the effect when morphing begins. Only this value is used" +
													"if the effect is flagged to occur instantly."
	goalradius( integer ) : "Goal Radius" : 100 : "Radius of the effect at the end of morphing. The radius of this effect will change from "+
												 "Start Radius to Goal Radius over the duration of this effect. This value is ignored if the effect is flagged to occur instantly."
	duration( integer ) : "Duration" : 3 : "The morph will take place over this period of time (seconds). Ignored if flagged to occur instantly"
	fraction( integer ) : "Displacement Fraction" : 1 : "If set to 1, the terrain surface will be pulled exactly to this entity's position." +
														" If set to 0.5, the surface will be pulled exactly half way to this entity's position. " +
														"If set to 2, the surface will be pulled to an imaginary point twice as far away as this entity. " +
														"(Any Displacement Fraction greater than 1.0 will result in clipping. The surface cannot be pulled beyond " +
														"This entity's position and any vertices attemping will clip to this entity's position. You may use this feature to create mesas.)"
	// Inputs
	input BeginMorph(void) : "Begin Morph"
	spawnflags(flags) =
	[
		1: "Instant" : 0 
	]
]
//-------------------------------------------------------------------------
//
// Camera/monitor entities
//
//-------------------------------------------------------------------------
@PointClass base(Parentname, Angles) studioprop("models/editor/camera.mdl") = point_camera : "Camera"
[
	spawnflags(Flags) =
	[
		1 : "Start Off" : 0 
	]
	targetname(target_source) : "Name" : : "The name that other entities refer to this entity by."
	FOV(float) : "FOV" : 90 : "Field of view in degrees"
//	resolution(float) : "resolution" : 256 : "width/height of the render target for the camera"
	UseScreenAspectRatio(choices) : "Screen Aspect Ratio" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]	
	fogEnable(choices) : "Fog Enable" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]	
	fogColor(color255) : "Fog Color" : "0 0 0"
	fogStart(float) : "Fog Start" : 2048 : "The near fog plane."
	fogEnd(float) : "Fog End" : 4096 : "The far fog/clipping plane."
	input ChangeFOV(string) : "Changes camera's FOV over time"
	input SetOnAndTurnOthersOff(void) : "Turn the camera on, and turn all other cameras off."
	input SetOn(void) : "Turn the camera on."
	input SetOff(void) : "Turn the camera off."
]
@SolidClass base(func_brush) = func_monitor :
	"A monitor that renders the view from a given point_camera entity."
[
	target(target_destination) : "Camera name"
	
	// Inputs
	input Toggle(void)		: "Toggle - If on, turn off, if off, turn on."
	input Enable(void)		: "Enable."
	input Disable(void)		: "Disable."
	input SetCamera(string) : "Sets the camera to use for this monitor. Takes the name of a point_camera entity in the map."
]
//-------------------------------------------------------------------------
//
// Vehicles.
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Origin, Global, prop_static_base) = BaseVehicle
[
	vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt"
	actionScale(float) : "Scale of action input / framerate" : "1"
	input Action(float) : "Set the speed of the action animation"
	input TurnOn(void)	: "Turn on: Start engine & enable throttle"
	input TurnOff(void)	: "Turn off: Stop engine, disable throttle, engage brakes."
	input Lock(void)	: "Prevent the player from entering or exiting the vehicle."
	input Unlock(void)	: "Re-allow the player to enter or exit the vehicle."
]
@BaseClass base(BaseVehicle) = BaseDriveableVehicle
[
	VehicleLocked(choices) : "Start locked" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]	
	output PlayerOn(void) : "Player entered the vehicle"
	output PlayerOff(void) : "Player exited the vehicle"
	
	output PressedAttack(void) : "Player Pressed attack key"
	output PressedAttack2(void) : "Player Pressed attack2 key"
	output AttackAxis(string) : "State of attack button [0,1]"
	output Attack2Axis(string) : "State of attack2 button [0,1]"
	input HandBrakeOn(void) : "Turns the handbrake on"
	input HandBrakeOff(void): "Releases the handbrake"
]
@PointClass base(BaseVehicle) studioprop() = prop_vehicle :
	"Studiomodel vehicle that can be driven via inputs."
[
	input Steer(float) : "Steer the vehicle +/-1"
	input Throttle(float) : "Throttle +/-1"
	spawnflags(flags) =
	[
		1 : "Always Think (Run physics every frame)" : 0
	]
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_driveable :
	"Generic driveable studiomodel vehicle."
[
]
@PointClass base(Targetname, Angles) studio() = point_apc_controller : "APC Controller"
[
	spawnflags(flags) =
	[
		1 : "Active" : 0
	]
	yawrate(string) : "Yaw rate" : "30"
	yawtolerance(string) : "Yaw tolerance" : "15"
	pitchrate(string) : "Pitch rate" : "0"
	pitchtolerance(string) : "Pitch tolerance" : "20"
	rotatestartsound(sound) : "Rotate Start Sound" : ""
	rotatesound(sound) : "Rotate Loop Sound" : ""
	rotatestopsound(sound) : "Rotate Stop Sound" : ""
	minRange(string) : "Minmum target range" : "0"
	maxRange(string) : "Maximum target range" : "0"
	targetentityname(string) : "Name of entity I should follow/attack" : ""
	// input
	input Activate(void)				: "Turn the APC rockets on"
	input Deactivate(void)				: "Turn the APC rockets off (go dormant)"
	output OnFireAtTarget(void)			: "Fires when a valid target is found and the APC should shoot rockets"
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_apc :
	"APC with mounted guns, can only be driven by a vehicle driver or a npc_apcdriver."
[
	missilehint(target_destination) : "Missile Hint Target" : "" : "Name of one or more info_apc_missile_hint entities to use to determine what to hit."
	input FireMissileAt(target_destination)	: "A target to fire a missile at"
	input Destroy(void)	: "Causes the APC to blow up."
	output OnFiredMissile(void) : "Fired when the APC shoots a missile."
	output OnDeath(void) : "Fired when the APC is killed."
]
@SolidClass base(Targetname, Origin, Angles, EnableDisable) = info_apc_missile_hint :
	"Something that helps APC missiles guide. If the missile can hit the associated target entity"+
	"between the time it takes the current enemy to enter + leave the hint, then the missile will guide to the entity."
[
	target(target_destination) : "Target Entity" : "" : "The entity that the missile will guide towards if the conditions are met."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_jeep :
	"Driveable studiomodel jeep."
[
	input StartRemoveTauCannon(void)		: "Start the tau removal sequence."
	input FinishRemoveTauCannon(void)		: "Finish the tau removal sequence."
]
@PointClass base(BaseDriveableVehicle) studioprop() = vehicle_viewcontroller : 
	"Vehicle hack to control player view"
[
	input ForcePlayerIn(string)				: "Force the player into the vehicle. The animation to use can be specified in the parameter. Without a parameter, the player just teleports."
	input ForcePlayerOut(void)				: "Force the player out of the vehicle."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_airboat :
	"Driveable studiomodel airboat."
[
	model(studio) : "World model" : "models/airboat.mdl"
	vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/airboat.txt"
	EnableGun(choices) : "Has Gun" : 0 : "Whether the airboat's gun is enabled or disabled." =
	[
		0 : "No"
		1 : "Yes"
	]
	input EnableGun(bool) : "Enables or disables the airboat gun and associated crosshair."
	input InputStartRotorWashForces(void) : "The airboat will start to be blown around by the helicopter rotor wash."
	input InputStopRotorWashForces(void) : "The airboat will no longer be blown around by the helicopter rotor wash."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_cannon :
	"Driveable studiomodel cannon."
[
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_crane :
	"Driveable studiomodel crane."
[
	magnetname(target_destination) : "Magnet entity" : ""
	input ForcePlayerIn(void) : "Force the player to get into the crane. Only works in singleplayer."
]
@PointClass base(BaseDriveableVehicle, Parentname) studioprop() = prop_vehicle_prisoner_pod :
	"Combine prisoner pod that the player can ride in."
[
	model(studio) : "World model" : "models/vehicles/prisoner_pod.mdl"
	vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/prisoner_pod.txt"
	
	input Open(void) : "Plays the pod's open animation and unlocks the pod for entry or exit."
	input Close(void) : "Plays the pod's close animation and locks the pod for entry or exit."
	input EnterVehicle(void) : "Forces the activator (or player) into the pod."
	input EnterVehicleImmediate(void) : "Forces the activator (or player) into the pod without enter/exit animations."
	input ExitVehicle(void) : "Boots the prisoner out of the pod."
	
	output OnOpen(void) : "Fired when the pod is open enough to enter."
	output OnClose(void) : "Fired when the pod too closed to enter."
]
@PointClass base(Targetname) = phys_constraintsystem : "Used to manage a group of interacting constraints and keep them stable."
[
]
@PointClass base(BaseSpeaker) iconsprite("editor/ambient_generic.vmt") = env_speaker : "Announcement Speaker"
[
]
//-------------------------------------------------------------------------
// Script entities
//-------------------------------------------------------------------------
@PointClass base(Angles,Targetname,Parentname) = script_tauremoval : "Script: Custom entity used to handle the tau removal sequence in seafloor."
[
	vortigaunt(target_destination) : "Vortigaunt to use"
	// Inputs
	input StartScript(void) : "Start the script."
	input RemoveTau(void) : "Start removing the Tau cannon now."
]
@PointClass base(Targetname) = script_intro : "Script: Custom entity used to handle the intro sequence."
[
	// Inputs
	input Activate(void) : "Take control of the player's view and start blending the two scenes."
	input Deactivate(void) : "Stop controlling the view."
	input SetCameraViewEntity(string) : "Set the viewpoint to blend with the player's viewpoint."
	input SetBlendMode(integer) : "Set the blending mode to use."
	input SetFOV(integer) : "Set the fov for the second camera."
	input SetNextFOV(integer) : "Set the FOV to blend to over time. Follow this with a SetFOVBlendTime input to start the fov blend."
	input SetFOVBlendTime(float) : "Set the amount of time it should take to blend to the next fov target, and start blending."
	input SetNextBlendMode(integer) : "Set the blending mode to blend to over time. Follow this with a SetNextBlendTime input to start the mode blend."
	input SetNextBlendTime(float) : "Set the amount of time it should take to blend to the next mode, and start blending."
	input FadeTo(string) : "Fade to a specific alpha amount of an amount of time. Parameters: <alpha> <duration>"
	input SetFadeColor(string) : "Set the fade color. Parameters: <Red> <Green> <Blue>"
]
//-------------------------------------------------------------------------
//
// Special effects
//
//-------------------------------------------------------------------------
@PointClass base(Angles,Targetname,Parentname) = env_citadel_energy_core : "Special effect for the energy cores in citadel."
[
	spawnflags(Flags) = 
	[
		1 : "No small particles" : 0
		2 : "Start on" : 0
	]
	scale(float) : "Scale" : 1 : "Scale of the effect. 1 is the default size, 2 is twice that, etc."
	// Inputs
	input StartCharge(float) : "Start charging the core over specified number of seconds."
	input StartDischarge(void) : "Start discharging the core over specified number of seconds."
	input Stop(float) : "Stops the effect at any point."
]
@PointClass base(Angles,Targetname,Parentname) size(-4 -4 -4, 4 4 4) color(0 0 255) line( 0 0 255, targetname, EndTargetName) = env_alyxemp : "Special effect for the Alyx's EMP device."
[
	Type(choices) : "EMP Type" : 0 =
	[
		0 : "Small"
		1 : "Large"
	]	
	EndTargetName(target_destination) : "Target Entity" : "" : "Entity to use as a target endpoint."
	// Inputs
	input StartCharge(float) : "Start charging the effect over specified number of seconds."
	input StartDischarge(void) : "Start discharging the effect over specified number of seconds."
	input Stop(float) : "Stops the effect at any point."
	input SetTargetEnt(string) : "Sets the target entity for the effect."
]
@PointClass = test_sidelist : "Test entity for Ken!"
[
	sides(sidelist) : "Sides"
]
//-------------------------------------------------------------------------
// Countdown timer for the teleporter at the end of the game
//-------------------------------------------------------------------------
@PointClass base(Targetname) iconsprite("editor/info_target.vmt") = info_teleporter_countdown : "Countdown timer for the teleporter. The status of the teleporter will appear on vgui_screen entities whose panel is 'teleport_countdown_screen'." 
[
	// Inputs
	input StartCountdown(float) : "Starts the teleporter countdown. Requires an argument which is the number of seconds for the countdown."
	input StopCountdown(void) : "Stops the countdown permanently"
	input Disable(void) : "Pauses the countdown due to a temporary malfunction. A warning sign will appear on the linked vgui screens."
	input Enable(void) : "Restarts the countdown since the malfunction is finished."
]
@PointClass base(BaseDriveableVehicle, Parentname) studioprop() = prop_vehicle_choreo_generic :
	"Generic Choreo vehicle used for magical events."
[
	model(studio) : "World model" : "models/vehicles/prisoner_pod.mdl"
	vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/choreo_vehicle.txt"
	
	input Open(void) : "Plays the vehicle's open animation and unlocks the vehicle for entry or exit."
	input Close(void) : "Plays the vehicle's close animation and locks the vehicle for entry or exit."
	input EnterVehicle(void) : "Forces the activator (or player) into the vehicle."
	input EnterVehicleImmediate(void) : "Forces the activator (or player) into the vehicle without enter/exit animations."
	input ExitVehicle(void) : "Boots the prisoner out of the vehicle."
	
	output OnOpen(void) : "Fired when the vehicle is open enough to enter."
	output OnClose(void) : "Fired when the vehicle too closed to enter."
]
@FilterClass base(BaseFilter) iconsprite("editor/filter_class.vmt") = filter_combineball_type :
	"A filter that filters by combine ball type."
[
	balltype(choices) : "Ball Type" : 1 =
	[
		0 : "Not Thrown (in combine ball field, etc)"
		2 : "Thrown/Launched by the player's physcannon"
		3 : "Launched by point_combine_ball_launcher"
	]	
]
@PointClass base(Targetname) = env_entity_dissolver: "Entity Dissolver"
[
	input Dissolve(string) : "Dissolve target, if no target is passed it'll use the target specified in the target field."
	target(target_destination) : "Target to Dissolve" : "" : "Targetname of the entity you want to dissolve."
]
//-------------------------------------------------------------------------
//
// Functional entities
//
//-------------------------------------------------------------------------
@BaseClass = SettingSolid
[
	solid(choices) : "Collisions" : 6 =
	[
		0: "Not Solid"
		1: "Use Solid BSP (Use for brush func items!)"
		2: "Use Bounding Box"
		6: "Use VPhysics"
	]
]
@BaseClass base(Targetname, Angles, Studiomodel, EnableDisable, Parentname, Origin, SettingSolid) studioprop() = ship_func_item_model_base
[
	skin(integer) : "Skin" : 0
	model(studio) : "Model"
	
	//output OnPlayerUse(void) : "Fired when the player +USEs the func_item."
]
@PointClass base(ship_func_item_model_base, prop_dynamic_base) studioprop() = ship_container : "Container"
[	
	SpawnDestName(string) : "Spawn Destination Name" : "" : "Name used by spawners to refer to this container"
	Description(choices) : "Container Description" : 0 :	"Description of the type of container that will show up"+
															" on the player HUD" =
	[
		0 :		"Wardrobe"
		1 :		"Drawer"
		2 :		"Bookcase"
		3 :		"Chest"
 4 : "Cabinet"
 5 : "Box"
 6 : "Car Boot"
 7 : "Ration Pack"
 8 : "Doctor's Bag"
 9 : "Magazine Rack"
 10 : "Bookcase"
 11 : "Book Shelf"
 12 : "Locker"
 13 : "Toolbox"
 14 : "Dresser"
 15 : "Bin"
 16 : "Deck Box"
 17 : "Medical Cabinet"
 18 : "Trolley"
 19 : "Gun Cabinet"
 20 : "Wooden Box"
 21 : "Cardboard Box"
 22 : "Filing Cabinet"
 23 : "Knife Rack"
 24 : "Pan Rack"
 25 : "Pool Cue Rack"
 26 : "Desk"
 27 : "Medical Bin"
 28 : "Bedside Cabinet"
 29 : "Golf Bag"
 30 : "Suitcase"
 31 : "Trunk"
 32 : "Corpse"
 33 : "Present"
 34 : "Stocking"
	]
	
	soundopenoverride(sound) : "Opening Sound" : : "Sound played as the container opens."
	soundcloseoverride(sound) : "Closing Sound" : : "Sound played as the container closes."
	Capacity(integer) : "Capacity" : 32 : "Maximum number of items which this container can hold"
	
	input Empty(void) : "This empties the container"
]
//-------------------------------------------------------------------------
//
// Security
//
//-------------------------------------------------------------------------
// Security Camera Base
@BaseClass base(Targetname, Parentname, Origin, Angles, RenderFields, Global, Shadow) = BaseSecurityCamera
[
	spawnflags(flags) =
	[
		1 : "Active" : 0
		4 : "Show View Cone" : 0
	]
	
	yawrate(string) 		: "Yaw rate" 		 : "10" : "The speed at which the camera will rotate (left/ right)."
	yawrange(string) 		: "Yaw range" 		 : "45" : "Maximum angle (degrees) the camera can rotate to (left/ right). Note: this angle may not be reached if an associated logic_timer stops it rotating this far."
	pitchrate(string) 		: "Pitch rate" 		 : "10" : "The speed at which the camera will rotate (up/ down)."
	pitchrange(string) 		: "Pitch range" 	 : "45" : "Maximum angle (degrees) the camera can rotate to (up/ down). Note: this angle may not be reached if an associated logic_timer stops it rotating this far."
	minRange(string) 		: "Minmum range" 	 : "0" : "Minimum distance that the camera checks for targets in range. Any entity closer than this value will not be detected by this camera."
	maxRange(string) 		: "Maximum range" 	 : "2000" : "Maximum distance that the camera checks for targets in range. Any entity further away than this value will not be detected by this camera."
	starttargetpos(string) 		: "Start target position" : "0 0 0" : "If this is not a static camera the camera will rotate to point at this position after the map loads."
	cameraLength(string) 		: "Length of the camera" : "18" : "Distance from this camera entity that you wish to start drawing the view cone."
	camera(target_destination) 	: "Point Camera" : "" : "The name of the point_camera entity. Define this if you wish to link this camera to a monitor (func_monitor)."
	cameraprop(target_destination) : "Camera Prop" : "" : "The name of the entity used as the camera's actual body. This should rotate with this entity if it is parented to it."
	booth(target_destination) 	: "Security Booth" : "" : "The name of the ship_security_booth entity."
	areavolume(target_destination) 	: "Area Volumes" : "" : "The name of the ship_trigger_room entity or entities that this camera is linked to. These triggers define the rooms that this camera checks for targets in."
	
	camera_type(choices) : "Camera Type" : 0 : "Type of camera, determines how the camera detects crimes. Static cameras and rotating cameras just detect the whole area volume and rotating with FOV uses the camera's FOV." =
 [
 0 : "Static"
 1 : "Rotating"
 2 : "Rotating with FOV"
 ]
	// inputs
	input Activate(void)				: "Turn the camera on"
	input Deactivate(void)				: "Turn the camera off (go dormant)"
	input SetTargetPosition(string)		: "World position that I should aim at"
	input SetTargetDir(vector)			: "Direction to aim at."
	input SetTargetEntityName(string)	: "Name of entity I should follow"
	input SetTargetEntity(string)		: "Entity I should follow (output from other entity only)"
	input ClearTargetEntity(void)		: "Clear the entity I should be following."
	input SetCamera(string) 		: "Sets the point camera to use for this security camera."
	input SetCameraProp(string) 		: "Sets the camera prop to use for this security camera."
	input SetBooth(string) 			: "Sets the booth to use for this security camera."
	input SetAreaVolume(string) 		: "Sets the area volume to use for this security camera."
	input SetTargetPosition(string)		: "World position that I should aim at"
	input ShowViewCone(void)		: "Shows the view cone the camera uses."
	input HideViewCone(void)		: "Hides the view cone the camera uses."
	// outputs
	output OnAquireTarget(void)		: "Fires when target is newly in range"
	output OnLoseTarget(void)		: "Fires when when target goes out of range"
]
// Normal Security Camera
@SolidClass base(BaseSecurityCamera) = ship_security_camera : "Brush Security Camera" 
[
	
]
// Security Booth
@SolidClass base(BreakableBrush, Origin, RenderFields, Shadow) = ship_security_booth : "Brush Security Booth" 
[
	minhealthdmg(integer) : "Min req'd damage for hurting breakable" : 0
	holdingRoom(target_destination) : "Holding Room"
	holdingRoom2(target_destination) : "Holding Room 2"
	holdingRoom3(target_destination) : "Holding Room 3"
 courtRoom(target_destination) : "Court Room"
 courtRoom2(target_destination) : "Court Room 2"
 courtRoom3(target_destination) : "Court Room 3"
 brigRoom(target_destination) : "Brig Room"
 brigRoom2(target_destination) : "Brig Room 2"
 brigRoom3(target_destination) : "Brig Room 3"
 releaseRoom(target_destination) : "Release Room"
 releaseRoom2(target_destination) : "Release Room 2"
 releaseRoom3(target_destination) : "Release Room 3"
 courtRoomCamera(target_destination) : "Court Room Camera"
	
	// inputs
	input ClearCameras(void)	 : "Removes all cameras from the list controlled by this booth."
	input ClearGuards(void)		 : "Removes all guards from the list controlled by this booth."
	input CheckPotentialCrime(void) : "Triggers a crime check on the user."
	input SetAdditionalJailTime(float) : "Adds the specified time to the local player's sentence for Single-Player."
	input ResetAdditionalJailTime(void) : "Resets the additional jail time for the local player for Single-Player."
	input SetCurrentJailTime(float) : "Sets the local player's time left if they are in jail for Single-Player."
	
	// Outputs
	output OnDamaged(void) : "Fires when the Security Booth is damaged"
]
@SolidClass base(Trigger) = ship_trigger_area :
	"A volumetric trigger that can trigger multiple times."
[
	message(string) : "Message text"
	wait(integer) : "Delay before reset" : 0
	 
	// Outputs
	output OnTrigger(void) : "Fires while the trigger is activated"
]
@SolidClass base(ship_trigger_area) = ship_trigger_room :
	"A volumetric trigger which represents a room or area on the ship that has specific properties: type, name, number"
[
	spawnflags(flags) = 
	[
		1:	"Clients"		: 1
		2:	"NPCs"			: 1
		1024:	"Bots"			: 1
		2048:	"Weapons/Items"		: 1
	]
	
	RoomType(choices) : "Room Type" : "ROOM_TYPE_SHIP" : "The type of the room this is - used by lots of systems to make decisions" =
	[
		"ROOM_TYPE_SHIP"			: "Default Ship Room"
		"ROOM_TYPE_ARBORETUM"			: "Arboretum"
		"ROOM_TYPE_ARMOURY"			: "Armoury"
		"ROOM_TYPE_ATRIUM"			: "Atrium"
		"ROOM_TYPE_BALLROOM"			: "Ballroom"
		"ROOM_TYPE_BANK"			: "Bank"
		"ROOM_TYPE_BAR"				: "Bar"
		"ROOM_TYPE_BRIDGE"			: "Bridge"
		"ROOM_TYPE_BRIG"			: "Brig"
		"ROOM_TYPE_CABIN"			: "Cabin"
 "ROOM_TYPE_CABIN_ENSUITE"		: "Cabin Ensuite"
		"ROOM_TYPE_CAFE"			: "Cafe"
		"ROOM_TYPE_CARGO_HOLD"			: "Cargo_Hold"
		"ROOM_TYPE_CASINO"			: "Casino"
		"ROOM_TYPE_CELL"			: "Cell"
		"ROOM_TYPE_CHANGING"			: "Changing"
		"ROOM_TYPE_CINEMA"			: "Cinema"
		"ROOM_TYPE_CORRIDOR"			: "Corridor"
		"ROOM_TYPE_COURTROOM"			: "Courtroom"
		"ROOM_TYPE_CREW_CORRIDOR"		: "Crew Corridor"
		"ROOM_TYPE_CREW_DORMITORY"		: "Crew Dormitory"
		"ROOM_TYPE_CREW_STAIRWELL"		: "Crew Stairwell"
 "ROOM_TYPE_DANCE_FLOOR"			: "Dance Floor"
 "ROOM_TYPE_ELEVATOR"			: "Elevator"
		"ROOM_TYPE_ENGINEERING"			: "Engineering"
		"ROOM_TYPE_FEMALE_BATHROOM"		: "Female Bathroom"
		"ROOM_TYPE_FEMALE_CHANGING"		: "Female Changing"
		"ROOM_TYPE_FEMALE_CREW_BATHROOM"	: "Female Crew_Bathroom"
		"ROOM_TYPE_FEMALE_CREW_CABIN"		: "Female Crew_Cabin"
		"ROOM_TYPE_FEMALE_CREW_DORMITORY"	: "Female Crew_Dormitory"
		"ROOM_TYPE_FEMALE_SHOWERS"		: "Female Showers"
		"ROOM_TYPE_FEMALE_TOILETS"		: "Female Toilets"
		"ROOM_TYPE_FIRST_CLASS_CABIN"		: "1st Class Cabin"
		"ROOM_TYPE_FOYER"			: "Foyer"
		"ROOM_TYPE_GAMES"			: "Games"
		"ROOM_TYPE_GYMNASIUM"			: "Gymnasium"
 "ROOM_TYPE_HOT_TUB" 	: "Hot Tub"
		"ROOM_TYPE_HOUSEKEEPING"		: "Housekeeping"
		"ROOM_TYPE_KITCHEN"			: "Kitchen"
		"ROOM_TYPE_LAUNDRETTE"			: "Laundrette"
		"ROOM_TYPE_LIBRARY"			: "Library"
		"ROOM_TYPE_LOUNGE"			: "Lounge"
		"ROOM_TYPE_MAINTENANCE"			: "Maintenance"
		"ROOM_TYPE_MALE_BATHROOM"		: "Male Bathroom"
		"ROOM_TYPE_MALE_CHANGING"		: "Male Changing"
		"ROOM_TYPE_MALE_CREW_BATHROOM"		: "Male Crew_Bathroom"
		"ROOM_TYPE_MALE_CREW_CABIN"		: "Male Crew_Cabin"
		"ROOM_TYPE_MALE_CREW_DORMITORY"		: "Male Crew_Dormitory"
		"ROOM_TYPE_MALE_SHOWERS"		: "Male Showers"
		"ROOM_TYPE_MALE_TOILETS"		: "Male Toilets"
 "ROOM_TYPE_MUSEUM" : "Museum"
		"ROOM_TYPE_OUTSIDE_DECK"		: "Outside Deck"
		"ROOM_TYPE_PLAZA"			: "Mall"
		"ROOM_TYPE_RELEASE"			: "Release"
		"ROOM_TYPE_RELEASE_HUMANS_ONLY"		: "Release Humans"
		"ROOM_TYPE_RELEASE_BOTS_ONLY"		: "Release Bots"
		"ROOM_TYPE_RESTAURANT"			: "Restaurant"
		"ROOM_TYPE_SAUNA"			: "Sauna"
		"ROOM_TYPE_SECOND_CLASS_CABIN"		: "2nd Class Cabin"
		"ROOM_TYPE_SECURITY_BOOTH"		: "Security Booth"
		"ROOM_TYPE_SHOP"			: "Shop"
		"ROOM_TYPE_SICKBAY"			: "Sickbay"
		"ROOM_TYPE_STAFFROOM"			: "Staffroom"
		"ROOM_TYPE_STAIRWELL"			: "Stairwell"
		"ROOM_TYPE_SWIMMING_POOL"		: "Swimming Pool"
		"ROOM_TYPE_THEATRE"			: "Theatre"
		"ROOM_TYPE_THIRD_CLASS_CABIN"		: "3rd Class Cabin"
 "ROOM_TYPE_UNISEX_BATHROOM"		: "Unisex Bathroom"
 "ROOM_TYPE_UNISEX_SHOWERS"		: "Unisex Showerblock"
 "ROOM_TYPE_UNISEX_TOILETS"		: "Unisex Toilet"
 	"ROOM_TYPE_VENT"			: "Vent"
	]
	
	RoomName(choices) : "Room Name" : "#Ship_No_Name" : "The room name. This is localised in the resource file. If you wish to add new names add there and add it in the Ship.fgd ship_trigger_room entity." =
	[
		"#Ship_No_Name" :				"I need a NAME"
		"#Ship_1st_Class_Cabin" :			"1st Class Cabin"
		"#Ship_2nd_Class_Cabin" :			"2nd Class Cabin"
		"#Ship_3rd_Class_Cabin" :			"3rd Class Cabin"
		"#Ship_Aft_Deck" :				"Aft Deck"
		"#Ship_Aft_Foyer" :				"Aft Foyer"
		"#Ship_Arboretum" :				"Arboretum"
		"#Ship_Armoury" :				"Armoury"
		"#Ship_Atrium" :				"Atrium"
		"#Ship_Ballroom" :				"Ballroom"
		"#Ship_Bank_Corridor" :				"Bank Corridor"
		"#Ship_Bank_Lobby" :				"Bank Lobby"
		"#Ship_Bank_Managers_Office" :			"Bank Manager's Office"
		"#Ship_Bank_Office" :				"Bank Office"
		"#Ship_Bank_Vault" :				"Bank Vault"
		"#Ship_Bar_Corridor" :				"Bar Corridor"
		"#Ship_Bar_Name_A" :				"Blues Bar"
		"#Ship_Bar_Name_B" :				"Sky Bar"
		"#Ship_Bar_Name_C" :				"Bar Nex"
		"#Ship_Bar_Name_D" :				"Venator Bar"
		"#Ship_Bar_Name_E" :				"Davy Jones Bar"
		"#Ship_Bar_Name_F" :				"Vesuvius Bar"
		"#Ship_Bar_Name_G" :				"Aquila Bar"
		"#Ship_Bar_Name_H" :				"Bar Name H"
		"#Ship_Bar_Name_J" :				"Bar Name J"
		"#Ship_Bar_Name_K" :				"Bar Name K"
 "#Ship_Bar_Name_F_Balcony" : "Vesuvius Bar Balcony"
		"#Ship_Boat_Deck" :				"Boat Deck"
		"#Ship_Boutique_Name_A" :			"Marco Graza Menswear"
		"#Ship_Boutique_Name_B" :			"Pour Vous"
		"#Ship_Boutique_Name_C" :			"Victorian Secrets"
		"#Ship_Boutique_Name_D" :			"Nautilus Sports"
		"#Ship_Boutique_Name_E" :			"Golden Oldies"
		"#Ship_Boutique_Name_F" :			"Waikiki Beach Hut"
		"#Ship_Boutique_Name_G" :			"The Final Cut"
		"#Ship_Boutique_Name_H" :			"House of Usher"
		"#Ship_Boutique_Name_J" :			"Boutique Name J"
		"#Ship_Boutique_Name_K" :			"Boutique Name K"
		"#Ship_Bow_Deck" :				"Bow Deck"
		"#Ship_Bridge" :				"Bridge"
		"#Ship_Bridge_Chart_Room" :			"Bridge Chart Room"
		"#Ship_Bridge_Control_Room" :			"Bridge Control Room"
		"#Ship_Bridge_Corridor" :			"Bridge Corridor"
		"#Ship_Bridge_Radio_Room" :			"Bridge Radio Room"
 "#Ship_Bridge_Radar_Room" : "Radar Room"
		"#Ship_Bridge_View_Deck" :			"Bridge View Deck"
		"#Ship_Brig" :					"Brig"
		"#Ship_Brig_Corridor" :				"Brig Corridor"
		"#Ship_Brig_Dining_Hall" :			"Brig Dining Hall"
		"#Ship_Brig_Shower_Block" :			"Brig Shower Block"
		"#Ship_Brig_Toilet_Block" :			"Brig Toilet Block"
		"#Ship_Brig_Waiting_Room" :			"Brig Waiting Room"
		"#Ship_Cabin_Balcony" : "Cabin Balcony"
 "#Ship_Cabin_Ensuite" : "Cabin Ensuite"
		"#Ship_Cafe_Name_A" :				"Cafe"
		"#Ship_Cafe_Name_B" :				"Jazz Cafe"
		"#Ship_Cafe_Name_C" :				"Cafe Nocturne"
		"#Ship_Cafe_Name_D" :				"Mall Cafe"
		"#Ship_Cafe_Name_E" :				"Galeras Cafe"
		"#Ship_Cafe_Name_F" :				"Cafe Name F"
		"#Ship_Cafe_Name_G" :				"Cafe Name G"
		"#Ship_Cafe_Name_H" :				"Cafe Name H"
		"#Ship_Cafe_Name_J" :				"Cafe Name J"
		"#Ship_Cafe_Name_K" :				"Cafe Name K"
		"#Ship_Captains_Cabin" :			"Captain's Cabin"
		"#Ship_Cargo_Hold" :				"Cargo Hold"
		"#Ship_Casino" :				"Casino"
 "#Ship_Cave" : "Cave"
		"#Ship_Cell" :					"Cell"
		"#Ship_Changing_Room" :				"Changing Room"
		"#Ship_Cinema" :				"Cinema"
		"#Ship_Corridor" :				"Corridor"
		"#Ship_Courtroom" :				"Courtroom"
		"#Ship_Crew_Corridor" :				"Crew Corridor"
		"#Ship_Crew_Dormitory" :			"Crew Dormitory"
		"#Ship_Crew_Stairwell" :			"Crew Stairwell"
 "#Ship_Dance_Floor" : "Dance Floor"
 "#Ship_Elevator" : "Elevator"
		"#Ship_Engine_Core" :				"Engine Core"
		"#Ship_Engineering" :				"Engineering"
		"#Ship_Female_Bathroom" :			"Female Bathroom"
		"#Ship_Female_Changing_Room" :			"Female Changing Room"
		"#Ship_Female_Crew_Bathroom" :			"Female Crew Bathroom"
		"#Ship_Female_Crew_Cabin" :			"Female Crew Cabin"
		"#Ship_Female_Crew_Dormitory" :			"Female Crew Dormitory"
		"#Ship_Female_Showers" :			"Female Showers"
		"#Ship_Female_Toilets" :			"Female Toilets"
 "#Ship_First_Class_Corridor" : "First Class Corridor"
 "#Ship_Freezer" : "Freezer"
 "#Ship_For'd_Foyer" : "For'd Foyer"
 "#Ship_Foyer" : 	"Foyer"
		"#Ship_Gallery" :				"Gallery"
		"#Ship_Games_Room" :				"Games Room"
		"#Ship_Gymnasium" :				"Gymnasium"
		"#Ship_Housekeeping" :				"Housekeeping"
 "#Ship_Hot_Tub" : "Hot Tub"
		"#Ship_Kitchen_Name_A" :			"Britannic Kitchen"
		"#Ship_Kitchen_Name_B" :			"The Manhattan Kitchen"
		"#Ship_Kitchen_Name_C" :			"Captain Nemo's Kitchen"
		"#Ship_Kitchen_Name_D" :			"Nuestra Lugar Kitchen"
		"#Ship_Kitchen_Name_E" :			"Mall Cafe Kitchen"
		"#Ship_Kitchen_Name_F" :			"Vesuvius Kitchen"
		"#Ship_Kitchen_Name_G" :			"Presidential Kitchen"
		"#Ship_Kitchen_Name_H" :			"Cassiopeia Kitchen"
		"#Ship_Kitchen_Name_J" :			"Kitchen Name J"
		"#Ship_Kitchen_Name_K" :			"Kitchen Name K"
 "#Ship_Kitchen_Store" : "Kitchen Store"
 "#Ship_Lagoon" : "Lagoon"
		"#Ship_Laundrette" :				"Laundrette"
		"#Ship_Library" :				"Library"
		"#Ship_Lounge_Name_A" :				"The Amber Room"
		"#Ship_Lounge_Name_B" :				"Poseidon Lounge"
		"#Ship_Lounge_Name_C" :				"Discovery Lounge"
		"#Ship_Lounge_Name_D" :				"Orion Lounge"
		"#Ship_Lounge_Name_E" :				"Lounge Name E"
		"#Ship_Lounge_Name_F" :				"Lounge Name F"
		"#Ship_Lounge_Name_G" :				"Lounge Name G"
		"#Ship_Lounge_Name_H" :				"Lounge Name H"
		"#Ship_Lounge_Name_J" :				"Lounge Name J"
		"#Ship_Lounge_Name_K" :				"Lounge Name K"
		"#Ship_Main_Deck" :				"Main Deck"
		"#Ship_Main_Hall" :				"Main Hall"
		"#Ship_Maintenance" :				"Maintenance"
		"#Ship_Male_Bathroom" :				"Male Bathroom"
		"#Ship_Male_Changing_Room" :			"Male Changing Room"
		"#Ship_Male_Crew_Bathroom" :			"Male Crew Bathroom"
		"#Ship_Male_Crew_Cabin" :			"Male Crew Cabin"
		"#Ship_Male_Crew_Dormitory" :			"Male Crew Dormitory"
		"#Ship_Male_Showers" :				"Male Showers"
		"#Ship_Male_Toilets" :				"Male Toilets"
		"#Ship_Mall" :				 "Mall"
 "#Ship_Museum" : "Museum"
		"#Ship_Observation_Deck" :			"Observation Deck"
		"#Ship_Outer_Deck" :				"Outer Deck"
		"#Ship_Pool_Deck" :				"Pool Deck"
 "#Ship_Presidential_Balcony" : "Presidential Balcony"
 "#Ship_Presidential_Bathroom" : "Presidential Bathroom"
 "#Ship_Presidential_Cabin" : "Presidential Cabin"
 "#Ship_Presidential_Captains_Cabin" : "Presidential Captain's Cabin"
 "#Ship_Presidential_Captains_Ensuite" : "Presidential Captain's Ensuite"
 "#Ship_Presidential_Corridor" : "Presidential Corridor"
 "#Ship_Presidential_Dining_Room" : "Presidential Dining Room"
 "#Ship_Presidential_Lobby" : "Presidential Lobby"
 "#Ship_Presidential_Lounge" : "Presidential Lounge"
 "#Ship_Presidential_Observation_Deck" : "Presidential Observation Deck"
		"#Ship_Promenade_Deck" :			"Promenade Deck"
 "#Ship_Raft" : "Raft"
 "#Ship_Release_Room" : "Release Room"
		"#Ship_Restaurant_Name_A" :			"Britannic Restaurant"
		"#Ship_Restaurant_Name_B" :			"The Manhattan Restaurant"
		"#Ship_Restaurant_Name_C" :			"Captain Nemo's Buffet"
		"#Ship_Restaurant_Name_D" :			"Nuestra Lugar"
		"#Ship_Restaurant_Name_E" :			"Santorini Restaurant"
		"#Ship_Restaurant_Name_F" :			"Cassiopeia"
		"#Ship_Restaurant_Name_G" :			"Restaurant Name G"
		"#Ship_Restaurant_Name_H" :			"Restaurant Name H"
		"#Ship_Restaurant_Name_J" :			"Restaurant Name J"
		"#Ship_Restaurant_Name_K" :			"Restaurant Name K"
		"#Ship_Sauna" :					"Sauna"
		"#Ship_Security_Booth" :			"Security Booth"
		"#Ship_Security_Corridor" :			"Security Corridor"
		"#Ship_Security_Office" :			"Security Office"
 "#Ship_Second_Class_Corridor" : "Second Class Corridor"
		"#Ship_Sickbay_Corridor" :			"Sickbay Corridor"
		"#Ship_Sickbay_Doctors_Office" :		"Sickbay Doctor's Office"
		"#Ship_Sickbay_Psychiatrists_Office" :		"Sickbay Psychiatrist's Office"
		"#Ship_Sickbay_Reception" :			"Sickbay Reception"
		"#Ship_Sickbay_Ward" :				"Sickbay Ward"
		"#Ship_Sky_Deck" :				"Sky Deck"
		"#Ship_Smoking_Lounge" :			"Smoking Lounge"
		"#Ship_Staffroom" :				"Staffroom"
		"#Ship_Stairwell" :				"Stairwell"
		"#Ship_Sun_Deck" :				"Sun Deck"
		"#Ship_Swimming_Pool" :				"Swimming Pool"
		"#Ship_Swimming_Pool_Corridor" :		"Swimming Pool Corridor"
		"#Ship_Theatre" :				"Theatre"
 "#Ship_Third_Class_Corridor" : "Third Class Corridor"
 "#Ship_Unisex_Bathroom" :			"Bathroom"
 "#Ship_Unisex_Showers" :			"Showerblock"
 "#Ship_Unisex_Toilets" :			"Toilet"
 	"#Ship_Vent" :					"Vent"
 "#Ship_Verandah" : "Verandah"
 "#Ship_Walkway" : "Walkway"
 "#Ship_Waterfall" : "Waterfall"
	]
	
	RoomNumber(integer) : "Room Number" : 0 : "Adds a number after the room name but before the deck. If zero then no number is added e.g. RoomName 1"
	
	RoomDeck(choices) : "Room Deck" : "#Ship_NoDeck" : "The Deck that this room is on. e.g. RoomName 1, Deck B" =
	[
		"#Ship_DeckA" : "Deck A"
		"#Ship_DeckB" : "Deck B"
		"#Ship_DeckC" : "Deck C"
		"#Ship_DeckD" : "Deck D"
		"#Ship_DeckE" : "Deck E"
		"#Ship_DeckF" : "Deck F"
		"#Ship_DeckG" : "Deck G"
		"#Ship_NoDeck" : "No Deck"
	]
	
	TrespassFine(integer) : "Trespass Fine" : 0 : "Fine for trespassing in this room. If set to zero the default fine will be used for this type of room. If set to -1 you will not be fined for trespassing in this room. If set to greater than zero the value will override the default value set in scripts/rooms/RoomData.txt."
	
	TrespassSentence(integer) : "Trespass Sentence" : 0 : "Sentence for trespassing in this room. If set to zero the default sentence will be used for this type of room. If set to -1 you will not be sentenced for trespassing in this room. If set to greater than zero the value will override the default value set in scripts/rooms/RoomData.txt."
	
	Soundscape(target_source) : "Triggered Soundscape" : : "Pick a soundscape you want to trigger using this room. Leave it blank for no soundscape."
	
	AlarmSound(sound) : "Alarm Sound" : : "Alarm Sound played if a player is found trespassing. Defaults to Alarm.Intruder"
	
	NeedEventOnTouch(string) : "Need Event ID on Enter" : "None" : "The need event ID of the need event to trigger when entering this ship room. Pick only events that modify the background tickup."
	NeedEventOnEndTouch(string) : "Need Event ID on Leave" : "None" : "The need event ID of the need event to trigger when leaving this ship room. Pick an event which resets the effects of the entering Need event."
]
@SolidClass base(Trigger) = ship_trigger_weapon_dissolve :
	"A volumetric trigger that dissolves all weapons within it"
[
	spawnflags(flags) = 
	[
		2048:	"Weapons/Items"		: 1
	]
	
	materialname(string) : "Material Effect Name" : "sprites/bubble.vmt" : "Name of the sprite to be used for the dissolve effect."
]
@SolidClass base(Targetname, Parentname) sphere(useradius) = ship_base_interaction : "Entity used to provide player interaction capabilities on the ship"
[
 useradius(float) : "Radius of Use Effect" : "0" : "Not used yet - the radius of effect for when this item is interacted with"
 
 csi_menu(choices) : "CSI Menu" : 0 : "CSI menu which should be shown when user interacts with this. If the CSI menu items below are all <default> then the default CSI Menu is used (see CSIMenus.txt file)." =
 [
 0 : "none"
 1 : "Person"
 2 : "Weapon"
 3 : "Vending Machine"
 4 : "Toilet"
 5 : "Chair"
 6 : "Bed"
 7 : "Bar"
 8 : "Door"
 9 : "Entertainment"
 10 : "Wash"
 11 : "Security Guard"
 12 : "Trap"
 13 : "Food"
 14 : "Drink"
 15 : "Container"
 16 : "Bank"
 17 : "Bank (Deposit Only)"
 18 : "Bank (Withdrawl Only)"
 19 : "Shop"
 20 : "Restaurant"
 21 : "Cafe"
 22 : "Doctor"
 23 : "Shrink"
 24 : "Vending (Secret Door)"
 25 : "Lift"
 26 : "Freezer Trap"
 27 : "Sauna Trap"
 28 : "Crew AI"
 29 : "Sickbay Receptionist"
 30 : "Lift Start at Deck B"
 31 : "Recliner"
 32 : "Steam Trap"
 33 : "Satchel"
 34 : "Special Item"
 35 : "Lift Start at Deck C"
 36 : "Other Entertainment"
 ]
 
 default_action(choices) : "Default Action" : 0 : "Default action which player should perform when using this entity" =
 [
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_1(choices) : "CSI Menu Item 1" : -1 : "Override 1st menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_2(choices) : "CSI Menu Item 2" : -1 : "Override 2nd menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_3(choices) : "CSI Menu Item 3" : -1 : "Override 3rd menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_4(choices) : "CSI Menu Item 4" : -1 : "Override 4th menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_5(choices) : "CSI Menu Item 5" : -1 : "Override 5th menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_6(choices) : "CSI Menu Item 6" : -1 : "Override 6th menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_7(choices) : "CSI Menu Item 7" : -1 : "Override 7th menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 csi_menu_item_8(choices) : "CSI Menu Item 8" : -1 : "Override 8th menu item in CSI Menu with this action." =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 
 examine_text_override(choices) : "Examine Text Override" : 0 : "If you wish to override the default examine text for the CSI Menu used set this to a value other than <none>." =
 [
 0 : "none"
 1 : "Locked Door"
 2 : "Shower"
 3 : "Bath" 
 4 : "Bed Pan"
 5 : "Book"
 6 : "Pool Table"
 7 : "Bookcase"
 8 : "Book Shelf"
 9 : "Magazine Rack"
 10 : "Waiter"
 11 : "Elevator Call Button"
 12 : "Stewardess"
 13 : "Engineer"
 14 : "Bridge Officer"
 15 : "Doctor"
 16 : "Psychiatrist"
 17 : "Sickbay Receptionist"
 18 : "Steward"
 19 : "Lifeboat Trap"
 20 : "Barman"
 21 : "Vending Machine"
 22 : "Passenger"
 23 : "Bank Manager"
 24 : "Dancefloor"
 25 : "Security Guard"
 26 : "Captain"
 27 : "Corpse - Not Used in Hammer"
 ]
 
 interaction_surface_name(string) : "Interaction Surface" : "TOOLS/TOOLSINTERACTIVE" : "Surface texture used for interaction."
 
 target_entity(target_destination) : "Target Interaction Entity" : "" : "This is the Name of the object/entity which this brush is allowing the user to interact with."
 
 // outputs 
 output OnUse(void)		: "Fires when user uses this entity"
 output OnExamine(void)		: "Fires when user examines this entity"
 
 input RestrictCSI(integer) : "Restrticts choice of CSI - used in SP mission."
	 input UnrestrictCSI(void) : "Unrestricts choice of CSI - used in SP mission."
	 
	 csi_menu_item_restricted_1(choices) : "CSI Menu Item Restricted 1" : -1 : "Force CSI to show this alternative action" =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
 csi_menu_item_restricted_2(choices) : "CSI Menu Item Restricted 2" : -1 : "Force CSI to show this alternative action" =
 [
 -1 : "default"
 0 : "none"
 1 : "Talk"
 2 : "Push"
 3 : "Pickup"
 4 : "Drop"
 5 : "Examine"
 6 : "Vend Bottle"
 7 : "Vend Can"
 8 : "Vend Crisps"
 9 : "Vend Candy"
 10 : "Pee"
 11 : "Poo"
 12 : "Sit"
 13 : "Sleep"
 14 : "Cocktail"
 15 : "Pint"
 16 : "Shot"
 17 : "Wine"
 18 : "Open"
 19 : "Close"
 20 : "Read"
 21 : "Wash Shower"
 22 : "Bribe Info Min"
 23 : "Release"
 24 : "Eat"
 25 : "Drink"
 26 : "Play"
 27 : "Bank: Small Deposit"
 28 : "Bank: Medium Deposit"
 29 : "Bank: Large Deposit"
 30 : "Bank: Deposit All"
 31 : "Bank: Small Withdrawl"
 32 : "Bank: Medium Withdrawl"
 33 : "Bank: Large Withdrawl"
 34 : "Bank: Withdraw All"
 35 : "Shop"
 36 : "Restaurant 3 Course"
 37 : "Restaurant 2 Course"
 38 : "Snack"
 39 : "Coffee"
 40 : "Sandwich"
 41 : "Heal"
 42 : "Therapy"
 43 : "Secret Door"
 44 : "Dance"
 45 : "Floor1"
 46 : "Floor2"
 47 : "Floor3"
 48 : "Floor4"
 49 : "Trap: Activate"
 50 : "Trap: Deactivate"
 51 : "Wash Hands"
 52 : "Wash Bathe"
 53 : "Bribe Info Medium"
 54 : "Bribe Info Max"
 55 : "Bribe Ignore Crime Min"
 56 : "Bribe Ignore Crime Med"
 57 : "Bribe Ignore Crime Max"
 58 : "Crew Give Item"
 59 : "Crew Give Money Min"
 60 : "Crew Give Money Med"
 61 : "Crew Give Money Max"
 62 : "Read Plaque"
 ]
]
@PointClass base(Targetname) = interaction_manager : "Look Manager"
[
]
@SolidClass base(Targetname, Parentname, Origin) = ship_lift : "Ship Lift (aka Elevator)"
[
	num_floors(choices) : "Number of Floors" : 2 : "The number of floors this lift stops at." =
 [
 2 : "2 Floors"
 3 : "3 Floors"
 4 : "4 Floors"
 ]
 
 lift_door_left(target_destination) : "Left-hand lift door" : "" : "This is the Name of the func_door entity to be used for the left lift door."
 lift_door_right(target_destination) : "Right-hand lift door" : "" : "This is the Name of the func_door entity to be used for the right lift door."
 
 floor1_door_left(target_destination) : "Left-hand door at floor 1" : "" : "This is the Name of the func_door entity to be used for the left door at floor 1."
 floor1_door_right(target_destination) : "Right-hand door at floor 1" : "" : "This is the Name of the func_door entity to be used for the right door at floor 1."
 floor2_door_left(target_destination) : "Left-hand door at floor 2" : "" : "This is the Name of the func_door entity to be used for the left door at floor 2."
 floor2_door_right(target_destination) : "Right-hand door at floor 2" : "" : "This is the Name of the func_door entity to be used for the right door at floor 2."
 floor3_door_left(target_destination) : "Left-hand door at floor 3" : "" : "This is the Name of the func_door entity to be used for the left door at floor 3. Leave blank if there's less than 3 floors"
 floor3_door_right(target_destination) : "Right-hand door at floor 3" : "" : "This is the Name of the func_door entity to be used for the right door at floor 3. Leave blank if there's less than 3 floors"
 floor4_door_left(target_destination) : "Left-hand door at floor 4" : "" : "This is the Name of the func_door entity to be used for the left door at floor 4. Leave blank if there's less than 4 floors"
 floor4_door_right(target_destination) : "Right-hand door at floor 4" : "" : "This is the Name of the func_door entity to be used for the right door at floor 4. Leave blank if there's less than 4 floors"
 
 lift_indicator(target_destination) : "Lift Indicator Lights" : "" : "This is the Name of the dynamic prop entity to be used for the inside lift lights to show which floor the lift is at."
 lift_direction(target_destination) : "Lift Direction Indicator" : "" : "This is the Name of the dynamic prop entity to be used for the inside lift arrows to show the direction the lift is travelling."
 
 floor1_indicator(target_destination) : "Indicator at floor 1" : "" : "This is the Name of the dynamic prop entity to be used for the outside lift indicator at floor 1 to show which floor the lift is at."
 floor2_indicator(target_destination) : "Indicator at floor 2" : "" : "This is the Name of the dynamic prop entity to be used for the outside lift indicator at floor 2 to show which floor the lift is at."
 floor3_indicator(target_destination) : "Indicator at floor 3" : "" : "This is the Name of the dynamic prop entity to be used for the outside lift indicator at floor 3 to show which floor the lift is at."
 floor4_indicator(target_destination) : "Indicator at floor 4" : "" : "This is the Name of the dynamic prop entity to be used for the outside lift indicator at floor 4 to show which floor the lift is at."
 
 distance_between_floors(float) : "Distance between floors" :100 : "Distance the lift has to travel between floors"
 
 speed(float) : "Speed" :20 : "Speed at which the lift moves between floors"
	
	// inputs
	input SetDestination(integer)	 : "Sets the destination floor (between 1 and the number of floors)"
	input KeepOpen(void) : "Keeps doors open"
	input AllowClose(void) : "Allows doors to shut again"
]
@PointClass base(Targetname) = ship_trap : "Ship Trap"
[
	start_on(integer) : "Start On" : 0 : "Flag to set the toggle on at the start."
	money_for_kill(integer) : "Money For Kill" : 0 : "Money value that a player will get if they get a successful kill with this trap."
	
	// inputs
	input Toggle(void) : "Toggles the value off->on, on->off"
	input ResetActivator(void) : "Resets the trap so the player who activated the trap no-longer gets awarded for the kill"
	
	// outputs
	output OnActivate(bool) 	: "Fired when the trap is activated." 
	output OnDeactivate(bool) 	: "Fired when the trap is deactivated."
]
//-------------------------------------------------------------------------
//
// AI
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Angles, RenderFields, Shadow, Parentname) = BaseShipAI
[
	spawnflags(flags) =
	[
		1 : "Damage events only: un-killable" : 0
	]
	
	// inputs
	input SetAnimation(string)	: "Sets the animation that you want this AI to play"
	input StopAnimation(void)	: "Stops the animation that this AI is playing"
	input SetAccessories(integer)	: "Sets the accessories/ Body Group for this AI"
	
	// outputs 
 output OnTalkTo(void)		: "Fires when user talks to this AI"
 output OnExamine(void)		: "Fires when user chooses Examine from CSI menu"
 
 secondary_idle_anim_1(string) 	: "Idle Animation 1" : "" : "Idle animation that will occasionally be played instead of the breathing animation."
 secondary_idle_anim_2(string) 	: "Idle Animation 2" : "" : "Idle animation that will occasionally be played instead of the breathing animation."
 secondary_idle_anim_3(string) 	: "Idle Animation 3" : "" : "Idle animation that will occasionally be played instead of the breathing animation."
 secondary_idle_anim_4(string) 	: "Idle Animation 4" : "" : "Idle animation that will occasionally be played instead of the breathing animation."
 secondary_idle_anim_5(string) 	: "Idle Animation 5" : "" : "Idle animation that will occasionally be played instead of the breathing animation."
 
 secondary_idle_min_wait_time(float) : "Idle Min Wait Time" : "5.0" : "Minimum number of seconds that this AI will wait before playing one of the above Idle anims."
 secondary_idle_max_wait_time(float) : "Idle Max Wait Time" : "10.0" : "Maximum number of seconds that this AI will wait before playing one of the above Idle anims."
 
 target_entity(target_destination) : "Target Interaction Entity" : "" : "This is the name of a ship_base_interaction that points to the object/entity which this AI is allowing the user to interact with."
 
 examine_text_override(choices) : "Examine Text Override" : 0 : "If you wish to override the default examine text for the CSI Menu used set this to a value other than <none>." =
 [
 0 : "none"
 1 : "Locked Door"
 2 : "Shower"
 3 : "Bath" 
 4 : "Bed Pan"
 5 : "Book"
 6 : "Pool Table"
 7 : "Bookcase"
 8 : "Book Shelf"
 9 : "Magazine Rack"
 10 : "Waiter"
 11 : "Elevator Call Button"
 12 : "Stewardess"
 13 : "Engineer"
 14 : "Bridge Officer"
 15 : "Doctor"
 16 : "Psychiatrist"
 17 : "Sickbay Receptionist"
 18 : "Steward"
 19 : "Lifeboat Trap"
 20 : "Barman"
 21 : "Vending Machine"
 22 : "Passenger"
 23 : "Bank Manager"
 24 : "Dancefloor"
 25 : "Security Guard"
 26 : "Captain"
 ]
 
 EnableAccessories(integer) 	: "Enable Accessories" : 0 : "Sets the accessories/ body group to be enabled for this AI and defines which one to use (0 = off, 1 = first choice etc.)"
]
@PointClass base(BaseShipAI) studio() = ai_shipmate : "Ship Mate"
[
	model(studio) : "World model" : "models/char/npc_guard.mdl"	
]
@PointClass base(BaseShipAI) studio() = ship_security_guard : "Security Guard"
[
	model(studio) : "World model" : "models/char/npc_guard.mdl"
	booth(target_destination) 	: "Security Booth" : "" : "Name of the Security Booth entity."
	areavolume(target_destination) 	: "Area Volumes" : "" : "Name of the room or rooms that this guard checks for crimes in."	
	maxbribetimer(integer) : "Time for the guard to stay bribed" : 10 : "Time in seconds that it will take for this guard to remain bribed for."
	
	// inputs
	input EnableBribe(void)		 : "Enables the player bribing this Security Guard"
	input DisableBribe(void)	 : "Disables the player bribing this Security Guard"
	input AddTargetInView(target_destination) : "Adds the target to the entities seen by this Security Guard"
	input RemoveTargetInView(target_destination) : "Removes the target from the entities seen by this Security Guard"
	input SetBooth(string) 		 : "Sets the booth to use for this Security Guard." 
	input SetAreaVolume(string) 		 : "Sets the area volume to use for this Security Guard."
	input ShowViewCone(void)		 : "Shows the view cone the Security Guard uses."
	input HideViewCone(void)		 : "Hides the view cone the Security Guard uses."
	
	// outputs
 output OnBribe(void)		: "Fires when user chooses Bribe from CSI menu"
 output OnBribeFinished(void)	: "Fires when the bribe max time is reached, the guard is no longer bribed"
]
@PointClass base(BaseShipAI) studio() = ship_doctor : "Doctor"
[
	model(studio) : "World model" : "models/char/npc_doctor.mdl"
	target_entity_DoctorHeal(target_destination) : "Doctor Heal Interaction" : "" : "This is the name of a ship_base_interaction that points to the doctor's chair to be used"
	target_entity_SickbayHeal(target_destination) : "Sickbay Heal Interaction" : "" : "This is the name of a ship_base_interaction that points to the sickbay bed to be used"
]
@PointClass base(BaseShipAI) studio() = ship_psychiatrist : "Psychiatrist"
[
	model(studio) : "World model" : "models/char/npc_psychiatrist.mdl"
	target_entity_ShrinkHeal(target_destination) : "Shrink Heal Interaction" : "" : "This is the name of a ship_base_interaction that points to the psychiatrists's chair to be used"	
]
@PointClass base(BaseShipAI) studio() = ship_sickbay_receptionist : "Sickbay Receptionist"
[
	model(studio) : "World model" : "models/char/npc_nurse.mdl"
	target_entity_DoctorHeal(target_destination) : "Doctor Heal Interaction" : "" : "This is the name of a ship_base_interaction that points to the doctor's chair to be used"
	target_entity_SickbayHeal(target_destination) : "Sickbay Heal Interaction" : "" : "This is the name of a ship_base_interaction that points to the sickbay bed to be used"
	target_entity_ShrinkHeal(target_destination) : "Shrink Heal Interaction" : "" : "This is the name of a ship_base_interaction that points to the psychiatrists's chair to be used"	
]
//-------------------------------------------------------------------------
//
// Multiplayer
//
//-------------------------------------------------------------------------
@PointClass base(PlayerClass, Angles) studio("models/editor/playerstart.mdl") = info_player_deathmatch :
	"This entity indicates the position and facing direction at which the player will spawn during a deathmatch map. Any number of "+
	"info_player_deathmatch entities may be placed in a map."
[
]
//-------------------------------------------------------------------------
//
// Single Player
//
//-------------------------------------------------------------------------
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = ship_missionstatustracker: "Entity to inform of mission status for menu control"
[
	input SetStatus(integer) : "Set mission status (0 - In Progress, 1 - Succeeded, 2 - Failed)"
	input SetMission(integer) : "Set mission number (1 = First Mission)"
	input SetEndMissionStatus(integer) : "Set end of mission status (0 - None, 1 - Success, 2 - Fail, 3 - Busted by Camera, 4 - Busted by Guard, 5 - Busted by Nurse)"
]
@PointClass base(Targetname) = ship_mrx_talker: "Controls when MrX appears on the HUD"
[
	input Show(void) : "Shows the MrX image on the HUD"
	input Hide(void) : "Hides the MrX image on the HUD"
]
@NPCClass base(TalkNPC) studio() = ai_shipbase : "Base Ship AI"
[
	model(studio) : "World model" : "models/char/npc_guard.mdl"
	
	// inputs
	input SetAccessories(integer)	: "Sets the accessories/ Body Group for this AI"
	input EnableGiveItem(void)	: "Enables the player being able to give an item to this AI."
	input DisableGiveItem(void)	: "Disables the player being able to give an item to this AI."
	input EnableGiveMoney(void)	: "Enables the player being able to give money to this AI."
	input DisableGiveMoney(void)	: "Disables the player being able to give money to this AI."
	input GivePlayerMoney(integer)	: "Gives the player the specified amount of money in their cash."
	input SetMoney(integer)		: "Sets the amount of money this AI has."
	
	// outputs 
 output OnTalkTo(void)		: "Fires when user talks to this AI"
 output OnPoisoned(void)		: "Fires when user poisons this AI"
 output OnDrugged(void)		: "Fires when user drugs this AI"
 output OnInjected(void)		: "Fires when user injects this AI with something"
 output OnExamine(void)		: "Fires when user chooses Examine from CSI menu"
 output OnFailSchedule(void)	: "Fires when shipmate fails to complete a schedule"
 output OnGiveItem(void)		: "Fires when player gives an item to this AI"
 output OnGiveMoneyMin(void)	: "Fires when player gives min amount of money to this AI"
 output OnGiveMoneyMed(void)	: "Fires when player gives medium amount of money to this AI"
 output OnGiveMoneyMax(void)	: "Fires when player gives max amount of money to this AI"
 
 examine_text_override(choices) : "Examine Text Override" : 0 : "If you wish to override the default examine text for the CSI Menu used set this to a value other than <none>." =
 [
 0 : "none"
 1 : "Locked Door"
 2 : "Shower"
 3 : "Bath" 
 4 : "Bed Pan"
 5 : "Book"
 6 : "Pool Table"
 7 : "Bookcase"
 8 : "Book Shelf"
 9 : "Magazine Rack"
 10 : "Waiter"
 11 : "Elevator Call Button"
 12 : "Stewardess"
 13 : "Engineer"
 14 : "Bridge Officer"
 15 : "Doctor"
 16 : "Psychiatrist"
 17 : "Sickbay Receptionist"
 18 : "Steward"
 19 : "Lifeboat Trap"
 20 : "Barman"
 21 : "Vending Machine"
 22 : "Passenger"
 23 : "Bank Manager"
 24 : "Dancefloor"
 25 : "Security Guard"
 26 : "Captain"
 ]
 
 sex(choices) : "Sex" : 1 : "The sex of the ship AI." =
 [
 0 : "none"
 1 : "Male" 
 2 : "Female"
 ]
 
 type(choices) : "Type" : "CLASS_NONE" : "The type/class of ship AI." =
 [
 	"CLASS_NONE"			: "<none>" 
 	
		"CLASS_SHIP_CREW"		: "Crew"
		"CLASS_SHIP_CAPTAIN"		: "Captain"
		"CLASS_SHIP_BANK_MANAGER" 	: "Bank Manager"
		"CLASS_SHIP_GUARD"		: "Guard"
		"CLASS_SHIP_BELLBOY"		: "Bellboy"
		"CLASS_SHIP_BARMAN"		: "Barman"
		
 	"CLASS_SHIP_PASSENGER" 		: "Passenger"
 	"CLASS_SHIP_QUARRY"		: "Quarry"
 	"CLASS_SHIP_THUG"		: "Thug"
 	"CLASS_SHIP_KIDNAPPER"		: "Kidnapper"
 	"CLASS_SHIP_BILL_POPE"		: "Bill Pope"
 	
 	"CLASS_SHIP_ALLY"		: "Ally"
 	"CLASS_SHIP_FENCE"		: "Fence"
 	"CLASS_SHIP_AMBASSADOR"		: "Ambassador"
 	"CLASS_SHIP_GRAINGER"		: "Grainger"
 	"CLASS_SHIP_TAKAMURA"		: "Takamura"
 	"CLASS_SHIP_MISS_TWEED"		: "Miss Tweed"
 ]
 
 EnableAccessories(integer) 	: "Enable Accessories" : 0 : "Sets the accessories/ body group to be enabled for this AI and defines which one to use (0 = off, 1 = first choice etc.)"
 
 additionalequipment(choices) : "Weapon" : "0" =
	[
		"0"				: "<none>"
		"weapon_axe"		: "Axe"
		"weapon_baseball_bat"	: "Baseball Bat"	
		"weapon_bbq_fork"	: "BBQ Fork"
		"weapon_blunder"	: "Blunderbuss"
		"weapon_candlestick"	: "Candlestick"
		"weapon_claymore"	: "Claymore"
		"weapon_cleaver"	: "Cleaver"
		"weapon_cooking_pot"	: "Cooking Pot"
		"weapon_croquet_mallet"	: "Croquet Mallet"
		"weapon_crowbar"	: "Crowbar"
		"weapon_cut_throat"	: "Cutthroat Razor"
		"weapon_flaregun"	: "Flare Gun"
		"weapon_frying_pan"	: "Frying Pan"
		"weapon_ghurka"		: "Khukri"
		"weapon_golf_club"	: "Golf Club"
		"weapon_hammer"		: "Hammer"
		"weapon_hunting_knife"	: "Hunting Knife"
		"weapon_katana"		: "Katana"
		"weapon_kitchen_knife"	: "Kitchen Knife"
		"weapon_letter_knife"	: "Letter Knife"
		"weapon_mannequin_arm"	: "Mannequin Arm"
		"weapon_needle"		: "Needle"
		"weapon_paddle"		: "Paddle"
		"weapon_pipe"		: "Pipe"
		"weapon_pool_cue"	: "Pool Cue"
		"weapon_purse"		: "Purse"
		"weapon_racquet"	: "Tennis Racquet"
		"weapon_revolver"	: "Revolver"
		"weapon_rolling_pin"	: "Rolling Pin"
		"weapon_satchel"	: "Wallet"
		"weapon_scalpel"	: "Scalpel"
		"weapon_screwdriver"	: "Screwdriver"
		"weapon_shovel"		: "Shovel"
		"weapon_spanner"	: "Spanner"
		"weapon_syringe"	: "Syringe"
		"weapon_tommygun"	: "Tommy Gun"
		"weapon_truncheon"	: "Truncheon"
		"weapon_umbrella"	: "Umbrella"
		"weapon_walking_stick"	: "Walking Stick"
		"weapon_winchester"	: "Winchester"
		"weapon_wrench"		: "Wrench"
	]
]//end of ai_shipbase
@NPCClass base(ai_shipbase) studio() = ai_crewmate : "Crew Mate"
[
]
@PointClass base(Targetname) = ship_mission: "Manages one mission in a map"
[
	// Success Conditions 
 success_in_room(target_destination) 	 : "In Room" 	 : "" : "The room entity that will trigger a sucess"
 success_person_killed(target_destination) : "Person Killed" : "" : "The person entity that will trigger a sucess when killed"
 success_person_damaged(target_destination) : "Person Damaged" : "" : "The person entity that will trigger a sucess when damaged"
 success_person_poisoned(target_destination) : "Person Poisoned" : "" : "The person entity that will trigger a sucess when poisoned"
 success_person_drugged(target_destination) : "Person Drugged" : "" : "The person entity that will trigger a sucess when drugged"
 success_person_bribed(target_destination) : "Person Bribed" : "" : "The person entity that will trigger a sucess when bribed"
 success_item_picked_up(target_destination) : "Item Picked Up" : "" : "The item entity that will trigger a sucess when picked up"
 success_item_found(target_destination) : "Item Found" : "" : "The item entity that will trigger a sucess when found"
 success_item_used(target_destination) : "Item Used" : "" : "The item entity that will trigger a sucess when used"
 success_talk_to_person(target_destination) : "Talk to Person" : "" : "The person entity that will trigger a sucess when talked to"
 success_item_given(target_destination) : "Item Given" : "" : "The item entity that will trigger a sucess when given to someone"
 success_at_location(target_destination) : "At Location" : "" : "The location entity that will trigger a sucess when player within it"
 success_item_damaged(target_destination) : "Item Damaged" : "" : "The item entity that will trigger a sucess when damaged"
 
 success_outfit_worn(string) : "Outfit Worn" : "" : "The name of the outfit that will trigger a sucess when worn"
 
 success_continue_key_pressed(choices) : "Continue Key Pressed" : 0 : "Success is triggered if the continue key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_movement_key_pressed(choices) : "Any Movement Key Pressed" : 0 : "Success is triggered if any movement key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_jump_key_pressed(choices) : "Jump Key Pressed" : 0 : "Success is triggered if jump key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_crouch_key_pressed(choices) : "Crouch Key Pressed" : 0 : "Success is triggered if crouch key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_need_key_pressed(choices) : "Need Key Pressed" : 0 : "Success is triggered if need key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_inventory_key_pressed(choices) : "Inventory Key Pressed" : 0 : "Success is triggered if inventory key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_deckplan_key_pressed(choices) : "Deckplan Key Pressed" : 0 : "Success is triggered if deckplan key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_mfk_key_pressed(choices) : "MFK Key Pressed" : 0 : "Success is triggered if MFK key is pressed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_mouse_moved(choices) 	: "Mouse Moved" : 0 : "Success is triggered if the mouse is moved after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_csi_menu_shown(string) 	: "CSI Menu Shown" : "" : "The name of the CSI Menu that will trigger a sucess when shown, e.g. 'CSIMenu_Chair' (see CSIMenus.txt)"
	
	success_inv_item_selected(choices) 	: "Inventory Item Sel" : 0 : "Success is triggered if an Inventory Item is selected after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	success_inv_shown_container(choices) 	: "Inv Shown Via Container" : 0 : "Success is triggered if the Inventory is shown from container panel after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_inv_hot_slot_swapped(choices) 	: "Inv Hot Slot Swapped" : 0 : "Success is triggered if Inventory Hot Slots are swapped after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_inv_closed(choices) 		: "Inventory Closed" : 0 : "Success is triggered if Inventory closed after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	success_deck_plan_shown(choices) 	: "Deck Plan Shown" : 0 : "Success is triggered if Deck Plan shown after this mission is enabled" =
	[
		0 : "No"
		1 : "Yes"
	]
	
	// Failure Conditions 
 failure_arrested(target_destination) 	 : "Arrested" : "" : "Failure triggered on player being arrested"
 failure_player_killed(target_destination) : "PlayerKilled" : "" : "Failure triggered on player being killed"
 failure_killing_person(target_destination) : "PersonKilled" : "" : "Failure triggered on person entity being killed"
 failure_exceeded_time(integer) : "Exceeded Time" : 0 : "Failure triggered on mission time exceeding the time timit" 
 
 hud_location(target_destination) : "HUD Location" : "" : "Either: " +
																				" - A trigger room entity (the room will be the objective location)" +
																				" - An NPC (location will update as NPC moves between rooms)" +
																				" Room will be highlighted on deckplan and displayed on HUD."
 
 hud_model(choices) : "HUD Model" : "" : "Name of HUD texture showing the target of this objective." =
 [
			""				: "<none>"
			"Helmet"		: "King Meskalamdug's Helmet"
			"Painting"		: "A Rembrandt Painting"
			"HolyGrail"		: "The Holy Grail"
			"Ambassador"	: "Ambassador"
			"Bellboy"		: "Bellboy"
			"Barman"		: "Barman"
			"Fence"			: "Fence"
			"Grainger"		: "Grainger"
			"MissTweed"		: "Miss Tweed"
			"Radar"			: "The Ship's Radar"
			"Takamura"		: "Takamura"
			"BankManager"	: "Bank Manager"
			"Captain"		: "Captain"
			"Kidnapper"		: "Kidnapper"
			"SPQuarry"		: "Quarry"
			"Thug"			: "Thug"
			"HudQuarryAnon" : "Anonymous Quarry"
			"Doppelganger"	: "Doppelganger"
			"BillPope"		: "Bill Pope"
			"PoisonSyringe"	: "Poison Syringe"
			"SleepSyringe"	: "Sleep Syringe"
			"OutfitMaleGuard"	: "Guard Outfit"
			"BarmanMark1"	: "Barman Mark 1"
			"BarmanMark2"	: "Barman Mark 2"
			"BarmanMark3"	: "Barman Mark 3"
			"BarmanMark4"	: "Barman Mark 4"
			"BarmanMark5"	: "Barman Mark 5"
 ]
 
 mission(string) : "Mission Name" : "" : "Name of mission (see mission_obj.txt file, e.g. SP_Mission_1_KillQuarry)."
 objective(string) : "Objective Name" : "" : "Name of objective (see mission_obj.txt file, e.g. SP_Mission_1_Obj_1_KillQuarry)."
 
 checkpoint(choices)	: "Checkpoint" : 0 : "Whether or not this mission objective is a save checkpoint" =
 [
		0 : "No"
		1 : "Yes"
 ]
 
	// inputs
	input Enable(void)	 : "Enables this mission"
	input Disable(void)	 : "Disables this mission"
	input ForceSuccess(void) : "Forces a success state for this mission"
	input ForceFailure(void) : "Forces a failure state for this mission"
	input BeginIntro(void) : "Starts the pre-mission sequence for this mission"
	input EndIntro(void) : "Stops the pre-mission sequence for this mission"
	input DisableHints(void) : "Stops this mission from showing any more hints"
	input EnableHints(void)	: "Allows this mission to show hints again"
	
	// outputs
	output OnEnabled(void) 	 : "Fires when this mission has been enabled"
	output OnDisabled(void) : "Fires when this mission has been disabled"
	output OnCompleted(void) : "Fires when this mission has been completed"
	output OnFailed(void) : "Fires when this mission has been failed"
	output OnBypassed(void)	 : "Fires when this mission is bypassed when loading a more advanced one." +
				 "Entities which should be killed/removed by the player during this mission should be cleaned up"
]
@PointClass base(BasePropPhysics, Targetname, Angles, DamageFilter) studio("models/Env/Misc/radar/radar_a_base.mdl") = ship_radar_room : "Ship Radar Room"
[
	// Inputs
	input Break(void) : "Breaks the breakable."
	input SetHealth(integer) : "Sets a new value for health. If the breakable's health reaches zero it will break."
	input AddHealth(integer) : "Adds health to the breakable. If the breakable's health reaches zero it will break."
	input RemoveHealth(integer) : "Removes health from the breakable. If the breakable's health reaches zero it will break."
	
	output OnBreak(void) : "Fires when broken."
	
	input SetBodyGroup(integer)	: "Sets the Body Group to use for this entity."
]
@PointClass base(Targetname, Angles, Studiomodel) sphere(LocationRadius) iconsprite("editor/info_target.vmt") studioprop() = ship_location_radius
[
	LocationRadius(float) : "Radius" : "20.0" :	"Radius for the player to be within"
]
@SolidClass base(BaseTrain) = func_wheelchair :
	"A moving platform that the player can push. It follows a path of path_track entities.\n" +
	"NOTE: Build your train so that the front of the train is facing down the X axis. " +
	"When it spawns it will automatically rotate to face the next path_track on the path."
[
	Passenger(string) : "Passenger name"
	
	spawnflags(Flags) =
	[
		1024 : "Start active" : 0
	]
	
	input TurnOn(void) : "Attaches Passenger."
	input TurnOff(void) : "Detaches Passenger."
	input PushModeOn(void) : "Starts wheelchair needing to be pushed."
	input PushModeOff(void) : "Starts wheelchair needing to be pushed." 
	input Reset(void) : "Sends wheelchair back to start of track."
]
@PointClass base(Targetname) = vfx_ship_explode : "Ship Explode" 
[
	input Explode(void) : "Explode"
]
@PointClass base(Targetname, Parentname) = vfx_ship_paddle : "Ship Paddle Effect: Set the parent of this object to be the paddle prop." 
[
]
@PointClass base(Targetname, Parentname) = vfx_sauna_steam : "Sauna Room Effect: Position horizontally within the centre of coal brazier, vertically place the centre of this object at the top of the coal brazier object. Set the parent of this object to be the room trigger entity. Connect OnActivate output of ship_trap object to StartKillerSteam and OnDeactivate to StopKillerSteam." 
[
	input StartKillerSteam(void) : "Starts steam trap effect."
	input StopKillerSteam(void) : "Stops steam trap effect."
]
@PointClass base(Targetname, Parentname) = vfx_freezer : "Freezer Room Effect: Position anywhere in the map. Set the parent of this object to be the room trigger entity. Connect OnActivate output of ship_trap object to StartFreeze and OnDeactivate to StopFreeze." 
[
	door_to_freeze(string) : "Door to frost" : "" : "Door in which frost will appear. Should be a Env/Doors/kit_door/kit_door.mdl or similar with window in same place."
	input StartFreeze(void) : "Starts freezer trap effect."
	input StopFreeze(void) : "Stops freezer trap effect."
]
@PointClass base(Targetname) = vfx_ship_waterfall : "Waterfall spray and froth : Position at centre-base of waterfall model. Centre of entity object must be at water level." 
[
]
@SolidClass = func_ladder : "Ladder"
[
]
Category:FGD