//Game Data File for XashMod 0.62 (10 March 2013)
//Please report any found errors at: straighf@gmail.com (Subject: "FGD error")
//
// worldspawn
//

@SolidClass = worldspawn : "World entity"
[
	message(string) : "Map Description / Title"
	skyname(string) : "environment map (cl_skyname)"
	sounds(integer) : "CD track to play" : 1
	light(integer) : "Default light level"
	WaveHeight(string) : "Default Wave Height"
	MaxRange(string) : "Max viewable distance" : "4096"
	chaptertitle(string) : "Chapter Title Message"
	startdark(choices) : "Level Fade In" : 0 =
	[	
		0 : "No"
		1 : "Yes"
	]
	gametitle(choices) : "Display game title" : 0 = 
	[	
		0 : "No"
		1 : "Yes"
	]
	newunit(choices) : "New Level Unit" : 0 = 
	[
		0 : "No, keep current"
		1 : "Yes, clear previous levels"
	]
	mapteams(string) : "Map Team List"
	defaultteam(choices) : "Default Team" : 0 = 
	[
		0 : "Fewest Players"
		1 : "First Team"
	]
	gravity(string) : "Global Gravity (0..800)" : 800
	fog(color255): "Global Fog (R G B D)" : "192 168 1 1"
]

//
// BaseClasses
//
@BaseClass = Filter
[
	netname(string) : "Filter (classname or targetname)"
]

@BaseClass = Parent
[
	parent(target_destination) : "Parent"
]

@BaseClass = Reflection
[
	reflection(choices) :"Reflection" : "0" =
	[
		0: "Render With Reflection"
		1: "Do not Reflect"
		2: "Draw Only Reflection"
	]
]

@BaseClass = Sequence
[
	sequence(integer) : "Animation Sequence (editor)"
]

@BaseClass = ZHLT
[
	zhlt_lightflags(choices) : "ZHLT Lightflags" : 0 =
	[
		0 : "Default"
		1 : "Embedded Fix"
		2 : "Opaque (blocks light)"
		3 : "Opaque + Embedded fix"
		6 : "Opaque + Concave Fix"
	]
	light_origin(string) : "Light Origin Target"
	zhlt_invisible(choices) :"Invisible" : "" =
	[
		"": "no"
		1: "yes"
	]
	zhlt_noclip(choices) :"Non solid" : "" =
	[
		"": "no"
		1: "yes"
	]
]

@BaseClass = ZHLT_point
[
	_fade(string) : "ZHLT Fade" : "1.0"
	_falloff(choices) : "ZHLT Falloff" : 0 =
	[
		0 : "Default"
		1 : "Inverse Linear"
		2 : "Inverse Square"
	]
]

@BaseClass = Appearflags
[
	spawnflags(Flags) =
	[
		2048 : "Not in Deathmatch" : 0
	]
]

@BaseClass = Angles
[
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

@BaseClass size(0 0 0, 32 32 32) color(80 0 200) base(Appearflags) = Ammo []

@BaseClass = Targetname 
[ 
	targetname(target_source) : "Name"
]
@BaseClass = Target 
[ 
	target(target_destination) : "Target" 
]
@BaseClass size(-16 -16 0, 16 16 32) color(0 0 200) base(Targetname, Appearflags, Angles) = Weapon []
@BaseClass = Global 
[ 
	globalname(string) : "Global Entity Name" 
]

@BaseClass base(Target) = Targetx 
[
	delay(string) : "Delay before trigger" : "0"
	killtarget(target_destination) : "KillTarget"
]

@BaseClass = RenderFxChoices
[
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
]

@BaseClass base(RenderFxChoices) = RenderFields 
[
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
		6: "World Glow"
	]
	renderamt(integer) : "FX Amount (1 - 255)" : 255
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
	colormap(string) : "TopColor & BottomColor"
]

@BaseClass base(Appearflags, Angles) size(-16 -16 -36, 16 16 36) color(0 255 0) = PlayerClass []

//Special version for scientists
@BaseClass base(Target, Targetname, Reflection, RenderFields, Angles) color(0 200 200) = MonsterNoBody
[
	health(integer) : "Initial Health (0 = normal)"
	model(studio) : "Custom Model"
	skin(integer) : "Skin"
	//body(integer) : "Body"
	m_iClass(choices) : "Behave as" : 0 =
	[
		0 : "No change"
		2 : "Player"
		3 : "Scientist"
		11: "Barney"
		4 : "Human Military"
		1 : "Machine (Human Military)"
		5 : "Alien Military"
		6 : "Alien Passive"
		7 : "Other Alien"
		8 : "Headcrab"
		9 : "Bullsquid"
		99 : "Barnacle"
		10 : "Animals (rats, roaches)"
		12 : "Player's Bioweapon"
		13 : "Alien's Bioweapon"
		14 : "Faction A"
		15 : "Faction B"
		16 : "Faction C"
	]
	TriggerTarget(String) : "TriggerTarget"
    TriggerCondition(Choices) : "Trigger Condition" : 0 =
	[
		0 : "No Trigger"
		1 : "See Player, Mad at Player"
		2 : "Take Damage"
		3 : "50% Health Remaining"
		4 : "Death"
		7 : "Hear World"
		8 : "Hear Player"
		9 : "Hear Combat"
		10: "See Player Unconditional"
		11: "See Player, Not In Combat"
	]
	spawnflags(Flags) = 
	[
		1 : "WaitTillSeen" 	: 0
		2 : "Gag"		: 0
		4 : "MonsterClip"	: 0
		16: "Prisoner"		: 0
		//128: "WaitForScript" 	: 0
		128: "No yellow blobs"  : 0
		256: "Pre-Disaster" 	: 0
		512: "Fade Corpse"	: 0
	]
]

@BaseClass base(Target, Targetname, Reflection, RenderFields, Angles) color(0 200 200) = Monster
[
	health(integer) : "Initial Health (0 = normal)"
	model(studio) : "Custom Model"
	skin(integer) : "Skin"
	body(integer) : "Body"
	m_iClass(choices) : "Behave as" : 0 =
	[
		0 : "No change"
		2 : "Player"
		3 : "Scientist"
		11: "Barney"
		4 : "Human Military"
		1 : "Machine (Human Military)"
		5 : "Alien Military"
		6 : "Alien Passive"
		7 : "Other Alien"
		8 : "Headcrab"
		9 : "Bullsquid"
		99 : "Barnacle"
		10 : "Animals (rats, roaches)"
		12 : "Player's Bioweapon"
		13 : "Alien's Bioweapon"
		14 : "Faction A"
		15 : "Faction B"
		16 : "Faction C"
	]
	TriggerTarget(String) : "TriggerTarget"
    TriggerCondition(Choices) : "Trigger Condition" : 0 =
	[
		0 : "No Trigger"
		1 : "See Player, Mad at Player"
		2 : "Take Damage"
		3 : "50% Health Remaining"
		4 : "Death"
		7 : "Hear World"
		8 : "Hear Player"
		9 : "Hear Combat"
		10: "See Player Unconditional"
		11: "See Player, Not In Combat"
	]
	spawnflags(Flags) = 
	[
		1 : "WaitTillSeen" 	: 0
		2 : "Gag"		: 0
		4 : "MonsterClip"	: 0
		16: "Prisoner"		: 0
		//128: "WaitForScript" 	: 0
		128: "No yellow blobs"  : 0
		256: "Pre-Disaster" 	: 0
		512: "Fade Corpse"	: 0
	]
]
@BaseClass = TalkMonster
[
	UseSentence(String) : "Use Sentence"
	UnUseSentence(String) : "Un-Use Sentence"
	RefusalSentence(String) : "Refusal Sentence"
	master(target_destination) : "Master (prevents following)"
	SpeakAs(string) : "Speech Group"
	spawnflags(Flags) =
	[
		256: "Pre-Disaster" 	: 0
	]
]

@BaseClass base(Targetname, Angles, Parent) size(-16 -16 -16, 16 16 16) = gibshooterbase
[
	// how many pieces to create
	m_iGibs(integer) : "Number of Gibs" : 3
	
	// delay (in seconds) between shots. If 0, all gibs shoot at once.
	delay(string) : "Delay between shots" : "0"

	// how fast the gibs are fired
	m_flVelocity(integer) : "Gib Velocity" : 200

	// Course variance
	m_flVariance(string) : "Course Variance" : "0.15"

	// Time in seconds for gibs to live +/- 5%
	m_flGibLife(string) : "Gib Life" : "4"

	spawnflags(Flags) = 
	[
		1 : "Repeatable" 	: 0
	]
]

@BaseClass = Light 
[
	firetarget(target_destination) : "Fire with light's state"
	_light(color255) : "Brightness" : "255 255 128 200"
    style(Choices) : "Appearance" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
	pattern(string) : "Custom Appearance"
	m_iTurnOnStyle(Choices) : "TurnOnStyle" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
	m_iTurnOnTime(integer): "TurnOffTime"
	m_iTurnOffStyle(Choices) : "TurnOffStyle" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
	m_iTurnOffTime(integer): "TurnOffTime"
	m_iOnStyle(Choices) : "OnStyle" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
	m_iOffStyle(Choices) : "OffStyle" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
]

@BaseClass base(Targetname,Global) = Breakable
[
	target(target_destination) : "Target on break"
	health(integer) : "Strength" : 1
	material(choices) :"Material type" : 0 =
	[
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Cinder Block"  
		5: "Ceiling Tile"
		6: "Computer"
		7: "Unbreakable Glass"
		8: "Rocks"
	]
	explosion(choices) : "Gibs Direction" : 0 =
	[
		0: "Random"
		1: "Relative to Attack"
	]
	delay(string) : "Delay before fire" : "0"
	gibmodel(studio) : "Gib Model" : ""
	spawnobject(choices) : "Spawn On Break" : 0 =
	[
		0: "Nothing"
		1: "Battery"
		2: "Healthkit"
		3: "9mm Handgun"
		4: "9mm Clip"
		5: "Machine Gun"
		6: "Machine Gun Clip"
		7: "Machine Gun Grenades"
		8: "Shotgun"
		9: "Shotgun Shells"
		10: "Crossbow"
		11: "Crossbow Bolts"
		12: "357"
		13: "357 clip"
		14: "RPG"
		15: "RPG Clip"
		16: "Gauss clip"
		17: "Hand grenade"
		18: "Tripmine"
		19: "Satchel Charge"
		20: "Snark"
		21: "Hornet Gun"
	]
	explodemagnitude(integer) : "Explode Magnitude (0=none)" : 0
]

@BaseClass = Fire
[
	netname(target_destination) : "Fire When turnOFF"
	message(target_destination) : "Fire When turnON"
]

@BaseClass base(Appearflags, Targetname, Reflection, RenderFields, Global, Angles) = Door
[
	chaintarget(target_destination) : "Door To Link With (depr.)"
	killtarget(target_destination) : "KillTarget"
	speed(integer) : "Speed" : 100
	master(target_destination) : "Master" 
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "Servo (Sliding)"
		2: "Pneumatic (Sliding)"
		3: "Pneumatic (Rolling)"
		4: "Vacuum"
		5: "Power Hydraulic"
		6: "Large Rollers"
		7: "Track Door"
		8: "Snappy Metal Door"
		9: "Squeaky 1"
		10: "Squeaky 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "Clang with brake"
		2: "Clang reverb"
		3: "Ratchet Stop"
		4: "Chunk"
		5: "Light airbrake"
		6: "Metal Slide Stop"
		7: "Metal Lock Stop"
		8: "Snappy Metal Stop"
	]
	wait(integer) : "delay before close, -1 stay open " : 4
	lip(integer) : "Lip"
	dmg(integer) : "Damage inflicted when blocked" : 0
	message(target_destination) : "Fire on Fully Opened"
	target(target_destination) : "Target"
	delay(string) : "Delay before fire" 
	netname(target_destination) : "Fire on Close"
	health(integer) : "Health (shoot open)" : 0
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		4 : "On/Off Mode" : 0
		8: "Passable" : 0
	    32: "Toggle" : 0
		256:"Use Only" : 0
		512: "Monsters Can't" : 0
	]
	// NOTE: must be duplicated in BUTTON
	locked_sound(choices) : "Locked Sound" : 0 = 
	[
		0: "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	unlocked_sound(choices) : "Unlocked Sound" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		10: "Buzz"
		13: "Latch Unlocked"
	]
	locked_sentence(choices) : "Locked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Denied"
		2: "Security Lockout"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance Door"
		9: "Broken Shut Door"
	]
	unlocked_sentence(choices) : "Unlocked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Granted"
		2: "Security Disengaged"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance area"
	]	
	_minlight(string) : "Minimum light level"
]

@BaseClass base(Targetname, Target, Parent, Reflection, RenderFields, Global, Angles) = BaseTank
[
	spawnflags(flags) =
	[
		1 : "Active" : 0
		16: "Only Direct Vis" : 0
		32: "Controllable" : 0
		128: "Match Crosshair" : 0
	]

	// Mainly for use with 1009 team settings (game_team_master)
	master(target_destination) : "(Team) Master" 
	firemaster(target_destination) : "Fire Master"
	firetarget(string) : "Fire Target (classname or targetname)"
	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(string) : "Smoke Sprite" : ""
	spriteflash(string) : "Flash Sprite" : ""
	spritescale(string) : "Sprite scale" : "1"
	rotatesound(sound) : "Rotate Sound" : ""
	firerate(string) : "Rate of Fire" : "1"
	bullet_damage(string) : "Damage Per Bullet" : "0"
	persistence(string) : "Firing persistence" : "1"
	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"
	m_iClass(choices) : "Set behaviour" : 0 =
	[
		0 : "No change"
		2 : "Player"
		3 : "Scientist"
		11: "Barney"
		4 : "Human Military"
		1 : "Machine (Human Military)"
		5 : "Alien Military"
		6 : "Alien Passive"
		7 : "Other Alien"
		8 : "Headcrab"
		9 : "Bullsquid"
		99 : "Barnacle"
		10 : "Animals (rats, roaches)"
		12 : "Player's Bioweapon"
		13 : "Alien's Bioweapon"
		14 : "Faction A"
		15 : "Faction B"
		16 : "Faction C"
	]
	m_iPlayerReact(choices) : "Reaction to player" : -1 =
	[
		-1 : "No Change"
		0 : "Normal"
		1 : "Ignore"
		2 : "Friendly until hurt"
		3 : "Friendly unless provoked"
		4 : "Enemy"
	]
]

@BaseClass = PlatSounds 
[
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev 1"
		2: "big elev 2"
		3: "tech elev 1"
		4: "tech elev 2"
		5: "tech elev 3"
		6: "freight elev 1"
		7: "freight elev 2"
		8: "heavy elev"
		9: "rack elev"
		10: "rail elev"
		11: "squeek elev"
		12: "odd elev 1"
		13: "odd elev 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev stop1"
		2: "big elev stop2"
		3: "freight elev stop"
		4: "heavy elev stop"
		5: "rack stop"
		6: "rail stop"
		7: "squeek stop"
		8: "quick stop"
	]
	volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
]

@BaseClass base(Targetname, Angles, RenderFields, Global, PlatSounds) = Trackchange
[
	train(target_destination) : "Train to switch"
	toptrack(target_destination) : "Top track"
	bottomtrack(target_destination) : "Bottom track"
	message(target_destination) : "Fire when at the Bottom"
	netname(target_destination) : "Fire when at the Top"
	radius(integer) : "Search Radius"
	height(integer) : "Vert. Travel Altitude" : 0
	width(integer) : "Hor. Travel Altitude" : 0
	rotation(integer) : "Spin amount" : 0
	speed(integer) : "Move/Rotate speed" : 100
	spawnflags(flags) =
	[
		1: "Auto Activate train" : 0
		2: "Relink track" : 0
		8: "Rotate Only" : 0
		16: "Start at Bottom" : 0
		32: "On/Off Mode" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
]

@BaseClass base(Targetname, Target, Targetx, Parent, Filter) = Trigger
[
	master(target_destination) : "Master" 
	//sounds(choices) : "Sound style" : 0 =
	//[
	//	0 : "No Sound"
	//]
	message(string) : "Message (set sound too!)"
	spawnflags(flags) = 
	[
		1: "Monsters" : 0
		2: "No Clients" : 0
		4: "Pushables": 0
		8: "Check Angles" : 0
		16 : "All Physics" : 0
	]
]

//
// Entities
//

@PointClass base(Targetname, Targetx, Parent, Angles) size(-2 -2 0, 2 2 8) color(255 0 255)=aiscripted_sequence:"AI Scripted Sequence"
[
	m_iszEntity(string) : "Target Monster"
	m_iszPlay(string) : "Action Animation" : ""
	m_flRadius(integer) : "Search Radius" : 512
	m_flRepeat(integer) : "Repeat Rate ms" : 0
	m_fMoveTo(Choices) : "Move to Position" : 0 =
	[
		0 : "No"
		1 : "Walk"
		2 : "Run"
		4 : "Instantaneous"
		5 : "No - Turn to Face"
	]
	m_iFinishSchedule(Choices) : "AI Schedule when done" : 0 =
	[
		0 : "Default AI"
		1 : "Ambush"
	]
	spawnflags(Flags) = 
	[
		4 : "Repeatable"		: 0
		8 : "Leave Corpse"	: 0
	]
]

@PointClass iconsprite("sprites/speaker.spr") base(Targetname, Parent) = ambient_generic : "Universal Ambient"
[
	message(sound) : "WAV Name"
	health(integer) : "Volume (10 = loudest)" : 10
	preset(choices) :"Dynamic Presets" : 0 =
	[
		0: "None"
		1: "Huge Machine"
		2: "Big Machine"
		3: "Machine"
		4: "Slow Fade in"  
		5: "Fade in"
		6: "Quick Fade in"
		7: "Slow Pulse"
		8: "Pulse"
		9: "Quick pulse"
		10: "Slow Oscillator"
		11: "Oscillator"
		12: "Quick Oscillator"
		13: "Grunge pitch"
		14: "Very low pitch"
		15: "Low pitch"
		16: "High pitch"
		17: "Very high pitch"
		18: "Screaming pitch"
		19: "Oscillate spinup/down"
		20: "Pulse spinup/down"
		21: "Random pitch"
		22: "Random pitch fast"
		23: "Incremental Spinup"
		24: "Alien"
		25: "Bizzare"
		26: "Planet X"
		27: "Haunted"
	]
	volstart(integer) : "Start Volume" : 0
	fadein(integer) : "Fade in time (0-100)" : 0
	fadeout(integer) : "Fade out time (0-100)" : 0
	pitch(integer) : "Pitch (> 100 = higher)" : 100
	pitchstart(integer) : "Start Pitch" : 100
	spinup(integer) : "Spin up time (0-100)" : 0
	spindown(integer) : "Spin down time (0-100)" : 0
	lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0
	lforate(integer) : "LFO rate (0-1000)" : 0
	lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0
	lfomodvol(integer) : "LFO mod vol (0-100)" : 0
	cspinup(integer) : "Incremental spinup count" : 0
	spawnflags(flags) =
	[
		1 : "Play Everywhere" : 0
		2 : "Small Radius" : 0
		4 : "Medium Radius" : 1
		8 : "Large Radius" : 0
		16 : "Start Silent":0
		32 : "Not Toggled":0
	]
]

@PointClass iconsprite("sprites/speaker.spr") base(Targetname) = ambient_music : "Music Ambient"
[
	message(string) : "File Name" : "media/Half-Life13.mp3"
	spawnflags(flags) =
	[
		1 : "Start On" : 0
		2 : "Loop" : 0
	]
]
//
// ammo
//


@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_9mmclip.mdl") = ammo_9mmclip : "9mm Pistol Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_9mmarclip.mdl") = ammo_9mmAR : "9mm Assault Rifle Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_chainammo.mdl") = ammo_9mmbox : "box of 200 9mm shells" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_argrenade.mdl") = ammo_ARgrenades : "Assault Grenades" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_shotshell.mdl") = ammo_buckshot : "Shotgun Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_357ammobox.mdl") = ammo_357 : "357 Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_rpgammo.mdl") = ammo_rpgclip : "RPG Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_gaussammo.mdl") = ammo_gaussclip : "Gauss Gun Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_crossbow_clip.mdl") = ammo_crossbow : "Crossbow Ammo" []

@SolidClass base(Target, Parent, Reflection, ZHLT) = button_target : "Target Button"
[
	spawnflags(flags) =
	[
		1: "Use Activates" : 1
		2: "Start On" : 0
	]
	master(target_destination) : "Master" 
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]


//
// cyclers
//

@PointClass base(Targetname, Parent, Reflection, Angles, Sequence) size(-16 -16 0, 16 16 72) studio() = cycler : "Monster Cycler" 
[
	model(studio) : "Model"
	scale(string) : "Scale"
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

@PointClass base(Targetname, Parent, Reflection, Angles) sprite() = cycler_sprite : "Sprite Cycler" 
[
	model(sprite) : "Sprite"
	scale(string) : "Scale"
	framerate(integer) : "Frames per second" : 10
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

@PointClass base(Parent) size(-16 -16 -16, 16 16 16) studio() = cycler_weapon : "Weapon Cycler" 
[
	model(studio) : "Model"
	deploy(integer) : "Deploy Anim Num"
	holster(integer) : "Holster Anim Num"
	primary(integer) : "Primary Attack Anim Num"
	secondary(integer) : "Secondary Attack Num"
]

@PointClass sprite() base(Targetname, Parent, Reflection, RenderFields, Angles) size(-4 -4 -4, 4 4 4) = cycler_wreckage : "Wreckage" 
[
	framerate(string) : "Framerate" : "10.0"
	model(sprite) : "Sprite / Model Name" : "sprites/fire.spr"
	scale(string) : "Scale" : "1.0"
	spawnflags(flags) =
	[
		32: "Toggle" : 0
		64: "Start ON" : 0
	]
]

@PointClass base(Targetname, Parent, Global) = hud_sprite : "Hud Sprite Display"
[
	model(string): "Sprite Name (hud.txt)" : "dmg_poison"
	rendercolor(color255) : "Color" : "255 255 255"
	spawnflags(flags) =
	[
		1: "Start on" : 0
	]
]

//
// Environmental effects
//

@BaseClass = BeamStartEnd 
[
	LightningStart(target_destination) : "Start Entity" 
	LightningEnd(target_destination) : "Ending Entity" 
]

@PointClass base(Targetname, Target, BeamStartEnd, RenderFxChoices) size(-16 
-16 -16, 16 16 16) iconsprite("sprites/beam.spr") = env_beam : "Energy Beam Effect"
[
	renderamt(integer) : "Brightness (1 - 255)" : 100
	rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
	Radius(integer) : "Radius" : 256
	life(string) : "Life (seconds 0 = infinite)" : "1"
	BoltWidth(integer) : "Width of beam (pixels*0.1 0-255)" : 20
	NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
	texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
	TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
	framerate(integer) : "Frames per 10 seconds" : 0
	framestart(integer) : "Starting Frame" : 0
	StrikeTime(string) : "Strike again time (secs)" : "1"
	damage(string) : "Damage / second" : "0"
	spawnflags(flags) = 
	[
		1 : "Start On" : 0
		2 : "Toggle" : 0
		4 : "Random Strike" : 0
		8 : "Ring" : 0
		16: "StartSparks" : 0
		32: "EndSparks" : 0
		64: "Decal End" : 0
		128: "Shade Start" : 0
		256: "Shade End" : 0
		512: "Solid": 0
	]
]

@PointClass base(Targetname, Angles, Parent) size(-4 -4 -4, 4 4 4) studio("models/can.mdl") = env_beverage : "Beverage Dispenser"
[
	target(string) : "Initial Position (blank = here)"
	health(integer) : "Capacity" : 10
	skin(choices) : "Beverage Type" : 0 =
	[
		0 : "Coca-Cola"
		1 : "Sprite"
		2 : "Diet Coke"
		3 : "Orange"
		4 : "Surge"
		5 : "Moxie"
		6 : "Random"
	]
]

@PointClass base(Targetname, Parent, Angles) size(-16 -16 -16, 16 16 16) color(255 0 0) = env_blood : "Blood Effects" 
[
	color(choices) : "Blood Color" : 0 =
	[
		0 : "Red (Human)"
		1 : "Yellow (Alien)"
	]
	amount(string) : "Amount of Blood (damage to simulate)" : "100"
	spawnflags(flags) =
	[
		1: "Random Direction" : 0
		2: "Blood Stream" : 0
		4: "On Player" : 0
		8: "Spray decals" : 0
	]
]

@SolidClass base(Targetname, Parent) = env_bubbles : "Bubble Volume" 
[
	density(integer) : "Bubble density" : 2
	frequency(integer) : "Bubble frequency" : 2
	current(integer) : "Speed of Current" : 0
	spawnflags(Flags) = 
	[
		1 : "Start Off" 	: 0
	]
]


@PointClass base(Targetname, Target, Parent, Global,Reflection, RenderFields, Angles) iconsprite("sprites/counter.spr") = env_counter  : "Sprite Counter" 
[
	model(string): "Decimal Model/Sprite" : "sprites/decimal.spr"
	maxframe(integer) : "Max Frame to Reset" : 9
	frame(integer) : "Current Frame" : 0
	scale(string) : "Scale" : ""
	keyframe(integer) : "Frame to return ON"
	type(choices) : "Condition to return ON" : 0 =
	[
		0 : "frame == keyframe"
		1 : "frame >= keyframe"
		2 : "frame <= keyframe"
	]
]

@PointClass = env_customize : "Change entity properties"
[
	targetname(target_source) : "Name"
	target(target_destination) : "Target to affect [LE]"
	//m_flRadius(integer) : "Search Radius" : 512
	m_iReflection(choices) : "Set Reflection" : -1 =
	[
		-1: "No Change"
		0: "Render With Reflection"
		1: "Do not Reflect"
		2: "Draw Only Reflection"
	]
	m_iszModel(string) : "Set model (e.g. models/can.mdl)"
	body(choices) : "Set body" : -1 =
	[
		-1 : "(-1) No change"
	]
	skin(choices) : "Set skin" : -1 =
	[
		-2 : "Toggle 0/1"
		-1 : "(-1) No change"
		0  : "0 (normal)"
		1  : "1"
		2  : "2"
		3  : "3"
		4  : "4"
		5  : "5"
	]
//	frame(choices) : "Set brush texture" : -1 =
//	[
//		-1 : "No change"
//		-2 : "Toggle 0/1"
//		0  : "Texture 0 (normal)"
//		1  : "Texture 1 (alternate)"
//		4: "On/Off based on usetype"
//		5: "Off/On based on usetype"
//	]
	m_iVisible(choices) : "Visibility" : 0 =
	[
		0: "No change"
		1: "Visible"
		2: "Invisible"
		3: "Toggle"
		4: "On/Off based on usetype"
		5: "Off/On based on usetype"
	]
	m_iSolid(choices) : "Solidity" : 0 =
	[
		0: "No change"
		1: "Solid"
		2: "Not Solid"
		3: "Toggle"
		4: "On/Off based on usetype"
		5: "Off/On based on usetype"
	]
	m_fFramerate(string) : "Frame rate (-1 = no change)" : "-1"
	m_fController0(choices) : "Bone controller 0" : 0 =
	[
		0 : "No change"
		1024 : "Set to 0"
	]
	m_fController1(choices) : "Bone controller 1" : 0 =
	[
		0 : "No change"
		1024 : "Set to 0"
	]
	m_fController2(choices) : "Bone controller 2" : 0 =
	[
		0 : "No change"
		1024 : "Set to 0"
	]
	m_fController3(choices) : "Bone controller 3" : 0 =
	[
		0 : "No change"
		1024 : "Set to 0"
	]
	m_iClass(choices) : "Set behaviour" : 0 =
	[
		0 : "No change"
		2 : "Player"
		3 : "Scientist"
		11: "Barney"
		4 : "Human Military"
		1 : "Machine (Human Military)"
		5 : "Alien Military"
		6 : "Alien Passive"
		7 : "Other Alien"
		8 : "Headcrab"
		9 : "Bullsquid"
		99 : "Barnacle"
		10 : "Animals (rats, roaches)"
		12 : "Player's Bioweapon"
		13 : "Alien's Bioweapon"
		14 : "Faction A"
		15 : "Faction B"
		16 : "Faction C"
	]
	m_bloodColor(choices) : "Blood Color" : 0 =
	[
		0 : "No change"
		-1 : "Don't Bleed"
		247 : "Red (Human)"
		195 : "Yellow (Alien)"
	]
	m_voicePitch(choices) : "Voice Pitch (100 = normal)" : -1 =
	[
		-1 : "(-1) No change"
	]
	m_iPlayerReact(choices) : "Reaction to player" : -1 =
	[
		-1 : "No Change"
		0 : "Normal"
		1 : "Ignore"
		2 : "Friendly until hurt"
		3 : "Friendly unless provoked"
		4 : "Enemy"
	]
	m_iPrisoner(choices) : "Prisoner" : 0 =
	[
		0: "No change"
		1: "Yes"
		2: "No"
		3: "Toggle"
		4: "On/Off based on usetype"
		5: "Off/On based on usetype"
	]
	m_iMonsterClip(choices) : "MonsterClip flag" : 0 =
	[
		0: "No change"
		1: "On"
		2: "Off"
		3: "Toggle"
		4: "On/Off based on usetype"
		5: "Off/On based on usetype"
	]
	m_iProvoked(choices) : "Angry At Player" : 0 =
	[
		0: "No change"
		1: "Yes"
		2: "No"
		3: "Toggle"
		4: "On/Off based on usetype"
		5: "Off/On based on usetype"
	]
	spawnflags(flags) =
	[
		1: "Affect Corpses" : 0
		2: "Once Only" : 0
		4: "Debug Mssgs" : 0
	]
]

@PointClass color(255 255 128) base(Targetname, Parent) iconsprite("sprites/lightbulb.spr") = env_dynlight : "Dynamic light"
[
	rendercolor(color255) : "Light Color (R G B)" : "255 255 255"
	radius(integer) : "Radius" : 256
	lightstyle(choices) : "Appearance" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
	spawnflags(flags) =
	[
		1 : "Start On" : 0
		2 : "No falloff":0
		4 : "No light in solid": 0
	]
]

@PointClass base(Targetname, Parent) size(-16 -16 -16, 16 16 16) iconsprite("sprites/env_explosion.spr") = env_explosion : "Explosion" 
[
	iMagnitude(Integer) : "Magnitude" : 100
	spawnflags(flags) =
	[
		1: "No Damage" : 0
		2: "Repeatable" : 0
		4: "No Fireball" : 0
		8: "No Smoke" : 0
		16: "No Decal" : 0
		32: "No Sparks" : 0
	]
]

@PointClass base(Targetname)  iconsprite("sprites/env_fade.spr") = env_fade : "Screen Fade" 
[
	spawnflags(flags) =
	[
		1: "Fade From" : 0
		2: "Modulate" : 0
		4: "Activator Only" : 0
		8: "Permanent" : 0
	]
	duration(string) : "Duration (seconds)" : "2"
	holdtime(string) : "Hold Fade (seconds)" : "0"
	renderamt(integer) : "Fade Alpha" : 255
	rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
]

@PointClass sprite() base(Targetname, Parent) iconsprite("sprites/flare6.spr") = env_funnel : "Large Portal Funnel" 
[
	netname(sprite): "Sprite Name" : "sprites/flare6.spr"
	spawnflags(flags) =
	[
		1: "Reverse" : 0
	]
]

@PointClass base(Targetname) color(255 255 128) = env_global : "Global State"
[
	globalstate(string) : "Global State to Set"
	triggermode(choices) : "Trigger Mode" : 0 =
	[
		0 : "Off"
		1 : "On"
		2 : "Dead"
		3 : "Toggle"
	]
	initialstate(choices) : "Initial State" : 0 =
	[
		0 : "Off"
		1 : "On"
		2 : "Dead"
	]
	spawnflags(flags) =
	[
		1 : "Set Initial State" : 0
	]
]

@PointClass sprite() base(Targetname, Parent, Reflection, RenderFields) size(-4 -4 -4, 4 4 4) color(30 100 0) = env_glow : "Light Glow/Haze" 
[
	model(sprite) : "Sprite Name" : "sprites/glow01.spr"
	scale(integer) : "Scale" : 1
]

@PointClass base(Targetname, Parent, RenderFxChoices, Angles) size(-16 -16 -16, 16 16 16) iconsprite("sprites/laser.spr") = env_laser : "Laser Beam Effect"
[
	target(string) : "Activate When Crossed"
	netname(string) : "Only by entity"
	LaserTarget(target_destination) : "Target of Laser" 
	m_iProjection(choices) : "Projection Type" : 0 =
	[
		0 : "Off"
		1 : "On"
		2 : "On With Reflections"
	]
	m_iStoppedBy(choices) : "Stopped by" : 0 =
	[
		0: "Glass & Monsters"
		1: "Monsters only"
		2: "Glass & Monster hulls"
		3: "Monster hulls only"
		4: "Glass only"
		5: "Neither"
	]
	renderamt(integer) : "Brightness (1 - 255)" : 100
	rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
	width(integer) : "Width of beam (pixels*0.1 0-255)" : 20
	NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
	texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
	EndSprite(sprite) : "End Sprite (or env_sprite)" : ""
	TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
	framestart(integer) : "Starting Frame" : 0
	damage(string) : "Damage / second" : "100"
	spawnflags(flags) = 
	[
		1 : "Start On" : 0
		16: "StartSparks" : 0
		32: "EndSparks" : 0
		64: "Decal End" : 0
		128: "Fade Start"	: 0
		256: "Fade End"	: 0
		512: "Draw Solid" : 0
	]
]

@PointClass base(Targetname, Target) iconsprite("sprites/env_local.spr") = env_local : "Local State"
[
	delay(string) : "Delay Before TURN ON" : "0"
	wait(string) : "Delay Before TURN OFF" : "0"
	scale(string) : "Value to transmit"
	spawnflags(flags) =
	[
		1 : "Start On" : 0
	]
]

@PointClass base(Targetname, Target) iconsprite("sprites/env_message.spr")= env_message : "HUD Text Message" 
[
	message(string) : "Message Name"
	spawnflags(flags) =
	[
		1: "Play Once" : 0
		2: "All Clients" : 0
	]
	messagesound(sound) : "Sound Effect"
	messagevolume(string) : "Volume 0-10" : "10"
	messageattenuation(Choices) : "Sound Radius" : 0 =
	[
		0 : "Small Radius"
		1 : "Medium Radius"
		2 : "Large  Radius"
		3 : "Play Everywhere"
	]
]

@PointClass base(Targetname, Angles, Reflection, Parent, RenderFields,Sequence) studio() = env_model : "New alternative to cyclers"
[
	model(studio) : "Model"
	skin(integer) : "Skin" : 0
	body(integer) : "Body" : 0
	scale(string) : "Scale (1.0 = normal size)" : "1.0"
	m_iszSequence_On(string) : "Sequence when on"
	m_iAction_On(choices) : "Behaviour when on" : 0 =
	[
		0: "Freeze when sequence ends"
		1: "Loop"
		2: "Change state when sequence ends"
	]
	m_iszSequence_Off(string) : "Sequence when off"
	m_iAction_Off(choices) : "Behaviour when off" : 0 =
	[
		0: "Freeze when sequence ends"
		1: "Loop"
		2: "Change state when sequence ends"
	]
	spawnflags(flags) =
	[
		1: "Initially Off" : 0
		2: "Drop to Floor" : 0
		4: "Solid" : 0
	]
]

@PointClass base(Targetname) size (-4 -4 -4, 4 4 4) iconsprite("sprites/env_particle.spr") = env_particle : "Particle Effect"
[
	message(string) : "Particle File" : "aurora/smoke.aur"
	attachment(string) : "Attachment Point"
	spawnflags(flags) =
	[
		1: "Start On" : 0
		//2: "Spawn Use" : 0
	]
]

@PointClass studio() base(Targetname, Reflection, RenderFields, Angles) = env_physbox : "PointClass PhysX body"
[
	target(target_destination) : "Target on Break"
	model(studio) : "Model" : "models/box.mdl"
	health(integer) : "Strength" : 25
	material(choices) :"Material type" : 0 =
	[
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Cinder Block"  
		5: "Ceiling Tile"
		6: "Computer"
		7: "Unbreakable Glass"
		8: "Rocks"
	]
	gibmodel(studio) : "Gib Model" : ""
	spawnflags(Flags) = 
	[
		128 : "Breakable" 	: 0
		256 : "Crowbar" : 0
		512 : "Holdable" : 1
	]
]

@PointClass base(Targetname, Parent, RenderFields, Angles) size(-16 -16 -16, 16 16 16) = env_projector  : "Texture Projector/SpotLight" 
[
	texture(string) : "Texture File" : "materials/misc/flashlight2.tga"
	framerate(integer) : "Sprite Framerate" : 10
	fov(integer) : "Field of View"
	radius(integer) : "Radius"
	rendercolor(color255) : "Light Color (R G B)" : "255 255 255"
	falloff(choices) : "Falloff" : 0 =
	[
		0: "Auto"
		1: "Fast"
		2: "Standart"
		3: "Slow"	
	]	
    lightstyle(choices) : "Appearance" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
	spawnflags(flags) =
	[
		1: "Start On" : 0
		2: "No Attenuation" : 0
		4: "Landscape mode" : 0
		8: "Portrait mode" : 0
		//16: "Light Models" : 0
		32: "No World" : 0
		64: "No Shadows":0
		128: "Horiz. Flip":0
	]
]

@PointClass iconsprite("sprites/env.spr") = env_rain : "Constant map settings" 
[
	m_flDistance(integer) : "Rain Distance" : 1000
	m_iMode(choices) : "Weather Type" : 0 =
	[
		0: "Rain"
		1: "Snow"
	]
]
@PointClass base(Targetname) iconsprite("sprites/env.spr") = env_rainmodify : "Modify rain settings" 
[
	m_flTime(integer) : "Fading Time" : 0
	m_iDripsPerSecond(integer) : "Drips per second" : 800
	m_flWindX(integer) : "Wind X" : 0
	m_flWindY(integer) : "Wind Y" : 0
	m_flRandX(integer) : "Rand X" : 0
	m_flRandY(integer) : "Rand Y" : 0
	spawnflags(flags) =
	[
		1: "Constant" : 0
	]
]

@PointClass base(Targetname, Target, RenderFields) size(-16 -16 -16, 16 16 16) color(100 100 0) = env_render : "Render Controls"
[
	m_fScale(string) : "New Scale"
	netname(string): "Fire when Complete"
	frags(string): "Time" : "0.0"
	armorvalue(string) : "Steps" : "0"
	spawnflags(flags) =
	[
		1: "No Renderfx" : 0
		2: "No Renderamt" : 0
		4: "No Rendermode" : 0
		8: "No Rendercolor" : 0
	]
]

@PointClass base(Targetname, Parent) iconsprite("sprites/env_shake.spr") = env_shake : "Screen Shake" 
[
	spawnflags(flags) =
	[
		1: "GlobalShake" : 0
	]
	amplitude(string) : "Amplitude 0-16" : "4.0"
	radius(string) : "Effect radius" : "500.0"
	duration(string) : "Duration (seconds)" : "1.0"
	frequency(string) : "0.1 = jerk, 255.0 = rumble" : "2.5"
]

@PointClass base(gibshooterbase, RenderFields) size(-16 -16 -16, 16 16 16) iconsprite("sprites/env_shooter.spr") = env_shooter : "Model Shooter"
[
	shootmodel(studio) : "Model or Sprite name" : ""
	m_iszTargetName(target_source) : "Gib Name"
	m_iszSpawnTarget(target_destination) : "Target for Gib"
	shootsounds(choices) :"Material Sound" : -1 =
	[
		-1: "None"
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Concrete"  
	]
	scale(string) : "Gib Scale" : ""
	skin(integer) : "Gib Skin (-1 = random)" : 0
	body(integer) : "Gib Body (-1 = random)" : 0
	frame(integer) : "Gib Frame" 
	m_iPhysics(choices) : "Behaviour of children" : 0 =
	[
		0: "Bouncy gib (normal)"
		1: "Sticky gib"
		2: "Noclip"
		3: "Fly (ignore gravity)"
		4: "Fly & bounce"
		5: "Toss (obey gravity)"
		6: "Physx"
	]
	m_iBloodColor(choices) : "Blood color" : 0 =
	[
		0 : "Don't bleed"
		247 : "Red (human)"
		195 : "Yellow (alien)"
	]
	m_fFriction(string) : "Friction"
	m_iszTouch(target_destination) : "Fire on Collision"
	m_iszTouchOther(target_destination) : "Fire on Collision (noworld)"
	m_vecSize(string) : "Shot size (X Y Z) depr." : "0 0 0"
]
@PointClass base(Targetname, Angles) size(-16 -16 -16, 16 16 16) = env_sky : "3D Skybox"
[
	fov(integer) : "Field of View"
	scale(string) : "Scale of Skybox" : "1"
	spawnflags(flags) =
	[
		1: "Start Off" : 0
	]
]

@PointClass base(Parent) iconsprite("sprites/env_sound.spr") = env_sound : "DSP Sound" 
[
	radius(integer) : "Radius" : 128
	roomtype(Choices) : "Room Type" : 0 =
	[
		0 : "Normal (off)"
		1 : "Generic"
		
		2 : "Metal Small"
		3 : "Metal Medium"
		4 : "Metal Large"
	
		5 : "Tunnel Small"
		6 : "Tunnel Medium"
		7 : "Tunnel Large"
	
		8 : "Chamber Small"
		9 : "Chamber Medium"
		10: "Chamber Large"

		11: "Bright Small"
		12: "Bright Medium"
		13: "Bright Large"

		14: "Water 1"
		15: "Water 2"
		16: "Water 3"

		17: "Concrete Small"
		18: "Concrete Medium"
		19: "Concrete Large"

		20: "Big 1"
		21: "Big 2"
		22: "Big 3"

		23: "Cavern Small"
		24: "Cavern Medium"
		25: "Cavern Large"

		26: "Weirdo 1"
		27: "Weirdo 2"
		28: "Weirdo 3"
	]
]

@PointClass base(Targetname, Parent, Angles) size(-16 -16 -16, 16 16 16) iconsprite("sprites/env_spark.spr") = env_spark : "Spark" 
[
	MaxDelay(string) : "Max Delay" : "0"
	spawnflags(flags) =
	[
		32: "Toggle" : 0
		64: "Start ON" : 0
	]
]

@PointClass sprite() base(Targetname, Parent, Reflection, RenderFields, Angles) size(-4 -4 -4, 4 4 4) = env_sprite : "Sprite Effect" 
[
	framerate(string) : "Framerate" : "10.0"
	model(sprite) : "Sprite Name" : "sprites/glow01.spr"
	scale(string) : "Scale" : ""
	spawnflags(flags) =
	[
		1: "Start On" : 0
		2: "Play Once" : 0
	]
]

@PointClass sprite() base(Targetname, Reflection, RenderFields, Angles) size(-4 -4 -4, 4 4 4) = env_spritetrain : "OP4 SpriteTrain" 
[
	target(target_source) : "First Stop Target"
	speed(integer) : "Speed (units per second)" : 64
	framerate(string) : "Framerate" : "10.0"
	model(sprite) : "Sprite Name" : "sprites/glow01.spr"
	scale(string) : "Scale" : ""
	spawnflags(flags) =
	[
		1: "Start On" : 1
	]
]

@PointClass base(Angles) studio() = env_static : "Static Client Model"
[
	model(studio) : "Model"
	skin(integer) : "Skin" : 0
	body(integer) : "Body" : 0
	scale(string) : "Scale (1.0 = normal size)" : "1.0"
	sequence(integer) : "Sequence" : 0
	frame(integer) : "Frame"
	colormap(string): "Colormap"
	
	spawnflags(flags) =
	[
		1: "Solid" : 0
		2: "Drop to Floor" : 0
	]
]

@PointClass base(Targetname, Target, Parent) size(-32 -32 -32, 32 32 32) color(0 255 0) iconsprite("sprites/env_warpball.spr") = env_warpball : "Warp In Ball"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
		2: "Kill Center" : 0
	]
	//frags(integer) : "Number Of Lightning Bolts" : 12
	radius(string) : "Beam Radius" : "256"
	warp_target(string) : "Warp Target(blank=itself)" : ""
	damage_delay(string) : "Damage Delay" : ""
]

@SolidClass base(Breakable, Parent, Reflection, RenderFields, ZHLT) = func_breakable : "Breakable Object" 
[
	spawnflags(flags) =
	[
		1 : "Only Trigger" : 0
		2 : "Touch"	   : 0
		4 : "Pressure"     : 0
		256: "Instant Crowbar" : 1
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Global, Targetname, Target, Parent, Reflection, RenderFields, Angles, ZHLT) = func_button : "Button" 
[
	speed(integer) : "Speed" : 5
	health(integer) : "Health (shootable if > 0)"
	lip(integer) : "Lip"
	master(target_destination) : "Master" 
	sounds(choices) : "Sounds" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		2: "Access Denied"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		10: "Buzz"
		11: "Buzz Off"
		14: "Lightswitch"
	]
	wait(integer) : "delay before reset (-1 stay)" : 3
	delay(string) : "Delay before trigger" : "0"
	spawnflags(flags) =
	[
		1: "Don't move" : 0
		16 : "OnlyDirect (HL bugfix)" : 0
		32: "Toggle" : 0
		64: "Sparks" : 0
		128: "Only Laser" : 0
		256:"Touch Activates": 0
	]
	locked_sound(choices) : "Locked Sound" : 0 = 
	[
		0: "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	unlocked_sound(choices) : "Unlocked Sound" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		10: "Buzz"
		13: "Latch Unlocked"
		14: "Lightswitch"
	]
	locked_sentence(choices) : "Locked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Denied"
		2: "Security Lockout"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance Door"
		9: "Broken Shut Door"
	]
	unlocked_sentence(choices) : "Unlocked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Granted"
		2: "Security Disengaged"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance area"
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Parent, Reflection, RenderFields, Appearflags, ZHLT) = func_clock : "Clock arrows" 
[
	curtime(string): "Start with HH.MM.SS" : "08.00.00"
	event(string): "Event (HH-arrow only)"
	type(choices): "Type": 1 =
	[
		0: "Seconds"
		1: "Minutes"
		2: "Hours"
	]
	spawnflags(flags) =
	[
		64 : "Z-rot" : 0
		128 : "X-rot" : 0
	]
]

@SolidClass base(Targetname, Parent, Reflection, Angles, Global,RenderFields, ZHLT) = func_conveyor : "Conveyor Belt" 
[
	spawnflags(flags) =
	[
		1 : "No Push" : 0
		2 : "Not Solid" : 0
		4 : "Start Off" : 0
	]
	speed(string) : "Conveyor Speed" : "100"
	_minlight(string) : "Minimum light level"
]

@SolidClass = func_detail : "Detail brushes"
[
	// You can leave the detail level to 1. For tiny objects, you might set to 2, so that they won't chop faces of other func_details.
	zhlt_detaillevel(integer) : "Detail level" : 1
	// For large shapes such as terrain and walls, set this to no less than their detail level, so that they can chop adjacent world brushes.
	zhlt_chopdown(integer) : "Lower its level to cut others" : 0
	// Usually you don't have to use this.
	zhlt_chopup(integer) : "Raise its level to get cut" : 0
	// Setting this to 0 will reduce clipnode count, but will lose the benefit of func_detail's better content determination method which is designed to prevent "Ambiguous leafnode contents" problem.
	zhlt_clipnodedetaillevel(integer) : "Detail level of cliphulls" : 1
	// Very useful option which can reduce clipnode count.
	zhlt_noclip(choices) : "Passable" : "" =
	[
		"": "No"
		1: "Yes"
	]
]

@SolidClass base(Door, Fire, Parent, ZHLT) = func_door : "Basic door" []

@SolidClass base(Door, Fire, Parent, ZHLT) = func_door_rotating : "Rotating door" 
[
	spawnflags(flags) =
	[
		2 : "Reverse Dir" : 0
		16: "One-way" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	distance(integer) : "Distance (deg)" : 90
]

@SolidClass base(Appearflags, Parent, Reflection, RenderFields, ZHLT) = func_friction : "Surface with a change in friction" 
[
	modifier(integer) : "Percentage of standard (0 - 100)" : 15
]

// func_group
// It is not a real entity. Brushes in this entity are still world brushes.
@SolidClass = func_group : "Solid brushes"
[
	zhlt_noclip(choices) : "Passable" : "" =
	[
		"": "No"
		1: "Yes"
	]
]

@SolidClass base(Targetname, Parent, Reflection, RenderFields, Global, ZHLT) = func_guntarget : "Moving platform" 
[
	speed(integer) : "Speed (units per second)" : 100
	target(target_source) : "First Stop Target"
	message(target_source) : "Fire On Damage"
	health(integer) : "Damage To Take" : 0
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Global, Parent, Reflection, RenderFields, ZHLT) = func_healthcharger: "Wall health recharger" 
[
	dmdelay(integer) : "Deathmatch Recharge Delay" : 0
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Parent, Reflection, RenderFields, ZHLT) = func_illusionary : "Fake Wall/Light" 
[

	skin(choices) : "Contents" : -1 =
	[
		-1: "Empty"
		-3: "Water"
		-7: "Volumetric Light"
		-16: "Make ladder"
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Reflection, Parent) = func_ladder : "Ladder" []


@SolidClass base(Targetname, Target, Parent, Reflection, Angles, ZHLT) = func_light : "Light Surface" 
[
	health(string) : "Health (0 = unbreakable)" : 0
	delay(string) : "Delay" : 0
	spawnflags(flags) = [ 1 : "Initially ON" : 1 ]
]

@SolidClass base(Targetname, Parent, Reflection, ZHLT) = func_monitor : "Monitor" 
[
	camera(target_destination) : "Camera (info_target)"
	fov(integer) : "Field of View" : 90
	spawnflags(flags) =
	[
		1: "Start ON" : 1
		2: "Passable" : 0
		4: "Usable" : 0
		8: "Square Image" : 0
		16: "Black/White" : 0
	]
]

@SolidClass base(Targetname, Parent) = func_monsterclip : "Monster clip brush" []

@SolidClass base(Targetname, Parent, Reflection) = func_mortar_field : "Mortar Field" 
[
	m_flSpread(integer) : "Spread Radius" : 64
	m_iCount(integer) : "Repeat Count" : 1
	m_fControl(Choices) : "Targeting" : 0 =
	[
		0 : "Random"
		1 : "Activator"
		2 : "Table"
	]
	m_iszXController(target_destination) : "X Controller"
	m_iszYController(target_destination) : "Y Controller"
]

@SolidClass base(Targetname, Global, Parent, Reflection,  RenderFields, Appearflags, Angles, ZHLT) = func_pendulum : "Swings back and forth" 
[
	speed(integer) : "Speed" : 100
	distance(integer) : "Distance (deg)" : 90
	damp(integer) : "Damping (0-1000)" : 0
	dmg(integer) : "Damage inflicted when blocked" : 0
	spawnflags(flags) =
	[
		1: "Start ON" : 0
		8: "Passable" : 0
		16: "Auto-return" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	_minlight(integer) : "_minlight"
]


@SolidClass base(Targetname, Reflection, RenderFields, Angles, ZHLT) = func_physbox : "SolidClass PhysX body"
[
	target(target_destination) : "Target on break"
	health(integer) : "Strength" : 25
	material(choices) :"Material type" : 0 =
	[
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Cinder Block"  
		5: "Ceiling Tile"
		6: "Computer"
		7: "Unbreakable Glass"
		8: "Rocks"
	]
	gibmodel(studio) : "Gib Model" : ""
	spawnflags(Flags) = 
	[
		128 : "Breakable" 	: 0
		256 : "Crowbar" : 0
		512 : "Holdable" : 1
	]
]

@SolidClass base(Targetname, Global, Parent, Reflection, RenderFields, PlatSounds, Angles, ZHLT) = func_plat : "Elevator" 
[
	spawnflags(Flags) =
	[
		1: "Toggle" : 0
	]
	height(integer) : "Travel vert. altitude" : 0
	width(integer) : "Travel horiz. altitude" : 0
	speed(integer) : "Speed" : 50
	_minlight(string) : "Minimum light level"
]	

@SolidClass base(Targetname, Global, Parent, Reflection, RenderFields, PlatSounds, Angles, ZHLT) = func_platrot : "Moving Rotating platform" 
[
	spawnflags(Flags) =
	[
		1: "Toggle" : 1
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	speed(integer) : "Speed of rotation" : 50
	height(integer) : "Travel vert. altitude" : 0
	width(integer) : "Travel horiz. altitude" : 0
	rotation(integer) : "Spin amount" : 0
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Global, Parent, Reflection, RenderFields, PlatSounds, ZHLT) = func_platform : "Elevator" 
[
	netname(target_destination) : "env_counter for floor ind."
	target(target_destination) : "Target when Arrive"
	height(integer) : "Height of one Storey" : 0
	speed(integer) : "Speed" : 50
	dmg(string) : "Damage when Blocked"
	_minlight(string) : "Minimum light level"
]	

@SolidClass base(Targetname, Parent, Reflection, Angles, ZHLT) = func_portal : "Portal" 
[
	target(target_destination) : "Destination (info_portal_destination)"
	firetarget(target_destination) : "Fire on Pass Thru"
	//landmark(target_destination) : "Landmark"	//legacy
	spawnflags(flags) =
	[
		1: "Start Off" : 0
	]
]

@SolidClass base(Reflection, Breakable, RenderFields, ZHLT) = func_pushable : "Pushable object"
[
	size(choices) : "Hull Size" : 0 =
	[
		0: "Point size"
		1: "Player size"
		2: "Big Size"
		3: "Player duck"
	]
	spawnflags(flags) =
	[
		1 : "Only Trigger" : 0
		4 : "Pressure" : 0
		128: "Breakable" : 0
		512: "Can Hold" : 0
		1024 : "Precise Shape" : 0
	]
	friction(integer) : "Friction (0-400)" : 50
	buoyancy(integer) : "Buoyancy" : 20
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Global, Parent, Reflection, RenderFields, ZHLT) = func_recharge: "Battery recharger" 
[
	dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Global, Parent, Reflection, RenderFields, Angles, ZHLT) = func_rot_button : "RotatingButton" 
[
	target(target_destination) : "Targetted object"
	// changetarget will change the button's target's TARGET field to the button's changetarget.
	changetarget(target_destination) : "ChangeTarget Name"
	master(target_destination) : "Master" 
	speed(integer) : "Speed" : 50
	health(integer) : "Health (shootable if > 0)"
	sounds(choices) : "Sounds" : 21 = 
	[
		21: "Squeaky"
		22: "Squeaky Pneumatic"
		23: "Ratchet Groan"
		24: "Clean Ratchet"
		25: "Gas Clunk"
	]
	wait(choices) : "Delay before reset" : 3 =
	[
		-1: "Stays pressed"
	]
	delay(string) : "Delay before trigger" : "0"
	distance(integer) : "Distance (deg)" : 90
	spawnflags(flags) =
	[
		1 : "Not solid" : 0
		2 : "Reverse Dir" : 0
		32: "Toggle" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
		256:"Touch Activates": 0
	]
	_minlight(integer) : "_minlight"
]

@SolidClass base(Targetname, Global, Parent, Reflection, RenderFields, Angles, ZHLT) = func_rotating : "Rotating Object"
[
	target(target_destination) : "Fire when Blocked"
	speed(integer)	: "Rotation Speed" : 0
	volume(integer) : "Volume (10 = loudest)" : 10
	fanfriction(integer) : "Friction (0 - 100%)" : 20
	sounds(choices) : "Fan Sounds" : 0 =
	[
		0 : "No Sound" 
		1 : "Fast Whine"
		2 : "Slow Rush"
		3 : "Medium Rickety"
		4 : "Fast Beating"
		5 : "Slow Smooth"
	]
	message(sound) : "WAV Name"
	spawnflags(flags) =
	[
		1 : "Start ON" 		: 0
		2 : "Reverse Direction" : 0
		4 : "X Axis" 		: 0
		8 : "Y Axis" 		: 0
		16: "Acc/Dcc"		: 0
		32: "Fan Pain"		: 0
		64: "Not Solid"		: 0
		128: "Small Radius" : 0
		256: "Medium Radius" : 0
		512: "Large Radius" : 1	
		1024: "Return to Start" : 0
	]
	_minlight(integer) : "_minlight"
	spawnorigin(string) : "X Y Z - Move here after lighting" : "0 0 0"
	dmg(integer) : "Damage inflicted when blocked" : 0
]

@SolidClass base(Targetname, Parent, Reflection, ZHLT) = func_screenmovie : "Plays silent video on a brush" 
[
	movie(string) : "Path to Video" : "valve.avi"
	spawnflags(flags) =
	[
		1: "Start ON" : 0
		2: "Passable" : 0
		4: "Looped" : 1
		8: "Black|White" : 0
	]
]

@SolidClass base(BaseTank, ZHLT) = func_tank : "Brush Gun Turret" 
[
	bullet(choices) : "Bullets" : 0 = 
	[
		0: "None"
		1: "9mm"
		2: "MP5"
		3: "12mm"
	]
	
]

@SolidClass base(Targetname, Parent) = func_tankcontrols : "Tank controls"
[
	target(target_destination) : "Tank entity name(can be multiple)"
]

@SolidClass base(BaseTank, ZHLT) = func_tanklaser : "Brush Laser Turret" 
[
	laserentity(target_source) : "env_laser Entity"
]

@SolidClass base(BaseTank, ZHLT) = func_tankrocket : "Brush Rocket Turret" []


@SolidClass base(BaseTank, ZHLT) = func_tankmortar : "Brush Mortar Turret" 
[
	iMagnitude(Integer) : "Explosion Magnitude" : 100
]

@SolidClass base(Trackchange, Reflection, ZHLT) = func_trackautochange : "Automatic track changing platform"
[
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Trackchange, Reflection, ZHLT) = func_trackchange : "Train track changing platform"
[
	_minlight(string) : "Minimum light level"
	spawnflags(flags) =
	[
		32: "On/Off mode" : 1
	]
]

@SolidClass base(Targetname, Global, Reflection, RenderFields, ZHLT) = func_tracktrain : "Track Train" 
[
	spawnflags(flags) =
	[
		1 : "No Pitch (X-rot)" : 0
		2 : "No User Control" : 0
		8 : "Passable" : 0
		16: "No Fire on Pass" : 0
	]
	target(target_destination) : "First stop target"
	master(target_destination) : "Master"
	sounds(choices) : "Sound" : 0 =
	[
		0: "None"
		1: "Rail 1"
		2: "Rail 2"
		3: "Rail 3"
		4: "Rail 4"
		5: "Rail 6"
		6: "Rail 7"
	]
	soundstart(sound) : "Custom Start Sound"
	soundstop(sound) : "Custom Stop Sound"
	wheels(integer) : "Distance between the wheels" : 50
	height(integer) : "Height above track" : 4
	startspeed(integer) : "Initial speed" : 0
	speed(integer) : "Speed (units per second)" : 64
	dmg(integer) : "Damage on crush" : 0	
	volume(integer) : "Volume (10 = loudest)" : 10
	bank(string) : "Bank angle on turns" : "0"
	_minlight(string) : "Minimum light level"
]

@SolidClass = func_traincontrols : "Train Controls"
[
	target(target_destination) : "Train Name"
]

@SolidClass base(Targetname, Global, Reflection, RenderFields, ZHLT) = func_traindoor : "Special Door For BM Tram"
[
	train(target_destination) : "Train Name"
	killtarget(target_destination) : "KillTarget"
	speed(integer) : "Speed" : 100
	master(target_destination) : "Master" 
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "Servo (Sliding)"
		2: "Pneumatic (Sliding)"
		3: "Pneumatic (Rolling)"
		4: "Vacuum"
		5: "Power Hydraulic"
		6: "Large Rollers"
		7: "Track Door"
		8: "Snappy Metal Door"
		9: "Squeaky 1"
		10: "Squeaky 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "Clang with brake"
		2: "Clang reverb"
		3: "Ratchet Stop"
		4: "Chunk"
		5: "Light airbrake"
		6: "Metal Slide Stop"
		7: "Metal Lock Stop"
		8: "Snappy Metal Stop"
	]
	wait(integer) : "delay before close, -1 stay open " : -1
	lip(integer) : "Lip" : 9
	target(target_destination) : "Target"
	delay(integer) : "Delay before fire" 
	locked_sound(choices) : "Locked Sound" : 0 = 
	[
		0: "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	spawnflags(flags) =
	[
		1 : "Inverse" : 0
		2 : "Open In Moving" : 0
		4 : "On/Off Mode" : 0
	]
]

@SolidClass base(Targetname, Global, Reflection, RenderFields, ZHLT) = func_train : "Moving platform" 
[
	target(target_destination) : "First Stop Target"
	netname(target_destination) : "Fire when Crossing path_corner"
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev 1"
		2: "big elev 2"
		3: "tech elev 1"
		4: "tech elev 2"
		5: "tech elev 3"
		6: "freight elev 1"
		7: "freight elev 2"
		8: "heavy elev"
		9: "rack elev"
		10: "rail elev"
		11: "squeek elev"
		12: "odd elev 1"
		13: "odd elev 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev stop1"
		2: "big elev stop2"
		3: "freight elev stop"
		4: "heavy elev stop"
		5: "rack stop"
		6: "rail stop"
		7: "squeek stop"
		8: "quick stop"
	]
	skin(choices) : "Contents (if not solid)" : "" =
	[
		 "": "default"
		-1: "if non solid Empty"
		-3: "if non solid swimable water"
		-7: "if non solid Volumetric Light"
	]
	speed(integer) : "Speed (units per second)" : 64
	avelocity(string) : "Angular Veocity (y z x)"
	dmg(integer) : "Damage on crush" : 0
	//skin(integer) : "Contents" : 0
	volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
	spawnflags(flags) =
	[
		2 : "Align by Origin" : 0
		8 : "Not solid" : 0
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Parent, Reflection, Appearflags, RenderFields, Global, ZHLT) = func_wall : "Wall" 
[
	_minlight(string) : "Minimum light level"
	style(choices) : "Texlight style" : 0 =
	[
		0 : "Normal"
		-3: "Grouped"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
	]
]

@SolidClass base(func_wall) = func_wall_toggle : "Toggleable geometry" 
[
	spawnflags(flags) =
	[
		1 : "Starts Invisible" : 0
	]
]

@SolidClass base(Door, Parent, Reflection, ZHLT) = func_water : "Liquid" 
[
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		256:"Use Only" : 0
	]
	skin(choices) : "Contents" : -3 =
	[
		-3: "Water"
		-4: "Slime"
		-5: "Lava"
	]
	WaveHeight(string) : "Wave Height" : "3.2"
]

//
// game entities (requires Half-Life 1.0.0.9)
//

@PointClass base(Targetname, Targetx) = game_counter : "Fires when it hits limit"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
		2: "Reset On fire" : 1
	]
	master(target_destination) : "Master"
	frags(integer) : "Initial Value" : 0
	health(integer) : "Limit Value" : 10
]

@PointClass base(Targetname, Target) = game_counter_set : "Sets a game_counter"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(target_destination) : "Master"
	frags(integer) : "New Value" : 10
]

@PointClass base(Targetname) iconsprite("sprites/game_end.spr") = game_end : "End this multiplayer game" 
[
	master(target_destination) : "Master" 
]

@PointClass base(Targetname) = game_player_equip : "Initial player equipment"
[
	spawnflags(flags) =
	[
		1: "Use Only" : 0
	]
	master(target_destination) : "Team Master"
]

@PointClass base(Targetname) = game_player_hurt : "Hurts player who fires"
[
	dmg(string) : "Damage To Apply" : "999"
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(target_destination) : "Master" 
]

@PointClass base(Targetname) = game_player_team : "Allows player to change teams"
[
	spawnflags(flags) =
	[
		1 : "Remove On fire" : 0
		2 : "Kill Player" : 0
		4 : "Gib Player" : 0
	]
	target(string) : "game_team_master to use" 
	master(target_destination) : "Master"
]

@PointClass base(Targetname) = game_score : "Award/Deduct Points" 
[
	spawnflags(flags) =
	[
		1: "Allow Negative" : 0
		2: "Team Points" : 0
	]

	points(integer) : "Points to add (+/-)" : 1
	master(target_destination) : "Master" 
]

@PointClass base(Targetname, Targetx) = game_team_master : "Team based master/relay"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	triggerstate(choices) : "Trigger State" : 0 = 
	[
		0: "Off"
		1: "On"
		2: "Toggle"
	]
	teamindex(integer) : "Team Index (-1 = no team)" : -1
	master(target_destination) : "Master" 
]

@PointClass base(Targetname, Targetx) = game_team_set : "Sets team of team_master"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(target_destination) : "Master" 
]

@PointClass base(Targetname, Target) iconsprite("sprites/game_text.spr") = game_text : "HUD Text Message" 
[
	spawnflags(flags) =
	[
		1: "All Players" : 0
	]

	message(string) : "Message Text"
	x(string) : "X (0 - 1.0 = left to right) (-1 centers)" : "-1"
	y(string) : "Y (0 - 1.0 = top to bottom) (-1 centers)" : "-1"
	effect(Choices) : "Text Effect" : 0 =
	[
		0 : "Fade In/Out"
		1 : "Credits"
		2 : "Scan Out"
	]
	color(color255) : "Color1" : "100 100 100"
	color2(color255) : "Color2" : "240 110 0"
	fadein(string) : "Fade in Time (or character scan time)" : "1.5"
	fadeout(string) : "Fade Out Time" : "0.5"
	holdtime(string) : "Hold Time" : "1.2"
	fxtime(string) : "Scan time (scan effect only)" : "0.25"
	channel(choices) : "Text Channel" : 1 =
	[
		1 : "Channel 1"
		2 : "Channel 2"
		3 : "Channel 3" 
		4 : "Channel 4"
	]
	master(target_destination) : "Master" 
]

@SolidClass base(Targetname) = game_zone_player : "Player Zone brush"
[
	intarget(target_destination) : "Target for IN players"
	outtarget(target_destination) : "Target for OUT players"
	incount(target_destination) : "Counter for IN players"
	outcount(target_destination) : "Counter for OUT players"
	// master(target_destination) : "Master" 
]

@PointClass base(Targetname, Target) = generator : "Impluse Generator"
[
	maxcount(integer) : "Max Number of Impulses"
	mode(choices) : "Mode" : 0 =
	[ 
		0 : "Normal"
		1 : "Random"
		2 : "Random With Deceleration"
	]
	delay(string) : "Delay" : "0.0"
	spawnflags(flags) =
	[
		1: "Start On" : 0
	]
]
@PointClass base(gibshooterbase) iconsprite("sprites/gibshooter.spr") = gibshooter : "Gib Shooter"
[
	m_iszTargetName(target_source) : "Gib Name"
	m_iszSpawnTarget(target_destination) : "Target for Gib"
	m_iBloodColor(choices) : "Blood color" : 247 =
	[
		0 : "Don't bleed"
		247 : "Red (human)"
		195 : "Yellow (alien)"
	]
]

//
// info entities
//

@PointClass decal() base(Targetname, Appearflags) = infodecal : "Decal"
[
	texture(decal)
]

@PointClass base(Targetname) size(-24 -24 0, 24 24 16) color(20 190 60) = info_bigmomma : "Big Mamma Node" 
[
	spawnflags(Flags) =
	[
		1 : "Run To Node" : 0
		2 : "Wait Indefinitely" : 0
	]
	target(target_destination) : "Next node"
	radius(string) : "Radius" : "0"
	reachdelay(string) : "Wait after approach" : "0"
	killtarget(target_destination) : "KillTarget"
	reachtarget(target_destination) : "Fire on approach"
	reachsequence(string) : "Sequence on approach" : ""
	health(string) : "Health on approach" : ""
	presequence(string) : "Sequence before approach" : ""
]

@PointClass size(-8 -8 0, 8 8 32) iconsprite("sprites/info.spr") = info_compile_parameters : "Compile Options"
[
    texdata(string) : "Texture Data Memory (in KB)" : "4096"
    estimate(choices) : "Estimate Compile Times?" : 0 =
    [
        0: "Yes"
        1: "No"
    ]
    bounce(integer) : "Number of radiosity bounces" : 1
    ambient(string) : "Ambient world light (0.0 to 1.0, R G B)" : "0 0 0"
    smooth(integer) : "Smoothing threshold (in degrees)" : 0
    dscale(integer) : "Direct Lighting Scale" : 2
    chop(integer) : "Chop Size" : 64
    texchop(integer) : "Texture Light Chop Size" : 32
    hullfile(string) : "Custom Hullfile"
    priority(choices) : "Priority Level" : 0 =
    [
        0 : "Normal"
        1 : "High"
        -1 : "Low"
    ]
    wadautodetect(choices) : "Wad Auto Detect" : 0 =
    [
        0 : "Off"
        1 : "On"
    ]
    wadconfig(string) : "Custom Wad Configuration" : ""
    verbose(choices) : "Verbose compile messages" : 0 =
    [
        0 : "Off"
        1 : "On"
    ]
    noclipeconomy(choices) : "Strip Uneeded Clipnodes?" : 1 =
    [
        1 : "Yes"
        0 : "No"
    ]
    spawnflags(flags) =
    [
        1 : "Run CSG" : 1
        2 : " No Clip" : 0
        4 : " Only Ents" : 0
        8 : " No Sky Clip" : 0
        32 : "Run BSP" : 1
        64 : " Leak Only" : 0
        128 : " No Clip" : 0
        256 : "Run VIS" : 1
        512 : " Fast " : 0
        2048 : "Run RAD" : 1
        4096 : " Sparse " : 0
        8192 : " Circus Mode" : 0
        16384 : " Extra Mode " : 0
    ]
]

@PointClass base(Target, Parent, Angles) size(-4 -4 -4, 4 4 4) color(0 255 0) = info_intermission : "Intermission Spot" []

@PointClass base(Targetname, Parent) iconsprite("sprites/info_landmark.spr") = info_landmark : "Transition Landmark" []

@PointClass size(-24 -24 -4, 24 24 4) color(255 255 0) = info_node : "ai node"
[
	 hinttype (choices) : "Hint type" : 0 = 
	[
		  0 : "None"

		  1: "World: Door"
		  2: "World: Window"
		  3: "World: Button"
		  4: "World: Machinery"
		  5: "World: Ledge"
		  6: "World: Light Source"
		  7: "World: Heat Source"
		  8: "World: Blinking Light"
		  9: "World: Bright Colors"
		 10: "World: Human Blood Decal"
		 11: "World: Alien Blood Decal"

		300: "Stuka: Ceiling Perch"
		301: "Stuka: Landing spot"
	]
	activity(choices) : "Activity" : 45 =
	[
		 0: "None"
		35: "Eat"
		45: "Inspect Ground"
		46: "Inspect Wall"
	]
]

 @PointClass size(-32 -32 0, 32 32 64) color(255 255 0) = info_node_air : "ai air node" []

@PointClass base(Targetname) = info_null : "info_null (spotlight target)" []

// info_overview_point
// It makes all entities visible from this place. This is useful for overview mode (dev_overview 1).
// If "Reversed" is selected, this place will become visible from the entire map. This is useful for large skybox model.
@PointClass color(255 0 0) = info_overview_point : "Disable VIS here for overview"
[
	reverse(choices) : "Reversed" : "" =
	[
		"": "No"
		1: "Yes"
	]
]

@PointClass base(PlayerClass, Parent, Sequence) = info_player_coop : "Player cooperative start" []
@PointClass base(PlayerClass, Parent, Sequence) studio("models/player.mdl") = info_player_deathmatch : "Player deathmatch start" 
[
	target(target_destination) : "Target"
	master(target_destination) : "Master"
]
@PointClass base(PlayerClass, Parent, Sequence) studio("models/player.mdl") = info_player_start : "Player 1 start"
[
	spawnflags(Flags) =
	[
		1 : "Start with HEV" : 0
	]
]

@PointClass base(Targetname, Parent) size(-4 -4 -4, 4 4 4) color(200 100 60) iconsprite("sprites/info_target.spr") = info_portal_destination : "Portal Exit"
[]

// info_smoothvalue
// It specifies smoothing threshold angle for each texture.
@PointClass color(255 0 0) = info_smoothvalue : "Texture name : Threshold of smooth angle"
[
]

// info_sunlight
// It generates a fake light_environment which defines sv_skycolor and sv_skyvec in game.
// If you are using multiple light_environments, you will probably need this entity.
@PointClass color(255 255 0) = info_sunlight : "light_environment information that affects model brightness"
[
	target(target_destination) : "Target"
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
	pitch(integer) : "Pitch" : -90
	_light(color255) : "Brightness" : "0 0 0 100"
]

// info_translucent
// It defines translucent effect for textures.
// 0.0 = normal (only receive light from front), 1.0 = receive 100% light from back and 0% from front.
// Can be used to simulate materials like fabric, coarse glass, plastic.
// The thickness of brush with translucent textures can not exceed 2 units.
@PointClass color(255 0 0) = info_translucent : "Texture name : translucent amount (0.0-1.0)"
[
]

@PointClass base(Targetname, Parent) size(-4 -4 -4, 4 4 4) color(200 100 50) iconsprite("sprites/info_target.spr") = info_target : "Beam Target"
[
	spawnflags(Flags) =
	[
		1 : "Force to Client" : 0
	]
]

@PointClass size(-8 -8 0, 8 8 16) base(PlayerClass, Parent, Targetname) = info_teleport_destination : "Teleport destination" []

// info_texlights
// It defines texture lights.
// Add any texture name as a key and their brightness as the value.
// Don't need to set colors because hlrad knows texture colors.
@PointClass color(255 128 0) iconsprite("sprites/info_texlight.spr") = info_texlights : "Texture Light Config" []

//
// items
//

@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_oxygen.mdl") = item_airtank : "Oxygen tank" [
	master(target_destination) : "Master" 
]
@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_antidote.mdl") = item_antidote : "Poison antidote" [
	master(target_destination) : "Master" 
]
@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_battery.mdl") = item_battery : "HEV battery" 
[
	master(target_destination) : "Master" 
	model(studio) : "Alternative Model"
	noise(sound) : "Alternative Pick Up Sound"
]

@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio()= item_generic : "Generic item" 
[
	master(target_destination) : "Master" 
	model(studio) : "Model"
	body(integer) : "Body" 
	skin(integer) : "Skin"
	noise(sound) : "Pick Up Sound (or sentence)" : "buttons/blip2.wav"
	netname(string) : "Sprite Name (hud.txt)" : "dmg_poison"
	
	spawnflags(Flags) =
	[
		1 : "Only if in Suit" : 0
	]
]
@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_medkit.mdl") = item_healthkit : "Small Health Kit" [
	master(target_destination) : "Master" 
]
@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/can.mdl") = item_sodacan : "Soda can"
[
	master(target_destination) : "Master" 
	skin(choices) : "Soda Type" : 0 = 
	[
		0 : "Hai !"
		1 : "Glub"
		2 : "Grope"
		3 : "Guthrie"
		4 : "Yuck"
		5 : "Dante"
	]
]

@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_longjump.mdl") = item_longjump : "Longjump Module" [
	master(target_destination) : "Master" 
]
@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_security.mdl")= item_security : "Security card" [
	master(target_destination) : "Master" 
	skin(choices) : "Color" : 0 =
	[
		0 : "Security"
		1 : "Red"
		2 : "Blue"
		3 : "Gold"
		4 : "Green"
		5 : "Magenta"
	]
]
@PointClass size(-16 -16 0, 16 16 36) base(Weapon, Parent, Targetx, Reflection) studio("models/w_suit.mdl") = item_suit : "HEV Suit" 
[
	master(target_destination) : "Master" 
	spawnflags(Flags) =
	[
		1 : "Short Logon" : 0
	]
]

//
// lights
//

@PointClass iconsprite("sprites/lightbulb.spr") base(Targetname, Light, ZHLT_point) = light : "Invisible lightsource"
[
	spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
]

// light_bounce
// Use as complement for light_shadow.
@PointClass color(255 255 0) = light_bounce : "Bounce light control"
[
	// Control the light bounced from this solid entity.
	target(target_destination) : "Target solid entity"
	// When the targeted entity disappear, switch on the light_shadow and switch off the light_bounce at the same time.
	targetname(target_source) : "Name"
	style(choices) : "Appearance (no name allowed)" : "" =
	[
		"" : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12 : "Underwater mutation"
	]
	pattern(string) : "Custom Appearance"
	convertto(choices) : "Classname in game" : "light" =
	[
		"light" : "light"
		"light_spot" : "light_spot"
	]
	spawnflags(flags) =
	[
		1 : "Initially dark" : 0
		2048 : "Not in Deathmatch" : 0
	]
]

// light_shadow
// It creates toggleable shadow for func_door, func_breakable, ...
@PointClass color(255 255 0) = light_shadow : "Dynamic shadow control"
[
	// Switch the light_shadow on/off will cause shadow to disappear/appear.
	targetname(target_source) : "Name"
	// Control the shadow of this solid entity.
	// The solid entity must have 'Opaque' set in its lightflags.
	target(target_destination) : "Target solid entity"
	style(choices) : "Appearance (no name allowed)" : "" =
	[
		"" : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12 : "Underwater mutation"
	]
	pattern(string) : "Custom Appearance"
	convertto(choices) : "Classname in game" : "light" =
	[
		"light" : "light"
		"light_spot" : "light_spot"
	]
	spawnflags(flags) =
	[
		1 : "Initially dark" : 0
		2048 : "Not in Deathmatch" : 0
	]
]

@PointClass iconsprite("sprites/light_spot.spr") base(Targetname, Angles, Light, ZHLT_point) = light_spot : "Spotlight" 
[
	_cone(integer) : "Inner (bright) angle" : 30
	_cone2(integer) : "Outer (fading) angle" : 45
	pitch(integer) : "Pitch" : -90
	_sky(Choices) : "Is Sky" : 0 = 
	[ 
		0 : "No"
		1 : "Yes"
	]
]

// light_surface
// It defines texture lights.
// It is recommended to replace lights.rad and info_texlights with this entity.
@PointClass color(255 255 0) = light_surface : "Advanced texture light"
[
	_tex(string) : "Texture name" : "" // texture name (not case sensitive)
	_frange(string) : "Filter max distance" : "" // max distance from face center to this entity
	_fdist(string) : "Filter max dist to plane" : "" // max distance from face plane to this entity
	_fclass(string) : "Filter entity classname" : ""
	_fname(string) : "Filter entity name" : ""
	_light(string) : "Texture brightness" : "80" // value >= 80 will ensure full brightness. Colored brightness is not recommended.
	//  Note:
	//    If you want to set cone angle or any other value to 0,
	//      '0.0' should be used instead of '0'.
	//    This is a bug in Hammer.
	_cone(string) : "Inner(bright) angle(90default)" : "" // should be 90 for conventional texlights
	_cone2(string) : "Outer(fading) angle(90default)" : "" // should be 90 for conventional texlights
	_scale(string) : "Adjust emit scale(1.0default)" : "" // 0.0 = no emitting
	_chop(string) : "Grid size of sampling" : "" // in inch; not affected by texture scale
	_fast(choices) : "Fast" : "" =
	[
		"": "Auto"
		1: "Yes"
		2: "No"
	]
	// 'light_surface' will not be recognized by the game if we don't change its classname.
	convertto(choices) : "Classname in game" : "light" =
	[
		"light" : "light"
		"light_spot" : "light_spot"
	]
	targetname(target_source) : " Name" : "" // create a new light style with this name
	style(choices) : " Appearance (no name allowed)" : "" = // use predefined light styles which have predefined patterns
	[
		"" : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12 : "Underwater mutation"
	]
	//  Light of the same style share the same pattern.
	pattern(string) : " Custom Appearance" : "" // pattern defined by a sequence of letters
	spawnflags(flags) =
	[
		1 : "Initially dark" : 0
		2048 : "Not in Deathmatch" : 0
	]
]

@PointClass base(Targetname, Angles, Light, ZHLT_point) iconsprite("sprites/light_env.spr") = light_environment : "Environment" 
[
	_diffuse_light(color255) : "Diffuse light" : "255 255 128 200"
	pitch(integer) : "Pitch" : 0
]

@SolidClass base(Targetname, Target, Targetx, Parent, Angles, RenderFields, ZHLT, Appearflags) = momentary_door : "Momentary/Continuous door" 
[
	master(target_destination) : "Master" 
	speed(integer) : "Speed" : 100
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "Servo (Sliding)"
		2: "Pneumatic (Sliding)"
		3: "Pneumatic (Rolling)"
		4: "Vacuum"
		5: "Power Hydraulic"
		6: "Large Rollers"
		7: "Track Door"
		8: "Snappy Metal Door"
		9: "Squeaky 1"
		10: "Squeaky 2"
	]
	lip(integer) : "Lip"
	dmg(integer) : "Damage inflicted when blocked" : 0
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		2 : "Constant Speed" : 1
		4 : "On/Off Mode" : 0
		8 : "Passable" : 0
	]
]

@SolidClass base(Targetname, Target, Parent, Reflection, Angles, RenderFields, ZHLT) = momentary_rot_button : "Direct wheel control" 
[
	speed(integer) : "Speed" : 50
	master(target_destination) : "Master" 
	sounds(choices) : "Sounds" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		2: "Access Denied"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		21: "Squeaky"
		22: "Squeaky Pneumatic"
		23: "Ratchet Groan"
		24: "Clean Ratchet"
		25: "Gas Clunk"
	]
	distance(integer) : "Distance (deg)" : 90
	returnspeed(integer) : "Auto-return speed" : 0
	m_flStartPos(string) : "Starting Position (0 - 1)" : "0.0"
	spawnflags(flags) =
	[
		1: "Door Hack" : 0
		2: "Not useable" : 0
		16: "Auto Return" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	_minlight(integer) : "_minlight"
]

@SolidClass base(Targetname, Target, Parent, Reflection, Angles, RenderFields, ZHLT) = momentary_rot_door : "Door Hack" 
[
	speed(integer) : "Speed" : 50
	master(target_destination) : "Master" 
	sounds(choices) : "Sounds" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		2: "Access Denied"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		21: "Squeaky"
		22: "Squeaky Pneumatic"
		23: "Ratchet Groan"
		24: "Clean Ratchet"
		25: "Gas Clunk"
	]
	distance(integer) : "Distance (deg)" : 90
	returnspeed(integer) : "Auto-return speed" : 0
	m_flStartPos(string) : "Starting Position (0 - 1)" : "0.0"
	spawnflags(flags) =
	[
		2: "Not useable" : 0
		16: "Auto Return" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	_minlight(integer) : "_minlight"
]

//
// monsters
//
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/controller.mdl") = monster_alien_controller : "Controller"  []
@PointClass base(Monster, Sequence) size(-32 -32 0, 32 32 64) studio("models/agrunt.mdl") = monster_alien_grunt : "Alien Grunt" 
[
	netname(string) : "Squad Name"
	spawnflags(Flags) =
	[
		32 : "SquadLeader" : 0
		1024 : "Drop Hornetgun" : 0
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/islave.mdl") = monster_alien_slave : "Vortigaunt" 
[
	netname(string) : "Squad Name"
	spawnflags(Flags) =
	[
		32 : "SquadLeader" : 0
		64 : "IgnorePlayer" : 0
	]
]
@PointClass base(Monster, Sequence) size(-360 -360 -172, 360 360 8) studio("models/apache.mdl") = monster_apache : "Apache" 
[
	spawnflags(Flags) = 
	[
		8 : "NoWreckage"	: 0
		64 : "Start Inactive" : 0
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 36) studio("models/baby_headcrab.mdl") = monster_babycrab : "Baby Headcrab" []
@PointClass base(RenderFields, Reflection, Sequence) size(-16 -16 -36, 16 16 0) studio("models/barnacle.mdl") = monster_barnacle : "Barnacle Monster" []
@PointClass base(Monster, TalkMonster, Sequence) size(-16 -16 0, 16 16 72) studio("models/barney.mdl") = monster_barney : "Barney"
[
	frags(choices) : "Weapon" : 0 =
	[
		0 : "Glock (normal)"
		1 : "Python 357"
	]
	spawnflags(flags) = 
	[
		1024 : "Don't Drop Wpn" : 0
	]
]
@PointClass base(Reflection, RenderFields, Appearflags, Angles, Sequence) size(-16 -16 0, 16 16 72) = monster_barney_dead : "Dead Barney" 
[
    pose(Choices) : "Pose" : 0 =
	[
		0 : "On back"
		1 : "On side"
		2 : "On stomach"
	]
]
@PointClass base(Monster, Sequence) size(-95 -95 0, 95 95 190) studio("models/big_mom.mdl") = monster_bigmomma : "Big Mamma" 
[
	netname(string) : "First node" : ""
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/floater.mdl") = monster_bloater : "Bloater" []
@PointClass base(Monster, Sequence) size(-32 -32 0, 32 32 64) studio("models/bullsquid.mdl") = monster_bullchicken : "BullChicken" []
@PointClass base(Monster, Sequence) size(-3 -3 0, 3 3 3) studio("models/roach.mdl") = monster_cockroach : "Cockroach" []
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 16) studio("models/aflock.mdl") = monster_flyer_flock : "Flock of Flyers" 
[
	iFlockSize(Integer) : "Flock Size" : 8
	flFlockRadius(Integer) : "Flock Radius" : 128
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio() = monster_furniture : "Monster Furniture" 
[
	model(studio) : "model"

]
@PointClass base(Monster, Sequence) size(-32 -32 0, 32 32 128) studio("models/garg.mdl") = monster_gargantua : "Gargantua" []
@PointClass base(Monster, RenderFields, Sequence) size(-16 -16 -36, 16 16 36) studio() = monster_generic : "Generic Script Monster" 
[
	spawnflags(Flags) = 
	[
		4 : "Not solid"	: 0
		8 : "Head Controller" : 0
	]
	m_bloodColor(choices) : "Blood Color" : 0 =
	[
		0 : "No change"
		-1 : "Don't Bleed"
		247 : "Red (Human)"
		195 : "Yellow (Alien)"
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/gman.mdl") = monster_gman : "G-Man" []
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/hgrunt.mdl") = monster_grunt_repel : "Human Grunt (Repel)" []
@PointClass base(Weapon, Reflection, Targetx, RenderFields, Sequence) studio("models/w_grenade.mdl") = monster_handgrenade : "Live Handgrenade" []
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 36) studio("models/headcrab.mdl") = monster_headcrab : "Head Crab" []
@PointClass base(Reflection, Appearflags, RenderFields, Angles, Sequence) size(-16 -16 0, 16 16 72) = monster_hevsuit_dead : "Dead HEV Suit" 
[
      pose(Choices) : "Pose" : 0 =
	[
		0 : "On back"
		1 : "Seated"
		2 : "On stomach"
		3 : "On Table"
	]
]
@PointClass base(Reflection, Appearflags, RenderFields, Angles) size(-16 -16 0, 16 16 72) studio("models/hgrunt.mdl") = monster_hgrunt_dead : "Dead Human Grunt" 
[
      pose(Choices) : "Pose" : 0 =
	[
		0 : "On stomach"
		1 : "On side"
		2 : "Seated"
	]
	body(Choices) : "Body" : 0 =
	[
		0 : "Grunt with Gun"
		1 : "Commander with Gun"
		2 : "Grunt no Gun"
		3 : "Commander no Gun"
	]
	sequence(Choices) : "Animation Sequence (editor)" : 44 =
	[
		44 : "deadstomach"
		45 : "deadside"
		46 : "deadsitting"
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 36) studio("models/houndeye.mdl") = monster_houndeye : "Houndeye" 
[
	netname(string) : "Squad Name"
	spawnflags(Flags) =
	[
		32 : "SquadLeader" : 0
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/hassassin.mdl") = monster_human_assassin : "Human Assassin" []
@PointClass base(Monster) size(-16 -16 0, 16 16 72) studio("models/hgrunt.mdl") = monster_human_grunt : "Human Grunt (camo)" 
[
	spawnflags(Flags) =
	[
		32 : "SquadLeader" : 0
		1024 : "Don't Drop Wpn" : 0
	]
	netname(string) : "Squad Name"
	weapons(Choices) : "Weapons" : 1 =
	[
		1 : "9mmAR"
		3 : "9mmAR + HG"
		5 : "9mmAR + GL"
		8 : "Shotgun"
		10 : "Shotgun + HG"
	]
	sequence(Choices) : "Animation Sequence (editor)" : 11 =
	[
		0 : "walk1"
		1 : "run"
		2 : "victorydance"
		3 : "cower"
		4 : "smflinch"
		5 : "leftlegsmflinch"
		6 : "rightlegsmflinch"
		7 : "rightarmflinch"
		8 : "leftarmflinch"
		9 : "launchgrenade"
		10 : "throwgrenade"
		11 : "idle1"
		12 : "idle2"
		13 : "combatidle"
		14 : "frontkick"
		15 : "crouching_idle"
		16 : "crouching_wait"
		17 : "crouching_mp5"
		18 : "standing_mp5"
		19 : "reload_mp5"
		20 : "crouching_shotgun"
		21 : "standing_shotgun"
		22 : "reload_shotgun"
		23 : "advance_signal"
		24 : "flank_signal"
		25 : "retreat_signal"
		26 : "drop_grenade"
		27 : "limpingwalk"
		28 : "limpingrun"
		29 : "180L"
		30 : "180R"
		31 : "strafeleft"
		32 : "straferight"
		33 : "dieback1"
		34 : "dieforward"
		35 : "diesimple"
		36 : "diebackwards"
		37 : "dieheadshot"
		38 : "diegutshot"
		39 : "barnacled1"
		40 : "barnacled2"
		41 : "barnacled3"
		42 : "barnacled4"
		43 : "dead_on_stomach"
		44 : "deadstomach"
		45 : "deadside"
		46 : "deadsitting"
		47 : "repel_jump"
		48 : "repel_repel"
		49 : "repel_shoot"
		50 : "repel_land"
		51 : "repel_die"
		52 : "dragholeidle"
		53 : "draghole"
		54 : "bustwall"
		55 : "hoprail"
		56 : "converse1"
		57 : "converse2"
		58 : "startleleft"
		59 : "startleright"
		60 : "divecover"
		61 : "defuse"
		62 : "corner1"
		63 : "corner2"
		64 : "stonetoss"
		65 : "cliffdie"
		66 : "diveaside_idle"
		67 : "diveaside"
		68 : "kneeldive_idle"
		69 : "kneeldive"
		70 : "WM_button"
		71 : "WM_moatjump"
		72 : "bustwindow"
		73 : "dragleft"
		74 : "dragright"
		75 : "trackwave"
		76 : "trackdive"
		77 : "flyback"
		78 : "impaled"
		79 : "jumptracks"
		80 : "pipetoss"
		81 : "plunger"
	]
]
@PointClass base(Monster, Sequence) size(-32 -32 0, 32 32 64) studio("models/icky.mdl") = monster_ichthyosaur : "Ichthyosaur" []
@PointClass base(Monster, Sequence) size(-6 -6 0, 6 6 6) studio("models/leech.mdl") = monster_leech : "Leech" []
@PointClass base(Monster, Sequence) size(-16 -16 -32, 16 16 32) studio("models/miniturret.mdl") = monster_miniturret : "Mini Auto Turret"
[
	orientation(Choices) : "Orientation" : 0 =
	[
		0 : "Floor Mount"
		1 : "Ceiling Mount"
	]
	spawnflags(Flags) = 
	[
		32 : "Autostart" : 0
		64 : "Start Inactive" : 0
	]
]
@PointClass base(Monster, Sequence) size(-192 -192 0, 192 192 384) studio("models/nihilanth.mdl") = monster_nihilanth : "Nihilanth"  []
@PointClass base(Monster, Sequence) size(-480 -480 -112, 480 480 24) studio("models/osprey.mdl") = monster_osprey : "Osprey"
[
	spawnflags(Flags) = 
	[
		64 : "Start Inactive" : 0
	]
]
@PointClass base(Monster, Sequence) size(-6 -6 0, 6 6 6) studio("models/bigrat.mdl") = monster_rat : "Rat (no ai)" []
@PointClass base(Weapon,Targetx, Reflection,RenderFields, Sequence) studio("models/w_satchel.mdl") = monster_satchel : "Live Satchel Charge" []
@PointClass base(MonsterNoBody, TalkMonster) size(-16 -16 0, 16 16 72) studio("models/scientist.mdl") = monster_scientist : "Scared Scientist" 
[
    body(Choices) : "Body" : -1 =
	[
		-1 : "Random"
		0 : "Glasses"
		1 : "Ushanka"
		2 : "Lys1"
		3 : "Slick"
		8 : "Kaska1"
		9 : "KaskaBel"
		10 : "Kaska2"
		11 : "NeLys"
	]
	sequence(Choices) : "Animation Sequence (editor)" : 13 =
	[
		0 : "walk"
		1 : "walk_scared"
		2 : "run"
		3 : "run1"
		4 : "run2"
		5 : "180_Left"
		6 : "180_Right"
		7 : "flinch"
		8 : "flinch1"
		9 : "laflinch"
		10 : "raflinch"
		11 : "llflinch"
		12 : "rlflinch"
		13 : "idle1"
		14 : "idle3"
		15 : "idle4"
		16 : "idle5"
		17 : "idle6"
		18 : "idle7"
		19 : "crouchstand"
		20 : "crouch_idle"
		21 : "crouch_idle2"
		22 : "crouch_idle3"
		23 : "crouch_idle3"
		24 : "panic"
		25 : "fear1"
		26 : "fear2"
		27 : "eye_wipe"
		28 : "pull_needle"
		29 : "return_needle"
		30 : "give_shot"
		31 : "diesimple"
		32 : "dieforward"
		33 : "dieforward1"
		34 : "diebackward"
		35 : "headshot"
		36 : "gutshot"
		37 : "lying_on_back"
		38 : "lying_on_stomach"
		39 : "dead_sitting"
		40 : "dead_table1"
		41 : "dead_table2"
		42 : "dead_table3"
		43 : "barnacled1"
		44 : "barnacled2"
		45 : "barnacled3"
		46 : "barnacled4"
		47 : "console"
		48 : "checktie"
		49 : "dryhands"
		50 : "tieshoe"
		51 : "whiteboard"
		52 : "studycart"
		53 : "lean"
		54 : "pondering"
		55 : "pondering2"
		56 : "pondering3"
		57 : "buysoda"
		58 : "pause"
		59 : "yes"
		60 : "no"
		61 : "push_button"
		62 : "converse1"
		63 : "converse2"
		64 : "retina"
		65 : "talkleft"
		66 : "talkright"
		67 : "deskidle"
		68 : "coffee"
		69 : "franticbutton"
		70 : "startle"
		71 : "sitlookleft"
		72 : "sitlookright"
		73 : "sitscared"
		74 : "sitting2"
		75 : "sitting3"
		76 : "cprscientist"
		77 : "cprscientistrevive"
		78 : "cowering_in_corner"
		79 : "sstruggleidle"
		80 : "sstruggle"
		81 : "headcrabbed"
		82 : "c1a0_catwalkidle"
		83 : "c1a0_catwalk"
		84 : "ceiling_dangle"
		85 : "ventpull1"
		86 : "ventpull2"
		87 : "ventpullidle1"
		88 : "ventpullidle2"
		89 : "sitidle"
		90 : "sitstand"
		91 : "keypad"
		92 : "panic1"
		93 : "lookwindow"
		94 : "wave"
		95 : "pulldoor"
		96 : "beatdoor"
		97 : "fallingloop"
		98 : "crawlwindow"
		99 : "divewindow"
		100 : "locked_door"
		101 : "push_button2"
		102 : "unlock_door"
		103 : "quicklook"
		104 : "handrailidle"
		105 : "handrail"
		106 : "hanging_idle"
		107 : "fall"
		108 : "scientist_get_pulled"
		109 : "hanging_idle2"
		110 : "fall_elevator"
		111 : "scientist_idlewall"
		112 : "ickyjump_sci"
		113 : "haulscientist"
		114 : "c1a4_wounded_idle"
		115 : "c1a4_dying_speech"
		116 : "tentacle_grab"
		117 : "helicack"
		118 : "windive"
		119 : "scicrashidle"
		120 : "scicrash"
		121 : "onguard"
		122 : "seeya"
		123 : "rocketcrawl"
		124 : "portal"
		125 : "gluonshow"
		126 : "crouch"
		127 : "kneel"
	]
]
@PointClass base(Reflection, Appearflags, RenderFields, Angles) size(-16 -16 0, 16 16 72) studio("models/scientist.mdl") = monster_scientist_dead : "Dead Scientist" 
[
	body(Choices) : "Body" : -1 =
	[
		-1 : "Random"
		0 : "Glasses"
		1 : "Einstein"
		2 : "Luther"
		3 : "Slick"
	]
	pose(Choices) : "Pose" : 0 =
	[
		0 : "On back"
		1 : "On Stomach"
		2 : "Sitting"
		3 : "Hanging"
		4 : "Table1"
		5 : "Table2"
		6 : "Table3"
	]
	sequence(Choices) : "Animation Sequence (editor)" : 37 =
	[
		37 : "lying_on_back"
		38 : "lying_on_stomach"
		39 : "dead_sitting"
		40 : "dead_table1"
		41 : "dead_table2"
		42 : "dead_table3"
	]
]
@PointClass base(MonsterNoBody) size(-14 -14 22, 14 14 72) studio("models/scientist.mdl") = monster_sitting_scientist : "Sitting Scientist" 
[
	body(Choices) : "Body" : -1 =
	[
		-1 : "Random"
		0 : "Glasses"
		1 : "Einstein"
		2 : "Luther"
		3 : "Slick"
	]
	sequence(Choices) : "Animation Sequence (editor)" : 73 =
	[
		71 : "sitlookleft"
		72 : "sitlookright"
		73 : "sitscared"
		74 : "sitting2"
		75 : "sitting3"
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/sentry.mdl") = monster_sentry : "Sentry Turret Gun"
[
	spawnflags(Flags) = 
	[
		32 : "Autostart" : 0
		64 : "Start Inactive" : 0
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 36) studio("models/w_squeak.mdl") = monster_snark : "Armed Snark" []
@PointClass color(0 200 200) base(Targetname, Global, Parent) iconsprite("sprites/EnvTarget.spr") size(-16 -16 -16, 16 16 16) = monster_target : "Target for monsters to attack"
[
	frags(choices) : "Behave as" : 0 =
	[
		0 : "No change"
		2 : "Player"
		3 : "Scientist"
		11: "Barney"
		4 : "Human Military"
		1 : "Machine (Human Military)"
		5 : "Alien Military"
		6 : "Alien Passive"
		7 : "Other Alien"
		8 : "Headcrab"
		9 : "Bullsquid"
		99 : "Barnacle"
		10 : "Animals (rats, roaches)"
		12 : "Player's Bioweapon"
		13 : "Alien's Bioweapon"
		14 : "Faction A"
		15 : "Faction B"
		16 : "Faction C"
	]
	spawnflags(Flags) =
	[
		1: "Start Inactive" : 0
	]
]

@PointClass base(Monster, Sequence) size(-32 -32 0, 32 32 64) studio("models/tentacle2.mdl") = monster_tentacle : "Tentacle Arm" 
[
	sweeparc(integer) : "Sweep Arc" : 130
	sound(Choices) : "Tap Sound" : -1 =
	[
		-1 : "None"
		0 : "Silo"
		1 : "Dirt"
		2 : "Water"
	]
]
@PointClass base(Monster, Sequence) = monster_tripmine : "Active Tripmine" 
[
	spawnflags(Flags) =
	[
		1 : "Instant On" : 1
	]
]
@PointClass base(Monster, Sequence) size(-32 -32 -32, 32 32 32) studio("models/turret.mdl") = monster_turret : "Auto Turret"
[
	orientation(Choices) : "Orientation" : 0 =
	[
		0 : "Floor Mount"
		1 : "Ceiling Mount"
	]
	spawnflags(Flags) = 
	[
		32 : "Autostart" : 0
		64 : "Start Inactive" : 0
	]
]
@PointClass base(Monster, Sequence) size(-16 -16 0, 16 16 72) studio("models/zombie.mdl") = monster_zombie : "Scientist Zombie" []
@PointClass base(Targetname, Parent, Reflection, Angles) size(-16 -16 -16, 16 16 16) iconsprite("sprites/monstermaker.spr") = monstermaker : "Monster Maker"
[
	target(string) : "Target On Release" 
	monstertype(string) : "Monster Type"
	netname(string) : "Childrens' Name"
	spawnflags(Flags) = 
	[
		1 : "Start ON" 	: 0
	// 	2 : "PVS On/Off" : 0  // not implemented
		4 : "Cyclic" : 0
		8 : "MonsterClip" : 0
	]

	// how many monsters the monstermaker can create (-1 = unlimited)
	monstercount(integer) : "Number of Monsters" : -1
	
	// if delay is -1, new monster will be made when last monster dies.
	// else, delay is how often (seconds) a new monster will be dookied out.
	delay(string) : "Frequency" : "5"

	// maximum number of live children allowed at one time. (New ones will not be made until one dies)
	// -1 no limit
	m_imaxlivechildren(integer) : "Max live children" : 5
]

@PointClass base(Targetname) color(255 128 0) iconsprite("sprites/multi_manager.spr") = multi_manager : "MultiTarget Manager"
[
	spawnflags(Flags) = 
	[
		1 : "Multithreaded" : 0
		4 : "Loop" :0
		8 : "Kill after fire":0
		16: "Start On" :0
	]
	master(target_destination) : "Master"
	delay(string) : "Delay"
]

@PointClass base(Targetname, Target) size(-16 -16 -16, 16 16 16) color(64 255 64) = multi_switcher : "Logic Switcher"
[
	master(target_destination): "Master"
	delay(integer): "Delay": 0
	mode(choices): "Mode": 0 =
	[
		0: "Increase Target"
		1: "Decrease Target"
		2: "Random Choose"
	]
	spawnflags(flags) =
	[
		1: "Start On" : 0
	]
]

@PointClass base(Targetname) iconsprite("sprites/watcher.spr") = multi_watcher : "State Watcher"
[
	target(target_destination) : "Target('SmartEdit' for multiple)"
	delay(integer): "Delay": 0
	logic(choices): "Logic" : "AND" =
	[
		"AND": "AND"
		"OR": "OR"
		"NAND": "NAND (!AND)"
		"NOR": "NOR (!OR)"
		"XOR": "XOR (^OR)"
		"NXOR": "NXOR (!^OR)"
	]
	state(choices) : "State To Watch" : "" =
	[
		"" : "Write Individual to All"
		"ON": "ON"
		"OFF": "OFF"
		"TURN ON": "TURN ON"
		"TURN OFF": "TURN OFF"
		"IN USE": "IN USE"
		"DEAD": "DEAD"
	]
	offtarget(target_destination) : "Target On Deactivation"
]

@PointClass base(Targetname, Target) color(128 255 128) iconsprite("sprites/multisource.spr") = multisource : "Multisource"
[
	offtarget(target_destination) : "Target when Off"
	globalstate(string) : "Global State Master"
]

@PointClass base(Targetname, Parent, Angles) size(16 16 16) color(247 181 82) = path_corner : "Moving platform stop"
[
	spawnflags(Flags) =
	[
		1: "Wait for retrigger" : 0
		2: "Teleport" : 0
		4: "Fire once" : 0
	]
	target(target_destination) : "Next stop target"
	message(target_destination) : "Fire On Pass"
	wait(integer) : "Wait here (secs)" : 0
	speed(integer) : "New Train Speed" : 0
	yaw_speed(integer) : "New Train rot. Speed" : 0
]

@PointClass base(Targetname, Parent, Angles) size(16 16 16) iconsprite("sprites/rail.spr") = path_track : "Train Track Path"
[
	spawnflags(Flags) =
	[
		1: "Disabled" : 0
		2: "Fire once" : 0
		4: "Branch Reverse" : 0
		8: "Disable train" : 0
		16: "Teleport" : 0
	]
	target(target_destination) : "Next stop target"
	message(target_destination) : "Fire On Pass (Always)"
	m_iszFireFow(target_destination) : "Fire On Pass (Forward)"
	m_iszFireRev(target_destination) : "Fire On Pass (Backward)"
	altpath(target_destination) : "Branch Path"
	netname(target_destination) : "Fire on dead end"
	speed(integer) : "New Train Speed" : 0
]

//
// player effects
//
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_keycatcher : "Catching Player's Actions" 
[
	master(target_destination) : "Master" 
	m_iszKeyToCatch(choices) : "Key To Catch" : "attack" =
	[
		"attack" : "attack"
		"attack2" : "attack2"
		"jump" : "jump"
		"duck" : "duck"
		"forward" : "forward"
		"back" : "back"
		"use" : "use"
		"left" : "left"
		"right" : "right"
		"moveleft" : "moveleft"
		"moveright" : "moveright"
		"run" : "run"
		"reload" : "reload"
		"alt1" : "alt1"
		"score" : "score"
	]
	m_iszKeyPressed(target_destination) : "Fire On Pressed"
	m_iszKeyHoldDown(target_destination) : "Fire On Hold"
	m_iszKeyReleased(target_destination) : "Fire On Release"
]

@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"
	messagetime(string) : "Show Message delay" : "0"
	message(string) : "Message To Display" : ""
	loadtime(string) : "Reload delay" : "0"
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_weaponstrip : "Strips player's weapons"
[
	spawnflags(Flags) =
	[
		1 : "Suit too" : 0
		2 : "Cycler too" : 0
	]
]

@SolidClass base(func_physbox) = physboxmaker : "Spawning func_physbox" 
[
	boxcount(integer) : "Number of Physboxes" : 5
	m_imaxliveboxes(integer) : "Max Live Physboxes" : -1
	spawnflags(Flags) = 
	[
		1 : "Start ON" 	: 0
		4 : "Cyclic" : 0
	]
]

@PointClass base(func_physbox) studio() = physenvmaker : "Spawning func_physbox" 
[
	model(studio) : "Model" : "models/box.mdl"
	boxcount(integer) : "Number of Physboxes" : 5
	m_imaxliveboxes(integer) : "Max Live Physboxes" : -1
	spawnflags(Flags) = 
	[
		1 : "Start ON" 	: 0
		4 : "Cyclic" : 0
	]
]

@SolidClass base(func_pushable) = pushablemaker : "Spawning func_pushables" 
[
	boxcount(integer) : "Number of Pushables" : 5
	m_imaxliveboxes(integer) : "Max Live Pushables" : -1
	spawnflags(Flags) = 
	[
		1 : "Start ON" 	: 0
		4 : "Cyclic" : 0
	]
]

@PointClass base(Targetname, Targetx) size(-2 -2 -2, 2 2 2) color(255 64 255) iconsprite("sprites/sentence.spr") = scripted_sentence : "Scripted Sentence"
[
	spawnflags(Flags) = 
	[
		1 : "Fire Once" 	: 1
		2 : "Followers Only"	: 0
		4 : "Interrupt Speech"	: 1
		8 : "Concurrent"	: 0
	]
	sentence(string) : "Sentence Name" : ""
	entity(string) : "Speaker Type"
	duration(string) : "Sentence Time" : "3"
	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"
	]
]

@PointClass base(Targetname, Targetx, Parent, Angles) size(-2 -2 0, 2 2 8) color(255 0 255) iconsprite("sprites/sequence.spr") = scripted_sequence : "Scripted Sequence"
[
	m_iszFireOnBegin(string): "Fire On Begin Sequence"
	m_iszEntity(string) : "Target Monster"
	m_iszPlay(string) : "Action Animation" : ""
	m_iszIdle(string) : "Idle Animation" : ""
	m_flRadius(integer) : "Search Radius" : 512
	m_flRepeat(integer) : "Repeat Rate ms" : 0
	m_fMoveTo(choices) : "Move to Position" : 0 =
	[
		0 : "No"
		1 : "Walk"
		2 : "Run"
		4 : "Instantaneous"
		5 : "No - Turn to Face"
	]
	spawnflags(Flags) = 
	[
		4 : "Repeatable"	: 0
		8 : "Leave Corpse"	: 0
		32: "No Interruptions"	: 0
		64: "Override AI"	: 0
		128: "No Script Movement" : 0
		256: "Loop Post Idle" : 0
	]
]

@PointClass base(Targetname, Parent, Angles) size(-16 -16 -16, 16 16 16) color(255 0 255) = scripted_trainsequence : "Scripted Train Sequence"
[
	m_iszEntity(target_destination) : "Func_train to Affect"
	m_iszDestination(target_destination) : "Destination to Head for"
	m_iDirection(choices) : "Train Direction" : 4 =
	[
		4: "Towards Destination"
		1: "Forwards"
		2: "Backwards"
		3: "Stop"
		0: "No change"
	]
	target(target_destination) : "Fire on Arrival"
	//SF: next two are not working correctly according to the source code.
	//m_fDuration(string) : "Time limit (0 = no limit)" : "0"
	//netname(string) : "Fire on Timeout"
	m_iszTerminate(target_destination) : "Fire on Complition"
	//SF: not even used in Spirit
	//m_iPostDirection(choices) : "Direction afterwards" : 3 =
	//[
	//	1: "Forwards"
	//	3: "Stop"
	//]
	spawnflags(flags) =
	[
		1: "Kill After Passing" : 0
		2: "Move to Destination" : 0
		4: "Debug Mssgs" : 0
	]
]

@PointClass iconsprite("sprites/speaker_ent.spr") base(Targetname, Parent) = speaker : "Announcement Speaker"
[
	preset(choices) :"Announcement Presets" : 0 =
	[
		0: "None"
		1: "C1A0 Announcer"
		2: "C1A1 Announcer"
		3: "C1A2 Announcer"
		4: "C1A3 Announcer"
		5: "C1A4 Announcer"  
		6: "C2A1 Announcer"
		7: "C2A2 Announcer"
		// 8: "C2A3 Announcer"
		9: "C2A4 Announcer"
		// 10: "C2A5 Announcer"
		11: "C3A1 Announcer"
		12: "C3A2 Announcer"
	]
	message(string) : "Sentence Group Name"
	health(integer) : "Volume (10 = loudest)" : 5
	spawnflags(flags) =
	[
		1: "Start Silent" : 0
	]
]

@PointClass base(Targetname) = target_cdaudio : "CD Audio Target"
[
	health(choices) : "Track #" : -1 =
	[
		-1 : "Stop"
		1 : "Track 1"
		2 : "Track 2"
		3 : "Track 3"
		4 : "Track 4"
		5 : "Track 5"
		6 : "Track 6"
		7 : "Track 7"
		8 : "Track 8"
		9 : "Track 9"
		10 : "Track 10"
		11 : "Track 11"
		12 : "Track 12"
		13 : "Track 13"
		14 : "Track 14"
		15 : "Track 15"
		16 : "Track 16"
		17 : "Track 17"
		18 : "Track 18"
		19 : "Track 19"
		20 : "Track 20"
		21 : "Track 21"
		22 : "Track 22"
		23 : "Track 23"
		24 : "Track 24"
		25 : "Track 25"
		26 : "Track 26"
		27 : "Track 27"
		28 : "Track 28"
		29 : "Track 29"
		30 : "Track 30"
	]
	radius(string) : "Player Radius"
]

@PointClass base(Targetname, Targetx) iconsprite("sprites/train_setspeed.spr") = train_setspeed : "Setting New Train Speed"
[
	spawnflags(Flags) =
	[
		1 : "Act. train on start" : 0
		2 : "Debug Mssgs" : 0
	]
	train(target_destination) : "Train Name"
	time(string) : "Time To New Speed" : "4.0"
	speed(string) : "New Speed"
	mode(choices) : "Speed Up Type" : 1 =
	[
		0 : "Instantaneous"
		1 : "Gradual"
	]
]

//
// Triggers
//

@PointClass base(Targetx) iconsprite("sprites/trigger_auto.spr") = trigger_auto : "AutoTrigger"
[
	spawnflags(Flags) =
	[
		1 : "Remove On fire" : 1
		2 : "Only on Xash" : 0
	]
	globalstate(string) : "Global State to Read"
	triggerstate(choices) : "Trigger State" : 0 = 
	[
		0 : "Off"
		1 : "On"
		2 : "Toggle"
	]
]

@SolidClass base(Targetname, Parent) = trigger_autosave : "AutoSave Trigger"
[
	master(target_destination) : "Master"
	spawnflags(flags) =
	[
		8 : "Check Anlges" : 0
	]
]

@SolidClass base(Trigger, TriggerCond, Angles, ) = trigger_bounce : "Bouncey area"
[
	frags(string) : "Factor (0=stop, 1=perfect bounce)" : "0.9"
	armorvalue(string) : "Minimum Speed" : "100"
	spawnflags(flags) =
	[
		16: "Decrease Speed" : 0
	]
]

@PointClass base(Targetx, Targetname) iconsprite("sprites/TriggerCamera.spr") = trigger_camera : "Trigger Camera" 
[
	m_iszViewEntity(target_destination) : "Entity To View From"
	wait(integer) : "Hold time" : 10
	moveto(string) : "Path Corner"
	spawnflags(flags) =
	[
		1: "Start At Player" : 1
		2: "Follow Player" : 1
		4: "Freeze Player" : 0
	]
	speed(string) : "Initial Speed" : "0"
	acceleration(string) : "Acceleration units/sec^2" : "500"
	deceleration(string) : "Stop Deceleration units/sec^2" : "500"
]

@SolidClass base(Targetname, Parent) = trigger_cdaudio : "Trigger CD Audio"
[
	health(choices) : "Track #" : -1 =
	[
		-1 : "Stop"
		1 : "Track 1"
		2 : "Track 2"
		3 : "Track 3"
		4 : "Track 4"
		5 : "Track 5"
		6 : "Track 6"
		7 : "Track 7"
		8 : "Track 8"
		9 : "Track 9"
		10 : "Track 10"
		11 : "Track 11"
		12 : "Track 12"
		13 : "Track 13"
		14 : "Track 14"
		15 : "Track 15"
		16 : "Track 16"
		17 : "Track 17"
		18 : "Track 18"
		19 : "Track 19"
		20 : "Track 20"
		21 : "Track 21"
		22 : "Track 22"
		23 : "Track 23"
		24 : "Track 24"
		25 : "Track 25"
		26 : "Track 26"
		27 : "Track 27"
		28 : "Track 28"
		29 : "Track 29"
		30 : "Track 30"
	]
	spawnflags(flags) =
	[
		8 : "Check Anlges" : 0
	]
]

@SolidClass = trigger_changelevel : "Trigger: Change level"
[
	targetname(string) : "Name"
	map(string) : "New map name"
	landmark(string) : "Landmark name"
	changetarget(target_destination) : "Change Target"
	changedelay(string) : "Delay before change target" : "0"
	spawnflags(flags) =
	[
		1: "No Intermission" : 0
		2: "USE Only" : 0
		8 : "Check Anlges" : 0
	]
]

@PointClass base(Targetx, Targetname) iconsprite("sprites/changetarget.spr") = trigger_changetarget : "Trigger Change Target"
[
	m_iszNewTarget(target_destination) : "New Target (*locus)"
]

@PointClass base(Targetname) iconsprite("sprites/trigger.spr") = trigger_lightstyle : "Trigger Change Lightstyle"
[
	target(target_destination) : "Target to affect"
    style(choices) : "New Appearance" : 0 =
	[
		0 : "On"
		13: "Off"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		12: "Underwater"
		14: "Slow Fade In"
		15: "Medium Fade In"
		16: "Fast Fade In"
	]
	pattern(string) : "Custom Appearance"
	m_iFade(string) : "Fade time" : 0
	m_iWait(string) : "Hold time (-1 = permanent)" : -1
]

@PointClass base(Targetx, Targetname) = trigger_changeparent : "Trigger Change Parent"
[
	m_iszNewParent(target_destination) : "New Parent (*locus)"
]

@PointClass base(Targetname) = trigger_command : "Console Command"
[
	netname(string) : "Command String"
]

@SolidClass base(Trigger, Targetname) = trigger_counter : "Trigger counter" 
[
	spawnflags(flags) = 
	[ 
		1 : "No Message" : 0 
	]
	master(target_destination) : "Master" 
	count(integer) : "Count before activation" : 2
]

@SolidClass base(Targetname, Parent) = trigger_endsection : "EndSection Trigger"
[
	section(string) : "Section"
	spawnflags(flags) =
	[
		1: "USE Only" : 0
		8 : "Check Anlges" : 0
	]
]

@SolidClass base(Trigger) = trigger_gravity : "Trigger Gravity"
[
	gravity(integer) : "Gravity (0-1)" : 1
]

@SolidClass base(Targetname, Parent) = trigger_gravity_field : "Trigger: Change local gravity (no Physx)"
[
	gravity(string) : "Gravity Factor" : "0.25"
]

@SolidClass base(Targetname,Target, Parent) = trigger_hurt : "Trigger player hurt" 
[
	spawnflags(flags) = 
	[ 
		1: "Target Once" : 0 
		2: "Start Off" : 0
		8: "No clients" : 0
		16:"FireClientOnly" : 0
		32:"TouchClientOnly" : 0
	]
	master(target_destination) : "Master" 
	dmg(integer) : "Damage" : 10
	delay(string) : "Delay before trigger" : "0"
	damagetype(choices) : "Damage Type" : 0 =
	[
		0 : "GENERIC"
		1 : "CRUSH"
		2 : "BULLET"
		4 : "SLASH"
		8 : "BURN"
		16 : "FREEZE"
		32 : "FALL"
		64 : "BLAST"
		128 : "CLUB"
		256 : "SHOCK"
		512 : "SONIC"
		1024 : "ENERGYBEAM"
		16384: "DROWN"
		32768 : "PARALYSE"
		65536 : "NERVEGAS"
		131072 : "POISON"
		262144 : "RADIATION"
		524288 : "DROWNRECOVER"
		1048576 : "CHEMICAL"
		2097152 : "SLOWBURN"
		4194304 : "SLOWFREEZE"
	]
]

@PointClass base(Targetname) iconsprite("sprites/trigger.spr") = trigger_impulse : "Trigger impulse"
[
	master(target_destination) : "Master" 
	impulse(string) : "Impulse Filter" 
]
 
@SolidClass base(Targetname, Parent, Filter) = trigger_inout : "Trigger: Activate on entering or leaving"
[
	target(target_destination) : "Fire on entering"
	m_iszAltTarget(target_destination) : "Fire on leaving"
	m_iszBothTarget(target_destination) : "Fire on/off (entering/leaving)"
	master(target_destination) : "Master" 
	spawnflags(flags) = 
	[
		1: "Monsters" : 0
		2: "No Clients" : 0
		4: "Pushables": 0
		8: "Check Angles" : 0
		16 : "All Physics" : 0
	]
]

@SolidClass base(Angles, Parent) = trigger_monsterjump : "Trigger monster jump" 
[
	master(target_destination) : "Master" 
	speed(integer) : "Jump Speed" : 40
	height(integer) : "Jump Height" : 128
	spawnflags(flags) =
	[
		8 : "Check Anlges" : 0
	]
]

@SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple" 
[
	wait(integer) : "Delay before reset" : 10
]

@SolidClass base(Trigger) = trigger_once : "Trigger: Activate once" []

@PointClass base(Targetname) iconsprite("sprites/trigger.spr") = trigger_onsight : "Trigger when A sees B"
[
	master(target_destination) : "Master" 
	netname(target_detination) : "Looking Entity (blank=player)"
	message(string) : "Entity/classname to Look at"
	target(target_detination) : "Fire when Seen"
	noise(target_detination) : "Fire when no Longer seen"
	noise1(target_detination) : "Fire on/off (seen/not seen)"
	frags(string) : "Distance (0=unlimited)" : "512"
	max_health(choices) : "Field of view (degrees)" : 90 =
	[
		-1 : "(-1)Use monster's view"
	]
	spawnflags(flags) =
	[
		1: "No LOS check" : 0
		2: "See thru glass" : 0
	]
]

@SolidClass base(Targetname, Parent) = trigger_autosave : "AutoSave Trigger"
[
	master(target_destination) : "Master"
	spawnflags(flags) =
	[
		8 : "Check Anlges" : 0
	]
]

@PointClass base(Targetname, Targetx) = trigger_playerfreeze : "Trigger Player Freeze" []

@SolidClass base(Targetname, Angles, Parent) = trigger_push : "Trigger player push"
[
	target(target_destination) : "Target to Fly"
	master(target_destination) : "Master" 
	spawnflags(flags) = 
	[ 
		1: "Once Only" : 0 
		2: "Start Off" : 0
		4: "Pushables": 0
		8: "Check Angles" : 0
		16 : "All Physics" : 0
	]
	speed(integer) : "Speed of push" : 40
]

@PointClass base(Targetname, Targetx) iconsprite("sprites/trigger_relay.spr") = trigger_relay : "Trigger Relay"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(target_destination) : "Master" 
	m_iszAltTarget(target_destination) : "Target If Blocked"
	triggerstate(choices) : "Trigger State" : 0 = 
	[
		0: "Off"
		1: "On"
		2: "Toggle"
	]
	value(string): "Send Value (depr.)"
]

@SolidClass base(Targetname, Target, Targetx, Parent) = trigger_sound : "Brush-based DSP Sound"
[
	master(target_destination) : "Master" 
	roomtype(choices) : "Room Type" : 0 =
	[
		0 : "(Disable all filters)"
		1 : "Generic (no filters)"
		2 : "Metal Small"
		3 : "Metal Medium"
		4 : "Metal Large"
		5 : "Tunnel Small"
		6 : "Tunnel Medium"
		7 : "Tunnel Large"
		8 : "Chamber Small"
		9 : "Chamber Medium"
		10: "Chamber Large"
		11: "Bright Small"
		12: "Bright Medium"
		13: "Bright Large"
		14: "Water 1"
		15: "Water 2"
		16: "Water 3"
		17: "Concrete Small"
		18: "Concrete Medium"
		19: "Concrete Large"
		20: "Big 1"
		21: "Big 2"
		22: "Big 3"
		23: "Cavern Small"
		24: "Cavern Medium"
		25: "Cavern Large"
		26: "Weirdo 1"
		27: "Weirdo 2"
		28: "Weirdo 3"
	]
]

@PointClass base(Targetname) iconsprite("sprites/trigger_startpatrol.spr") = trigger_startpatrol : "Trigger Start Patrol"
[
	target(target_destination) : "Target Monster"
	m_iszPath(target_destination) : "Patrol Path Start"
]

@SolidClass base(Trigger) = trigger_teleport : "Trigger Teleport" []

@SolidClass base(Targetname) = trigger_transition : "Trigger: Select Transition Area" []

//
// weapons
//

@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_crowbar.mdl") = weapon_crowbar : "Crowbar" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_9mmhandgun.mdl") = weapon_9mmhandgun : "9mm Handgun" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_357.mdl") = weapon_357 : "357 Handgun" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_9mmar.mdl") = weapon_9mmAR : "9mm Assault Rifle" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_shotgun.mdl") = weapon_shotgun : "Shotgun" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_rpg.mdl") = weapon_rpg : "RPG" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_gauss.mdl") = weapon_gauss : "Gauss Gun" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_crossbow.mdl") = weapon_crossbow : "Crossbow" 
[
	sequence(choices) : "Placement" : 1 =
	[
		0 : "Normal (flat)"
		1 : "Realistic (tilted)"
	]
]
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_egon.mdl") = weapon_egon : "Egon Gun" []
@PointClass base(Weapon, Targetx, Parent, Reflection) size(-16 -16 -5, 16 16 27) = weapon_tripmine : "Tripmine Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_satchel.mdl") = weapon_satchel : "Satchel Charge Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_grenade.mdl") = weapon_handgrenade : "Handgrenade Ammo" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_squeak.mdl") = weapon_snark : "Squeak Grenade" []
@PointClass base(Weapon, Targetx, Parent, Reflection) studio("models/w_hgun.mdl") = weapon_hornetgun : "Hornet Gun" []
@PointClass base(Targetx, Parent, Reflection) size(-16 -16 0, 16 16 64) color(0 128 0) studio("models/w_weaponbox.mdl") =  weaponbox : "Weapon/Ammo Container" []

@PointClass base(Weapon, Targetx, Parent, Reflection) = world_items : "World Items" 
[
	type(choices) :"types" : 42 =
	[
		42: "Antidote"
		43: "Security Card"
		44: "Battery"
		45: "Suit"
	]
]

//
// Xen
//

@PointClass base(Target, Targetname, Reflection, RenderFields, Angles) size(-48 -48 0, 48 48 32 ) studio("models/light.mdl") = xen_plantlight : "Xen Plant Light" []
@PointClass base(Targetname, Reflection, RenderFields, Angles) size(-8 -8 0, 8 8 32 ) studio("models/hair.mdl") = xen_hair : "Xen Hair" 
[
	spawnflags(Flags) = 
	[
		1 : "Sync Movement" 	: 0
	]
]
@PointClass base(Targetname, Reflection, RenderFields, Angles) size(-24 -24 0, 24 24 188 ) studio("models/tree.mdl") = xen_tree : "Xen Tree" []
@PointClass base(Targetname, Reflection, RenderFields, Angles) size(-16 -16 0, 16 16 64 ) studio("models/fungus(small).mdl") = xen_spore_small : "Xen Spore (small)" []
@PointClass base(Targetname, Reflection, RenderFields, Angles) size(-40 -40 0, 40 40 120 ) studio("models/fungus.mdl") = xen_spore_medium : "Xen Spore (medium)" []
@PointClass base(Targetname, Reflection, RenderFields, Angles) size(-90 -90 0, 90 90 220 ) studio("models/fungus(large).mdl") = xen_spore_large : "Xen Spore (large)" []

//@SolidClass base(Targetname, Reflection, RenderFields, Angles) = func_physbox : "PhysX box" []
