Moderator elections are being held. See Valve Developer Community:Moderator elections for more details.
Users who would like to run for moderator must be autoconfirmed and have at least 100 edits. Users can check their own edit count at Special:Preferences.

Deathmatch Classic 3.0.0.3.fgd

From Valve Developer Community
Jump to: navigation, search
This is a text file used internally by a Valve Valve Software technology, such as Source Source and GoldSrc GoldSrc Engine.
To open this file, copy the following text into a text editor such as Notepad++ Notepad++, and save it with "save as type" being "all files" and .FGD appended to the file name. Then open the file in the appropriate tool.
//
// DMC game definition file (.fgd)
// for Worldcraft 3.x and above
//
// updated by Chris Bokitch & Daniel "Dmx6" O.
// [email protected]
// http://www.valve-erc.com/
//
//
// aug 18 2023 - 3.0.0.3
// 	- added "Big" flags for ammunition entities
//
// sep 19 2001 - 3.0.0.2
//	- added env_fog (from HL 1.1.0.8)
//
// aug 28 2001 - 3.0.0.1
//	- changed IS NOT LOOPED to NOT TOGGLED on ambient_generic (royalef)
//	- gave light_environment a Name
//	- added Angular Velocity to func_train
//	- created ZHLT_point baseclass
//	- added ZHLT_point base to light, light_environment, and light_spot
//	- created ZHLT baseclass
//	- added ZHLT base to all applicable brush entities
//	- above list compiled by Unquenque
//	------------------------------------------------------------------------

//
// worldspawn
//

@SolidClass = worldspawn : "World entity"
[
	message(string) : "Map Description / Title"
	worldtype(choices) : "Ambience" : 0 =
	[
		0 : "Medieval"
		1 : "Runic (metal)"
		2 : "Present (base)"
	]
	skyname(string) : "Sky Name" : "dmcw"
	sounds(integer) : "CD track to play"
	WaveHeight(string) : "Default Wave Height"
	MaxRange(string) : "Max viewable distance" : "4096"
	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"
	]
]

//
// BaseClasses
//

@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"
]

@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 = Targetname
[
	targetname(target_source) : "Name"
]
@BaseClass = Target
[
	target(target_destination) : "Target"
]
@BaseClass size(0 0 0, 32 32 32) color(80 0 200) base(Appearflags) = Ammo []
@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"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

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

@BaseClass base(Target, Targetname, RenderFields, Angles) color(0 200 200) = Monster
[
	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
		256: "Pre-Disaster" 	: 0
		512: "Fade Corpse"	: 0
	]
]

@BaseClass = TalkMonster
[
	UseSentence(String) : "Use Sentence"
	UnUseSentence(String) : "Un-Use Sentence"
]

@BaseClass base(Targetname, Angles) 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
[
	_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"
	]
	pattern(string) : "Custom Appearance"
]

@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 base(Appearflags, Targetname, RenderFields, Global, Angles) = Door
[
	killtarget(target_destination) : "KillTarget"
	speed(integer) : "Speed" : 100
	master(string) : "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(string) : "Message if triggered"
	target(target_destination) : "Target"
	delay(integer) : "Delay before fire"
	netname(string) : "Fire on Close"
	health(integer) : "Health (shoot open)" : 0
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		4 : "Don't link" : 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, RenderFields, Global, Angles) = BaseTank
[
	spawnflags(flags) =
	[
		1 : "Active" : 0
		16: "Only Direct" : 0
		32: "Controllable" : 0
	]

	// Mainly for use with 1009 team settings (game_team_master)
	master(string) : "(Team) Master"

	yawrate(string) : "Yaw rate" : "30"
	yawrange(string) : "Yaw range" : "180"
	yawtolerance(string) : "Yaw tolerance" : "15"
	pitchrate(string) : "Pitch rate" : "0"
	pitchrange(string) : "Pitch range" : "0"
	pitchtolerance(string) : "Pitch tolerance" : "5"
	barrel(string) : "Barrel Length" : "0"
	barrely(string) : "Barrel Horizontal" : "0"
	barrelz(string) : "Barrel Vertical" : "0"
	spritesmoke(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"
]

@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, RenderFields, Global, PlatSounds) = Trackchange
[
	height(integer) : "Travel altitude" : 0
	spawnflags(flags) =
	[
		1: "Auto Activate train" : 0
		2: "Relink track" : 0
		8: "Start at Bottom" : 0
		16: "Rotate Only" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	rotation(integer) : "Spin amount" : 0
	train(target_destination) : "Train to switch"
	toptrack(target_destination) : "Top track"
	bottomtrack(target_destination) : "Bottom track"
	speed(integer) : "Move/Rotate speed" : 0
]

@BaseClass base(Target, Targetname) = Trigger
[
	killtarget(target_destination) : "Kill target"
	netname(target_destination) : "Target Path"
	master(string) : "Master"
	sounds(choices) : "Sound style" : 0 =
	[
		0 : "No Sound"
	]
	delay(string) : "Delay before trigger" : "0"
	message(string) : "Message (set sound too!)"
	spawnflags(flags) =
	[
		1: "Monsters" : 0
		2: "No Clients" : 0
		4: "Pushables": 0
	]
]

//
// Entities
//

@PointClass iconsprite("sprites/speaker.spr") base(Targetname) = 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
	]
]

@SolidClass base(Target, ZHLT) = button_target : "Target Button"
[
	spawnflags(flags) =
	[
		1: "Use Activates" : 1
		2: "Start On" : 0
	]
	master(string) : "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"
]

//
// Environmental effects
//

@BaseClass = BeamStartEnd
[
	LightningStart(target_destination) : "Start Entity"
	LightningEnd(target_destination) : "Ending Entity"
]
@PointClass base(Targetname, BeamStartEnd, RenderFxChoices) size(-16 -16 -16, 16 16 16) = 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
	]
]

@PointClass base(Targetname, Angles) size(-4 -4 -4, 4 4 4) = env_beverage : "Beverage Dispenser"
[
	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, 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, ZHLT) = 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) size(-16 -16 -16, 16 16 16) = 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) 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, 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) = env_fade : "Screen Fade"
[
	spawnflags(flags) =
	[
		1: "Fade From" : 0
		2: "Modulate" : 0
		4: "Activator Only" : 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 base(Targetname) = env_fog : "Global Fog Properties"
[
	rendercolor(color255) : "Fog Color (RGB)" : "0 0 0"
	startdist(string) : "Start Distance" : "0"
	enddist(string) : "End Distance" : "0"
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_funnel : "Large Portal Funnel"
[
	spawnflags(flags) =
	[
		1: "Reverse" : 0
	]
]

@PointClass base(Targetname, RenderFxChoices, Angles) size(-16 -16 -16, 16 16 16) = env_laser : "Laser Beam Effect"
[
	LaserTarget(target_destination) : "Target of Laser"
	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" : ""
	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
	]
]

@PointClass base(Targetname, Target) = 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, Target, RenderFields) size(-16 -16 -16, 16 16 16) color(100 100 0) = env_render : "Render Controls"
[
	spawnflags(flags) =
	[
		1: "No Renderfx" : 0
		2: "No Renderamt" : 0
		4: "No Rendermode" : 0
		8: "No Rendercolor" : 0
	]
]

@PointClass base(Targetname) = env_shake : "Screen Shake"
[
	spawnflags(flags) =
	[
		1: "GlobalShake" : 0
	]
	amplitude(string) : "Amplitude 0-16" : "4"
	radius(string) : "Effect radius" : "500"
	duration(string) : "Duration (seconds)" : "1"
	frequency(string) : "0.1 = jerk, 255.0 = rumble" : "2.5"
]

@PointClass base(gibshooterbase, RenderFields) size(-16 -16 -16, 16 16 16) = env_shooter : "Model Shooter"
[
	shootmodel(studio) : "Model or Sprite name" : ""
	shootsounds(choices) :"Material Sound" : -1 =
	[
		-1: "None"
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Concrete"
	]
	scale(string) : "Gib Sprite Scale" : ""
	skin(integer) : "Gib Skin" : 0
]

@PointClass iconsprite("sprites/speaker.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, Angles) size(-16 -16 -16, 16 16 16) = env_spark : "Spark"
[
	MaxDelay(string) : "Max Delay" : "0"
	spawnflags(flags) =
	[
		32: "Toggle" : 0
		64: "Start ON" : 0
	]
]

@PointClass sprite() base(Targetname, 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
	]
]

@SolidClass base(Breakable, 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, RenderFields, Angles, ZHLT) = func_button : "Button"
[
	speed(integer) : "Speed" : 5
	health(integer) : "Health (shootable if > 0)"
	lip(integer) : "Lip"
	master(string) : "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
		32: "Toggle" : 0
		64: "Sparks" : 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(Global,RenderFields, Targetname, Angles, ZHLT) = func_conveyor : "Conveyor Belt"
[
	spawnflags(flags) =
	[
		1 : "No Push" : 0
		2 : "Not Solid" : 0
	]
	speed(string) : "Conveyor Speed" : "100"
	_minlight(string) : "Minimum light level"
]

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

@SolidClass base(Door, 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, RenderFields, ZHLT) = func_friction : "Surface with a change in friction"
[
	modifier(integer) : "Percentage of standard (0 - 100)" : 15
]

@SolidClass base(Targetname, 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(Targetname, RenderFields, ZHLT) = func_illusionary : "Fake Wall/Light"
[

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

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

@SolidClass base(Global,Appearflags, Targetname, RenderFields, 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,Global,RenderFields, PlatSounds, ZHLT) = func_plat : "Elevator"
[
	spawnflags(Flags) =
	[
		1: "Toggle" : 0
	]
	height(integer) : "Travel altitude (can be negative)" : 0
	speed(integer) : "Speed" : 50
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Global, 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 altitude (can be negative)" : 0
	rotation(integer) : "Spin amount" : 0
	_minlight(string) : "Minimum light level"
]

@SolidClass base(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) =
	[
		128: "Breakable" : 0
	]
	friction(integer) : "Friction (0-400)" : 50
	buoyancy(integer) : "Buoyancy" : 20
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Global, 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(string) : "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, RenderFields, Angles, ZHLT) = func_rotating : "Rotating Object"
[
	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
	]
	_minlight(integer) : "_minlight"
	spawnorigin(string) : "X Y Z - Move here after lighting" : "0 0 0"
	dmg(integer) : "Damage inflicted when blocked" : 0
]

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

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

@SolidClass base(Targetname, Global, RenderFields, ZHLT) = func_tracktrain : "Track Train"
[
	spawnflags(flags) =
	[
		1 : "No Pitch (X-rot)" : 0
		2 : "No User Control" : 0
		8 : "Passable" : 0
	]
	target(target_destination) : "First stop target"
	sounds(choices) : "Sound" : 0 =
	[
		0: "None"
		1: "Rail 1"
		2: "Rail 2"
		3: "Rail 3"
		4: "Rail 4"
		5: "Rail 6"
		6: "Rail 7"
	]
	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, RenderFields, ZHLT) = func_train : "Moving platform"
[
	target(target_source) : "First stop target"
	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"
	]
	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) =
	[
		8 : "Not solid" : 0
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Appearflags, RenderFields, Global, ZHLT) = func_wall : "Wall"
[
	_minlight(string) : "Minimum light level"
]

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

@SolidClass base(Door, 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
//

@PointClass base(Targetname, Targetx) = game_counter : "Fires when it hits limit"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
		2: "Reset On fire" : 1
	]
	master(string) : "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(string) : "Master"
	frags(integer) : "New Value" : 10
]

@PointClass base(Targetname) = game_end : "End this multiplayer game"
[
	master(string) : "Master"
]

@PointClass base(Targetname) = game_player_equip : "Initial player equipment"
[
	spawnflags(flags) =
	[
		1: "Use Only" : 0
	]
	master(string) : "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(string) : "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(string) : "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(string) : "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(string) : "Master"
]

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

@PointClass base(Targetname, Target) = 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(string) : "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(string) : "Master"
]

@PointClass base(gibshooterbase) = gibshooter : "Gib Shooter" []

//
// info entities
//

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

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

@PointClass base(Targetname) = info_landmark : "Transition Landmark" []

@PointClass size(-24 -24 -4, 24 24 4) color(255 255 0) = info_node : "ai node" []

@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)" []

@PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start"
[
	target(target_destination) : "Target"
	master(string) : "Master"
]
@PointClass base(PlayerClass) = info_player_start : "Player 1 start" []

@PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(200 100 50) = info_target : "Beam Target" []
@PointClass size(-8 -8 0, 8 8 16) base(PlayerClass, Targetname) = info_teleport_destination : "Teleport destination" []

//
// lights
//

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

@PointClass iconsprite("sprites/lightbulb.spr") base(Targetname, Target, Angles, ZHLT_point) = light_spot : "Spotlight"
[
	_cone(integer) : "Inner (bright) angle" : 30
	_cone2(integer) : "Outer (fading) angle" : 45
	pitch(integer) : "Pitch" : -90
	_light(color255) : "Brightness" : "255 255 128 200"
	_sky(Choices) : "Is Sky" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
      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"
	]
	pattern(string) : "Custom Appearance"
]

@PointClass base(Targetname, Angles, ZHLT_point) iconsprite("sprites/lightbulb.spr") = light_environment : "Environment"
[
	pitch(integer) : "Pitch" : 0
	_light(color255) : "Brightness" : "255 255 128 200"
]

@SolidClass base(Door, ZHLT) = momentary_door : "Momentary/Continuous door"
[
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
	]
]

@SolidClass base(Targetname, Target, Angles, RenderFields, ZHLT) = momentary_rot_button : "Direct wheel control"
[
	speed(integer) : "Speed" : 50
	master(string) : "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
	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"
]

//
// monsters
//

@PointClass base(Appearflags,RenderFields, Angles) 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(Targetname) color(255 128 0) = multi_manager : "MultiTarget Manager"
[
	spawnflags(Flags) =
	[
		1 : "multithreaded" : 0
	]
]

@PointClass base(Targetname, Target) color(128 255 128) = multisource : "Multisource"
[
	globalstate(string) : "Global State Master"
]

@PointClass base(Targetname, 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, Angles) size(16 16 16) = path_track : "Train Track Path"
[
	spawnflags(Flags) =
	[
		1: "Disabled" : 0
		2: "Fire once" : 0
		4: "Branch Reverse" : 0
		8: "Disable train" : 0
	]
	target(target_destination) : "Next stop target"
	message(target_destination) : "Fire On Pass"
	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_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" []

@PointClass iconsprite("sprites/speaker.spr") base(Targetname) = 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"
]

//
// Triggers
//

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

@SolidClass base(Targetname) = trigger_autosave : "AutoSave Trigger"
[
	master(string) : "Master"
]

@PointClass base(Targetx, Targetname) = trigger_camera : "Trigger Camera"
[
	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) = 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"
	]
]

@PointClass base(Targetx, Targetname) = trigger_changetarget : "Trigger Change Target"
[
	m_iszNewTarget(string) : "New Target"
]

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

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

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

@SolidClass base(Targetname,Target) = 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(string) : "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"
	]
]

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

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

@SolidClass base(Trigger, Angles) = trigger_push : "Trigger player push"
[
	spawnflags(flags) =
	[
		1: "Once Only" : 0
		2: "Start Off" : 0
	]
	speed(integer) : "Speed of push" : 40
]

@PointClass base(Targetname, Targetx) = trigger_relay : "Trigger Relay"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	triggerstate(choices) : "Trigger State" : 0 =
	[
		0: "Off"
		1: "On"
		2: "Toggle"
	]
]

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

//
// weapons
//

@PointClass size(-16 -16 0, 16 16 64) color(0 128 0) =  weaponbox : "Weapon/Ammo Container" []

// DMC/Quake1 entities

@PointClass base(Ammo) = item_cells : "Thunderbolt ammo" 
[
	spawnflags(flags) =
	[
		1 : "Big" : 0
	]
]
@PointClass base(Ammo) = item_rockets : "Rockets" 
[
	spawnflags(flags) =
	[
		1 : "Big" : 0
	]
]
@PointClass base(Ammo) = item_shells : "Shells" 
[
	spawnflags(flags) =
	[
		1 : "Big" : 0
	]
]
@PointClass base(Ammo) = item_spikes : "Perforator/Nailgun ammo" 
[
spawnflags(flags) =
	[
		1 : "Big" : 0
	]
]

@PointClass size(0 0 0, 32 32 32) base(Target, Appearflags) = item_health : "Health pak"
[
	spawnflags(flags) =
	[
		1 : "Rotten" : 0
		2 : "Megahealth" : 0
	]
]

@PointClass base(Target, Appearflags) = item_artifact_envirosuit : "Environmental protection suit" []
@PointClass base(Target, Appearflags) = item_artifact_super_damage : "Quad damage" []
@PointClass base(Target, Appearflags) = item_artifact_invulnerability : "Pentagram of Protection" []
@PointClass base(Target, Appearflags) = item_artifact_invisibility : "Ring of Shadows" []

@PointClass size(-16 -16 -24, 16 16 32) base(Target, Appearflags) = item_armorInv : "200% armor (Red)" []
@PointClass size(-16 -16 -24, 16 16 32) base(Target, Appearflags) = item_armor2 : "150% armor (Yellow)" []
@PointClass size(-16 -16 -24, 16 16 32) base(Target, Appearflags) = item_armor1 : "100% armor (Green)" []

@PointClass base(Weapon) = weapon_supershotgun : "Super shotgun" []
@PointClass base(Weapon) = weapon_nailgun : "Nailgun" []
@PointClass base(Weapon) = weapon_supernailgun : "Perforator" []
@PointClass base(Weapon) = weapon_grenadelauncher : "Grenade launcher" []
@PointClass base(Weapon) = weapon_rocketlauncher : "Rocket launcher" []
@PointClass base(Weapon) = weapon_lightning : "Thunderbolt" []