Difference between revisions of "Counter-Strike.fgd"

From Valve Developer Community
Jump to: navigation, search
(Last update: July 13th 2000)
(Update 25/08/2004)
Line 1: Line 1:
 
{{Back|Counter-Strike}}
 
{{Back|Counter-Strike}}
 
<pre>
 
<pre>
 +
// ------------------------------------------------------------------------------
 +
// Counter-Strike game definition file (.fgd)
 +
// Version 0.8.0.0
 +
// For Worldcraft 3.3, Hammer 3.4 - 3.5beta4, Half-Life 1.0.0.9 plus cs 1.6
 +
// Last update: Agust 25, 2004 by Anders Jenbo ([email protected])
 +
// -------------------------------------------------------------------------------
 
//
 
//
// Counter-Strike game definition file (.fgd)
+
// To learn how to use these entities, please visit Valve Editing
// Version 0.6.6 (Beta 6.6)
+
// Resource Center
// For Worldcraft 3.3 and above, and Half-Life 1.0.0.9 and above
+
// (AKA the VALVE-ERC/VERC) at http://collective.valve-erc.com/
// Last update: July 13th 2000
 
 
//
 
//
 
// by Justin DeJong aka "N0TH1NG"
 
// by Justin DeJong aka "N0TH1NG"
 
// modified from code by Chris Bokitch aka "autolycus"
 
// modified from code by Chris Bokitch aka "autolycus"
 
//
 
//
 +
// by Tim Holt aka Waldo ([email protected])
 +
// modified from code by Justin DeJong aka "N0TH1NG"
 +
//
 +
// Version 0.7.7 and 0.7.8 by fjl ([email protected])
 +
//
 +
// Version 0.7.8enhanced and 0.7.9.2e by tommy of escondido
 +
//
 +
// Version 0.7.9.2 by KeshTath ([email protected])
 +
//
 +
// Version 0.7.9.3 & 0.7.9.3b & 0.7.9.3c by tommy of escondido
 +
//
 +
// Version 0.7.9.4 - 0.7.9.9 by Anders Jenbo aka Wolf aka NoBody ([email protected])
 +
//
 +
// -----------------------------------------------------------------------
 +
// May 12, 2005 - Wolf (0.8.0.0)
 +
// added fixed func_breakable stuff
 +
// -----------------------------------------------------------------------
 +
// Agust 25, 2004 - Wolf (0.7.9.9)
 +
// added func_breakable stuff
 +
// -----------------------------------------------------------------------
 +
// Agust 25, 2004 - Wolf (0.7.9.8)
 +
// gave the zip a name that reflets the version xp_798u (expert version 0.7.9.8 unofficial)
 +
// Split the fgd back in to a SP and a common,
 +
// changed cyclers to have Model / Sprite support.
 +
// added zhlt_invisible to some of the invisable entitys to save on stored polys.
 +
// Added Angles to trigger_camera.
 +
// Added entitys
 +
// weapon_ak47, weapon_aug, weapon_awp, weapon_deagle, weapon_elite,
 +
// weapon_famas, weapon_fiveseven, weapon_flashbang, weapon_g3sg1,
 +
// weapon_galil, weapon_glock18, weapon_hegrenade, weapon_knife,
 +
// weapon_m249, weapon_m3, weapon_m4a1, weapon_mac10, weapon_mp5navy,
 +
// weapon_p228, weapon_p90, weapon_scout, weapon_sg550, weapon_sg552,
 +
// weapon_shield, eapon_smokegrenade, weapon_tmp, weapon_ump45,
 +
// weapon_usp, weapon_xm1014, ammo_338magnum, ammo_357sig, ammo_45acp,
 +
// ammo_50ae, ammo_556nato, ammo_556natobox, ammo_57mm, ammo_762nato,
 +
// ammo_9mm, ammo_buckshot, item_antidote, item_kevlar, item_assaultsuit,
 +
// item_suit, item_thighpack, info_landmark, item_security,
 +
// trigger_endsection, trigger_autosave, trigger_transition,
 +
// trigger_changelevel, test_effect, func_weaponcheck
 +
// weaponbox (see its note for how to add more ammo types)
 +
// Added some info from the cs-single-player fgd by fjl
 +
// Removed
 +
// xen entities, env_smoker, info_lights_rad and env_fog (only commented fog out)
 +
// Updated weapon_c4's dicription.
 +
// changed some (choices) so that the key is removed if set to 0, saves a bit on entity data.
 +
// Changed apperiance for
 +
// path_corner, path_track, env_explosion, trigger_camera, env_shooter,
 +
// item_battery, item_healthkit, item_longjump, env_sprite, cycler_wreckage,
 +
// env_beverage, env_funnel, env_rain, env_snow, info_landmark, env_shake,
 +
// info_compile_parameters, info_teleport_destination, info_null
 +
// Added Targetx and RenderFields to the Weapon base class
 +
// Added spark_shower to game_player_equip
 +
// Gave the env_shooter a model so it dosen't crash the game
 +
// Fixed the granade type of the func_grencatch
 +
// Hostages and players are now displayed by models.
 +
// Models and animation can be changed from the editor.
 +
// Made the hostage_entity more compatible with other models.
 +
// Added zhlt_noclip and zhlt_invisible to all brush entitys.
 +
// corected the number for Opaque + Concave Fix
 +
// Added info_texlights
 +
// Added more keys to info_compile_parameters.
 +
// priority, verbose, hlcsg, wadautodetect, noclipeconomy, noskyclip,
 +
// nocliphull, cliptype, texdata, wadconfig, hlbsp, hlvis, hlrad,
 +
// Vismatrix Method, lightdata, circus
 +
// Removed the flags from info_compile_parameters as they are obsoled.
 +
// Tested most entitis and did some other stuff :)
 +
// -----------------------------------------------------------------------
 +
// Mar 22, 2004 - tommy (0.7.9.3c)
 +
// added angles property to armoury entity so you can rotate or stand
 +
// the weapons on end.
 +
// -----------------------------------------------------------------------
 +
// Oct 18, 2003 - tommy (0.7.9.3b)
 +
// removed item_airtank, it was causing a precache error.
 +
// added weapon_C4 pre-plantable bomb from FJL's single player CS fgd.
 +
// -----------------------------------------------------------------------
 +
// Oct 16, 2003 - tommy (0.7.9.3 fix)
 +
// -fixed shieldgun to shield in game_player_equip, and added item_airtank.
 +
// -added single use func_grencatch from FJL's single player CS fgd.
 +
// -----------------------------------------------------------------------
 +
// Sept 17, 2003 - tommy (0.7.9.3)
 +
// -added env_rain and env_snow for CS 1.6
 +
// -----------------------------------------------------------------------
 +
// June 15, 2003 - tommy  (0.7.9.2e)
 +
// -added flag 2 to trigger_multiple for no player activation for soccer maps.
 +
// - Style property commented out for triggers, seems to serve no purpose.
 +
// -added light style 12 underwater weird - buggy.  not really a light source.
 +
// -added to func_pushable choice 2, breakable by player touch - buggy
 +
// -----------------------------------------------------------------------
 +
// January 21st, 2003 - KeshTath (0.7.9.2)
 +
//  - Added weapon_shieldgun to game_player_equip.
 +
//  - Added weapon_galil to game_player_equip.
 +
//  - Added weapon_famas to game_player_equip.
 +
//  *NOTE* You cannot add any of the new weapons to the armoury_entity, They did not
 +
// put in any code to allow you to add the UMP, SG550 or any of the new 1.6 weapons.
 +
//-----------------------------------------------------------------------
 +
// Oct 7th, 2002 - tommy  (0.7.8.1)
 +
// added Lauries new entity properties for switchable texture lighting
 +
//------------------------------------------------------------------------------
 +
// Aug 19th, 2002 - tommy (0.7.8enhanced)
 +
// - fixed env_blood choices
 +
// -----------------------------------------------------------------------------
 +
// Aug 11th, 2002 - tommy (0.7.8enhanced)
 +
// - added editing sprites for: monster_cycler, cycler_wreckage, env_beam, env_blood, env_explosion
 +
// env_glow, env_fade, env_laser, env_render, env_sprite, gibshooter, path_track, path_corner.
 +
// --------------------------------------------------------------------------------
 +
// Aug 2nd, 2002 - tommy (0.7.8enhanced)
 +
// - added sound choices to base trigger copied from button sound choices.
 +
// - added body choice for use with scientist.mdl to hostage entity.
 +
// - added sequence(string) to cycler_sprite to give control over model animations.
 +
// - fixed some comment errors, also modified and added more to some entitys.
 +
// --------------------------------------------------------------------------------
 +
// April 29th, 2002 - tommy (0.7.8enhanced)
 +
//  - added notes on various entitys and choices from Lauri of Spirit of HL and from Waldo's
 +
//    various notes on DoD and CS fgds, as well as my own.
 +
//  - Removed renderfield string codes and replaced them with "Renderfields"
 +
//    baseclasses for cycler_wreckage,
 +
//  - env_fog upgraded to the choices/abilities other mods use, in case CS upgrades to full fog someday.
 +
//  - added property of "shade"(_diffuse_light) to light enviornment for adam foster's hack of HLRAD, so that
 +
//    shadows can be given a specific color.
 +
//  - added skins for "water" (-3), "slime" (-4), "lava" (-5) and "make ladder" (-16) to func_illusionary
 +
//  - added spawnflags "only trigger" (1) and "pressure" (4) to func_pushable as other ways to break it.
 +
//  - gave func_train ALL the same skins as func_illusionary & func_water, even though the skins work oddly for a train.
 +
//  - added skins "empty" (-1) and "ladder" (-16) to func_water.  note "ladder" only works with non ! textures.
 +
//-----------------------------------------------------------------------
 +
// April 7th, 2002 - fjl (0.7.8)
 +
//  - Global baseclass is a single player map option. The following baseclasses and
 +
//    entities listed could support it so I added it to them.
 +
//    BASECLASSES: Breakable, door, Basetank and Trackchange
 +
//    SOLID ENTITIES func_button, func_conveyor, func_pendulum, func_plat,
 +
//    func_rot_button, func_rotating, func_tracktrain, func_train and func_wall
 +
//  - Added Master(string) to Basetank baseclass.
 +
//  - Removed renderfield string codes and replaced them with "Renderfields"
 +
//    baseclasses for cycle, cycler_sprite & button_target.
 +
//  - Added the Appearflags("Not in Deathmatch") option to these listed entities and
 +
//    baseclasses that where missing that parameter.
 +
//    BASECLASSES: playerclass, door
 +
//    ENTITIES: func_friction, func_pendulum, func_wall, infodecal
 +
//  - Gave func_breakable the ability to spawn a battery, healthkit or shotgun
 +
//    shells upon breaking. This options works a bit buggy since the spawned items
 +
//    will continue to respawn on its own after its been picked up. If the
 +
//    func_breakable is given a name, it will have the same effect as a
 +
//    MonsterMaker by spawning the object each time its triggered.
 +
//    Use this option wisely or only for single player maps.
 +
//  - Added missing ZHLT options to func_friction.
 +
//  - Added the "Instant Crowbar" flag to func_pushable. Not that this option is
 +
//    usable for this mod, but I added it so whoever does the next Half-Life FGD
 +
//    update, realizes that it supports that option.
 +
//  - Added missing Renderfields baseclass to func_rot_button.
 +
//  - Changed func_rotate to default to a speed of 50 instead of 0.
 +
//  - Added item_healthkit to game_player_equip.
 +
//  - Added ammo for the M249 Para on game_player_equip. Thanks to [B.o.G]doom for
 +
//    this information.
 +
//  - Added some extra information to the game_player_equip entity.
 +
//  - Added character limit number for the "game_text" entity on its message string.
 +
//  - Added "Renderfields" baseclass to hostage_entity. This allows the option for
 +
//    hostages to be transparent, distorted, flickering or any of those other effects.
 +
//  - Added "Renderfields" baseclass to item_healthkit, item_longjump and item_battery.
 +
//  - Fixed light_spot bug where its default color was yellow instead of white.
 +
//  - Gave Light_Environment the "Initially Dark" flag.
 +
//  - Added "Appearance" effects to light_environment. This allows light_environment
 +
//    to have the strobe and flicker light effects just incase you want to give
 +
//    players an epileptic seizure while they play your map :)
 +
//    Appearance's effect will not work if light_environment is given a name.
 +
//  - Added "Custom Appearance" to light_environment. This option does require the
 +
//    entity to have a name for it to work.
 +
//  - Added the "target" field to light_environment. Add the light_environment
 +
//    entity, and in the target field, add the name of its target(another entity).
 +
//    Light_environment will now emit light in that direction from all sky brushes.
 +
//    This should save time from trying to figure out the annoying angles and pitches.
 +
//  - Added monster_scientist entity. Works the same as hostage_entity except that
 +
//    it uses the scientist model. The scientist type(luther, einstein, etc.) is
 +
//    also selectable. While it is possible to change hostage_entity into the
 +
//    scientist model, a specific scientist type is not selectable.
 +
//    Only monster_scientist has that option, which is why I added it.
 +
//  - Added the sprite color to the multisource and multi_manager entities so they
 +
//    are the same as Half-Life's FGD.
 +
//  - Added "Global State Master" to trigger_auto.
 +
//  - Fixed bug on trigger_counter, where field options repeated themselves.
 +
//    This same bug seems to be plaguing all the other FGD's. Whoever plans to
 +
//    updates those other FGD files should take note of it.
 +
//  - Added "Level Fade In" and "CD track to play" to WorldSpawn. These options
 +
//    should only be used for single player maps.
 +
//  - Changed the baseclass name, zhltlightflags to ZHLT.
 +
//  - Rearranged some of the entities code so that the most common fields and
 +
//    options come before the other options. It was annoying having to scroll to
 +
//    the bottom just to find out what some of them trigger or what their names are.
 +
//    The Name of the entity should always come first and the other important
 +
//    options right after. Something in the fashion listed below, that is, if they
 +
//    contain those fields.
 +
//    ------------------------
 +
//    Name
 +
//    Global Entity Name
 +
//    Master
 +
//    Target
 +
//    Trigger delay
 +
//    Pitch Yaw Roll (Y Z X)
 +
//    Render FX
 +
//    Render Mode
 +
//    FX Amount(1 - 255)
 +
//    FX Color (R G B)
 +
//    Light Flags (ZHLT 2.2+)
 +
//    Light Origin (ZHLT 2.2+)
 +
//    ------------------------
 +
//    Not all of them are exactly in this order since that would require re-writing
 +
//    the whole FGD file, but I did manage to rearrange them to some extent for the
 +
//    following baseclasses and entities listed below.
 +
//    BASECLASSES: breakable, gibshooterbase and trigger
 +
//    ENTITIES: env_sprite, func_button, func_door_rotating, func_pendulum,
 +
//    func_platrot, func_rot_button, func_rotating, func_tracktrain, func_vehicle,
 +
//    game_counter, game_counter_set, game_player_hurt, game_player_team,
 +
//    info_teleport_destination, light, momentary_rot_button, path_track,
 +
//    trigger_camera, trigger_changetarget, trigger_counter, trigger_hurt
 +
//    and xen entities
 +
//  - In order to help with the rearranging of the fields(read previous sentence), I
 +
//    had to create a Master Baseclass. These are the following baseclasses and
 +
//    entities that I removed the Master string from their code and replaced it with
 +
//    the Master baseclass.
 +
//    BASECLASSES: door and trigger
 +
//    ENTITIES: game_counter, game_counter_set, game_score, game_team_master,
 +
//    game_text, game_zone_player, trigger_hurt, func_button, func_rot_button,
 +
//    button_target and momentary_rot_button
 +
//  - Added some extra information to Basetank baseclass and func_rot_button entity.
 +
//  - Put line codes for trigger_gravity, func_wall, func_wall_toggle and func_water
 +
//    entities in alphabetical order.
 +
//  - Added some extra info to the previous update list and fixed some spelling errors.
 +
//  - Updated once again, "cs_fgd_readme.txt" and "INSTALL.TxT"
 +
// -----------------------------------------------------------------------   
 +
// March 16th, 2002 - fjl (0.7.7)
 +
//  - Added the "New Level Unit" Option on WorldSpawn.
 +
//  - Added "weapon" baseclass.
 +
//  - Added "Appearflags" baseclass.
 +
//  - Added "Global" baseclass.
 +
//  - Changed ZHLT _fade option to default to 1.0 instead of 0
 +
//  - Changed ZHLT _falloff option to have a choice of "default," "linear," and "square."
 +
//  - Removed the zhlt_lightflags choices from the "breakable" baseclass. It didn't need it.
 +
//  - Added "Opaque + Concave Fix" to zhlt_lightflags.
 +
//  - Changed IS NOT LOOPED to NOT TOGGLED on ambient_generic
 +
//  - Removed ZHLT from func_wall_toggle. It caused ZHLT options to repeat.
 +
//  - Added a Targetname and ZHLT _fade and _falloff options to light_environment.
 +
//  - Changed light_environment so it defaults to an angle of 270 and pitch of -90.
 +
//    Similar to high noon sunlight.
 +
//  - Added the ZHLT _fade and _falloff options for light_spot.
 +
//  - Changed all light entities to start with a white brightness(255 255 255 200)
 +
//    instead of the annoying yellow color(255 255 128 200).
 +
//  - Added "Angular Velocity" to func_train. Angle does not reset with a new round.
 +
//    Hopefully VALVe will fix this in the future.
 +
//  - Changed trigger_gravity to display "Gravity (0.0-1)" instead of "Gravity (0-1)"
 +
//  - Added cycler entity.
 +
//  - Added cycler_wreckage. Seems its just a big smoke sprite used for machine wrecks
 +
//    so I edited it to not show the targetted sprite by default. If it does show the
 +
//    sprite, it will simply look like a sprite stuck inside the smoke stack. It was
 +
//    best to make it invisible. If a bigger sprite is used like say 320hud1.spr there
 +
//    will be a more spread out smoke stack. Bigger sprite = wider smoke stack.
 +
//  - Added env_fade.
 +
//  - Added env_fog in hopes to get VALVe to implement it for this mod and make it
 +
//    compatible for software and direct3d modes. Currently doesn't work with
 +
//    Counter-Strike version 1.3
 +
//    LIMITATIONS:
 +
//    Currently (as of Half-Life 1.1.0.8), objects outside of the 100% opacity range
 +
//    are still drawn and still contribute to the overall polygon count. This entity is
 +
//    still quite under development.
 +
//    The fog is only drawn in OpenGL mode. This means users who are viewing the level
 +
//    in Software or Direct3D rendering will not see the fog. For this reason, if you
 +
//    plan on releasing your map publicly, the env_fog entity should not be used as it
 +
//    will put OpenGL users at a disadvantage.
 +
//  - Added func_guntarget.
 +
//  - Added func_recharge and func_healthcharger. Currently the dmdelay,
 +
//    "Deathmatch recharge delay" does not work with CS 1.3. Hopefully
 +
//    this will be fixed in the future.
 +
//  - Added func_tanklaser
 +
//  - Removed func_tankrocket seeing as how CS cannot support the rocket entity.
 +
//  - Added all missing weapons for game_player_equip plus added item_longjump &
 +
//    item_battery including all weapon ammo. Almost did a complete re-write to this
 +
//    entity to make it alot easier to use. I just can't figure out nightvision goggles
 +
//    and ammo for the para. If you figure it out, please contact me. I would advice
 +
//    using this item to give players the longjump or the battery wisely. Those items
 +
//    do not magically dissapear like all the others. They will remain even after
 +
//    a round ends. Also, You can't give all weapons and items at one time. SO DON'T TRY!
 +
//  - Added gibshooter entity.
 +
//  - Added item_longjump, item_battery and item_healthkit entities. These respawn
 +
//    like in HL deathmatch. They might be a bit buggy though.
 +
//  - Added xen entities.
 +
//  - Rearranged the update list so the latest additions are on top.
 +
//  - Updated the "readme.txt" that comes with the zip file and renamed it to
 +
//    "cs_fgd_readme.txt" so it will not over write Worldcraft's "readme.txt" file.
 +
//  - Created an "install.txt" for the zip file.
 +
//  - Created a single player FGD file for anyone wanting to create training maps.
 +
//    It contains the level transition entities required to make such maps. Plus it
 +
//    contains many other entities that have some type of use on single player maps but
 +
//    are not supported for multiplayer maps. The file is named "cs-single_player.fgd"
 +
//    and it MUST be used alongside this FGD file. Read that FGD file to learn more.
 +
//
 +
// Jan 26, 2001 - Tim Holt (0.7.6)
 +
//  - Added "No Clients" check option to Trigger base class per suggestion/lead
 +
//    from Mataleone (cs mapping forum)
 +
//-----------------------------------------------------------------------
 +
// Jan 6, 2001 - Tim Holt (0.7.5)
 +
//  - Added new parameter options for game_player_equip to list all
 +
//    CS items in dialog, thus removing the need to turn off SmartEdit
 +
//    to configure.
 +
//  - Added new sprite for trigger_auto (green box with words "Trigger Auto")
 +
//-----------------------------------------------------------------------
 +
// 01/05/2001 - Morlam (0.7.4)
 +
//  - Added _fade and _falloff keys to the light_ entities.  Need ZHLT 2.2+
 +
// for these to work.
 +
//  - Added light_origin key to the ZHLT Light Flags BaseClass.  Again, you
 +
// need the latest version of Zoner's Tools for light_origin to work.
 +
//  - Moved circus and extra from the "Class Info" tab to the "Flags" tab.
 +
//  - Shortened the SmartEdit names of certain key/values in info_compile_params
 +
// so that they aren't cut off (at least, on my 800X600 screen on a 15 inch
 +
// monitor).
 +
//
 +
// 01/04/2001 - Morlam (0.7.3)
 +
//  - Arranged all the point entities in alphabetical order
 +
//  - Corrected a typo in hostage_entity: "Orange Suit Worker" from
 +
// "Orange Suite Worker".
 +
//  - Changed func_water default WaveHeight to 0
 +
//  - Added ZHLT Light Flags to func_plat, _pendulum and _vehicle
 +
//  - Under info_compile_params:
 +
// - Changed extra to choices instead of a string; default is now 0
 +
// - Changed extra to read: "Enable Extra mode in HLRAD?"
 +
// - Added hullfile, chop, texchop, circus, and dscale keys
 +
// - Added "No Clip" flag under Run BSP in the spawnflags
 +
//  - Under info_lights_rad:
 +
// - added radfile key/value, specifies custom texture light file
 +
//-----------------------------------------------------------------------
 +
// 01/01/2001 - Tim Holt (0.7.2)
 +
//  - Added new dropdown to hostage entity, so you can choose hostage skin
 +
//    directly by name (orange suit guy or tie guy)
 +
//  - Removed commented out "master" option for game_zone_player.  It was
 +
//    commented out from the original HL FGD for some reason.  Not sure why
 +
//    or if maybe there is a problem with it?
 +
//-----------------------------------------------------------------------
 +
// 12/31/2000 - Tim Holt (0.7.1)
 +
//  - Added new sprites for all the Game entities
 +
//  - Added new sprite for Player Weapon Strip
 +
//  - Added new sprite for Trigger_Relay
 +
//  - Added new sprite for Trigger_ChangeTarget
 +
//-----------------------------------------------------------------------
 +
// Original changes by Tim Holt (0.7.0)
 +
//  - Added new Trigger Changetarget sprite (green cube w/words)
 +
//  - Added new Info Target sprite (bullseye)
 +
//  - Added new trigger_camera sprite (Video camera)
 +
//  - Added new Multi Manager sprite (box w/arrows coming out of it)
 +
//  - Added new "Cycler Sprite" sprite (box w/arrow circle around it)
 +
//  - Added replacement ambient_generic sprite (changed from speaker to speaker
 +
//    with words "Ambient Generic" around it")
 +
//  - Added replacement env_sound sprite (changed from speaker to speaker
 +
//    with words "Env Sound" around it")
 +
//  - Added replacement light_spot sprite (changed from lightbulb to spotlight)
 +
//  - Added replacement Light Environment sprite (changed from lightbulb to sun)
 +
//  - Added all the "game_*" entities
 +
//  - Added info_compile_params and info_lights_rad entities.  Idea is to
 +
//    get someone like Zoner to implement support for them in Zoners, or
 +
//    build support for them into a compile tool like Q2Beaver, HLCC, etc.
 +
//  - Added env_funnel
 +
//  - Added trigger_gravity
 +
//  - Added player_weaponstrip
 +
//  - Put Zoners RAD option (that allow solid (func_) based ents to cast
 +
//    shadows) into a number of new additional items that can support it.
 +
//    Use with caution, as for example a func_pushable can cast a shadow now,
 +
//    but if you push it, the shadow stays behind :^)
 +
//
 +
// --------------------------------------------------------------------------------
 +
//
 +
// ---------------------------------------------------------------------------------
 +
// Note:  I have not fully tested the support of ALL the game_ entities in
 +
// CS.  I DO know that some work thru experimentation.  Let me know if you
 +
// find interesting things about these little known and used entities in CS.
 +
// ---------------------------------------------------------------------------------
 +
  
 
//
 
//
Line 18: Line 394:
 
[
 
[
 
message(string) : "Map Description / Title"
 
message(string) : "Map Description / Title"
skyname(string) : "environment map (cl_skyname)"
+
skyname(string) : "environment map (cl_skyname)"  
light(integer) : "Default light level"
+
sounds(integer) : "CD track to play" : 0
WaveHeight(string) : "Default Wave Height"
+
light(integer) : "Default light level" : 0
 +
WaveHeight(string) : "Default Wave Height" : "0"
 
MaxRange(string) : "Max viewable distance" : "4096"
 
MaxRange(string) : "Max viewable distance" : "4096"
 +
startdark(choices) : "Level Fade In" : "" =
 +
[
 +
"" : "No"
 +
1 : "Yes"
 +
]
 +
newunit(choices) : "New Level Unit" : "" =
 +
[
 +
"" : "No, keep current"
 +
1 : "Yes, clear previous levels"
 +
]
 
]
 
]
  
Line 33: Line 420:
 
]
 
]
  
@BaseClass = Targetname
+
@BaseClass = Appearflags
 +
[
 +
spawnflags(Flags) =
 +
[
 +
2048 : "Not in Deathmatch" : 0
 +
]
 +
]
 +
 
 +
@BaseClass = Master
 
[  
 
[  
targetname(target_source) : "Name"
+
master(string) : "Master"  
 
]
 
]
 +
 
@BaseClass = Target  
 
@BaseClass = Target  
 
[  
 
[  
 
target(target_destination) : "Target"  
 
target(target_destination) : "Target"  
 +
]
 +
 +
@BaseClass = Targetname
 +
[
 +
targetname(target_source) : "Name"
 
]
 
]
  
Line 50: Line 451:
 
@BaseClass = RenderFxChoices
 
@BaseClass = RenderFxChoices
 
[
 
[
renderfx(choices) :"Render FX" : 0 =
+
renderfx(choices) :"Render FX" : "" =
 
[
 
[
0: "Normal"
+
"": "Normal"
 +
//* Additive or Texture mode only.
 
1: "Slow Pulse"
 
1: "Slow Pulse"
 +
//* Additive or Texture mode only.
 
2: "Fast Pulse"
 
2: "Fast Pulse"
 +
//* Additive or Texture mode only.
 
3: "Slow Wide Pulse"
 
3: "Slow Wide Pulse"
 +
//* Additive or Texture mode only.
 
4: "Fast Wide Pulse"
 
4: "Fast Wide Pulse"
 
9: "Slow Strobe"
 
9: "Slow Strobe"
Line 62: Line 467:
 
12: "Slow Flicker"
 
12: "Slow Flicker"
 
13: "Fast Flicker"
 
13: "Fast Flicker"
5: "Slow Fade Away"
+
//*These don't seem to do anything. Correct me if I'm wrong...
6: "Fast Fade Away"
+
//* 5: "Slow Fade Away"
7: "Slow Become Solid"
+
//* 6: "Fast Fade Away"
8: "Fast Become Solid"
+
//* 7: "Slow Become Solid"
14: "Constant Glow"
+
//* 8: "Fast Become Solid"
15: "Distort"
+
//* Constant Glow only affects the Glow rendermode. With this setting, Glow mode behaves
 +
//* exactly like Additive mode - except that (as is usual for Glow mode) the sprite isn't
 +
//* obscured by intervening sprites or models. (Hmm. Call me slow, but..... how is this
 +
//* useful?)
 +
14: "Constant Glow (Sprites)"
 +
15: "Distort (Models)"
 
16: "Hologram (Distort + fade)"
 
16: "Hologram (Distort + fade)"
 +
//* Strange effect. As seen, briefly, when a Gargantua dies.
 
]
 
]
 
]
 
]
Line 74: Line 485:
 
@BaseClass base(RenderFxChoices) = RenderFields  
 
@BaseClass base(RenderFxChoices) = RenderFields  
 
[
 
[
rendermode(choices) : "Render Mode" : 0 =
+
rendermode(choices) : "Render Mode" : "" =
 
[
 
[
0: "Normal"
+
"": "Normal - no light"
1: "Color"
+
//*  For BSP objects, the object will be rendered as a pure area of whatever
2: "Texture"
+
//* color is specified in FX Color.
3: "Glow"
+
//*  For models and sprites, this is the same as Normal mode.
4: "Solid"
+
1: "Pure Color"
 +
//*  For BSP objects, the object will be rendered without shadows.
 +
//*  For models and sprites, this is the same as Normal mode, except that the Pulse
 +
//* renderfx settings work.
 +
2: "Texture - some light"
 +
//*  Like additive, but as the player gets further from the sprite, it gets
 +
//* progressively larger and more transparent. The sprite is also not obscured by
 +
//* intervening models, which can sometimes look bad.
 +
//*  Alphatest sprites won't use their masks in this mode.
 +
3: "Glow (sprites only)"
 +
//*  For BSP objects, this only affects textures beginning with {. Blue pixels
 +
//*  will be transparent; non-blue pixels will be solid.
 +
//*  For models, this mode is the same as Normal mode.
 +
//*  For sprites, this mode is for displaying sprites in Indexalpha mode - i.e.
 +
//* the palette positions are used as opacity settings; 0 for fully transparent,
 +
//* and 255 for fully opaque, regardless of what the palette colors actually are.
 +
//* The only palette colour that will be used is the last one, which sets the
 +
//* colour for the whole sprite. (Needless to say, this will look odd unless the
 +
//* sprite is designed to be displayed this way!)
 +
//*  Oddly, Alphatest sprites won't use their masks in this mode.
 +
4: "Solid - no light"
 +
//*  Only bright parts of the object are visible; darker parts are just more
 +
//* transparent, and black is not drawn. Useful for making lighting or hologram
 +
//* effects.
 
5: "Additive"
 
5: "Additive"
 
]
 
]
renderamt(integer) : "FX Amount (1 - 255)"
+
renderamt(integer) : "FX Amount (1 - 255)" : 255
 
rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
 
rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
 
]
 
]
  
@BaseClass size(-16 -16 -36, 16 16 36) color(0 255 0) base(Angles) = PlayerClass []
+
// LRCHLT Texture light additions
 
+
// these will only work with advanced compiling tools that allow
@BaseClass size(-16 -16 -16, 16 16 16) base(Angles) = gibshooterbase
+
// switchable texture lighting.  note that lighting used by
 +
// moveable entitys may be left behind!
 +
//
 +
@BaseClass = TexLightType
 
[
 
[
targetname (target_source) : "Name"
+
style(choices) : "Texture Light Style" : "" =
m_iGibs(integer) : "Number of Gibs" : 3
 
delay(string) : "Delay between shots" : "0"
 
m_flVelocity(integer) : "Gib Velocity" : 200
 
m_flVariance(string) : "Course Variance" : "0.15"
 
m_flGibLife(string) : "Gib Life" : "4"
 
spawnflags(Flags) =  
 
 
[
 
[
1 : "Repeatable" : 0
+
"" : "Normal"
]
+
-3: "Switch with [email protected]"
]
+
1 : "Flicker A"
 
 
@BaseClass = Light
 
[
 
_light(color255) : "Brightness" : "255 255 128 200"
 
      style(Choices) : "Appearance" : 0 =
 
[
 
0 : "Normal"
 
10: "Fluorescent flicker"
 
 
2 : "Slow, strong pulse"
 
2 : "Slow, strong pulse"
11: "Slow pulse, noblack"
+
3 : "Candle A"
 +
4 : "Fast strobe"
 
5 : "Gentle pulse"
 
5 : "Gentle pulse"
1 : "Flicker A"
 
 
6 : "Flicker B"
 
6 : "Flicker B"
3 : "Candle A"
 
 
7 : "Candle B"
 
7 : "Candle B"
 
8 : "Candle C"
 
8 : "Candle C"
4 : "Fast strobe"
 
 
9 : "Slow strobe"
 
9 : "Slow strobe"
 +
10: "Fluorescent flicker"
 +
11: "Slow pulse, noblack"
 +
12: "underwater weird & buggy"
 
]
 
]
pattern(string) : "Custom Appearance"
 
 
]
 
]
  
@BaseClass base(Targetname) = Breakable
+
@BaseClass = Global
 +
[
 +
globalname(string) : "Global Entity Name"
 +
]
 +
 
 +
@BaseClass base(Targetname, Global, Target, RenderFields, Angles) = BaseTank
 
[
 
[
target(target_destination) : "Target on break"
+
// Mainly for use with 1009 team settings (game_team_master)
health(integer) : "Strength" : 1
+
master(string) : "(Team) Master"
material(choices) :"Material type" : 0 =
+
spawnflags(flags) =
 
[
 
[
0: "Glass"
+
1 : "Active" : 0
1: "Wood"
+
16: "Only Direct" : 0
2: "Metal"
+
32: "Controllable" : 0
3: "Flesh"
 
4: "Cinder Block" 
 
5: "Ceiling Tile"
 
6: "Computer"
 
7: "Unbreakable Glass"
 
8: "Rocks"
 
 
]
 
]
explosion(choices) : "Gibs Direction" : 0 =
+
yawrate(string) : "Yaw rate" : "30"
[
+
yawrange(string) : "Yaw range" : "180"
0: "Random"
+
yawtolerance(string) : "Yaw tolerance" : "15"
1: "Relative to Attack"
+
pitchrate(string) : "Pitch rate" : "0"
]
+
pitchrange(string) : "Pitch range" : "0"
delay(string) : "Delay before fire" : "0"
+
pitchtolerance(string) : "Pitch tolerance" : "5"
gibmodel(studio) : "Gib Model" : ""
+
barrel(string) : "Barrel Length" : "0"
spawnobject(choices) : "Spawn On Break" : 0 =
+
barrely(string) : "Barrel Horizontal" : "0"
 +
barrelz(string) : "Barrel Vertical" : "0"
 +
spritesmoke(sprite) : "Smoke Sprite" : ""
 +
spriteflash(sprite) : "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: "Nothing"
+
"": "Perfect Shot"
 +
1: "Small cone"
 +
2: "Medium cone"
 +
3: "Large cone"
 +
4: "Extra-large cone"
 
]
 
]
explodemagnitude(integer) : "Explode Magnitude (0=none)" : 0
+
minRange(string) : "Minmum target range" : "0"
 +
maxRange(string) : "Maximum target range" : "0"
 +
_minlight(string) : "Minimum light level"
 
]
 
]
  
@BaseClass base(Targetname, RenderFields, Angles) = Door
+
@BaseClass base(Targetname, Global) = Breakable
 
[
 
[
killtarget(target_destination) : "KillTarget"
+
target(target_destination) : "Target on break"
speed(integer) : "Speed" : 100
+
delay(string) : "Delay before fire" : "0"
master(string) : "Master"  
+
health(integer) : "Strength" : 1
movesnd(choices) : "Move Sound" : 0 =  
+
material(choices) :"Material type" : "" =
 
[
 
[
0: "No Sound"
+
//*  <b>Gibs:</b> models/glassgibs.mdl
1: "Servo (Sliding)"
+
//*  <b>Break noise:</b> debris/bustglassX.wav
2: "Pneumatic (Sliding)"
+
//*  <b>Bounce noise:</b> debris/glassX.wav
3: "Pneumatic (Rolling)"
+
"": "Glass"
4: "Vacuum"
+
//*  <b>Gibs:</b> models/woodgibs.mdl
5: "Power Hydraulic"
+
//*  <b>Break noise:</b> debris/bustcrateX.wav
6: "Large Rollers"
+
//*  <b>Bounce noise:</b> debris/woodX.wav
7: "Track Door"
+
1: "Wood"
8: "Snappy Metal Door"
+
//*  <b>Gibs:</b> models/metalplategibs.mdl
9: "Squeaky 1"
+
//*  <b>Break noise:</b> debris/bustmetalX.wav
10: "Squeaky 2"
+
//*  <b>Bounce noise:</b> debris/metalX.wav
 +
2: "Metal"
 +
//*  <b>Gibs:</b> models/fleshgibs.mdl
 +
//*  <b>Break noise:</b> debris/bustfleshX.wav
 +
//*  <b>Bounce noise:</b> debris/fleshX.wav
 +
3: "Flesh"
 +
//*  <b>Gibs:</b> models/cindergibs.mdl
 +
//*  <b>Break noise:</b> debris/bustconcreteX.wav
 +
//*  <b>Bounce noise:</b> debris/concreteX.wav
 +
4: "Cinder Block"
 +
//*  <b>Gibs:</b> models/ceilinggibs.mdl
 +
//*  <b>Break noise:</b> debris/bustceilingX.wav
 +
//*  <b>Bounce noise:</b> none
 +
5: "Ceiling Tile"
 +
//*  <b>Gibs:</b> models/computergibs.mdl
 +
//*  <b>Break noise:</b> debris/bustmetalX.wav
 +
//*  <b>Bounce noise:</b> debris/woodX.wav
 +
//*  <b>Note:</b> Generates sparks when damaged.
 +
6: "Computer"
 +
//*  <b>Gibs:</b> models/glassgibs.mdl
 +
//*  <b>Break noise:</b> debris/bustglassX.wav
 +
//*  <b>Bounce noise:</b> debris/glassX.wav
 +
//*  <b>Note:</b> Makes ricochet noises when damaged.
 +
7: "Unbreakable Glass"
 +
//*  <b>Gibs:</b> models/rockgibs.mdl
 +
//*  <b>Break noise:</b> debris/bustconcreteX.wav
 +
//*  <b>Bounce noise:</b> debris/concreteX.wav
 +
8: "Rocks"
 
]
 
]
stopsnd(choices) : "Stop Sound" : 0 =  
+
explosion(choices) : "Gibs Direction" : "" =
 
[
 
[
0: "No Sound"
+
"": "Random"
1: "Clang with brake"
+
1: "Relative to Attack"
2: "Clang reverb"
+
]
3: "Ratchet Stop"
+
gibmodel(studio) : "Gib Model" : ""
4: "Chunk"
+
spawnobject(choices) : "Spawn On Break" : "" =
5: "Light airbrake"
+
[
6: "Metal Slide Stop"
+
"": "Nothing"
7: "Metal Lock Stop"
+
1: "Battery"
8: "Snappy Metal Stop"
+
2: "Healthkit"
 +
9: "Shotgun Shells"
 
]
 
]
wait(integer) : "delay before close, -1 stay open " : 4
+
explodemagnitude(integer) : "Explode Magnitude (0=none)" : 0
lip(integer) : "Lip"
+
]
dmg(integer) : "Damage inflicted when blocked" : 0
+
 
message(string) : "Message if triggered"
+
@BaseClass = BeamStartEnd
 +
[
 +
LightningStart(target_destination) : "Start Entity"  
 +
LightningEnd(target_destination) : "Ending Entity"  
 +
]
 +
 
 +
@BaseClass base(Targetname, Global, Master, RenderFields, Angles, Appearflags) = Door
 +
[
 
target(target_destination) : "Target"
 
target(target_destination) : "Target"
delay(integer) : "Delay before fire"  
+
//*-----------------------------------------------------------------
netname(string) : "Fire on Close"
+
//*This delay only applies to the Target, not the Fire on Open/Close
health(integer) : "Health (shoot open)" : 0
+
//*fields.
spawnflags(flags) =
+
//*-----------------------------------------------------------------
 +
delay(integer) : "Delay before fire" : 0
 +
killtarget(target_destination) : "KillTarget"
 +
speed(integer) : "Speed" : 100
 +
//* -----------------------------------------------------------------
 +
//* The number against each sound corresponds to the wav file played.
 +
//* e.g. Vacuum (4) plays "doors/doormove4.wav".
 +
//* -----------------------------------------------------------------
 +
movesnd(choices) : "Move Sound" : "" =  
 
[
 
[
1 : "Starts Open" : 0
+
"": "No Sound"
4 : "Don't link" : 0
+
1: "Servo (Sliding)"
8: "Passable" : 0
+
2: "Pneumatic (Sliding)"
    32: "Toggle" : 0
+
3: "Pneumatic (Rolling)"
256:"Use Only" : 0
+
4: "Vacuum"
 +
5: "Power Hydraulic"
 +
6: "Large Rollers"
 +
7: "Track Door"
 +
8: "Snappy Metal Door"
 +
9: "Squeaky 1"
 +
10: "Squeaky 2"
 
]
 
]
locked_sound(choices) : "Locked Sound" : 0 =  
+
//* -----------------------------------------------------------------
 +
//* The number against each sound corresponds to the wav file played.
 +
//* e.g. Chunk (4) plays "doors/doorstop4.wav".
 +
//* -----------------------------------------------------------------
 +
stopsnd(choices) : "Stop Sound" : "" =  
 
[
 
[
0: "None"
+
"": "No Sound"
2: "Access Denied"
+
1: "Clang with brake"
8: "Small zap"
+
2: "Clang reverb"
10: "Buzz"
+
3: "Ratchet Stop"
11: "Buzz Off"
+
4: "Chunk"
12: "Latch Locked"
+
5: "Light airbrake"
 +
6: "Metal Slide Stop"
 +
7: "Metal Lock Stop"
 +
8: "Snappy Metal Stop"
 
]
 
]
unlocked_sound(choices) : "Unlocked Sound" : 0 =  
+
//* Setting wait to -1 also prevents the door from reversing when it comes into
[
+
//* contact with the player, as seen on the bunker door in Crossfire.
0: "None"
+
wait(integer) : "delay before close, -1 stay open " : 4
 +
lip(integer) : "Lip" : 0
 +
dmg(integer) : "Damage inflicted when blocked" : 0
 +
message(string) : "Message if triggered"
 +
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
 +
//* Normally a named door, or a door with "use only" selected, won't open when touched.
 +
256: "Use Only" : 0
 +
]
 +
locked_sound(choices) : "Locked Sound" : "" =
 +
[
 +
//*  The locked sound & sentence will be played if
 +
//*  The player walks into a door which has a name.
 +
//*  The number against each sound corresponds to the wav file played.
 +
//* e.g. Buzz (10) plays "buttons/button10.wav".
 +
 
 +
"": "None"
 +
2: "Access Denied"
 +
8: "Small zap"
 +
10: "Buzz"
 +
11: "Buzz Off"
 +
12: "Latch Locked"
 +
]
 +
unlocked_sound(choices) : "Unlocked Sound" : "" =  
 +
[
 +
//*  The unlocked sound & sentence will be played whenever a door starts to open and whenever
 +
//* a button starts to push in. (They will never be played when a door starts to close, even if
 +
//* "Toggle" is selected.)
 +
//*
 +
//*  The number against each sound (except lightswitch) corresponds to the wav file played.
 +
//* e.g. Buzz (10) plays "buttons/button10.wav".
 +
"": "None"
 
1: "Big zap & Warmup"
 
1: "Big zap & Warmup"
 
3: "Access Granted"
 
3: "Access Granted"
Line 224: Line 754:
 
13: "Latch Unlocked"
 
13: "Latch Unlocked"
 
]
 
]
locked_sentence(choices) : "Locked Sentence" : 0 =  
+
locked_sentence(choices) : "Locked Sentence" : "" =  
 
[
 
[
0: "None"
+
//* The letters correspond to the sentence group played (see sound/sentences.txt);
 +
//* e.g. Blast Door (NF) will cycle through NF0, NF1 and NF3.
 +
"": "None"
 
1: "Gen. Access Denied"
 
1: "Gen. Access Denied"
 
2: "Security Lockout"
 
2: "Security Lockout"
Line 237: Line 769:
 
9: "Broken Shut Door"
 
9: "Broken Shut Door"
 
]
 
]
unlocked_sentence(choices) : "Unlocked Sentence" : 0 =  
+
unlocked_sentence(choices) : "Unlocked Sentence" : "" =  
 
[
 
[
0: "None"
+
//* The letters correspond to the sentence group played (see sound/sentences.txt);
 +
//* e.g. Blast Door (EF) will cycle through EF0, EF1 and EF3.
 +
"": "None"
 
1: "Gen. Access Granted"
 
1: "Gen. Access Granted"
 
2: "Security Disengaged"
 
2: "Security Disengaged"
Line 252: Line 786:
 
]
 
]
  
@BaseClass base(Targetname, Target, RenderFields, Angles) = BaseTank
+
@BaseClass size(-16 -16 -16, 16 16 16) base(Targetname, Angles) = gibshooterbase
 
[
 
[
spawnflags(flags) =
+
//* The number of pieces to create.
 +
m_iGibs(integer) : "Number of Gibs" : 3
 +
//* Delay (in seconds) between shots. If 0, all the gibs are fired 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 : "Active" : 0
+
1 : "Repeatable" : 0
16: "Only Direct" : 0
 
32: "Controllable" : 0
 
 
]
 
]
 +
]
  
yawrate(string) : "Yaw rate" : "30"
+
//* Don't create a light whose name begins with "light" - a bug/feature in RAD means
yawrange(string) : "Yaw range" : "180"
+
//* that such a light won't be able to switch on and off.
yawtolerance(string) : "Yaw tolerance" : "15"
+
@BaseClass = Light
pitchrate(string) : "Pitch rate" : "0"
+
[
pitchrange(string) : "Pitch range" : "0"
+
_light(color255) : "Brightness" : "255 255 255 200"
pitchtolerance(string) : "Pitch tolerance" : "5"
+
      //* This field will have no effect on a dynamic (i.e. named) light.
barrel(string) : "Barrel Length" : "0"
+
style(Choices) : "Appearance (no name allowed)" : "" =
barrely(string) : "Barrel Horizontal" : "0"
 
barrelz(string) : "Barrel Vertical" : "0"
 
spritesmoke(sprite) : "Smoke Sprite" : ""
 
spriteflash(sprite) : "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"
+
"" : "Normal"
1: "Small cone"
+
2 : "Slow, strong pulse"
2: "Medium cone"
+
5 : "Gentle pulse"
3: "Large cone"
+
1 : "Flicker A"
4: "Extra-large cone"
+
6 : "Flicker B"
 +
3 : "Candle A"
 +
7 : "Candle B"
 +
8 : "Candle C"
 +
4 : "Fast strobe"
 +
9 : "Slow strobe"
 +
10: "Fluorescent flicker"
 +
11: "Slow pulse, noblack"
 +
]
 +
//* This field will have no effect on a static (i.e. nameless) light.
 +
//*  'a' is dark, 'm' is normal brightness, 'z' is full brightness.
 +
//* There's no support for a light to have a custom appearances when it's in a
 +
//* state other than 'on'. See trigger_lightstyle if you need this effect.
 +
pattern(string) : "Custom Appearance"
 +
_fade(string) : "Fade (ZHLT Only)" : "1.0"
 +
_falloff(Choices) : "Falloff (ZHLT Only)" : "" =
 +
[
 +
"" : "Default"
 +
1 : "Inverse Linear"
 +
2 : "Inverse Square"
 
]
 
]
minRange(string) : "Minmum target range" : "0"
+
spawnflags(Flags) =
maxRange(string) : "Maximum target range" : "0"
+
      [
_minlight(string) : "Minimum light level"
+
          1 : "Initially dark" : 0
 +
      ]
 
]
 
]
  
 
@BaseClass = PlatSounds  
 
@BaseClass = PlatSounds  
 
[
 
[
movesnd(choices) : "Move Sound" : 0 =  
+
movesnd(choices) : "Move Sound" : "" =  
 
[
 
[
0: "No Sound"
+
"": "No Sound"
 +
//* plats/bigmove1.wav
 
1: "big elev 1"
 
1: "big elev 1"
 +
//* plats/bigmove2.wav
 
2: "big elev 2"
 
2: "big elev 2"
 +
//* plats/elevmove1.wav
 
3: "tech elev 1"
 
3: "tech elev 1"
 +
//* plats/elevmove2.wav
 
4: "tech elev 2"
 
4: "tech elev 2"
 +
//* plats/elevmove3.wav
 
5: "tech elev 3"
 
5: "tech elev 3"
 +
//* plats/freightmove1.wav
 
6: "freight elev 1"
 
6: "freight elev 1"
 +
//* plats/freightmove2.wav
 
7: "freight elev 2"
 
7: "freight elev 2"
 +
//* plats/heavymove1.wav
 
8: "heavy elev"
 
8: "heavy elev"
 +
//* plats/rackmove1.wav
 
9: "rack elev"
 
9: "rack elev"
 +
//* plats/railmove1.wav
 
10: "rail elev"
 
10: "rail elev"
 +
//* plats/squeekmove1.wav
 
11: "squeek elev"
 
11: "squeek elev"
 +
//* plats/talkmove1.wav
 
12: "odd elev 1"
 
12: "odd elev 1"
 +
//* plats/talkmove2.wav
 
13: "odd elev 2"
 
13: "odd elev 2"
 
]
 
]
stopsnd(choices) : "Stop Sound" : 0 =  
+
stopsnd(choices) : "Stop Sound" : "" =  
 
[
 
[
0: "No Sound"
+
"": "No Sound"
 +
//* plats/bigstop1.wav
 
1: "big elev stop1"
 
1: "big elev stop1"
 +
//* plats/bigstop2.wav
 
2: "big elev stop2"
 
2: "big elev stop2"
 +
//* plats/freightstop1.wav
 
3: "freight elev stop"
 
3: "freight elev stop"
 +
//* plats/heavystop2.wav
 
4: "heavy elev stop"
 
4: "heavy elev stop"
 +
//* plats/rackstop1.wav
 
5: "rack stop"
 
5: "rack stop"
 +
//* plats/railstop1.wav
 
6: "rail stop"
 
6: "rail stop"
 +
//* plats/squeekstop1.wav
 
7: "squeek stop"
 
7: "squeek stop"
 +
//* plats/talkstop1.wav
 
8: "quick stop"
 
8: "quick stop"
 
]
 
]
Line 324: Line 898:
 
]
 
]
  
@BaseClass base(Targetname, RenderFields, PlatSounds) = Trackchange
+
@BaseClass = PlayerAnim
 
[
 
[
 +
    sequence(Choices) : "Animation Sequence (editor)" : 1 =
 +
    [
 +
"" : "dummy"
 +
1 : "idle1"
 +
2 : "crouch_idle"
 +
3 : "walk"
 +
4 : "run"
 +
5 : "crouchrun"
 +
6 : "jump"
 +
7 : "longjump"
 +
8 : "swim"
 +
9 : "treadwater"
 +
10 : "crouch_aim_carbine"
 +
11 : "crouch_shoot_carbine"
 +
12 : "crouch_reload_carbine"
 +
13 : "ref_aim_carbine"
 +
14 : "ref_shoot_carbine"
 +
15 : "ref_reload_carbine"
 +
16 : "crouch_aim_onehanded"
 +
17 : "crouch_shoot_onehanded"
 +
18 : "crouch_reload_onehanded"
 +
19 : "ref_aim_onehanded"
 +
20 : "ref_shoot_onehanded"
 +
21 : "ref_reload_onehanded"
 +
22 : "crouch_aim_dualpistols_1"
 +
23 : "crouch_shoot_dualpistols_1"
 +
24 : "crouch_shoot2_dualpistols_1"
 +
25 : "crouch_reload_dualpistols_1"
 +
26 : "ref_aim_dualpistols_1"
 +
27 : "ref_shoot_dualpistols_1"
 +
28 : "ref_shoot2_dualpistols_1"
 +
29 : "ref_reload_dualpistols_1"
 +
30 : "crouch_aim_rifle"
 +
31 : "crouch_shoot_rifle"
 +
32 : "crouch_reload_rifle"
 +
33 : "ref_aim_rifle"
 +
34 : "ref_shoot_rifle"
 +
35 : "ref_reload_rifle"
 +
36 : "crouch_aim_mp5"
 +
37 : "crouch_shoot_mp5"
 +
38 : "crouch_reload_mp5"
 +
39 : "ref_aim_mp5"
 +
40 : "ref_shoot_mp5"
 +
41 : "ref_reload_mp5"
 +
42 : "crouch_aim_shotgun"
 +
43 : "crouch_shoot_shotgun"
 +
44 : "crouch_reload_shotgun"
 +
45 : "ref_aim_shotgun"
 +
46 : "ref_shoot_shotgun"
 +
47 : "ref_reload_shotgun"
 +
48 : "crouch_aim_m249"
 +
49 : "crouch_shoot_m249"
 +
50 : "crouch_reload_m249"
 +
51 : "ref_aim_m249"
 +
52 : "ref_shoot_m249"
 +
53 : "ref_reload_m249"
 +
54 : "I_am_a_stupid_placeholder"
 +
55 : "so_am_I"
 +
56 : "ref_aim_grenade"
 +
57 : "ref_shoot_grenade"
 +
58 : "crouch_aim_grenade"
 +
59 : "crouch_shoot_grenade"
 +
60 : "crouch_aim_c4"
 +
61 : "crouch_shoot_c4"
 +
62 : "ref_aim_c4"
 +
63 : "ref_shoot_c4"
 +
64 : "ref_reload_c4"
 +
65 : "crouch_aim_dualpistols_2"
 +
66 : "crouch_shoot_dualpistols_2"
 +
67 : "crouch_shoot2_dualpistols_2"
 +
68 : "crouch_reload_dualpistols_2"
 +
69 : "ref_aim_dualpistols_2"
 +
70 : "ref_shoot_dualpistols_2"
 +
71 : "ref_shoot2_dualpistols_2"
 +
72 : "ref_reload_dualpistols_2"
 +
73 : "crouch_aim_knife"
 +
74 : "crouch_shoot_knife"
 +
75 : "ref_aim_knife"
 +
76 : "ref_shoot_knife"
 +
77 : "crouch_aim_ak47"
 +
78 : "crouch_shoot_ak47"
 +
79 : "crouch_reload_ak47"
 +
80 : "ref_aim_ak47"
 +
81 : "ref_shoot_ak47"
 +
82 : "ref_reload_ak47"
 +
83 : "crouch_aim_shieldgren"
 +
84 : "crouch_shoot_shieldgren"
 +
85 : "ref_aim_shieldgren"
 +
86 : "ref_shoot_shieldgren"
 +
87 : "crouch_aim_shieldknife"
 +
88 : "crouch_shoot_shieldknife"
 +
89 : "ref_aim_shieldknife"
 +
90 : "ref_shoot_shieldknife"
 +
91 : "crouch_aim_shieldgun"
 +
92 : "crouch_shoot_shieldgun"
 +
93 : "crouch_reload_shieldgun"
 +
94 : "ref_aim_shieldgun"
 +
95 : "ref_shoot_shieldgun"
 +
96 : "ref_reload_shieldgun"
 +
97 : "crouch_aim_shielded"
 +
98 : "ref_aim_shielded"
 +
99 : "gut_flinch"
 +
100 : "head_flinch"
 +
101 : "death1"
 +
102 : "death2"
 +
103 : "death3"
 +
104 : "head"
 +
105 : "gutshot"
 +
106 : "left"
 +
107 : "back"
 +
108 : "right"
 +
109 : "forward"
 +
110 : "crouch_die"
 +
    ]
 +
]
 +
 +
@BaseClass = HostageAnim
 +
[
 +
    sequence(Choices) : "Animation Sequence (editor)" : 27 =
 +
    [
 +
"" : "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_1"
 +
23 : "crouch_idle3_2"
 +
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 : "writeboard"
 +
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 : "lookwindow"
 +
93 : "wave"
 +
94 : "pulldoor"
 +
95 : "beatdoor"
 +
96 : "fallingloop"
 +
97 : "crawlwindow"
 +
98 : "divewindow"
 +
99 : "locked_door"
 +
100 : "push_button2"
 +
101 : "unlock_door"
 +
102 : "quicklook"
 +
103 : "handrailidle"
 +
104 : "handrail"
 +
105 : "hanging_idle"
 +
106 : "fall"
 +
107 : "scientist_get_pulled"
 +
108 : "hanging_idle2"
 +
109 : "fall_elevator"
 +
110 : "scientist_idlewall"
 +
111 : "ickyjump_sci"
 +
112 : "haulscientist"
 +
113 : "c1a4_wounded_idle"
 +
114 : "c1a4_dying_speech"
 +
115 : "tentacle_grab"
 +
116 : "helicack"
 +
117 : "windive"
 +
118 : "scicrashidle"
 +
119 : "scicrash"
 +
120 : "onguard"
 +
121 : "seeya"
 +
122 : "rocketcrawl"
 +
123 : "portal"
 +
124 : "gluonshow"
 +
125 : "crouch"
 +
126 : "kneel"
 +
127 : "pepsiidle"
 +
128 : "pepsifall"
 +
    ]
 +
]
 +
 +
@BaseClass size(-16 -16 -36, 16 16 36) color(0 255 0) base(Angles, Appearflags) = PlayerClass[]
 +
 +
@BaseClass base(Targetname, Global, RenderFields, PlatSounds) = Trackchange
 +
[
 +
//* height is the distance the track/train will move. By default, the track starts in its top position
 +
//* and goes downward (This can be changed in the Flags section #8).
 
height(integer) : "Travel altitude" : 0
 
height(integer) : "Travel altitude" : 0
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
 +
//* Auto activate and relink may not be funcional
 
1: "Auto Activate train" : 0
 
1: "Auto Activate train" : 0
 
2: "Relink track" : 0
 
2: "Relink track" : 0
Line 336: Line 1,169:
 
128: "Y Axis" : 0
 
128: "Y Axis" : 0
 
]
 
]
 +
//* rotation is the amount in degrees the track will turn to line up with the new track.
 
rotation(integer) : "Spin amount" : 0
 
rotation(integer) : "Spin amount" : 0
 
train(target_destination) : "Train to switch"
 
train(target_destination) : "Train to switch"
 +
//* toptrack is the Name (targetname) of the last path_corner-track in the upper area, or last area, of the track.
 
toptrack(target_destination) : "Top track"
 
toptrack(target_destination) : "Top track"
 +
//* bottomtrack is the Name (targetname) of the first path_corner-track in the lower area, or next area, of the track
 
bottomtrack(target_destination) : "Bottom track"
 
bottomtrack(target_destination) : "Bottom track"
 +
//* speed is the speed in units per second that the track platform will move downward.
 +
//* (If the #16 Rotate Only flag is set, this is just the speed of rotation).
 
speed(integer) : "Move/Rotate speed" : 0
 
speed(integer) : "Move/Rotate speed" : 0
 +
//*
 +
//* The first path_track-corner should not have a Next stop target (target). Instead, where it says Fire on
 +
//* dead end (netname), enter a value equal to the Name (targetname) of the func_trackautochange. Now, when
 +
//* the train reaches the path_track-corner, it will stop, then activate the func_trackautochange.
 +
//* When the it gets to the bottom, the train will continue on to the next path_track-corner defined
 +
//* by Bottom track (bottomtrack) in the func_trackautochange properties.
 +
//*
 
]
 
]
  
@BaseClass base(Target, Targetname) = Trigger
+
@BaseClass base(Targetname, Master, Target) = Trigger
 
[
 
[
 +
delay(string) : "Delay before trigger" : "0"
 
killtarget(target_destination) : "Kill target"
 
killtarget(target_destination) : "Kill target"
 
netname(target_destination) : "Target Path"
 
netname(target_destination) : "Target Path"
style(integer) : "Style" : 32
+
//* style commented out, seems to serve no purpose besides adding
master(string) : "Master"
+
//* to the lightdata load.
sounds(choices) : "Sound style" : 0 =
+
//* style(integer) : "Style" : 32
 +
sounds(choices) : "Sound style" : "" =  
 
[
 
[
0 : "No Sound"
+
"": "No Sound, None"
 +
//* the rest of these may or may not work, copied from button
 +
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"
 
]
 
]
delay(string) : "Delay before trigger" : "0"
 
 
message(string) : "Message (set sound too)"
 
message(string) : "Message (set sound too)"
 
spawnflags(flags) =  
 
spawnflags(flags) =  
 
[
 
[
 +
//* 1: "monsters":0
 +
2: "No Players,entity only":0
 
4: "Pushables": 0
 
4: "Pushables": 0
 
]
 
]
 
]
 
]
  
@BaseClass = ZhltLightFlags
+
@BaseClass size(-16 -16 0, 16 16 32) color(0 0 200) base(Targetname, Appearflags, Angles, Targetx, RenderFields) = Weapon []
 +
 
 +
@BaseClass = ZHLT
 
[
 
[
zhlt_lightflags(choices) :"Light Flags (Zhlt 2.2+)" : 0 =
+
zhlt_invisible(choices) :"Invisible" : "" =
 
[
 
[
0: "Normal"
+
"": "no"
 +
1: "yes"
 +
]
 +
zhlt_noclip(choices) :"Non solid" : "" =
 +
[
 +
"": "no"
 +
1: "yes"
 +
]
 +
zhlt_lightflags(choices) :"Light Flags (Zhlt 2.2+)" : "" =
 +
[
 +
"": "Normal"
 
1: "Embedded Fix"
 
1: "Embedded Fix"
 
2: "Opaque (Blocks Light)"
 
2: "Opaque (Blocks Light)"
 
3: "Opaque + Embedded Fix"
 
3: "Opaque + Embedded Fix"
 +
5: "Opaque + Concave Fix"
 
]
 
]
 +
zhlt_customshadow(string) : "Custom shadow"
 +
light_origin(string) : "Light Origin (Zhlt 2.2+)"
 
]
 
]
  
 
//
 
//
// Cyclers
+
// Entities
 
//
 
//
  
@PointClass base(Targetname, Angles) = cycler_sprite : "Sprite Cycler"  
+
@PointClass base(Targetname) iconsprite("sprites/CS/AmbientGeneric.spr") = ambient_generic : "Universal sound Ambient"
 
[
 
[
model(sprite) : "Sprite"
+
message(sound) : "Path/filename.wav of WAV"
framerate(integer) : "Frames per second" : 10
+
health(integer) : "Volume (10 = loudest)" : 10
renderfx(choices) :"Render FX" : 0 =
+
preset(choices) :"Dynamic Presets" : "" =
 
[
 
[
0: "Normal"
+
"": "None"
1: "Slow Pulse"
+
1: "Huge Machine"
2: "Fast Pulse"
+
2: "Big Machine"
3: "Slow Wide Pulse"
+
3: "Machine"
4: "Fast Wide Pulse"
+
4: "Slow Fade in"
9: "Slow Strobe"
+
5: "Fade in"
10: "Fast Strobe"
+
6: "Quick Fade in"
11: "Faster Strobe"
+
7: "Slow Pulse"
12: "Slow Flicker"
+
8: "Pulse"
13: "Fast Flicker"
+
9: "Quick pulse"
5: "Slow Fade Away"
+
10: "Slow Oscillator"
6: "Fast Fade Away"
+
11: "Oscillator"
7: "Slow Become Solid"
+
12: "Quick Oscillator"
8: "Fast Become Solid"
+
13: "Grunge pitch"
14: "Constant Glow"
+
14: "Very low pitch"
15: "Distort"
+
15: "Low pitch"
16: "Hologram (Distort + fade)"
+
16: "High pitch"
]
+
17: "Very high pitch"
rendermode(choices) : "Render Mode" : 0 =
+
18: "Screaming pitch"
[
+
19: "Oscillate spinup/down"
0: "Normal"
+
20: "Pulse spinup/down"
1: "Color"
+
21: "Random pitch"
2: "Texture"
+
22: "Random pitch fast"
3: "Glow"
+
23: "Incremental Spinup"
4: "Solid"
+
24: "Alien"
5: "Additive"
+
25: "Bizzare"
]
+
26: "Planet X"
renderamt(integer) : "FX Amount (1 - 255)"
+
27: "Haunted"
rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
+
]
]
+
volstart(integer) : "Start Volume" : 0
 
+
fadein(integer) : "Fade in time (0-100)" : 0
//
+
fadeout(integer) : "Fade out time (0-100)" : 0
// Environmental effects
+
//*main pitch frequency
//
+
pitch(integer) : "Pitch (> 100 = higher)" : 100
 
+
//*begin pitch
@BaseClass = BeamStartEnd
+
pitchstart(integer) : "Start Pitch" : 100
[
+
//*how fast to change from begin pitch to main pitch.
LightningStart(target_destination) : "Start Entity"  
+
spinup(integer) : "Spin up time (0-100)" : 0
LightningEnd(target_destination) : "Ending Entity"
+
//*how fast to go back down from main pitch to nothing.
]
+
spindown(integer) : "Spin down time (0-100)" : 0
@PointClass base(Targetname, BeamStartEnd, RenderFxChoices) size(-16 -16 -16, 16 16 16) = env_beam : "Energy Beam Effect"
+
//*LFO = low frequency oscillator.
[
+
//*type of sound wave, sqr will jump back and forth between low and high pitch, tri has sharp transitions, and rnd has smooth transitions.
renderamt(integer) : "Brightness (1 - 255)" : 100
+
lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0
rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
+
//*rate is the frequency (how often the LFO effect repeats itself).
Radius(integer) : "Radius" : 256
+
lforate(integer) : "LFO rate (0-1000)" : 0
life(string) : "Life (seconds 0 = infinite)" : "1"
+
//*how much pitch change,  This effect is commonly called "vibrato" in music and song.
BoltWidth(integer) : "Width of beam (pixels*0.1 0-255)" : 20
+
lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0
NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
+
//*how strong a "pulse" of volume rather than a wavering pitch.
texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
+
lfomodvol(integer) : "LFO mod vol (0-100)" : 0
TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
+
//*cspinup is unknown to me.
framerate(integer) : "Frames per 10 seconds" : 0
+
cspinup(integer) : "Incremental spinup count" : 0
framestart(integer) : "Starting Frame" : 0
+
spawnflags(flags) =
StrikeTime(string) : "Strike again time (secs)" : "1"
 
damage(string) : "Damage / second" : "0"
 
spawnflags(flags) =  
 
 
[
 
[
1 : "Start On" : 0
+
1: "Play Everywhere" : 0
2 : "Toggle" : 0
+
//*small is <~800 units range
4 : "Random Strike" : 0
+
2: "Small Radius" : 0
8 : "Ring" : 0
+
//* Medium is the default radius, so ticking this does nothing.  <~1250 units
16: "StartSparks" : 0
+
4: "Medium Radius" : 1
32: "EndSparks" : 0
+
//*large is <~2000 units range
64: "Decal End" : 0
+
8: "Large Radius" : 0
128: "Shade Start" : 0
+
16:"Start Silent":0
256: "Shade End" : 0
+
32:"Not Toggled":0
 
]
 
]
 
]
 
]
  
@PointClass base(Targetname, Angles) size(-4 -4 -4, 4 4 4) = env_beverage : "Beverage Dispenser"
+
@PointClass base(Angles) iconsprite("sprites/CS/Armoury.spr") size(-16 -16 0, 16 16 16) = armoury_entity : "Items in the armoury"  
 
[
 
[
health(integer) : "Capacity" : 10
+
item(choices) : "Item" : "" =  
skin(choices) : "Beverage Type" : 0 =  
 
 
[
 
[
0 : "Coca-Cola"
+
"": "weapon_mp5navy"
1 : "Sprite"
+
1: "weapon_tmp"
2 : "Diet Coke"
+
2: "weapon_p90"
3 : "Orange"
+
3: "weapon_mac10"
4 : "Surge"
+
4: "weapon_ak47"
5 : "Moxie"
+
5: "weapon_sg552"
6 : "Random"
+
6: "weapon_m4a1"
 +
7: "weapon_aug"
 +
8: "weapon_scout"
 +
9: "weapon_g3sg1"
 +
10: "weapon_awp"
 +
11: "weapon_m3"
 +
12: "weapon_xm1014"
 +
13: "weapon_m249"
 +
14: "weapon_flashbang"
 +
15: "weapon_hegrenade"
 +
16: "item_kevlar"
 +
17: "item_assaultsuit"
 +
18: "weapon_smokegrenade"
 
]
 
]
 +
//*
 +
//*note: count always resets to only one item after first round
 +
//*
 +
count(integer) : "Count" : 1
 
]
 
]
  
@PointClass base(Targetname, Angles) size(-16 -16 -16, 16 16 16) color(255 0 0) = env_blood : "Blood Effects"  
+
@PointClass base(Targetname, Angles, RenderFields) size(-16 -16 0, 16 16 72) Studio() = cycler : "Monster Cycler"  
 
[
 
[
color(choices) : "Blood Color" : 0 =
+
model(studio) : "Model / Sprite"
[
 
0 : "Red (Human)"
 
]
 
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) = env_bubbles : "Bubble Volume"  
+
@PointClass base(Targetname, Angles, RenderFields) Studio() = cycler_sprite : "Sprite Cycler"  
 
[
 
[
density(integer) : "Bubble density" : 2
+
model(studio) : "Model / Sprite" : ""
frequency(integer) : "Bubble frequency" : 2
+
sequence(integer) : "Animation # sequence (Models only)"
current(integer) : "Speed of Current" : 0
+
framerate(string) : "Framerate (Sprites only)" : 10
spawnflags(Flags) =
 
[
 
1 : "Start Off" : 0
 
]
 
 
]
 
]
  
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_explosion : "Explosion"  
+
@PointClass Studio()  base(Targetname, Angles, RenderFields) size(-4 -4 -4, 4 4 4) = cycler_wreckage : "Wreckage"  
 
[
 
[
iMagnitude(Integer) : "Magnitude" : 100
+
model(studio) : "Model / Sprite" : "sprites/dot.spr"
 +
framerate(string) : "Framerate (Sprites only)" : "10.0"
 +
scale(string) : "Scale (Sprites only)" : "1.0"
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
1: "No Damage" : 0
+
32: "Toggle" : 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"
+
//
[
+
// Environmental effects
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"  
+
//* the beam can lead to network lag due to continous changing animation.
 +
@PointClass base(Targetname, BeamStartEnd, RenderFxChoices) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/beam.spr") = env_beam : "Energy Beam Effect"
 
[
 
[
model(sprite) : "model" : "sprites/glow01.spr"
 
scale(integer) : "Sprite Scale" : 1
 
]
 
 
@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
 
renderamt(integer) : "Brightness (1 - 255)" : 100
 
rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
 
rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
width(integer) : "Width of beam (pixels*0.1 0-255)" : 20
+
//* If you only give the beam one endpoint, then radius will specifies how
 +
//* far away the other endpoint should be (randomly) placed.
 +
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
 
NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
 
texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
 
texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
EndSprite(sprite) : "End Sprite" : ""
 
 
TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
 
TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
 +
framerate(integer) : "Frames per 10 seconds" : 0
 
framestart(integer) : "Starting Frame" : 0
 
framestart(integer) : "Starting Frame" : 0
damage(string) : "Damage / second" : "100"
+
StrikeTime(string) : "Strike again time (secs)" : "1"
 +
damage(string) : "Damage / second" : "0"
 
spawnflags(flags) =  
 
spawnflags(flags) =  
 
[
 
[
1 : "Start On" : 0
+
//* This is the default unless you specify a name.
16: "StartSparks" : 0
+
1 : "Start On" : 0
32: "EndSparks" : 0
+
2 : "Toggle" : 0
64: "Decal End" : 0
+
4 : "Random Strike" : 0
 +
//* Makes the beam form a circle, with a diameter that stretches between the two endpoints.
 +
//* For some unknown reason, both endpoints must have a model.
 +
//*  NB: because the beam will stretch between the origins of the two entities, you'll
 +
//* need to give each endpoint an origin brush.
 +
8 : "Ring" : 0
 +
16: "StartSparks" : 0
 +
32: "EndSparks" : 0
 +
64: "Decal End" : 0
 +
//* The beam fades in from nothing, like a tracer bullet.
 +
128: "Fade Start" : 0
 +
256: "Fade End" : 0
 
]
 
]
 
]
 
]
  
@PointClass base(Targetname, Target) = env_message : "HUD Text Message"  
+
@PointClass base(Targetname, Angles) size(-4 -4 -4, 4 4 4) Studio("models/can.mdl") = env_beverage : "Beverage Dispenser"
 
[
 
[
message(string) : "Message Name"
+
health(integer) : "Capacity" : 10
spawnflags(flags) =
+
skin(choices) : "Beverage Type" : "" =  
 
[
 
[
1: "Play Once" : 0
+
"" : "Coca-Cola"
2: "All Clients" : 0
+
1 : "Sprite"
]
+
2 : "Diet Coke"
messagesound(sound) : "Sound effect"
+
3 : "Orange"
messagevolume(string) : "Volume 0-10" : "10"
+
4 : "Surge"
messageattenuation(Choices) : "Sound Radius" : 0 =
+
5 : "Moxie"
[
+
6 : "Random"
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"
+
@PointClass base(Targetname, Angles) size(-16 -16 -16, 16 16 16) color(255 0 0) iconsprite("sprites/CS/blood.spr") = env_blood : "Blood Effects"  
 
[
 
[
 +
color(choices) : "Blood Color" : "" =
 +
[
 +
"" : "Black/White blood with yellow decals"
 +
1 : "Yellow blood with yellow decals"
 +
2 : "Red blood with red decals"
 +
]
 +
amount(string) : "Amount of blood (damage to simulate)" : "100"
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
1: "No Renderfx" : 0
+
1: "Random Direction" : 0
2: "No Renderamt" : 0
+
2: "Blood Stream" : 0
4: "No Rendermode" : 0
+
4: "On Player" : 0
8: "No Rendercolor" : 0
+
8: "Spray decals" : 0
 
]
 
]
 
]
 
]
  
@PointClass base(Targetname) = env_shake : "Screen Shake"  
+
//* Bubbles cannot drift sideways with this entity; use an env_model and
 +
//* "valve/models/pipe_bubbles.mdl" instead.
 +
@SolidClass base(Targetname) = env_bubbles : "Bubble Volume"  
 
[
 
[
spawnflags(flags) =
+
density(integer) : "Bubble density" : 2
 +
frequency(integer) : "Bubble frequency" : 2
 +
current(integer) : "Speed of Current" : 0
 +
spawnflags(Flags) =  
 
[
 
[
1: "GlobalShake" : 0
+
1 : "Start Off" : 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"
+
@PointClass base(Targetname) iconsprite("sprites/CS/envexplosion.spr") = env_explosion : "Explosion"  
 
[
 
[
shootmodel(studio) : "Model" : ""
+
iMagnitude(Integer) : "Magnitude" : 100
shootsounds(choices) :"Material Sound" : -1 =
+
spawnflags(flags) =
 
[
 
[
-1: "None"
+
1: "No Damage" : 0
0: "Glass"
+
2: "Repeatable" : 0
1: "Wood"
+
4: "No Fireball" : 0
2: "Metal"
+
8: "No Smoke" : 0
3: "Flesh"
+
16: "No Decal" : 0
4: "Concrete"
+
32: "No Sparks" : 0
 +
]
 +
]
 +
 
 +
@PointClass base(Targetname) iconsprite("sprites/CS/EnvFunnel.spr") = env_funnel : "Large Portal Funnel"  
 +
[
 +
spawnflags(flags) =
 +
[
 +
1: "Reverse" : 0
 
]
 
]
scale(string) : "Gib Scale" : ""
 
skin(integer) : "Gib Skin" : 0
 
 
]
 
]
  
@PointClass iconsprite("sprites/speaker.spr") = env_sound : "DSP Sound"  
+
@PointClass base(Targetname) iconsprite("sprites/CS/EnvGlobal.spr") color(255 255 128) = env_global : "Global State"
 
[
 
[
radius(integer) : "Radius" : 128
+
globalstate(string) : "Global State to Set"
roomtype(Choices) : "Room Type" : 0 =
+
triggermode(choices) : "Trigger Mode" : "" =
 
[
 
[
0 : "Normal (off)"
+
"" : "Off"
1 : "Generic"
+
1 : "On"
+
2 : "Dead"
2 : "Metal Small"
+
3 : "Toggle"
3 : "Metal Medium"
+
]
4 : "Metal Large"
+
initialstate(choices) : "Initial State" : "" =
+
[
5 : "Tunnel Small"
+
"" : "Off"
6 : "Tunnel Medium"
+
1 : "On"
7 : "Tunnel Large"
+
2 : "Dead"
+
]
8 : "Chamber Small"
+
spawnflags(flags) =
9 : "Chamber Medium"
+
[
10: "Chamber Large"
+
1 : "Set Initial State" : 0
 +
]
 +
]
  
11: "Bright Small"
+
@PointClass sprite() base(Targetname, RenderFields) size(-4 -4 -4, 4 4 4) color(30 100 0) sprite() = env_glow : "Light Glow/Haze"  
12: "Bright Medium"
+
[
13: "Bright Large"
+
model(sprite) : "Sprite" : "sprites/glow01.spr"
 +
scale(integer) : "Sprite Scale" : 1
 +
]
  
14: "Water 1"
+
@PointClass base(Targetname) iconsprite("sprites/CS/fade.spr") = env_fade : "Screen Fade"  
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) =
 
spawnflags(flags) =
 
[
 
[
32: "Toggle" : 0
+
1: "Fade From" : 0
64: "Start ON" : 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 sprite() base(Targetname, RenderFields, Angles) size(-4 -4 -4, 4 4 4) = env_sprite : "Sprite Effect"  
+
//* NOT YET SUPPORTED BY COUNTER-STRIKE AS OF VERSION 1.3 WITH HALF-LIFE VERSION 1.1.0.8
 +
// Still not there no need to have this in because of all the ppl that desent read this
 +
//@PointClass base(Targetname) iconsprite("sprites/CS/envfog.spr") = env_fog : "Global Fog Properties"
 +
//[
 +
// fadein(integer) : "Fade in time" : 0
 +
// holdtime(string) : "Hold time (0 = permanent)" : "0"
 +
// fadeout(integer) : "Fade out time" : 0
 +
// startdist(integer) : "Fog start position" : 0
 +
//      enddist(integer) : "Fog end position" : 1000
 +
// rendercolor(color255) : "Fog Color (R G B)" : "255 255 255"
 +
// spawnflags(flags) =
 +
// [
 +
// 1 : "Start active"  : 0
 +
// ]
 +
//]
 +
 
 +
//*may cause network lag due to changing animation.
 +
@PointClass base(Targetname, RenderFxChoices, Angles) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/laser.spr") = env_laser : "Laser Beam Effect"
 
[
 
[
framerate(string) : "Framerate" : "10.0"
+
LaserTarget(target_destination) : "Target of Laser"
model(sprite) : "Sprite Name" : "sprites/glow01.spr"
+
renderamt(integer) : "Brightness (1 - 255)" : 100
scale(integer) : "Scale" : 1
+
rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
spawnflags(flags) =
+
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
+
1 : "Start On" : 0
2: "Play Once" : 0
+
16: "StartSparks" : 0
 +
32: "EndSparks" : 0
 +
64: "Decal End" : 0
 
]
 
]
 
]
 
]
  
//
+
@PointClass base(Targetname, Target) iconsprite("sprites/CS/Announcement.spr") = env_message : "HUD Text Message"  
// Function entities
 
//
 
 
 
@SolidClass base(Breakable, RenderFields) = func_breakable : "Breakable Object"  
 
 
[
 
[
 +
message(string) : "Message Name"
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
1 : "Only Trigger" : 0
+
1: "Play Once" : 0
2 : "Touch"   : 0
+
2: "All Clients" : 0
4 : "Pressure"     : 0
+
]
256: "Instant Crowbar" : 1
+
messagesound(sound) : "Sound effect"
 +
messagevolume(string) : "Volume 0-10" : "10"
 +
messageattenuation(Choices) : "Sound Radius" : "" =
 +
[
 +
//*small is <~800 units range
 +
"" : "Small Radius"
 +
//*medium is <~1250 units range
 +
1 : "Medium Radius"
 +
//*large is <~2000 units range
 +
2 : "Large  Radius"
 +
3 : "Play Everywhere"
 
]
 
]
_minlight(string) : "Minimum light level"
 
 
]
 
]
  
@SolidClass base(Targetname, RenderFields, Angles) = func_button : "Button"  
+
//*beta tested by [dmv]Cross, works in STEAM CS 1.6
 +
@PointClass base(Targetname) iconsprite("sprites/CS/EnvRain.spr") = env_rain : "rain Properties" []
 +
 
 +
@PointClass base(Targetname, Target, RenderFields) size(-16 -16 -16, 16 16 16) color(100 100 0) iconsprite("sprites/CS/render.spr") = env_render : "Render Controls"
 
[
 
[
speed(integer) : "Speed" : 5
+
spawnflags(flags) =
target(target_destination) : "Targetted object"
 
netname(target_destination) : "Target Path"
 
// Path Target overrides Targetted Object
 
health(integer) : "Health (shootable if > 0)"
 
lip(integer) : "Lip"
 
master(string) : "Master"
 
sounds(choices) : "Sounds" : 0 =  
 
 
[
 
[
0: "None"
+
1: "No Renderfx" : 0
1: "Big zap & Warmup"
+
2: "No Renderamt" : 0
2: "Access Denied"
+
4: "No Rendermode" : 0
3: "Access Granted"
+
8: "No Rendercolor" : 0
4: "Quick Combolock"
+
]
5: "Power Deadbolt 1"
+
]
6: "Power Deadbolt 2"
+
 
7: "Plunger"
+
@PointClass base(Targetname) iconsprite("sprites/CS/EnvShake.spr") = env_shake : "Screen Shake"  
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) =
 
spawnflags(flags) =
 
[
 
[
1: "Don't move" : 0
+
1: "GlobalShake" : 0
32: "Toggle" : 0
 
64: "Sparks" : 0
 
256:"Touch Activates": 0
 
 
]
 
]
locked_sound(choices) : "Locked Sound" : 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) Studio("models/CS/envshooter.mdl") size(-16 -16 -16, 16 16 16) = env_shooter : "Model Shooter"
 +
[
 +
shootmodel(studio) : "Model" : "models/can.mdl"
 +
shootsounds(choices) :"Material Sound" : -1 =
 
[
 
[
0: "None"
+
-1: "None"
2: "Access Denied"
+
//* debris/glass1-4.wav
8: "Small zap"
+
"": "Glass"
10: "Buzz"
+
//* debris/wood1-4.wav
11: "Buzz Off"
+
1: "Wood"
12: "Latch Locked"
+
//* debris/metal1-6.wav
 +
2: "Metal"
 +
//* debris/flesh1-7.wav
 +
3: "Flesh"
 +
//* debris/concrete1-3.wav
 +
4: "Concrete"
 
]
 
]
unlocked_sound(choices) : "Unlocked Sound" : 0 =  
+
scale(string) : "Gib Scale" : ""
 +
skin(integer) : "Gib Skin" : 0
 +
]
 +
 
 +
//*
 +
//*this changes sound for the player UNTIL IT IS RESET by another env sound.  make sure you reset it!
 +
//*
 +
@PointClass iconsprite("sprites/CS/EnvSound.spr") = env_sound : "DSP Sound"
 +
[
 +
radius(integer) : "Radius" : 128
 +
roomtype(Choices) : "Room Type" : "" =
 
[
 
[
0: "None"
+
"" : "Normal (off)"
1: "Big zap & Warmup"
+
1 : "Generic"
3: "Access Granted"
+
4: "Quick Combolock"
+
2 : "Metal Small"
5: "Power Deadbolt 1"
+
3 : "Metal Medium"
6: "Power Deadbolt 2"
+
4 : "Metal Large"
7: "Plunger"
+
8: "Small zap"
+
5 : "Tunnel Small"
9: "Keycard Sound"
+
6 : "Tunnel Medium"
10: "Buzz"
+
7 : "Tunnel Large"
13: "Latch Unlocked"
+
14: "Lightswitch"
+
8 : "Chamber Small"
]
+
9 : "Chamber Medium"
locked_sentence(choices) : "Locked Sentence" : 0 =
+
10: "Chamber Large"
[
+
 
0: "None"
+
11: "Bright Small"
1: "Gen. Access Denied"
+
12: "Bright Medium"
2: "Security Lockout"
+
13: "Bright Large"
3: "Blast Door"
+
 
4: "Fire Door"
+
14: "Water 1"
5: "Chemical Door"
+
15: "Water 2"
6: "Radiation Door"
+
16: "Water 3"
7: "Gen. Containment"
+
 
8: "Maintenance Door"
+
17: "Concrete Small"
9: "Broken Shut Door"
+
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"
 
]
 
]
unlocked_sentence(choices) : "Unlocked Sentence" : 0 =  
+
]
 +
 
 +
//*beta tested by [dmv]Cross, works in STEAM CS 1.6
 +
@PointClass base(Targetname) iconsprite("sprites/CS/EnvSnow.spr") = env_snow : "snow Properties" []
 +
 
 +
@PointClass base(Targetname, Angles) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/EnvSpark.spr") = env_spark : "Spark"
 +
[
 +
MaxDelay(string) : "Max Delay" : "0"
 +
spawnflags(flags) =
 
[
 
[
0: "None"
+
32: "Toggle" : 0
1: "Gen. Access Granted"
+
64: "Start ON" : 0
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(RenderFields, Targetname, Angles) = func_conveyor : "Conveyor Belt"  
+
@PointClass sprite() base(Targetname, Angles, RenderFields) size(-4 -4 -4, 4 4 4) = env_sprite : "Still Sprite Effect"  
 
[
 
[
 +
framerate(string) : "Framerate" : "10.0"
 +
model(sprite) : "Sprite Name" : "sprites/glow01.spr"
 +
scale(integer) : "Scale" : 1
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
1 : "No Push" : 0
+
1: "Start on" : 0
2 : "Not Solid" : 0
+
2: "Play Once" : 0
 
]
 
]
speed(string) : "Conveyor Speed" : "100"
 
_minlight(string) : "Minimum light level"
 
 
]
 
]
  
@SolidClass base(Door) = func_door : "Basic door" []
 
  
@SolidClass base(Door) = func_door_rotating : "Rotating door"  
+
//
 +
// game entities (requires Half-Life 1.0.0.9)
 +
//
 +
 
 +
@PointClass base(Targetname, Master, Targetx) iconsprite("sprites/CS/GameCounter.spr") = game_counter : "Fires when it hits limit"
 
[
 
[
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
2 : "Reverse Dir" : 0
+
1: "Remove On fire" : 0
16: "One-way" : 0
+
2: "Reset On fire" : 1
64: "X Axis" : 0
 
128: "Y Axis" : 0
 
 
]
 
]
distance(integer) : "Distance (deg)" : 90
+
frags(integer) : "Initial Value" : 0
angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
+
health(integer) : "Limit Value" : 10
 
]
 
]
  
@SolidClass base(RenderFields) = func_friction : "Surface with a change in friction"  
+
@PointClass base(Targetname, Master, Target) iconsprite("sprites/CS/GameCounterSet.spr") = game_counter_set : "Sets a game_counter"
 
[
 
[
modifier(integer) : "Percentage of standard (0 - 100)" : 15
+
spawnflags(flags) =
 +
[
 +
1: "Remove On fire" : 0
 +
]
 +
frags(integer) : "New Value" : 10
 
]
 
]
  
@SolidClass base(Targetname, RenderFields, ZhltLightFlags) = func_illusionary : "Fake Wall/Light"  
+
@PointClass base(Targetname) iconsprite("sprites/CS/GameEnd.spr") = game_end : "End this multiplayer game"  
 
[
 
[
 +
master(string) : "Master"
 +
]
  
skin(choices) : "Contents" : -1 =
+
//* buggy entity, must use with weapon strip to avoid giving duplicate
 +
//* weapons to a player and causing a crash.
 +
@PointClass base(Targetname) iconsprite("sprites/CS/GamePlayerEquip.spr") = game_player_equip : "Initial player equipment"
 +
[
 +
master(string) : "Team Master"
 +
spawnflags(flags) =
 +
[
 +
1: "Use Only" : 0
 +
]
 +
weapon_knife (choices) : "Give Knife" : "" =  
 
[
 
[
-1: "Empty"
+
"": "No"
-7: "Volumetric Light"
+
1: "Yes"
 
]
 
]
_minlight(string) : "Minimum light level"
 
]
 
  
@SolidClass base(Targetname) = func_ladder : "Ladder" []
+
weapon_usp (choices) : "Give USP45 (45acp Calibre)" : "" =  
 +
[
 +
"": "No"
 +
1: "Yes"
 +
]
  
@SolidClass base(Targetname) = func_mortar_field : "Mortar Field"
+
weapon_glock18 (choices) : "Give Glock 18 (9mm Calibre)" : "" =  
[
 
m_flSpread(integer) : "Spread Radius" : 64
 
m_iCount(integer) : "Repeat Count" : 1
 
m_fControl(Choices) : "Targeting" : 0 =
 
 
[
 
[
0 : "Random"
+
"": "No"
1 : "Activator"
+
1: "Yes"
2 : "Table"
+
]
]
+
 
m_iszXController(target_destination) : "X Controller"
+
weapon_deagle (choices) : "Give Desert Eagle (50ae Calibre)" : "" =
m_iszYController(target_destination) : "Y Controller"
+
[
]
+
"": "No"
 +
1: "Yes"
 +
]
  
@SolidClass base(Targetname, RenderFields, Angles) = func_pendulum : "Swings back and forth"
+
weapon_p228 (choices) : "Give P-228 (357sig Calibre)" : "" =  
[
 
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
+
"": "No"
8: "Passable" : 0
+
1: "Yes"
16: "Auto-return" : 0
+
]
64: "X Axis" : 0
 
128: "Y Axis" : 0
 
]
 
  
_minlight(integer) : "_minlight"
+
weapon_elite (choices) : "Give Beretta Elites (9mm Calibre)" : "" =
]
+
[
 +
"": "No"
 +
1: "Yes"
 +
]
  
@SolidClass base(Targetname, RenderFields, PlatSounds) = func_plat : "Elevator"
+
weapon_fiveseven (choices) : "Give Five-Seven (57mm Calibre)" : "" =  
[
 
spawnflags(Flags) =
 
 
[
 
[
1: "Toggle" : 0
+
"": "No"
]
+
1: "Yes"
height(integer) : "Travel altitude (can be negative)" : 0
+
]
speed(integer) : "Speed" : 50
 
_minlight(string) : "Minimum light level"
 
]
 
  
@SolidClass base(Targetname, RenderFields, PlatSounds, Angles) = func_platrot : "Moving Rotating platform"
+
weapon_m3 (choices) : "Give Benelli M3 (12 Gauge)" : "" =  
[
 
spawnflags(Flags) =
 
 
[
 
[
1: "Toggle" : 1
+
"": "No"
64: "X Axis" : 0
+
1: "Yes"
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) = func_pushable : "Pushable object"
+
weapon_xm1014 (choices) : "Give Benelli XM1014 (12 Gauge)" : "" =  
[
 
size(choices) : "Hull Size" : 0 =
 
 
[
 
[
0: "Point size"
+
"": "No"
1: "Player size"
+
1: "Yes"
2: "Big Size"
+
]
3: "Player duck"
+
 
]
+
weapon_mp5navy (choices) : "Give MP5/Navy (9mm Calibre)" : "" =  
spawnflags(flags) =
 
 
[
 
[
128: "Breakable" : 0
+
"": "No"
]
+
1: "Yes"
friction(integer) : "Friction (0-400)" : 50
+
]
buoyancy(integer) : "Buoyancy" : 20
 
_minlight(string) : "Minimum light level"
 
]
 
  
@SolidClass base(Targetname, Angles) = func_rot_button : "RotatingButton"
+
weapon_tmp (choices) : "Give TMP (9mm Calibre)" : "" =  
[
 
target(target_destination) : "Targetted object"
 
changetarget(target_destination) : "ChangeTarget Name"
 
master(string) : "Master"
 
speed(integer) : "Speed" : 50
 
health(integer) : "Health (shootable if > 0)"
 
sounds(choices) : "Sounds" : 21 =  
 
 
[
 
[
21: "Squeaky"
+
"": "No"
22: "Squeaky Pneumatic"
+
1: "Yes"
23: "Ratchet Groan"
+
]
24: "Clean Ratchet"
+
 
25: "Gas Clunk"
+
weapon_p90 (choices) : "Give FN P90 (57mm Calibre)" : "" =  
]
 
wait(choices) : "Delay before reset" : 3 =
 
 
[
 
[
-1: "Stays pressed"
+
"": "No"
 +
1: "Yes"
 
]
 
]
delay(string) : "Delay before trigger" : "0"
+
 
distance(integer) : "Distance (deg)" : 90
+
weapon_mac10 (choices) : "Give Mac-10 (45acp Calibre)" : "" =  
spawnflags(flags) =
 
 
[
 
[
1 : "Not solid" : 0
+
"": "No"
2 : "Reverse Dir" : 0
+
1: "Yes"
32: "Toggle" : 0
+
]
64: "X Axis" : 0
+
 
128: "Y Axis" : 0
+
weapon_ump45 (choices) : "Give UMP 45 (45acp Calibre)" : "" =
256:"Touch Activates": 0
+
[
]
+
"": "No"
_minlight(integer) : "_minlight"
+
1: "Yes"
]
+
]
  
@SolidClass base(Targetname, RenderFields, Angles) = func_rotating : "Rotating Object"
+
weapon_ak47 (choices) : "Give AK-47 (762nato Calibre)" : "" =  
[
 
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"  
+
"": "No"
1 : "Fast Whine"
+
1: "Yes"
2 : "Slow Rush"
+
]
3 : "Medium Rickety"
+
 
4 : "Fast Beating"
+
weapon_sg552 (choices) : "Give SG552 (556nato Calibre)" : "" =  
5 : "Slow Smooth"
 
]
 
message(sound) : "WAV Name"
 
spawnflags(flags) =
 
 
[
 
[
1 : "Start ON" : 0
+
"": "No"
2 : "Reverse Direction" : 0
+
1: "Yes"
4 : "X Axis" : 0
+
]
8 : "Y Axis" : 0
+
 
16: "Acc/Dcc" : 0
+
weapon_m4a1 (choices) : "Give M4A1 (556nato Calibre)" : "" =
32: "Fan Pain" : 0
+
[
64: "Not Solid" : 0
+
"": "No"
128: "Small Radius" : 0
+
1: "Yes"
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(BaseTank) = func_tank : "Brush Gun Turret"
+
weapon_aug (choices) : "Give Aug (556nato Calibre)" : "" =  
[
 
bullet(choices) : "Bullets" : 0 =  
 
 
[
 
[
0: "None"
+
"": "No"
1: "9mm"
+
1: "Yes"
2: "MP5"
+
]
3: "12mm"
 
]
 
]
 
  
@SolidClass = func_tankcontrols : "Tank controls"
+
weapon_scout (choices) : "Give Scout (762nato Calibre)" : "" =
[
+
[
target(target_destination) : "Tank entity name"
+
"": "No"
]
+
1: "Yes"
 +
]
  
@SolidClass base(BaseTank) = func_tankmortar : "Brush Mortar Turret"  
+
weapon_awp (choices) : "Give AWP (338magnum Calibre)" : "" =
[
+
[
iMagnitude(Integer) : "Explosion Magnitude" : 100
+
"": "No"
]
+
1: "Yes"
 +
]
  
@SolidClass base(BaseTank) = func_tankrocket : "Brush Rocket Turret" []
+
weapon_g3sg1 (choices) : "Give G3/SG-1 (762nato Calibre)" : "" =  
 +
[
 +
"": "No"
 +
1: "Yes"
 +
]
  
@SolidClass base(Trackchange) = func_trackautochange : "Automatic track changing platform"
+
weapon_sg550 (choices) : "Give SG550 (556nato Calibre)" : "" =
[
+
[
_minlight(string) : "Minimum light level"
+
"": "No"
]
+
1: "Yes"
 +
]
  
@SolidClass base(Trackchange) = func_trackchange : "Train track changing platform"
+
weapon_m249 (choices) : "Give M249 (556natobox Calibre)" : "" =  
[
+
[
_minlight(string) : "Minimum light level"
+
"": "No"
]
+
1: "Yes"
 +
]
 +
weapon_famas (choices) : "CS 1.6 Famas (762nato)" : "" =
 +
[
 +
"": "No"
 +
1: "Yes"
 +
]
  
@SolidClass base(Targetname, RenderFields, Angles) = func_tracktrain : "Track Train"
+
weapon_galil (choices) : "CS 1.6 Galil (556natobox)"  : "" =  
[
 
spawnflags(flags) =
 
 
[
 
[
1 : "No Pitch (X-rot)" : 0
+
"": "No"
2 : "No User Control" : 0
+
1: "Yes"
8 : "Passable" : 0
 
 
]
 
]
target(target_destination) : "First stop target"
+
 
sounds(choices) : "Sound" : 0 =
+
weapon_shield (choices) : "CS 1.6 Police Riot Shield" : "" =  
 
[
 
[
0: "None"
+
"": "No"
1: "Rail 1"
+
1: "Yes"
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
+
item_kevlar (choices) : "Give Kevlar Vest" : "" =
startspeed(integer) : "Initial speed" : 0
+
[
speed(integer) : "Speed (units per second)" : 64
+
"": "No"
dmg(integer) : "Damage on crush" : 0
+
1: "Yes"
volume(integer) : "Volume (10 = loudest)" : 10
+
]
bank(string) : "Bank angle on turns" : "0"
+
 
_minlight(string) : "Minimum light level"
+
item_assaultsuit (choices) : "Give Kevlar Vest+Ballistic Helmet" : "" =  
]
+
[
 +
"": "No"
 +
1: "Yes"
 +
]
  
@SolidClass base(Targetname, RenderFields) = func_train : "Moving platform"
+
weapon_flashbang (choices) : "Give Flash Bang" : "" =  
[
 
target(target_source) : "First stop target"
 
movesnd(choices) : "Move Sound" : 0 =  
 
 
[
 
[
0: "No Sound"
+
"": "No"
1: "big elev 1"
+
1: "1"
2: "big elev 2"
+
2: "2"
3: "tech elev 1"
+
]
4: "tech elev 2"
+
 
5: "tech elev 3"
+
weapon_hegrenade (choices) : "Give High-Explosive Grenade" : "" =  
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"
+
"": "No"
1: "big elev stop1"
+
1: "Yes"
2: "big elev stop2"
+
]
3: "freight elev stop"
+
 
4: "heavy elev stop"
+
weapon_smokegrenade (choices) : "Give Smoke Grenade" : "" =  
5: "rack stop"
 
6: "rail stop"
 
7: "squeek stop"
 
8: "quick stop"
 
]
 
speed(integer) : "Speed (units per second)" : 64
 
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
+
"": "No"
]
+
1: "Yes"
_minlight(string) : "Minimum light level"
+
]
]
 
  
@SolidClass = func_traincontrols : "Train Controls"
+
item_thighpack (choices) : "Give Defuse Kit" : "" =
[
+
[
target(target_destination) : "Train Name"
+
"": "No"
]
+
1: "Yes"
 +
]
  
@SolidClass base(Targetname, RenderFields, ZhltLightFlags) = func_wall : "Wall"  
+
weapon_c4 (choices) : "Give C4 Plastique Bomb" : "" =
[
+
[
_minlight(string) : "Minimum light level"
+
"": "No"
]
+
1: "Yes"
 +
]
  
@SolidClass base(func_wall) = func_wall_toggle : "Toggleable geometry"  
+
ammo_9mm (choices) : "Give 9mm Parabellum Ammo" : "" =  
[
 
spawnflags(flags) =
 
 
[
 
[
1 : "Starts Invisible" : 0
+
"": "No"
]
+
1: "1 Clip (30 Bullets Per Clip)"
]
+
2: "2 Clips"
 +
3: "3 Clips (Fill Glock 18)"
 +
4: "4 Clips (Fill Elites, MP5 & TMP)"
 +
]
  
@SolidClass base(Door) = func_water : "Liquid"  
+
ammo_45acp (choices) : "Give .45 ACP Ammo" : "" =  
[
 
spawnflags(flags) =
 
 
[
 
[
1 : "Starts Open" : 0
+
"": "No"
256:"Use Only" : 0
+
1: "1 Clip (12 Bullets Per Clip)"
]
+
2: "2 Clips"
skin(choices) : "Contents" : -3 =
+
3: "3 Clips"
 +
4: "4 Clips (Fill USP45)"
 +
5: "5 Clips"
 +
6: "6 Clips"
 +
7: "7 Clips"
 +
8: "8 Clips (Fill Mac-10)"
 +
9: "9 Clips (Fill UMP 45)"
 +
]
 +
 
 +
ammo_50ae (choices) : "Give .50 Deagle Ammo" : "" =  
 
[
 
[
-3: "Water"
+
"": "No"
-4: "Slime"
+
1: "1 Clip (7 Bullets Per Clip)"
-5: "Lava"
+
2: "2 Clips"
]
+
3: "3 Clips"
WaveHeight(string) : "Wave Height" : "3.2"
+
4: "4 Clips"
]
+
5: "5 Clips (Fill Desert Eagle)"
 +
]
  
//
+
ammo_57mm (choices) : "Give 5.7mm Ammo" : "" =
// Info entities
+
[
//
+
"": "No"
 +
1: "1 Clip (50 Bullets Per Clip)"
 +
2: "2 Clips (Fill Five-Seven & P90)"
 +
]
  
@PointClass decal() base(Targetname) = infodecal : "Decal"
+
ammo_357sig (choices) : "Give .357 SIG Ammo" : "" =
[
+
[
texture(decal)
+
"": "No"
]
+
1: "1 Clip (13 Bullets Per Clip)"
 +
2: "2 Clips"
 +
3: "3 Clips"
 +
4: "4 Clips (Fill P-228)"
 +
]
  
@PointClass base(Targetname) = info_null : "info_null (spotlight target)" []
+
ammo_buckshot (choices) : "Give 12 Gauge Ammo" : "" =  
 +
[
 +
"": "No"
 +
1: "1 Clip (8 Shells Per Clip)"
 +
2: "2 Clips"
 +
3: "3 Clips"
 +
4: "4 Clips (Fill Benelli M3, XM1014)"
 +
]
  
@PointClass iconsprite("sprites/CS/Terrorist.spr") base(PlayerClass) = info_player_deathmatch : "Terrorist start" []
+
ammo_762nato (choices) : "Give 7.62mm NATO Ammo" : "" =
 +
[
 +
"": "No"
 +
1: "1 Clip (30 Bullets Per Clip)"
 +
2: "2 Clips (Fill Scout & G3/S-G1)"
 +
3: "3 Clips (Fill AK-47)"
 +
]
  
@PointClass iconsprite("sprites/CS/CT.spr") base(PlayerClass) = info_player_start : "Counter-terrorist start" []
+
ammo_556nato (choices) : "Give 5.56mm NATO Ammo" : "" =
 +
[
 +
"": "No"
 +
1: "1 Clip (30 Bullets Per Clip)"
 +
2: "2 Clips"
 +
3: "3 Fill SG552 M4A1 Aug SG550"
 +
]
  
@PointClass iconsprite("sprites/CS/VIP.spr") base(PlayerClass) = info_vip_start : "VIP start" []
+
ammo_556natobox (choices) : "Give 5.56mm NATO Box Ammo" : "" =
 +
[
 +
"": "No"
 +
1: "1 Clip (30 Bullets Per Clip)"
 +
2: "2 Clips"
 +
3: "3 Clips"
 +
4: "4 Clips"
 +
5: "5 Clips"
 +
6: "6 Clips"
 +
7: "7 Clips (Fill FN M249 Para)"
 +
 
 +
]
 +
 
 +
ammo_338magnum (choices) : "Give .338 AWP Ammo" : "" =  
 +
[
 +
"": "No"
 +
1: "1 Clip (10 Bullets Per Clip)"
 +
2: "2 Clips"
 +
3: "3 Clips (Fill AWP)"
 +
]
 +
 
 +
item_healthkit (choices) : "Give Health Kit" : "" =
 +
[
 +
"": "No"
 +
1: "1 Healthkit = 15 Health Points"
 +
2: "2 Healthkits = 30 Health Points"
 +
3: "3 Healthkits = 45 Health Points"
 +
4: "4 Healthkits = 60 Health Points"
 +
5: "5 Healthkits = 75 Health Points"
 +
6: "6 Healthkits = 90 Health Points"
 +
7: "7 Healthkits = 100 Health Points"
 +
]
  
 +
item_battery (choices) : "Give HL HEV Battery" : "" =
 +
[
 +
"": "No"
 +
1: "1 Battery = 15 Kevlar Points"
 +
2: "2 Batteries = 30 Kevlar Points"
 +
3: "3 Batteries = 45 Kevlar Points"
 +
4: "4 Batteries = 60 Kevlar Points"
 +
5: "5 Batteries = 75 Kevlar Points"
 +
6: "6 Batteries = 90 Kevlar Points"
 +
7: "7 Batteries = 100 Kevlar Points"
 +
]
  
@PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(200 100 50) = info_target : "Beam Target" []
+
item_longjump (choices) : "Give HL Long Jump Module" : "" =  
 +
[
 +
"": "No"
 +
1: "Yes (An Unrealistic Item)"
 +
]
  
//
+
spark_shower (choices) : "Make sparks" : "" =
// Light entities
+
[
//
+
"": "No"
 +
1: "Yes"
 +
]
 +
]
  
@PointClass iconsprite("sprites/lightbulb.spr") base(Target, Targetname, Light) = light : "Invisible lightsource"
+
@PointClass base(Targetname) iconsprite("sprites/CS/GamePlayerHurt.spr") = game_player_hurt : "Hurts player who fires"
 
[
 
[
spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
+
master(string) : "Master"
 +
dmg(string) : "Damage To Apply" : "999"
 +
spawnflags(flags) =
 +
[
 +
1: "Remove On fire" : 0
 +
]
 
]
 
]
  
@PointClass base(Angles) iconsprite("sprites/lightbulb.spr") = light_environment : "Environment"  
+
@PointClass base(Targetname) iconsprite("sprites/CS/GamePlayerTeam.spr") = game_player_team : "Allows player to change teams"
 
[
 
[
pitch(integer) : "Pitch" : 0
+
master(string) : "Master"
_light(color255) : "Brightness" : "255 255 128 200"
+
spawnflags(flags) =
 +
[
 +
1 : "Remove On fire" : 0
 +
2 : "Kill Player" : 0
 +
4 : "Gib Player" : 0
 +
]
 +
target(string) : "game_team_master to use"  
 
]
 
]
  
@PointClass base(Targetname, Target, Angles) iconsprite("sprites/lightbulb.spr") = light_spot : "Spotlight"  
+
@PointClass base(Targetname) iconsprite("sprites/CS/GameScore.spr") = game_score : "Award/Deduct Points"  
 
[
 
[
_cone(integer) : "Inner (bright) angle" : 30
+
master(string) : "Master"  
_cone2(integer) : "Outer (fading) angle" : 45
+
spawnflags(flags) =
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"
+
1: "Allow Negative" : 0
10: "Fluorescent flicker"
+
2: "Team Points" : 0
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"
+
 
 +
points(integer) : "Points to add (+/-)" : 1
 
]
 
]
  
//
+
@PointClass base(Targetname, Master, Targetx) iconsprite("sprites/CS/GameTeamMaster.spr") = game_team_master : "Team based master/relay"
// Trigger entities
 
//
 
 
 
@PointClass base(Targetx) = trigger_auto : "AutoTrigger"
 
 
[
 
[
spawnflags(Flags) =
+
spawnflags(flags) =
 
[
 
[
1 : "Remove On fire" : 1
+
1: "Remove On fire" : 0
 
]
 
]
triggerstate(choices) : "Trigger State" : 0 =  
+
triggerstate(choices) : "Trigger State" : "" =  
 
[
 
[
0 : "Off"
+
"": "Off"
1 : "On"
+
1: "On"
2 : "Toggle"
+
2: "Toggle"
 
]
 
]
 +
teamindex(integer) : "Team Index (-1 = no team)" : -1
 
]
 
]
  
@PointClass base(Targetx, Targetname) = trigger_camera : "Trigger Camera"  
+
@PointClass base(Targetname, Master, Targetx) iconsprite("sprites/CS/GameTeamSet.spr") = game_team_set : "Sets team of team_master"
 
[
 
[
wait(integer) : "Hold time" : 10
 
moveto(string) : "Path Corner"
 
 
spawnflags(flags) =
 
spawnflags(flags) =
 
[
 
[
1: "Start At Player" : 1
+
1: "Remove On fire" : 0
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"
 
 
]
 
]
  
@PointClass base(Targetx, Targetname) = trigger_changetarget : "Trigger Change Target"
+
@PointClass base(Targetname, Master, Target) iconsprite("sprites/CS/GameText.spr") = game_text : "HUD Text Message"  
 
[
 
[
m_iszNewTarget(string) : "New Target"
+
spawnflags(flags) =
 +
[
 +
1: "All Players" : 0
 +
]
 +
message(string) : "Message Text (79 Char. Limit)"
 +
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" : "" =
 +
[
 +
"" : "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"
 +
]
 
]
 
]
  
@SolidClass base(Trigger, Targetname) = trigger_counter : "Trigger counter"  
+
@SolidClass base(Targetname) = game_zone_player : "Player Zone brush"
 
[
 
[
spawnflags(flags) =
 
[
 
1 : "No Message" : 0
 
]
 
 
master(string) : "Master"  
 
master(string) : "Master"  
count(integer) : "Count before activation" : 2
+
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"
 
]
 
]
  
@SolidClass base(Targetname,Target) = trigger_hurt : "Trigger player hurt"  
+
@PointClass base(gibshooterbase) iconsprite("sprites/CS/gib.spr") = gibshooter : "Gib Shooter" []
 +
 
 +
@PointClass studio() base(PlayerClass, RenderFields, HostageAnim) = hostage_entity : "Hostage"  
 
[
 
[
spawnflags(flags) =
+
model(studio) : "Model" : "models/hostage.mdl"
[
+
skin(integer) : "Skin" : 0
1: "Target Once" : 0  
+
body(integer) : "Body part 2 sub model" : 0
2: "Start Off" : 0
+
]
16:"FireClientOnly" : 0
+
 
32:"TouchClientOnly" : 0
+
 
 +
//
 +
// Info entities
 +
//
 +
 
 +
@PointClass iconsprite("sprites/CS/BombTarget.spr") = info_bomb_target : "Bomb target point" []
 +
@PointClass iconsprite("sprites/CS/MapParams.spr") color(255 128 0) = info_texlights : "Textur lights"
 +
[
 +
// not shure if the spawn flag is supported
 +
spawnflags(flags) =
 +
[
 +
              1 : "Override?"       : 1
 
]
 
]
master(string) : "Master"  
+
]
dmg(integer) : "Damage" : 10
+
 
delay(string) : "Delay before trigger" : "0"
+
@PointClass iconsprite("sprites/CS/InfoCompileParameters.spr") = info_compile_parameters : "Compile Options"
damagetype(choices) : "Damage Type" : 0 =
+
[
 +
texdata(string) : "Texture Data Memory" : "4096"
 +
  estimate(choices) :"Estimate Compile Times?" : "" =
 
[
 
[
0 : "GENERIC"
+
"": "No"
1 : "CRUSH"
+
1: "yes"
2 : "BULLET"
+
]
4 : "SLASH"
+
 
8 : "BURN"
+
  priority(choices) : "Priority Level" : "" =
16 : "FREEZE"
+
[
32 : "FALL"
+
"" : "Normal"
64 : "BLAST"
+
1 : "High"
128 : "CLUB"
+
-1 : "Low"
256 : "SHOCK"
 
512 : "SONIC"
 
1024 : "ENERGYBEAM"
 
16384: "DROWN"
 
32768 : "PARALYSE"
 
65536 : "NERVEGAS"
 
131072 : "POISON"
 
262144 : "RADIATION"
 
524288 : "DROWNRECOVER"
 
1048576 : "CHEMICAL"
 
2097152 : "SLOWBURN"
 
4194304 : "SLOWFREEZE"
 
 
]
 
]
]
+
    verbose(choices) : "Verbose compile messages" : "" =
 +
    [
 +
        "" : "Off"
 +
        1 : "On"
 +
    ]
 +
 
 +
hlcsg(choices) : "HLCSG" : 1 =
 +
    [
 +
        1 : "Normal"
 +
        2 : "Onlyents"
 +
        "" : "Off"
 +
    ]
 +
    wadautodetect(choices) : "Wad Auto Detect" : 1 =
 +
    [
 +
        1 : "On"
 +
"" : "Off"
 +
    ]
 +
    noclipeconomy(choices) : "Strip Uneeded Clipnodes?" : "" =
 +
    [
 +
        "" : "Yes"
 +
        1 : "No"
 +
    ]
 +
    noskyclip(choices) : "Clip sky" : "" =
 +
    [
 +
        "" : "Yes"
 +
        1 : "No"
 +
    ]
 +
    nocliphull(choices) : "Generate clipping hulls" : "" =
 +
    [
 +
        "" : "Yes"
 +
        1 : "No"
 +
    ]
 +
    cliptype(choices) : "clipping type" : 3 =
 +
    [
 +
        "" : "Smallest"
 +
        1 : "Normalized"
 +
        2 : "simple"
 +
        3 : "Precise"
 +
        4 : "Legacy"
 +
    ]
 +
    hullfile(string) : "Custom Hullfile"
 +
    wadconfig(string) : "Custom Wad Configuration"
  
@SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple"
+
hlbsp(choices) : "HLBSP" : 1 =
[
+
    [
wait(integer) : "Delay before reset" : 10
+
        "" : "Off"
]
+
        1 : "Normal"
 +
        2 : "Leakonly"
 +
    ]
  
@SolidClass base(Trigger) = trigger_once : "Trigger: Activate once" []
+
hlvis(choices) : "HLVIS" : 2 =  
 +
    [
 +
        "" : "Off"
 +
        1 : "Fast"
 +
        2 : "Normal"
 +
        3 : "Full"
 +
    ]
  
@SolidClass base(Trigger, Angles) = trigger_push : "Trigger player push"
+
hlrad(choices) : "HLRAD" : 1 =
 +
    [
 +
        "" : "Off"
 +
        1 : "Normal"
 +
        2 : "Extra"
 +
    ]
 +
    sparse(choices) : "Vismatrix Method" : 1 =
 +
    [
 +
        "" : "No Vismatrix"
 +
        1 : "Sparse Vismatrix"
 +
        2 : "Normal"
 +
    ]
 +
    bounce(integer) : "Number of radiosity bounces" : 1
 +
    ambient(string) : "Ambient light (0.000 to 1.000, R G B)" : "0 0 0"
 +
    smooth(integer) : "Smoothing threshold (in degrees)" : 0
 +
    dscale(integer) : "Direct Lighting Scale" : 1
 +
    chop(integer) : "Chop Size" : 64
 +
    texchop(integer) : "Texture Light Chop Size" : 32
 +
    lightdata(string) : "Light Data Memory in KB" : "6144"
 +
    circus(choices) : "Circus RAD lighting" : "" =
 +
    [
 +
        "" : "Off"
 +
        1 : "On"
 +
    ]
 +
 
 +
]
 +
 
 +
 
 +
@PointClass iconsprite("sprites/CS/HostageRescue.spr") = info_hostage_rescue : "Hostage rescue point" []
 +
 
 +
@PointClass iconsprite("sprites/CS/MapParams.spr") = info_map_parameters : "Miscellaneous mapping parameters"
 
[
 
[
spawnflags(flags) =  
+
buying(choices) : "Weapon_Buying" : "" =
[  
+
[
1: "Once Only" : 0
+
"": "Both teams can buy guns"
2: "Start Off" : 0
+
1: "Only CT's can buy guns"
 +
2: "Only T's can buy guns"
 +
3: "Neither CT's nor T's can buy guns"
 
]
 
]
speed(integer) : "Speed of push" : 40
+
bombradius(integer) : "Bomb Radius" : 500
 
]
 
]
  
@PointClass base(Targetname, Targetx) = trigger_relay : "Trigger Relay"
+
@PointClass base(Targetname) iconsprite("sprites/CS/null.spr") = info_null : "info_null (spotlight target)" []
 +
 
 +
@PointClass base(PlayerClass, PlayerAnim) studio() = info_player_deathmatch : "Terrorist start"
 
[
 
[
spawnflags(flags) =
+
model(choices) : "Model (editor)" : "models/player/guerilla/guerilla.mdl" =
 
[
 
[
1: "Remove On fire" : 0
+
"models/player/arctic/arctic.mdl": "Arctic"
 +
"models/player/guerilla/guerilla.mdl": "Guerilla"
 +
"models/player/leet/leet.mdl": "Leet"
 +
"models/player/terror/terror.mdl": "Terror"
 
]
 
]
triggerstate(choices) : "Trigger State" : 0 =  
+
]
 +
 
 +
@PointClass base(PlayerClass, PlayerAnim) studio() = info_player_start : "Counter-terrorist start"
 +
[
 +
model(choices) : "Model (editor)" : "models/player/gsg9/gsg9.mdl" =
 
[
 
[
0: "Off"
+
"models/player/gign/gign.mdl": "Gign"
1: "On"
+
"models/player/gsg9/gsg9.mdl": "Gsg9"
2: "Toggle"
+
"models/player/sas/sas.mdl": "Sas"
 +
"models/player/urban/urban.mdl": "Urban"
 
]
 
]
 
]
 
]
  
@SolidClass base(Trigger) = trigger_teleport : "Trigger teleport" []
+
@PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(200 100 50) iconsprite("sprites/CS/EnvTarget.spr") = info_target : "Beam Target" []
 +
 
 +
@PointClass size(-8 -8 0, 8 8 16) base(Targetname, PlayerClass) iconsprite("sprites/CS/infoteleportdestination.spr") = info_teleport_destination : "Teleport destination" []
 +
 
 +
@PointClass studio("models/player/vip/vip.mdl") base(PlayerClass, PlayerAnim) = info_vip_start : "VIP start" []
 +
 
 +
@PointClass decal() base(Targetname, Appearflags) = infodecal : "Decal"
 +
[
 +
texture(decal)
 +
]
 +
//
 +
// items
 +
//
 +
 
 +
// all items will respawn after a shot period in a multiplayer game.
 +
// in MP item_security respawns on time not round start
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_antidote.mdl") = item_antidote : "Antidote" []
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_kevlar.mdl") = item_assaultsuit : "Assaultsuit" []
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_kevlar.mdl") = item_kevlar : "Kevlar" []
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_battery.mdl") = item_battery : "HEV battery" []
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_medkit.mdl")= item_healthkit : "Small Health Kit" []
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_longjump.mdl") = item_longjump : "Longjump Module" []
 +
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_security.mdl") = item_security : "Security card" []
  
 
//
 
//
// Miscellaneous entities
+
// Light entities
 
//
 
//
  
@PointClass base(Targetname) iconsprite("sprites/speaker.spr") = ambient_generic : "Universal Ambient"
+
@PointClass iconsprite("sprites/lightbulb.spr") base(Targetname, Target, Light) = light : "Invisible lightsource" []
 +
 
 +
@PointClass base(Targetname, Target, Light) iconsprite("sprites/CS/LightEnvironment.spr") = light_environment : "Environment"  
 
[
 
[
message(sound) : "Path/filename.wav of WAV"
+
angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 270 0"
health(integer) : "Volume (10 = loudest)" : 10
+
pitch(integer) : "Pitch" : -90
preset(choices) :"Dynamic Presets" : 0 =
+
//Shade is used only by Adam Foster's hack of HLRAD to vary the color of shade.
 +
_diffuse_light(color255) : "Shade" : "255 255 128 200"
 +
]
 +
 
 +
@PointClass base(Targetname, Target, Angles, Light) iconsprite("sprites/CS/LightSpot.spr") = light_spot : "Spotlight"
 +
[
 +
pitch(integer) : "Pitch" : -90
 +
_cone(integer) : "Inner (bright) angle" : 30
 +
_cone2(integer) : "Outer (fading) angle" : 45
 +
_sky(Choices) : "Is Sky" : "" =
 +
[
 +
"" : "No"
 +
1 : "Yes"
 +
]
 +
]
 +
 
 +
//* ------------------------------------------------------------------------------------------------------------
 +
//* Triggers a sequence of up to 16 entities, at various time offsets.
 +
//*  To specify the list of entities for it to trigger, turn off Worldcraft's "smart edit" mode
 +
//* and add fields manually. The name of the field is the targetname of the entity to trigger,
 +
//* and the contents of the field are the time (in seconds) to wait before triggering it.
 +
//*
 +
//*  Beware: the seconds countdown will continue thru round ends causing some events to happen into the next round.
 +
//*------------------------------------------------------------------------------------------------------------
 +
@PointClass base(Targetname) color(255 128 0) iconsprite("sprites/CS/multi_manager.spr") = multi_manager : "MultiTarget Manager"
 +
[
 +
spawnflags(Flags) =  
 
[
 
[
0: "None"
+
//* By default, a manager will ignore all inputs while it's performing a sequence.
1: "Huge Machine"
+
//* Tick this to allow more than one sequence to run at a time.
2: "Big Machine"
+
1 : "multithreaded" : 0
3: "Machine"
+
]
4: "Slow Fade in" 
+
]
5: "Fade in"
+
 
6: "Quick Fade in"
+
//*
7: "Slow Pulse"
+
//*multiple inputs to one switch, the AND gate
8: "Pulse"
+
//*
9: "Quick pulse"
+
@PointClass base(Targetname, Target) color(128 255 128) iconsprite("sprites/CS/MultiSource.spr") = multisource : "Multisource"  
10: "Slow Oscillator"
+
[
11: "Oscillator"
+
globalstate(string) : "Global State Master"
12: "Quick Oscillator"
+
]
13: "Grunge pitch"
+
 
14: "Very low pitch"
+
@PointClass base(Targetname, Angles) size(16 16 16) color(247 181 82) iconsprite("sprites/CS/PathCorner.spr") = path_corner : "Moving platform stop"
15: "Low pitch"
+
[
16: "High pitch"
+
spawnflags(Flags) =
17: "Very high pitch"
+
[
18: "Screaming pitch"
+
1: "Wait for retrigger" : 0
19: "Oscillate spinup/down"
+
2: "Teleport to next corner" : 0
20: "Pulse spinup/down"
+
4: "Fire once" : 0
21: "Random pitch"
+
]
22: "Random pitch fast"
+
target(target_destination) : "Next stop target"
23: "Incremental Spinup"
+
message(target_destination) : "Fire On Pass"
24: "Alien"
+
wait(integer) : "Wait here (secs)" : 0
25: "Bizzare"
+
//*if speed more than 2000 problems may result
26: "Planet X"
+
speed(integer) : "New Train Speed" : 0
27: "Haunted"
+
yaw_speed(integer) : "New Train rot. Speed" : 0
]
+
]
volstart(integer) : "Start Volume" : 0
+
 
fadein(integer) : "Fade in time (0-100)" : 0
+
@PointClass base(Targetname) size(16 16 16) iconsprite("sprites/CS/PathTrack.spr") = path_track : "Train Track Path"
fadeout(integer) : "Fade out time (0-100)" : 0
+
[
pitch(integer) : "Pitch (> 100 = higher)" : 100
+
target(target_destination) : "Next stop target"
pitchstart(integer) : "Start Pitch" : 100
+
spawnflags(Flags) =
spinup(integer) : "Spin up time (0-100)" : 0
+
[
spindown(integer) : "Spin down time (0-100)" : 0
+
1: "Disabled" : 0
lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0
+
2: "Fire once" : 0
lforate(integer) : "LFO rate (0-1000)" : 0
+
4: "Branch Reverse" : 0
lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0
+
8: "Disable train" : 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:"Is NOT Looped":0
 
 
]
 
]
 +
message(target_destination) : "Fire On Pass"
 +
altpath(target_destination) : "Branch Path"
 +
netname(target_destination) : "Fire on dead end"
 +
//if speed more than 2000 problems may result
 +
speed(integer) : "New Train Speed" : 0
 
]
 
]
  
@SolidClass base(Target, Angles) = button_target : "Target Button"
+
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/PlayerWeaponStrip.spr") = player_weaponstrip : "Strips player's weapons" []
 +
 
 +
//
 +
// Monsters
 +
//
 +
 
 +
@PointClass studio("models/scientist.mdl") base(PlayerClass, RenderFields, HostageAnim) size(-16 -16 0, 16 16 72) = monster_scientist : "Scientist Hostage"  
 
[
 
[
spawnflags(flags) =
+
      body(Choices) : "Body" : -1 =
 
[
 
[
1: "Use Activates" : 1
+
-1 : "Random"
2: "Start On" : 0
+
"" : "Glasses"
 +
1 : "Einstein"
 +
2 : "Luther"
 +
3 : "Slick"
 
]
 
]
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"
 
 
]
 
]
  
@SolidClass base(Door) = momentary_door : "Momentary/Continuous door"  
+
@PointClass iconsprite("sprites/CS/TestEffect.spr") base(Targetname) = test_effect : "yellow charge" []
[
+
 
spawnflags(flags) =
+
//
 +
// Trigger entities
 +
//
 +
 
 +
//
 +
//will only trigger ONCE per MAP, will not reset or retrigger for a new round!
 +
//
 +
@PointClass base(Targetx) iconsprite("sprites/CS/TriggerAuto.spr") = trigger_auto : "AutoTrigger"
 +
[
 +
spawnflags(Flags) =
 +
[
 +
1 : "Remove On fire" : 1
 +
]
 +
globalstate(string) : "Global State to Read"
 +
triggerstate(choices) : "Trigger State" : "" =  
 
[
 
[
1 : "Starts Open" : 0
+
"" : "Off"
 +
1 : "On"
 +
2 : "Toggle"
 
]
 
]
 
]
 
]
  
@SolidClass base(RenderFields, Targetname, Angles) = momentary_rot_button : "Direct wheel control"  
+
//
 +
//before team selection, engine will cycle thru all camera views whether usable or not to show views of level.
 +
//
 +
@PointClass base(Targetname, Targetx, Angles) Studio("models\CS\TriggerCamera.mdl") = trigger_camera : "Trigger Camera"  
 
[
 
[
target(target_destination) : "Targetted object"
+
wait(integer) : "Hold time" : 10
speed(integer) : "Speed" : 50
+
moveto(string) : "Path Corner"
master(string) : "Master"  
+
spawnflags(flags) =
sounds(choices) : "Sounds" : 0 =  
 
 
[
 
[
0: "None"
+
1: "Start At Player" : 1
1: "Big zap & Warmup"
+
2: "Follow Player" : 1
2: "Access Denied"
+
4: "Freeze Player" : 0
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
+
//note: max speed is 2000 or things go wrong
spawnflags(flags) =
+
//
[
+
speed(string) : "Initial Speed" : "0"
1: "Door Hack" : 0
+
acceleration(string) : "Acceleration units/sec^2" : "500"
2: "Not useable" : 0
+
deceleration(string) : "Stop Deceleration units/sec^2" : "500"
16: "Auto Return" : 0
 
64: "X Axis" : 0
 
128: "Y Axis" : 0
 
]
 
_minlight(integer) : "_minlight"
 
 
]
 
]
  
@PointClass base(Targetname) = multi_manager : "MultiTarget Manager"  
+
//
 +
//makes another trigger point to something different.
 +
//
 +
@PointClass base(Targetname, Targetx) iconsprite("sprites/CS/TriggerChangetarget.spr") = trigger_changetarget : "Trigger Change Target"
 
[
 
[
spawnflags(Flags) =
+
m_iszNewTarget(string) : "New Target"
[
 
1 : "multithreaded" : 0
 
]
 
 
]
 
]
  
@PointClass base(Targetname, Target) = multisource : "Multisource"  
+
@SolidClass base(Trigger) = trigger_counter : "Trigger counter"  
 
[
 
[
globalstate(string) : "Global State Master"
+
spawnflags(flags) =
 +
[
 +
1 : "No Message" : 0
 +
]
 +
count(integer) : "Count before activation" : 2
 
]
 
]
  
@PointClass base(Targetname, Angles) size(16 16 16) color(247 181 82) = path_corner : "Moving platform stop"
+
@SolidClass base(Targetname, Master) = trigger_autosave : "Auto save" []
 +
 
 +
//
 +
//gravity changes player state, will have to be reset to normal as player leaves low friction area.
 +
//
 +
@SolidClass base(Trigger) = trigger_gravity : "Trigger Gravity"
 
[
 
[
spawnflags(Flags) =
+
gravity(integer) : "Gravity (0.0-1)" : 1
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 
[
 
[
1: "Wait for retrigger" : 0
+
1: "yes"
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) size(16 16 16) = path_track : "Train Track Path"
+
@SolidClass base(Targetname, Master, Target) = trigger_hurt : "Trigger player hurt"  
 
[
 
[
spawnflags(Flags) =
+
delay(string) : "Delay before trigger" : "0"
[
+
spawnflags(flags) =  
1: "Disabled" : 0
+
[  
2: "Fire once" : 0
+
1: "Target Once" : 0  
4: "Branch Reverse" : 0
+
2: "Start Off" : 0
8: "Disable train" : 0
+
16:"FireClientOnly" : 0
 +
32:"TouchClientOnly" : 0
 
]
 
]
target(target_destination) : "Next stop target"
+
dmg(integer) : "Damage" : 10
message(target_destination) : "Fire On Pass"
+
damagetype(choices) : "Damage Type" : "" =
altpath(target_destination) : "Branch Path"
+
[
netname(target_destination) : "Fire on dead end"
+
"" : "GENERIC"
speed(integer) : "New Train Speed" : 0
+
1 : "CRUSH"
]
+
2 : "BULLET"
 
+
4 : "SLASH"
//
+
8 : "BURN"
// CS-specific entities
+
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"
 +
]
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
  
@PointClass iconsprite("sprites/CS/Hostage.spr") base(PlayerClass) = hostage_entity : "Hostage"  
+
@SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple"  
 
[
 
[
model(string) : "Model" : "models/hostage.mdl"
+
wait(integer) : "Delay before reset" : 10
skin(integer) : "Skin" : 0
+
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 
]
 
]
  
@PointClass iconsprite("sprites/CS/HostageRescue.spr") = info_hostage_rescue : "Hostage rescue point" []
+
@SolidClass base(Trigger) = trigger_once : "Trigger: Activate once"  
 +
[
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
  
@SolidClass = func_hostage_rescue : "Hostage rescue zone" []
+
@SolidClass base(Trigger, Angles) = trigger_push : "Trigger player push"
 
 
@PointClass iconsprite("sprites/CS/BombTarget.spr") = info_bomb_target : "Bomb target point" []
 
 
 
@SolidClass = func_bomb_target : "Bomb target zone"
 
 
[
 
[
target(target_destination) : "Target (when bomb blows)"
+
spawnflags(flags) =
 +
[
 +
1: "Once Only" : 0
 +
2: "Start Off" : 0
 +
]
 +
//
 +
//speed of ~1000 needed to go up.
 +
//
 +
speed(integer) : "Speed of push" : 40
 
]
 
]
  
@SolidClass = func_buyzone : "Buy zone"  
+
@PointClass base(Targetname, Targetx) iconsprite("sprites/CS/TriggerRelay.spr") = trigger_relay : "Trigger Relay"
 
[
 
[
team(choices) : "Team" : 0 =
+
spawnflags(flags) =
 
[
 
[
0: "All teams (unassigned)"
+
1: "Remove On fire" : 0
1: "Terrorist"
+
]
2: "Counter-terrorist"
+
triggerstate(choices) : "Trigger State" : "" =
 +
[
 +
"": "Off"
 +
1: "On"
 +
2: "Toggle"
 
]
 
]
 
]
 
]
  
@SolidClass = func_escapezone : "Terrorist escape zone" []
+
@SolidClass base(Trigger) = trigger_teleport : "Trigger teleport"  
 
 
@SolidClass = func_vip_safetyzone : "VIP safety zone" []
 
 
 
@PointClass iconsprite("sprites/CS/Armoury.spr") size(-16 -16 0, 16 16 16) = armoury_entity : "Items in the armoury"  
 
 
[
 
[
item(choices) : "Item" : 0 =  
+
zhlt_invisible(choices) :"Invisible" : 1 =
 
[
 
[
0: "weapon_mp5"
+
1: "yes"
1: "weapon_tmp"
+
]
2: "weapon_p90"
+
]
3: "weapon_mac10"
+
 
4: "weapon_ak47"
 
5: "weapon_sg552"
 
6: "weapon_m4a1"
 
7: "weapon_aug"
 
8: "weapon_scout"
 
9: "weapon_g3sg1"
 
10: "weapon_awp"
 
11: "weapon_m3"
 
12: "weapon_xm1014"
 
13: "weapon_m249"
 
14: "weapon_flashbang"
 
15: "weapon_hegrenade"
 
16: "item_kevlar"
 
17: "item_assaultsuit"
 
18: "weapon_smokegrenade"
 
]
 
count(integer) : "Count" : 1
 
]
 
  
@PointClass iconsprite("sprites/CS/MapParams.spr") = info_map_parameters : "Miscellaneous mapping parameters"
+
//
[
+
// Function entities
buying(choices) : "Weapon_Buying" : 0 =
+
//
[
+
 
0: "Both teams can buy guns"
+
@SolidClass = func_bomb_target : "Bomb target zone"
1: "Only CT's can buy guns"
+
[
2: "Only T's can buy guns"
+
target(target_destination) : "Target (when bomb blows)"
3: "Neither CT's nor T's can buy guns"
+
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(Breakable, RenderFields, ZHLT, TexLightType) = func_breakable : "Breakable Object"  
 +
[
 +
onlydamagedby(choices) : "Break on grenade touch" : 0 =
 +
[
 +
0: "No"
 +
1: "Yes"
 +
]
 +
spawnflags(flags) =
 +
[
 +
1 : "Only Trigger" : 0
 +
2 : "Touch"   : 0
 +
4 : "Stand on Pressure is buggy" : 0
 +
256: "Instant Crowbar" : 1
 
]
 
]
bombradius(integer) : "Bomb Radius" : 500
+
_minlight(string) : "Minimum light level" : "0"
]
+
]
 
+
 
 
+
@SolidClass base(Targetname, Global, Master, Target, RenderFields, Angles, ZHLT, TexLightType) = func_button : "Button"
@SolidClass base(Targetname, RenderFields, Angles) = func_vehicle : "Drivable Vehicles"  
+
[
[
+
speed(integer) : "Speed" : 5
spawnflags(flags) =
+
netname(target_destination) : "Target Path"
[
+
//* Path Target overrides Targetted Object
1 : "No Pitch (X-rot)" : 0
+
health(integer) : "Health (shootable if > 0)" : 0
2 : "No User Control" : 0
+
lip(integer) : "Lip" : 0
8 : "Passable" : 0
+
//* The number against each sound (except Lightswitch) corresponds to the wav file
 +
//* played. e.g. Buzz (10) plays "buttons/button10.wav".
 +
sounds(choices) : "Sounds" : "" =
 +
[
 +
"": "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
 +
]
 +
//* see baseclass door sound notes
 +
locked_sound(choices) : "Locked Sound" : "" =
 +
[
 +
"": "None"
 +
2: "Access Denied"
 +
8: "Small zap"
 +
10: "Buzz"
 +
11: "Buzz Off"
 +
12: "Latch Locked"
 +
]
 +
unlocked_sound(choices) : "Unlocked Sound" : "" =
 +
[
 +
"": "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" : "" =
 +
[
 +
"": "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" : "" =
 +
[
 +
"": "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" : "0"
 +
]
 +
 
 +
@SolidClass = func_buyzone : "Buy zone"
 +
[
 +
team(choices) : "Team" : "" =
 +
[
 +
"": "All teams (unassigned)"
 +
1: "Terrorist"
 +
2: "Counter-terrorist"
 +
]
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, RenderFields, Angles, ZHLT, TexLightType) = func_conveyor : "Conveyor Belt"
 +
[
 +
spawnflags(flags) =
 +
[
 +
1 : "No Push" : 0
 +
2 : "Not Solid" : 0
 +
]
 +
speed(string) : "Conveyor Speed" : "100"
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(Door, ZHLT, TexLightType) = func_door : "Basic sliding door" []
 +
 
 +
@SolidClass base(Door, Angles, ZHLT, TexLightType) = 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
 +
]
 +
//*may not work in LINUX system servers.
 +
@SolidClass = func_escapezone : "Terrorist escape zone"
 +
[
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
//*
 +
//* friction changes player state, will have to be reset to normal as player leaves low friction area.
 +
//* 0% = No friction, 100% = Normal Friction
 +
//*
 +
@SolidClass base(RenderFields, ZHLT, Appearflags, TexLightType) = func_friction : "Surface with a change in friction"
 +
[
 +
modifier(integer) : "Percentage of standard (0 - 100)" : 15
 +
]
 +
 
 +
//    Notes, from info by FJL:
 +
//    func_grencatch checks for what type grenade falls in its space. If for instance, func_grencatch
 +
//    is set up to check for a smokegrenade, then the smokegrenade must be thrown and
 +
//    land within the solid entities occupied space for it to trigger another entity.
 +
//    I do not really know what the "Disable On Grenade" field is for.
 +
//    This entity actually will work on multiplayer games but will only function ONCE per MAP, not per round.
 +
 
 +
@SolidClass = func_grencatch : "Grenade Check"
 +
[
 +
      triggerongrenade(string) : "Trigger When Grenade Hits"
 +
grenadetype(choices): "grenade type" : "flash" =
 +
[
 +
"flash": "Flashbang"
 +
"smoke": "Smoke grenade"
 +
]
 +
      disableongrenade(string) : "Disable On Grenade"
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
 
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, RenderFields, ZHLT, TexLightType) = func_guntarget : "Moving platform"
 +
[
 +
target(target_source) : "First stop target"
 +
speed(integer) : "Speed (units per second)" : 100
 +
message(target_source) : "Fire on damage"
 +
health(integer) : "Damage to Take" : 0
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(Global, RenderFields, ZHLT, TexLightType) = func_healthcharger: "Wall health recharger"
 +
[
 +
//* dmdelay may not work in CS
 +
dmdelay(integer) : "Deathmatch recharge delay" : 0
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass = func_hostage_rescue : "Hostage rescue zone"
 +
[
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(Targetname, RenderFields, ZHLT, TexLightType) = func_illusionary : "Fake Wall/Light"
 +
[
 +
 
 +
skin(choices) : "Contents" : -1 =
 +
[
 +
-1: "Empty"
 +
-3: "water"
 +
-4: "slime touch drown"
 +
-5: "lava touch fire death"
 +
-7: "Volumetric Light"
 +
-16: "make ladder"
 +
]
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
//* Creates an invisible, climbable field.
 +
@SolidClass base(Targetname) = func_ladder : "Ladder"
 +
[
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(Targetname) = func_mortar_field : "Mortar Field"
 +
[
 +
m_flSpread(integer) : "Spread Radius" : 64
 +
m_iCount(integer) : "Repeat Count" : 1
 +
m_fControl(Choices) : "Targeting" : "" =
 +
[
 +
"" : "Random"
 +
1 : "Activator"
 +
2 : "Table"
 +
]
 +
m_iszXController(target_destination) : "X Controller"
 +
m_iszYController(target_destination) : "Y Controller"
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
//* Only partially implemented, some keys don't work properly.
 +
//* NOTE: the continous changing animation can lead to lag.
 +
@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, Appearflags, TexLightType) = 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(string) : "Minimum light level" : "0"
 +
//* _minlight(integer) : "_minlight" : 0
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, RenderFields, PlatSounds, ZHLT, TexLightType) = 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" : "0"
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, TexLightType, PlatSounds) = 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" : "0"
 +
]
 +
 
 +
@SolidClass base(Breakable, RenderFields, ZHLT, TexLightType) = func_pushable : "Pushable object"
 +
[
 +
size(choices) : "Hull Size" : "" =
 +
[
 +
"": "Point size"
 +
1: "Player size"
 +
2: "Big Size"
 +
3: "Player duck"
 +
]
 +
spawnflags(flags) =
 +
[
 +
1 : "Only Trigger" : 0
 +
2 : "Broken on touch is buggy" : 0
 +
4 : "Pressure is buggy" : 0
 +
            128: "Breakable" : 1
 +
256: "Instant Crowbar" : 1
 +
]
 +
friction(integer) : "Friction (0-400)" : 50
 +
buoyancy(integer) : "Buoyancy" : 20
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(Global, RenderFields, ZHLT, TexLightType) = func_recharge: "Battery recharger"
 +
[
 +
dmdelay(integer) : "Deathmatch recharge delay" : 0
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
//* Like func_button, except it rotates.
 +
@SolidClass base(Targetname, Global, Master, Target, Angles, RenderFields, ZHLT, TexLightType) = func_rot_button : "RotatingButton"
 +
[
 +
delay(string) : "Delay before trigger" : "0"
 +
//* changetarget will change the button's target's TARGET field to the button's changetarget when button is pressed.
 +
changetarget(target_destination) : "ChangeTarget Name"
 +
speed(integer) : "Speed" : 50
 +
health(integer) : "Health (shootable if > 0)" : 0
 +
//* The number against each sound corresponds to the wav file
 +
//* played. e.g. Squeaky (1) plays "buttons/lever1.wav".
 +
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"
 +
3: "3 sec default"
 +
]
 +
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(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, TexLightType) = func_rotating : "Rotating Object"
 +
[
 +
speed(integer) : "Rotation Speed" : 0
 +
volume(integer) : "Volume (10 = loudest)" : 10
 +
fanfriction(integer) : "Friction (0 - 100%)" : 20
 +
//* The number against each sound corresponds to the wav file
 +
//* played. e.g. Slow Rush (2) plays "fans/fan2.wav".
 +
sounds(choices) : "Fan Sounds" : "" =
 +
[
 +
"" : "No Sound"
 +
1 : "Fast Whine"
 +
2 : "Slow Rush"
 +
3 : "Medium Rickety"
 +
4 : "Fast Beating"
 +
5 : "Slow Smooth"
 +
]
 +
//* The sound to play while active. This will only be used if "Fan Sounds" is set to "No Sound".
 +
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
 +
//* This, and the other "radius" settings, only affect the
 +
//* way the Fan Sounds are played; if you set a small radius,
 +
//* the sounds will only be audible near to the fan.
 +
128: "Small Radius" : 0
 +
256: "Medium Radius" : 0
 +
512: "Large Radius" : 1
 +
]
 +
_minlight(string) : "Minimum light level" : "0"
 +
//* _minlight(integer) : "_minlight" : 0
 +
spawnorigin(string) : "X Y Z - Move here after lighting" : "0 0 0"
 +
dmg(integer) : "Damage inflicted when blocked" : 0
 +
]
 +
 
 +
@SolidClass base(BaseTank, ZHLT, TexLightType) = func_tank : "Brush MG Turret"
 +
[
 +
bullet(choices) : "Bullets" : "" =
 +
[
 +
"": "None"
 +
1: "9mm"
 +
2: "MP5"
 +
3: "12mm"
 +
]
 +
]
 +
 
 +
@SolidClass = func_tankcontrols : "Tank controls"
 +
[
 +
target(target_destination) : "Tank entity name"
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(BaseTank, ZHLT, TexLightType) = func_tanklaser : "Brush Laser Turret"
 +
[
 +
laserentity(target_source) : "env_laser Entity"
 +
]
 +
 
 +
@SolidClass base(BaseTank, ZHLT, TexLightType) = func_tankmortar : "Brush Mortar Turret"
 +
[
 +
iMagnitude(Integer) : "Explosion Magnitude" : 100
 +
]
 +
 
 +
@SolidClass base(Trackchange) = func_trackautochange : "Automatic track changing platform"
 +
[
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(Trackchange, ZHLT, TexLightType) = func_trackchange : "Train track changing platform"
 +
[
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, TexLightType) = 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"
 +
//*
 +
//*if startspeed is not 0, then maybe no train sounds
 +
//*
 +
//* The number against each sound corresponds to the wav file
 +
//* played. e.g. Rail 1 plays "plats/ttrain1.wav".
 +
sounds(choices) : "Sound" : "" =
 +
[
 +
"": "None"
 +
1: "Rail 1"
 +
2: "Rail 2"
 +
3: "Rail 3"
 +
4: "Rail 4"
 +
5: "Rail 6"
 +
6: "Rail 7"
 +
]
 +
//*
 +
//*distance between wheels relates to stability in turns
 +
//*
 +
wheels(integer) : "Distance between the wheels" : 50
 +
//*
 +
//*relates to how high above track ORIGIN brush for train runs.
 +
//*
 +
height(integer) : "Height above track" : 4
 +
//*
 +
//*note: max speed is >2000 or things go wrong
 +
//*and if startspeed is not 0, then maybe no train sounds
 +
//*
 +
startspeed(integer) : "Initial speed" : 0
 +
speed(integer) : "Speed (units per second)" : 64
 +
dmg(integer) : "Damage on crush" : 0
 +
volume(integer) : "Volume (10 = loudest)" : 10
 +
//*stabilty of turn Banking depends on distance between wheels
 +
bank(string) : "Bank angle on turns" : "0"
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
 
 +
//* A func_train will not be rendered correctly once it has gone about
 +
//* 4096 units from its spawn position (ie where it sits in worldcraft
 +
//* space).  An invisible func_train will still be correctly moving
 +
//* around your train path, it is only the visible piece of the train
 +
//* that gets 'stuck'.
 +
//* So try having your train sitting in the middle of worldcraft's
 +
//* space when you compile the level.
 +
//*(note- a func_train gets its lighting info from where it sits when
 +
//* compiled)
 +
@SolidClass base(Targetname, Global, RenderFields, ZHLT, TexLightType) = func_train : "Moving platform"
 +
[
 +
target(target_source) : "First stop target"
 +
movesnd(choices) : "Move Sound" : "" =
 +
[
 +
"": "No Sound"
 +
//* plats/bigmove1.wav
 +
1: "big elev 1"
 +
//* plats/bigmove2.wav
 +
2: "big elev 2"
 +
//* plats/elevmove1.wav
 +
3: "tech elev 1"
 +
//* plats/elevmove2.wav
 +
4: "tech elev 2"
 +
//* plats/elevmove3.wav
 +
5: "tech elev 3"
 +
//* plats/freightmove1.wav
 +
6: "freight elev 1"
 +
//* plats/freightmove2.wav
 +
7: "freight elev 2"
 +
//* plats/heavymove1.wav
 +
8: "heavy elev"
 +
//* plats/rackmove1.wav
 +
9: "rack elev"
 +
//* plats/railmove1.wav
 +
10: "rail elev"
 +
//* plats/squeekmove1.wav
 +
11: "squeek elev"
 +
//* plats/talkmove1.wav
 +
12: "odd elev 1"
 +
//* plats/talkmove2.wav
 +
13: "odd elev 2"
 +
]
 +
stopsnd(choices) : "Stop Sound" : "" =
 +
[
 +
"": "No Sound"
 +
//* plats/bigstop1.wav
 +
1: "big elev stop1"
 +
//* plats/bigstop2.wav
 +
2: "big elev stop2"
 +
//* plats/freightstop1.wav
 +
3: "freight elev stop"
 +
//* plats/heavystop2.wav
 +
4: "heavy elev stop"
 +
//* plats/rackstop1.wav
 +
5: "rack stop"
 +
//* plats/railstop1.wav
 +
6: "rail stop"
 +
//* plats/squeekstop1.wav
 +
7: "squeek stop"
 +
//* plats/talkstop1.wav
 +
8: "quick stop"
 +
]
 +
//*
 +
//*note: max speed is 2000 or things go wrong
 +
//*
 +
speed(integer) : "Speed (units per second)" : 64
 +
//*
 +
//* avelocity is fixed speed of tumbling, cannot be changed in play
 +
//*
 +
avelocity(string) : "Angular velocity (Y Z X)" : "0 0 0"
 +
dmg(integer) : "Damage on crush" : 0
 +
skin(choices) : "Contents (if not solid)" : "" =
 +
[
 +
"": "default"
 +
-1: "if non solid Empty"
 +
-3: "if non solid swimable water"
 +
//*
 +
//*odd slime, lava and ladder can be used, but do not behave as other slime,lava,ladders.
 +
//*
 +
-4: "if non solid odd slime"
 +
-5: "if non solid odd lava"
 +
-7: "if non solid Volumetric Light"
 +
-16: "if non solid odd ladder"
 +
]
 +
volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
 +
spawnflags(flags) =
 +
[
 +
8 : "Not solid" : 0
 +
]
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass = func_traincontrols : "Train Controls"
 +
[
 +
target(target_destination) : "Train Name"
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(Targetname, Angles, RenderFields, ZHLT, TexLightType) = func_vehicle : "Drivable Vehicles"  
 +
[
 +
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" : "" =
 +
[
 +
"": "None"
 +
1: "Vehicle 1"
 +
2: "Vehicle 2"
 +
3: "Vehicle 3"
 +
4: "Vehicle 4"
 +
5: "Vehicle 6"
 +
6: "Vehicle 7"
 +
]
 +
length(integer) : "Length of the vehicle" : 256
 +
width(integer) : "Width of the vehicle" : 128
 +
height(integer) : "Height above track" : 4
 +
//*
 +
//*note: max speed is 2000 or things go wrong
 +
//*
 +
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" : "0"
 +
]
 +
 
 +
@SolidClass = func_vehiclecontrols : "Vehicle Controls"
 +
[
 +
target(target_destination) : "Vehicle Name"
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass = func_vip_safetyzone : "VIP safety zone"
 +
[
 +
zhlt_invisible(choices) :"Invisible" : 1 =
 +
[
 +
1: "yes"
 +
]
 +
]
 +
 
 +
@SolidClass base(Targetname, Global, RenderFields, ZHLT, TexLightType, Appearflags) = func_wall : "Wall"
 +
[
 +
_minlight(string) : "Minimum light level" : "0"
 +
]
 +
 
 +
@SolidClass base(func_wall) = func_wall_toggle : "Toggleable geometry"
 +
[
 +
spawnflags(flags) =
 +
[
 +
1 : "Starts Invisible" : 0
 +
]
 +
]
 +
 
 +
@SolidClass base(Door) = func_water : "Liquid"
 +
[
 +
spawnflags(flags) =
 +
[
 +
1 : "Starts Open" : 0
 +
256:"Use Only" : 0
 +
]
 +
skin(choices) : "Contents" : -3 =
 +
[
 +
-1: "Empty"
 +
-3: "Water"
 +
-4: "Slime"
 +
-5: "Lava"
 +
-16: "ladder (only with non ! texture)"
 +
]
 +
WaveHeight(string) : "Wave Height" : "0"
 +
]
 +
 
 +
 
 +
//
 +
// Miscellaneous entities
 +
//
 +
 
 +
 
 +
@SolidClass base(Master, Target, Angles, RenderFields, ZHLT) = button_target : "Target Button"
 +
[
 +
spawnflags(flags) =
 +
[
 +
1: "Use Activates" : 1
 +
2: "Start On" : 0
 +
]
 +
]
 +
 
 +
@SolidClass base(Door, ZHLT) = momentary_door : "Momentary/Continuous door"
 +
[
 +
spawnflags(flags) =
 +
[
 +
1 : "Starts Open" : 0
 +
]
 +
]
 +
 
 +
@SolidClass base(Targetname, Master, Angles, RenderFields, ZHLT) = momentary_rot_button : "Direct wheel control"
 +
[
 +
target(target_destination) : "Targetted object"
 +
speed(integer) : "Speed" : 50
 +
sounds(choices) : "Sounds" : "" =
 +
[
 +
"": "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
 
]
 
]
target(target_destination) : "First stop target"
+
_minlight(string) : "Minimum light level" : "0"
sounds(choices) : "Sound" : 1 =
+
//* _minlight(integer) : "_minlight" : "0"
[
 
0: "None"
 
1: "Car 1"
 
2: "Car 2"
 
3: "Truck 1"
 
4: "Truck 2"
 
5: "Boat 1"
 
6: "Boat 2"
 
]
 
length(integer) : "Length of the vehicle" : 256
 
width(integer) : "Width of the vehicle" : 128
 
height(integer) : "Height above track" : 16
 
startspeed(integer) : "Initial speed" : 0
 
speed(integer) : "Speed (units per second)" : 64
 
acceleration(integer) : "Acceleration (1-10)" : 5
 
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_vehiclecontrols : "Vehicle Controls"
 
[
 
target(target_destination) : "Vehicle Name"
 
 
]
 
]
  

Revision as of 12:44, 20 September 2013

Counter-Strike
// ------------------------------------------------------------------------------
// Counter-Strike game definition file (.fgd) 
// Version 0.8.0.0
// For Worldcraft 3.3, Hammer 3.4 - 3.5beta4, Half-Life 1.0.0.9 plus cs 1.6
// Last update: Agust 25, 2004 by Anders Jenbo ([email protected])
// -------------------------------------------------------------------------------
//
// To learn how to use these entities, please visit Valve Editing 
// Resource Center
// (AKA the VALVE-ERC/VERC) at http://collective.valve-erc.com/
//
// by Justin DeJong aka "N0TH1NG"
// modified from code by Chris Bokitch aka "autolycus"
//
// by Tim Holt aka Waldo ([email protected])
// modified from code by Justin DeJong aka "N0TH1NG"
//
// Version 0.7.7 and 0.7.8 by fjl ([email protected])
//
// Version 0.7.8enhanced and 0.7.9.2e by tommy of escondido
//
// Version 0.7.9.2 by KeshTath ([email protected])
//
// Version 0.7.9.3 & 0.7.9.3b & 0.7.9.3c by tommy of escondido
//
// Version 0.7.9.4 - 0.7.9.9 by Anders Jenbo aka Wolf aka NoBody ([email protected])
//
// -----------------------------------------------------------------------
// May 12, 2005 - Wolf (0.8.0.0)
// added fixed func_breakable stuff
// -----------------------------------------------------------------------
// Agust 25, 2004 - Wolf (0.7.9.9)
// added func_breakable stuff
// -----------------------------------------------------------------------
// Agust 25, 2004 - Wolf (0.7.9.8)
// gave the zip a name that reflets the version xp_798u (expert version 0.7.9.8 unofficial)
// Split the fgd back in to a SP and a common,
// changed cyclers to have Model / Sprite support.
// added zhlt_invisible to some of the invisable entitys to save on stored polys.
// Added Angles to trigger_camera.
// Added entitys
//	weapon_ak47, weapon_aug, weapon_awp, weapon_deagle, weapon_elite,
//	weapon_famas, weapon_fiveseven, weapon_flashbang, weapon_g3sg1,
//	weapon_galil, weapon_glock18, weapon_hegrenade, weapon_knife,
//	weapon_m249, weapon_m3, weapon_m4a1, weapon_mac10, weapon_mp5navy,
//	weapon_p228, weapon_p90, weapon_scout, weapon_sg550, weapon_sg552,
//	weapon_shield, eapon_smokegrenade, weapon_tmp, weapon_ump45,
//	weapon_usp, weapon_xm1014, ammo_338magnum, ammo_357sig, ammo_45acp,
//	ammo_50ae, ammo_556nato, ammo_556natobox, ammo_57mm, ammo_762nato,
//	ammo_9mm, ammo_buckshot, item_antidote, item_kevlar, item_assaultsuit,
//	item_suit, item_thighpack, info_landmark, item_security,
//	trigger_endsection, trigger_autosave, trigger_transition,
//	trigger_changelevel, test_effect, func_weaponcheck
//	weaponbox (see its note for how to add more ammo types)
// Added some info from the cs-single-player fgd by fjl
// Removed
//	xen entities, env_smoker, info_lights_rad and env_fog (only commented fog out)
// Updated weapon_c4's dicription.
// changed some (choices) so that the key is removed if set to 0, saves a bit on entity data.
// Changed apperiance for
//	path_corner, path_track, env_explosion, trigger_camera, env_shooter,
//	item_battery, item_healthkit, item_longjump, env_sprite, cycler_wreckage,
//	env_beverage, env_funnel, env_rain, env_snow, info_landmark, env_shake,
//	info_compile_parameters, info_teleport_destination, info_null
// Added Targetx and RenderFields to the Weapon base class
// Added spark_shower to game_player_equip
// Gave the env_shooter a model so it dosen't crash the game
// Fixed the granade type of the func_grencatch
// Hostages and players are now displayed by models.
// Models and animation can be changed from the editor.
// Made the hostage_entity more compatible with other models.
// Added zhlt_noclip and zhlt_invisible to all brush entitys.
// corected the number for Opaque + Concave Fix
// Added info_texlights
// Added more keys to info_compile_parameters.
// 	priority, verbose, hlcsg, wadautodetect, noclipeconomy, noskyclip,
//	nocliphull, cliptype, texdata, wadconfig, hlbsp, hlvis, hlrad,
//	Vismatrix Method, lightdata, circus
// Removed the flags from info_compile_parameters as they are obsoled.
// Tested most entitis and did some other stuff :)
// -----------------------------------------------------------------------
// Mar 22, 2004 - tommy (0.7.9.3c)
// added angles property to armoury entity so you can rotate or stand
// the weapons on end.
// -----------------------------------------------------------------------
// Oct 18, 2003 - tommy (0.7.9.3b)
// removed item_airtank, it was causing a precache error.
// added weapon_C4 pre-plantable bomb from FJL's single player CS fgd.
// -----------------------------------------------------------------------
// Oct 16, 2003 - tommy (0.7.9.3 fix)
// -fixed shieldgun to shield in game_player_equip, and added item_airtank.
// -added single use func_grencatch from FJL's single player CS fgd.
// -----------------------------------------------------------------------
// Sept 17, 2003 - tommy (0.7.9.3)
// -added env_rain and env_snow for CS 1.6
// -----------------------------------------------------------------------
// June 15, 2003 - tommy  (0.7.9.2e)
// -added flag 2 to trigger_multiple for no player activation for soccer maps.
// - Style property commented out for triggers, seems to serve no purpose.
// -added light style 12 underwater weird - buggy.  not really a light source.
// -added to func_pushable choice 2, breakable by player touch - buggy
// -----------------------------------------------------------------------
// January 21st, 2003 - KeshTath (0.7.9.2)
//   - Added weapon_shieldgun to game_player_equip.
//   - Added weapon_galil to game_player_equip.
//   - Added weapon_famas to game_player_equip.
//   *NOTE* You cannot add any of the new weapons to the armoury_entity, They did not
// put in any code to allow you to add the UMP, SG550 or any of the new 1.6 weapons.
//-----------------------------------------------------------------------
// Oct 7th, 2002 - tommy  (0.7.8.1)
// added Lauries new entity properties for switchable texture lighting
//------------------------------------------------------------------------------
// Aug 19th, 2002 - tommy (0.7.8enhanced)
// - fixed env_blood choices
// -----------------------------------------------------------------------------
// Aug 11th, 2002 - tommy (0.7.8enhanced)
// - added editing sprites for: monster_cycler, cycler_wreckage, env_beam, env_blood, env_explosion
// env_glow, env_fade, env_laser, env_render, env_sprite, gibshooter, path_track, path_corner.
// --------------------------------------------------------------------------------
// Aug 2nd, 2002 - tommy (0.7.8enhanced)
// - added sound choices to base trigger copied from button sound choices.
// - added body choice for use with scientist.mdl to hostage entity.
// - added sequence(string) to cycler_sprite to give control over model animations.
// - fixed some comment errors, also modified and added more to some entitys.
// --------------------------------------------------------------------------------
// April 29th, 2002 - tommy (0.7.8enhanced)
//  - added notes on various entitys and choices from Lauri of Spirit of HL and from Waldo's
//    various notes on DoD and CS fgds, as well as my own.
//  - Removed renderfield string codes and replaced them with "Renderfields"
//    baseclasses for cycler_wreckage, 
//  - env_fog upgraded to the choices/abilities other mods use, in case CS upgrades to full fog someday.
//  - added property of "shade"(_diffuse_light) to light enviornment for adam foster's hack of HLRAD, so that
//    shadows can be given a specific color.
//  - added skins for "water" (-3), "slime" (-4), "lava" (-5) and "make ladder" (-16) to func_illusionary
//  - added spawnflags "only trigger" (1) and "pressure" (4) to func_pushable as other ways to break it.
//  - gave func_train ALL the same skins as func_illusionary & func_water, even though the skins work oddly for a train.
//  - added skins "empty" (-1) and "ladder" (-16) to func_water.  note "ladder" only works with non ! textures.
//-----------------------------------------------------------------------
// April 7th, 2002 - fjl (0.7.8)
//   - Global baseclass is a single player map option. The following baseclasses and
//     entities listed could support it so I added it to them.
//     BASECLASSES: Breakable, door, Basetank and Trackchange
//     SOLID ENTITIES func_button, func_conveyor, func_pendulum, func_plat,
//     func_rot_button, func_rotating, func_tracktrain, func_train and func_wall
//   - Added Master(string) to Basetank baseclass.
//   - Removed renderfield string codes and replaced them with "Renderfields"
//     baseclasses for cycle, cycler_sprite & button_target.
//   - Added the Appearflags("Not in Deathmatch") option to these listed entities and
//     baseclasses that where missing that parameter.
//     BASECLASSES: playerclass, door
//     ENTITIES: func_friction, func_pendulum, func_wall, infodecal
//   - Gave func_breakable the ability to spawn a battery, healthkit or shotgun
//     shells upon breaking. This options works a bit buggy since the spawned items
//     will continue to respawn on its own after its been picked up. If the
//     func_breakable is given a name, it will have the same effect as a
//     MonsterMaker by spawning the object each time its triggered.
//     Use this option wisely or only for single player maps.
//   - Added missing ZHLT options to func_friction.
//   - Added the "Instant Crowbar" flag to func_pushable. Not that this option is
//     usable for this mod, but I added it so whoever does the next Half-Life FGD
//     update, realizes that it supports that option.
//   - Added missing Renderfields baseclass to func_rot_button.
//   - Changed func_rotate to default to a speed of 50 instead of 0.
//   - Added item_healthkit to game_player_equip.
//   - Added ammo for the M249 Para on game_player_equip. Thanks to [B.o.G]doom for
//     this information.
//   - Added some extra information to the game_player_equip entity.
//   - Added character limit number for the "game_text" entity on its message string.
//   - Added "Renderfields" baseclass to hostage_entity. This allows the option for
//     hostages to be transparent, distorted, flickering or any of those other effects.
//   - Added "Renderfields" baseclass to item_healthkit, item_longjump and item_battery.
//   - Fixed light_spot bug where its default color was yellow instead of white.
//   - Gave Light_Environment the "Initially Dark" flag.
//   - Added "Appearance" effects to light_environment. This allows light_environment
//     to have the strobe and flicker light effects just incase you want to give
//     players an epileptic seizure while they play your map :)
//     Appearance's effect will not work if light_environment is given a name.
//   - Added "Custom Appearance" to light_environment. This option does require the
//     entity to have a name for it to work.
//   - Added the "target" field to light_environment. Add the light_environment
//     entity, and in the target field, add the name of its target(another entity).
//     Light_environment will now emit light in that direction from all sky brushes.
//     This should save time from trying to figure out the annoying angles and pitches.
//   - Added monster_scientist entity. Works the same as hostage_entity except that
//     it uses the scientist model. The scientist type(luther, einstein, etc.) is
//     also selectable. While it is possible to change hostage_entity into the
//     scientist model, a specific scientist type is not selectable.
//     Only monster_scientist has that option, which is why I added it.
//   - Added the sprite color to the multisource and multi_manager entities so they
//     are the same as Half-Life's FGD.
//   - Added "Global State Master" to trigger_auto.
//   - Fixed bug on trigger_counter, where field options repeated themselves.
//     This same bug seems to be plaguing all the other FGD's. Whoever plans to
//     updates those other FGD files should take note of it.
//   - Added "Level Fade In" and "CD track to play" to WorldSpawn. These options
//     should only be used for single player maps.
//   - Changed the baseclass name, zhltlightflags to ZHLT.
//   - Rearranged some of the entities code so that the most common fields and
//     options come before the other options. It was annoying having to scroll to
//     the bottom just to find out what some of them trigger or what their names are.
//     The Name of the entity should always come first and the other important
//     options right after. Something in the fashion listed below, that is, if they
//     contain those fields.
//     ------------------------
//     Name
//     Global Entity Name
//     Master
//     Target
//     Trigger delay
//     Pitch Yaw Roll (Y Z X)
//     Render FX
//     Render Mode
//     FX Amount(1 - 255)
//     FX Color (R G B)
//     Light Flags (ZHLT 2.2+)
//     Light Origin (ZHLT 2.2+)
//     ------------------------
//     Not all of them are exactly in this order since that would require re-writing
//     the whole FGD file, but I did manage to rearrange them to some extent for the
//     following baseclasses and entities listed below.
//     BASECLASSES: breakable, gibshooterbase and trigger
//     ENTITIES: env_sprite, func_button, func_door_rotating, func_pendulum,
//     func_platrot, func_rot_button, func_rotating, func_tracktrain, func_vehicle,
//     game_counter, game_counter_set, game_player_hurt, game_player_team,
//     info_teleport_destination, light, momentary_rot_button, path_track,
//     trigger_camera, trigger_changetarget, trigger_counter, trigger_hurt
//     and xen entities
//   - In order to help with the rearranging of the fields(read previous sentence), I
//     had to create a Master Baseclass. These are the following baseclasses and
//     entities that I removed the Master string from their code and replaced it with
//     the Master baseclass.
//     BASECLASSES: door and trigger 
//     ENTITIES: game_counter, game_counter_set, game_score, game_team_master,
//     game_text, game_zone_player, trigger_hurt, func_button, func_rot_button,
//     button_target and momentary_rot_button
//   - Added some extra information to Basetank baseclass and func_rot_button entity.
//   - Put line codes for trigger_gravity, func_wall, func_wall_toggle and func_water
//     entities in alphabetical order.
//   - Added some extra info to the previous update list and fixed some spelling errors.
//   - Updated once again, "cs_fgd_readme.txt" and "INSTALL.TxT"
// -----------------------------------------------------------------------    
// March 16th, 2002 - fjl (0.7.7)
//   - Added the "New Level Unit" Option on WorldSpawn.
//   - Added "weapon" baseclass.
//   - Added "Appearflags" baseclass.
//   - Added "Global" baseclass.
//   - Changed ZHLT _fade option to default to 1.0 instead of 0
//   - Changed ZHLT _falloff option to have a choice of "default," "linear," and "square."
//   - Removed the zhlt_lightflags choices from the "breakable" baseclass. It didn't need it.
//   - Added "Opaque + Concave Fix" to zhlt_lightflags.
//   - Changed IS NOT LOOPED to NOT TOGGLED on ambient_generic
//   - Removed ZHLT from func_wall_toggle. It caused ZHLT options to repeat.
//   - Added a Targetname and ZHLT _fade and _falloff options to light_environment.
//   - Changed light_environment so it defaults to an angle of 270 and pitch of -90.
//     Similar to high noon sunlight.
//   - Added the ZHLT _fade and _falloff options for light_spot.
//   - Changed all light entities to start with a white brightness(255 255 255 200)
//     instead of the annoying yellow color(255 255 128 200).
//   - Added "Angular Velocity" to func_train. Angle does not reset with a new round.
//     Hopefully VALVe will fix this in the future.
//   - Changed trigger_gravity to display "Gravity (0.0-1)" instead of "Gravity (0-1)"
//   - Added cycler entity.
//   - Added cycler_wreckage. Seems its just a big smoke sprite used for machine wrecks
//     so I edited it to not show the targetted sprite by default. If it does show the
//     sprite, it will simply look like a sprite stuck inside the smoke stack. It was
//     best to make it invisible. If a bigger sprite is used like say 320hud1.spr there
//     will be a more spread out smoke stack. Bigger sprite = wider smoke stack. 
//   - Added env_fade.
//   - Added env_fog in hopes to get VALVe to implement it for this mod and make it
//     compatible for software and direct3d modes. Currently doesn't work with
//     Counter-Strike version 1.3
//     LIMITATIONS:
//     Currently (as of Half-Life 1.1.0.8), objects outside of the 100% opacity range
//     are still drawn and still contribute to the overall polygon count. This entity is
//     still quite under development.
//     The fog is only drawn in OpenGL mode. This means users who are viewing the level
//     in Software or Direct3D rendering will not see the fog. For this reason, if you
//     plan on releasing your map publicly, the env_fog entity should not be used as it
//     will put OpenGL users at a disadvantage.
//   - Added func_guntarget.
//   - Added func_recharge and func_healthcharger. Currently the dmdelay,
//     "Deathmatch recharge delay" does not work with CS 1.3. Hopefully
//     this will be fixed in the future.
//   - Added func_tanklaser
//   - Removed func_tankrocket seeing as how CS cannot support the rocket entity.
//   - Added all missing weapons for game_player_equip plus added item_longjump &
//     item_battery including all weapon ammo. Almost did a complete re-write to this
//     entity to make it alot easier to use. I just can't figure out nightvision goggles
//     and ammo for the para. If you figure it out, please contact me. I would advice
//     using this item to give players the longjump or the battery wisely. Those items
//     do not magically dissapear like all the others. They will remain even after
//     a round ends. Also, You can't give all weapons and items at one time. SO DON'T TRY!
//   - Added gibshooter entity.
//   - Added item_longjump, item_battery and item_healthkit entities. These respawn
//     like in HL deathmatch. They might be a bit buggy though.
//   - Added xen entities.
//   - Rearranged the update list so the latest additions are on top.
//   - Updated the "readme.txt" that comes with the zip file and renamed it to
//     "cs_fgd_readme.txt" so it will not over write Worldcraft's "readme.txt" file.
//   - Created an "install.txt" for the zip file.
//   - Created a single player FGD file for anyone wanting to create training maps.
//     It contains the level transition entities required to make such maps. Plus it
//     contains many other entities that have some type of use on single player maps but
//     are not supported for multiplayer maps. The file is named "cs-single_player.fgd"
//     and it MUST be used alongside this FGD file. Read that FGD file to learn more.
//
// Jan 26, 2001 - Tim Holt (0.7.6)
//   - Added "No Clients" check option to Trigger base class per suggestion/lead
//     from Mataleone (cs mapping forum)
//-----------------------------------------------------------------------
// Jan 6, 2001 - Tim Holt (0.7.5)
//   - Added new parameter options for game_player_equip to list all
//     CS items in dialog, thus removing the need to turn off SmartEdit
//     to configure.
//   - Added new sprite for trigger_auto (green box with words "Trigger Auto")
//-----------------------------------------------------------------------
// 01/05/2001 - Morlam (0.7.4)
//   - Added _fade and _falloff keys to the light_ entities.  Need ZHLT 2.2+
//	 for these to work.
//   - Added light_origin key to the ZHLT Light Flags BaseClass.  Again, you
//	 need the latest version of Zoner's Tools for light_origin to work.
//   - Moved circus and extra from the "Class Info" tab to the "Flags" tab.
//   - Shortened the SmartEdit names of certain key/values in info_compile_params
//	 so that they aren't cut off (at least, on my 800X600 screen on a 15 inch 
//	 monitor).
//
// 01/04/2001 - Morlam (0.7.3)
//   - Arranged all the point entities in alphabetical order
//   - Corrected a typo in hostage_entity: "Orange Suit Worker" from
//	 "Orange Suite Worker".
//   - Changed func_water default WaveHeight to 0
//   - Added ZHLT Light Flags to func_plat, _pendulum and _vehicle
//   - Under info_compile_params:
//		- Changed extra to choices instead of a string; default is now 0
//		- Changed extra to read: "Enable Extra mode in HLRAD?"
//		- Added hullfile, chop, texchop, circus, and dscale keys
//		- Added "No Clip" flag under Run BSP in the spawnflags
//   - Under info_lights_rad:
//		- added radfile key/value, specifies custom texture light file
//-----------------------------------------------------------------------
// 01/01/2001 - Tim Holt (0.7.2)
//   - Added new dropdown to hostage entity, so you can choose hostage skin
//     directly by name (orange suit guy or tie guy)
//   - Removed commented out "master" option for game_zone_player.  It was
//     commented out from the original HL FGD for some reason.  Not sure why
//     or if maybe there is a problem with it?
//-----------------------------------------------------------------------
// 12/31/2000 - Tim Holt (0.7.1)
//   - Added new sprites for all the Game entities
//   - Added new sprite for Player Weapon Strip
//   - Added new sprite for Trigger_Relay
//   - Added new sprite for Trigger_ChangeTarget
//-----------------------------------------------------------------------
// Original changes by Tim Holt (0.7.0)
//   - Added new Trigger Changetarget sprite (green cube w/words)
//   - Added new Info Target sprite (bullseye)
//   - Added new trigger_camera sprite (Video camera)
//   - Added new Multi Manager sprite (box w/arrows coming out of it)
//   - Added new "Cycler Sprite" sprite (box w/arrow circle around it)
//   - Added replacement ambient_generic sprite (changed from speaker to speaker
//     with words "Ambient Generic" around it")
//   - Added replacement env_sound sprite (changed from speaker to speaker
//     with words "Env Sound" around it")
//   - Added replacement light_spot sprite (changed from lightbulb to spotlight)
//   - Added replacement Light Environment sprite (changed from lightbulb to sun)
//   - Added all the "game_*" entities
//   - Added info_compile_params and info_lights_rad entities.  Idea is to
//     get someone like Zoner to implement support for them in Zoners, or
//     build support for them into a compile tool like Q2Beaver, HLCC, etc.
//   - Added env_funnel
//   - Added trigger_gravity
//   - Added player_weaponstrip
//   - Put Zoners RAD option (that allow solid (func_) based ents to cast
//     shadows) into a number of new additional items that can support it.
//     Use with caution, as for example a func_pushable can cast a shadow now,
//     but if you push it, the shadow stays behind :^)
//
// --------------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------------
// Note:  I have not fully tested the support of ALL the game_ entities in
// CS.  I DO know that some work thru experimentation.  Let me know if you
// find interesting things about these little known and used entities in CS.
// ---------------------------------------------------------------------------------


//
// Worldspawn
//

@SolidClass = worldspawn : "World entity"
[
	message(string) : "Map Description / Title"
	skyname(string) : "environment map (cl_skyname)" 
	sounds(integer) : "CD track to play" : 0
	light(integer) : "Default light level" : 0
	WaveHeight(string) : "Default Wave Height" : "0"
	MaxRange(string) : "Max viewable distance" : "4096"
	startdark(choices) : "Level Fade In" : "" =
	[	
		"" : "No"
		1 : "Yes"
	]
	newunit(choices) : "New Level Unit" : "" = 
	[
		"" : "No, keep current"
		1 : "Yes, clear previous levels"
	]
]

//
// BaseClasses
//

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

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

@BaseClass = Master
[ 
	master(string) : "Master" 
]

@BaseClass = Target 
[ 
	target(target_destination) : "Target" 
]

@BaseClass = Targetname 
[ 
	targetname(target_source) : "Name"
]

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

@BaseClass = RenderFxChoices
[
	renderfx(choices) :"Render FX" : "" =
	[
		"": "Normal"
		//* Additive or Texture mode only.
		1: "Slow Pulse"
		//* Additive or Texture mode only.
		2: "Fast Pulse"
		//* Additive or Texture mode only.
		3: "Slow Wide Pulse"
		//* Additive or Texture mode only.
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
//*These don't seem to do anything. Correct me if I'm wrong... 
//*		5: "Slow Fade Away"
//*		6: "Fast Fade Away"
//*		7: "Slow Become Solid"
//*		8: "Fast Become Solid"
//* Constant Glow only affects the Glow rendermode. With this setting, Glow mode behaves
//* exactly like Additive mode - except that (as is usual for Glow mode) the sprite isn't
//* obscured by intervening sprites or models. (Hmm. Call me slow, but..... how is this
//* useful?)
		14: "Constant Glow (Sprites)"
		15: "Distort (Models)"
		16: "Hologram (Distort + fade)"
//* Strange effect. As seen, briefly, when a Gargantua dies.
	]
]

@BaseClass base(RenderFxChoices) = RenderFields 
[
	rendermode(choices) : "Render Mode" : "" =
	[
		"": "Normal - no light"
		//*   For BSP objects, the object will be rendered as a pure area of whatever
		//* color is specified in FX Color.
		//*   For models and sprites, this is the same as Normal mode.
		1: "Pure Color"
		//*   For BSP objects, the object will be rendered without shadows.
		//*   For models and sprites, this is the same as Normal mode, except that the Pulse
		//* renderfx settings work.
		2: "Texture - some light"
		//*   Like additive, but as the player gets further from the sprite, it gets
		//* progressively larger and more transparent. The sprite is also not obscured by
		//* intervening models, which can sometimes look bad.
		//*   Alphatest sprites won't use their masks in this mode.
		3: "Glow (sprites only)"
		//*   For BSP objects, this only affects textures beginning with {. Blue pixels
		//*   will be transparent; non-blue pixels will be solid.
		//*   For models, this mode is the same as Normal mode.
		//*   For sprites, this mode is for displaying sprites in Indexalpha mode - i.e.
		//* the palette positions are used as opacity settings; 0 for fully transparent,
		//* and 255 for fully opaque, regardless of what the palette colors actually are.
		//* The only palette colour that will be used is the last one, which sets the
		//* colour for the whole sprite. (Needless to say, this will look odd unless the
		//* sprite is designed to be displayed this way!)
		//*   Oddly, Alphatest sprites won't use their masks in this mode.
		4: "Solid - no light"
		//*   Only bright parts of the object are visible; darker parts are just more
		//* transparent, and black is not drawn. Useful for making lighting or hologram
		//* effects.
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)" : 255
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

// LRCHLT Texture light additions
// these will only work with advanced compiling tools that allow 
// switchable texture lighting.  note that lighting used by
// moveable entitys may be left behind!
//
@BaseClass = TexLightType
[
	style(choices) : "Texture Light Style" : "" =
	[
		"" : "Normal"
		-3: "Switch with [email protected]"
		1 : "Flicker A"
		2 : "Slow, strong pulse"
		3 : "Candle A"
		4 : "Fast strobe"
		5 : "Gentle pulse"
		6 : "Flicker B"
		7 : "Candle B"
		8 : "Candle C"
		9 : "Slow strobe"
		10: "Fluorescent flicker"
		11: "Slow pulse, noblack"
		12: "underwater weird & buggy"
	]
]

@BaseClass = Global 
[ 
	globalname(string) : "Global Entity Name" 
]

@BaseClass base(Targetname, Global, Target, RenderFields, Angles) = BaseTank
[
	// Mainly for use with 1009 team settings (game_team_master)
	master(string) : "(Team) Master"
	spawnflags(flags) =
	[
		1 : "Active" : 0
		16: "Only Direct" : 0
		32: "Controllable" : 0
	]
	yawrate(string) : "Yaw rate" : "30"
	yawrange(string) : "Yaw range" : "180"
	yawtolerance(string) : "Yaw tolerance" : "15"
	pitchrate(string) : "Pitch rate" : "0"
	pitchrange(string) : "Pitch range" : "0"
	pitchtolerance(string) : "Pitch tolerance" : "5"
	barrel(string) : "Barrel Length" : "0"
	barrely(string) : "Barrel Horizontal" : "0"
	barrelz(string) : "Barrel Vertical" : "0"
	spritesmoke(sprite) : "Smoke Sprite" : ""
	spriteflash(sprite) : "Flash Sprite" : ""
	spritescale(string) : "Sprite scale" : "1"
	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" : "" =
	[
		"": "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 base(Targetname, Global) = Breakable
[
	target(target_destination) : "Target on break"
	delay(string) : "Delay before fire" : "0"
	health(integer) : "Strength" : 1
	material(choices) :"Material type" : "" =
	[
		//*   <b>Gibs:</b> models/glassgibs.mdl
		//*   <b>Break noise:</b> debris/bustglassX.wav
		//*   <b>Bounce noise:</b> debris/glassX.wav
		"": "Glass"
		//*   <b>Gibs:</b> models/woodgibs.mdl
		//*   <b>Break noise:</b> debris/bustcrateX.wav
		//*   <b>Bounce noise:</b> debris/woodX.wav
		1: "Wood"
		//*   <b>Gibs:</b> models/metalplategibs.mdl
		//*   <b>Break noise:</b> debris/bustmetalX.wav
		//*   <b>Bounce noise:</b> debris/metalX.wav
		2: "Metal"
		//*   <b>Gibs:</b> models/fleshgibs.mdl
		//*   <b>Break noise:</b> debris/bustfleshX.wav
		//*   <b>Bounce noise:</b> debris/fleshX.wav
		3: "Flesh"
		//*   <b>Gibs:</b> models/cindergibs.mdl
		//*   <b>Break noise:</b> debris/bustconcreteX.wav
		//*   <b>Bounce noise:</b> debris/concreteX.wav
		4: "Cinder Block"  
		//*   <b>Gibs:</b> models/ceilinggibs.mdl
		//*   <b>Break noise:</b> debris/bustceilingX.wav
		//*   <b>Bounce noise:</b> none
		5: "Ceiling Tile"
		//*   <b>Gibs:</b> models/computergibs.mdl
		//*   <b>Break noise:</b> debris/bustmetalX.wav
		//*   <b>Bounce noise:</b> debris/woodX.wav
		//*   <b>Note:</b> Generates sparks when damaged.
		6: "Computer"
		//*   <b>Gibs:</b> models/glassgibs.mdl
		//*   <b>Break noise:</b> debris/bustglassX.wav
		//*   <b>Bounce noise:</b> debris/glassX.wav
		//*   <b>Note:</b> Makes ricochet noises when damaged.
		7: "Unbreakable Glass"
		//*   <b>Gibs:</b> models/rockgibs.mdl
		//*   <b>Break noise:</b> debris/bustconcreteX.wav
		//*   <b>Bounce noise:</b> debris/concreteX.wav
		8: "Rocks"
	]
	explosion(choices) : "Gibs Direction" : "" =
	[
		"": "Random"
		1: "Relative to Attack"
	]	
	gibmodel(studio) : "Gib Model" : ""
	spawnobject(choices) : "Spawn On Break" : "" =
	[
		"": "Nothing"
		1: "Battery"
		2: "Healthkit"
		9: "Shotgun Shells"
	]
	explodemagnitude(integer) : "Explode Magnitude (0=none)" : 0
]

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

@BaseClass base(Targetname, Global, Master, RenderFields, Angles, Appearflags) = Door
[
	target(target_destination) : "Target"
	//*-----------------------------------------------------------------
	//*This delay only applies to the Target, not the Fire on Open/Close
	//*fields.
	//*-----------------------------------------------------------------
	delay(integer) : "Delay before fire" : 0
	killtarget(target_destination) : "KillTarget"
	speed(integer) : "Speed" : 100
	//* -----------------------------------------------------------------
	//* The number against each sound corresponds to the wav file played.
	//* e.g. Vacuum (4) plays "doors/doormove4.wav".
	//* -----------------------------------------------------------------
	movesnd(choices) : "Move Sound" : "" = 
	[
		"": "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"
	]
	//* -----------------------------------------------------------------
	//* The number against each sound corresponds to the wav file played.
	//* e.g. Chunk (4) plays "doors/doorstop4.wav".
	//* -----------------------------------------------------------------
	stopsnd(choices) : "Stop Sound" : "" = 
	[
		"": "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"
	]
//* Setting wait to -1 also prevents the door from reversing when it comes into
//* contact with the player, as seen on the bunker door in Crossfire.
	wait(integer) : "delay before close, -1 stay open " : 4
	lip(integer) : "Lip" : 0
	dmg(integer) : "Damage inflicted when blocked" : 0
	message(string) : "Message if triggered"
	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
//* Normally a named door, or a door with "use only" selected, won't open when touched.
		256: "Use Only" : 0
	]
	locked_sound(choices) : "Locked Sound" : "" = 
	[
	//*   The locked sound & sentence will be played if
	//*   The player walks into a door which has a name. 
	//*   The number against each sound corresponds to the wav file played.
	//* e.g. Buzz (10) plays "buttons/button10.wav".

		"": "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	unlocked_sound(choices) : "Unlocked Sound" : "" = 
	[
	//*   The unlocked sound & sentence will be played whenever a door starts to open and whenever
	//* a button starts to push in. (They will never be played when a door starts to close, even if
	//* "Toggle" is selected.)
	//*
	//*   The number against each sound (except lightswitch) corresponds to the wav file played.
	//* e.g. Buzz (10) plays "buttons/button10.wav".
		"": "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" : "" = 
	[
	//* The letters correspond to the sentence group played (see sound/sentences.txt);
	//* e.g. Blast Door (NF) will cycle through NF0, NF1 and NF3.
		"": "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" : "" = 
	[
	//* The letters correspond to the sentence group played (see sound/sentences.txt);
	//* e.g. Blast Door (EF) will cycle through EF0, EF1 and EF3.
		"": "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 size(-16 -16 -16, 16 16 16) base(Targetname, Angles) = gibshooterbase
[
	//* The number of pieces to create.
	m_iGibs(integer) : "Number of Gibs" : 3
	//* Delay (in seconds) between shots. If 0, all the gibs are fired 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
	]
]

//* Don't create a light whose name begins with "light" - a bug/feature in RAD means
//* that such a light won't be able to switch on and off.
@BaseClass = Light 
[
	_light(color255) : "Brightness" : "255 255 255 200"
      //* This field will have no effect on a dynamic (i.e. named) light.
	style(Choices) : "Appearance (no name allowed)" : "" =
	[
		"" : "Normal"
		2 : "Slow, strong pulse"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
		10: "Fluorescent flicker"
		11: "Slow pulse, noblack"
	]
	//* This field will have no effect on a static (i.e. nameless) light.
	//*   'a' is dark, 'm' is normal brightness, 'z' is full brightness.
	//* There's no support for a light to have a custom appearances when it's in a
	//* state other than 'on'. See trigger_lightstyle if you need this effect.
	pattern(string) : "Custom Appearance"
	_fade(string) : "Fade (ZHLT Only)" : "1.0"
	_falloff(Choices) : "Falloff (ZHLT Only)" : "" =
	[
		"" : "Default"
		1 : "Inverse Linear"
		2 : "Inverse Square"
	]
	spawnflags(Flags) =
      [ 
           1 : "Initially dark" : 0
      ]
]

@BaseClass = PlatSounds 
[
	movesnd(choices) : "Move Sound" : "" = 
	[
		"": "No Sound"
		//* plats/bigmove1.wav
		1: "big elev 1"
		//* plats/bigmove2.wav
		2: "big elev 2"
		//* plats/elevmove1.wav
		3: "tech elev 1"
		//* plats/elevmove2.wav
		4: "tech elev 2"
		//* plats/elevmove3.wav
		5: "tech elev 3"
		//* plats/freightmove1.wav
		6: "freight elev 1"
		//* plats/freightmove2.wav
		7: "freight elev 2"
		//* plats/heavymove1.wav
		8: "heavy elev"
		//* plats/rackmove1.wav
		9: "rack elev"
		//* plats/railmove1.wav
		10: "rail elev"
		//* plats/squeekmove1.wav
		11: "squeek elev"
		//* plats/talkmove1.wav
		12: "odd elev 1"
		//* plats/talkmove2.wav
		13: "odd elev 2"
	]
	stopsnd(choices) : "Stop Sound" : "" = 
	[
		"": "No Sound"
		//* plats/bigstop1.wav
		1: "big elev stop1"
		//* plats/bigstop2.wav
		2: "big elev stop2"
		//* plats/freightstop1.wav
		3: "freight elev stop"
		//* plats/heavystop2.wav
		4: "heavy elev stop"
		//* plats/rackstop1.wav
		5: "rack stop"
		//* plats/railstop1.wav
		6: "rail stop"
		//* plats/squeekstop1.wav
		7: "squeek stop"
		//* plats/talkstop1.wav
		8: "quick stop"
	]
	volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
]

@BaseClass = PlayerAnim
[
    sequence(Choices) : "Animation Sequence (editor)" : 1 =
    [
	"" : "dummy"
	1 : "idle1"
	2 : "crouch_idle"
	3 : "walk"
	4 : "run"
	5 : "crouchrun"
	6 : "jump"
	7 : "longjump"
	8 : "swim"
	9 : "treadwater"
	10 : "crouch_aim_carbine"
	11 : "crouch_shoot_carbine"
	12 : "crouch_reload_carbine"
	13 : "ref_aim_carbine"
	14 : "ref_shoot_carbine"
	15 : "ref_reload_carbine"
	16 : "crouch_aim_onehanded"
	17 : "crouch_shoot_onehanded"
	18 : "crouch_reload_onehanded"
	19 : "ref_aim_onehanded"
	20 : "ref_shoot_onehanded"
	21 : "ref_reload_onehanded"
	22 : "crouch_aim_dualpistols_1"
	23 : "crouch_shoot_dualpistols_1"
	24 : "crouch_shoot2_dualpistols_1"
	25 : "crouch_reload_dualpistols_1"
	26 : "ref_aim_dualpistols_1"
	27 : "ref_shoot_dualpistols_1"
	28 : "ref_shoot2_dualpistols_1"
	29 : "ref_reload_dualpistols_1"
	30 : "crouch_aim_rifle"
	31 : "crouch_shoot_rifle"
	32 : "crouch_reload_rifle"
	33 : "ref_aim_rifle"
	34 : "ref_shoot_rifle"
	35 : "ref_reload_rifle"
	36 : "crouch_aim_mp5"
	37 : "crouch_shoot_mp5"
	38 : "crouch_reload_mp5"
	39 : "ref_aim_mp5"
	40 : "ref_shoot_mp5"
	41 : "ref_reload_mp5"
	42 : "crouch_aim_shotgun"
	43 : "crouch_shoot_shotgun"
	44 : "crouch_reload_shotgun"
	45 : "ref_aim_shotgun"
	46 : "ref_shoot_shotgun"
	47 : "ref_reload_shotgun"
	48 : "crouch_aim_m249"
	49 : "crouch_shoot_m249"
	50 : "crouch_reload_m249"
	51 : "ref_aim_m249"
	52 : "ref_shoot_m249"
	53 : "ref_reload_m249"
	54 : "I_am_a_stupid_placeholder"
	55 : "so_am_I"
	56 : "ref_aim_grenade"
	57 : "ref_shoot_grenade"
	58 : "crouch_aim_grenade"
	59 : "crouch_shoot_grenade"
	60 : "crouch_aim_c4"
	61 : "crouch_shoot_c4"
	62 : "ref_aim_c4"
	63 : "ref_shoot_c4"
	64 : "ref_reload_c4"
	65 : "crouch_aim_dualpistols_2"
	66 : "crouch_shoot_dualpistols_2"
	67 : "crouch_shoot2_dualpistols_2"
	68 : "crouch_reload_dualpistols_2"
	69 : "ref_aim_dualpistols_2"
	70 : "ref_shoot_dualpistols_2"
	71 : "ref_shoot2_dualpistols_2"
	72 : "ref_reload_dualpistols_2"
	73 : "crouch_aim_knife"
	74 : "crouch_shoot_knife"
	75 : "ref_aim_knife"
	76 : "ref_shoot_knife"
	77 : "crouch_aim_ak47"
	78 : "crouch_shoot_ak47"
	79 : "crouch_reload_ak47"
	80 : "ref_aim_ak47"
	81 : "ref_shoot_ak47"
	82 : "ref_reload_ak47"
	83 : "crouch_aim_shieldgren"
	84 : "crouch_shoot_shieldgren"
	85 : "ref_aim_shieldgren"
	86 : "ref_shoot_shieldgren"
	87 : "crouch_aim_shieldknife"
	88 : "crouch_shoot_shieldknife"
	89 : "ref_aim_shieldknife"
	90 : "ref_shoot_shieldknife"
	91 : "crouch_aim_shieldgun"
	92 : "crouch_shoot_shieldgun"
	93 : "crouch_reload_shieldgun"
	94 : "ref_aim_shieldgun"
	95 : "ref_shoot_shieldgun"
	96 : "ref_reload_shieldgun"
	97 : "crouch_aim_shielded"
	98 : "ref_aim_shielded"
	99 : "gut_flinch"
	100 : "head_flinch"
	101 : "death1"
	102 : "death2"
	103 : "death3"
	104 : "head"
	105 : "gutshot"
	106 : "left"
	107 : "back"
	108 : "right"
	109 : "forward"
	110 : "crouch_die"
    ]
]

@BaseClass = HostageAnim
[
    sequence(Choices) : "Animation Sequence (editor)" : 27 =
    [
	"" : "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_1"
	23 : "crouch_idle3_2"
	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 : "writeboard"
	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 : "lookwindow"
	93 : "wave"
	94 : "pulldoor"
	95 : "beatdoor"
	96 : "fallingloop"
	97 : "crawlwindow"
	98 : "divewindow"
	99 : "locked_door"
	100 : "push_button2"
	101 : "unlock_door"
	102 : "quicklook"
	103 : "handrailidle"
	104 : "handrail"
	105 : "hanging_idle"
	106 : "fall"
	107 : "scientist_get_pulled"
	108 : "hanging_idle2"
	109 : "fall_elevator"
	110 : "scientist_idlewall"
	111 : "ickyjump_sci"
	112 : "haulscientist"
	113 : "c1a4_wounded_idle"
	114 : "c1a4_dying_speech"
	115 : "tentacle_grab"
	116 : "helicack"
	117 : "windive"
	118 : "scicrashidle"
	119 : "scicrash"
	120 : "onguard"
	121 : "seeya"
	122 : "rocketcrawl"
	123 : "portal"
	124 : "gluonshow"
	125 : "crouch"
	126 : "kneel"
	127 : "pepsiidle"
	128 : "pepsifall"
    ]
]

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

@BaseClass base(Targetname, Global, RenderFields, PlatSounds) = Trackchange
[
	//* height is the distance the track/train will move. By default, the track starts in its top position 
	//* and goes downward (This can be changed in the Flags section #8).
	height(integer) : "Travel altitude" : 0
	spawnflags(flags) =
	[
		//* Auto activate and relink may not be funcional
		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 is the amount in degrees the track will turn to line up with the new track.
	rotation(integer) : "Spin amount" : 0
	train(target_destination) : "Train to switch"
	//* toptrack is the Name (targetname) of the last path_corner-track in the upper area, or last area, of the track.
	toptrack(target_destination) : "Top track"
	//* bottomtrack is the Name (targetname) of the first path_corner-track in the lower area, or next area, of the track
	bottomtrack(target_destination) : "Bottom track"
	//* speed is the speed in units per second that the track platform will move downward. 
	//* (If the #16 Rotate Only flag is set, this is just the speed of rotation).
	speed(integer) : "Move/Rotate speed" : 0
//*
//* The first path_track-corner should not have a Next stop target (target). Instead, where it says Fire on 
//* dead end (netname), enter a value equal to the Name (targetname) of the func_trackautochange. Now, when 
//* the train reaches the path_track-corner, it will stop, then activate the func_trackautochange. 
//* When the it gets to the bottom, the train will continue on to the next path_track-corner defined 
//* by Bottom track (bottomtrack) in the func_trackautochange properties.
//*
]

@BaseClass base(Targetname, Master, Target) = Trigger
[
	delay(string) : "Delay before trigger" : "0"
	killtarget(target_destination) : "Kill target"
	netname(target_destination) : "Target Path"
//* style commented out, seems to serve no purpose besides adding 
//* to the lightdata load.
//*	style(integer) : "Style" : 32
	sounds(choices) : "Sound style" : "" = 
	[
		"": "No Sound, None"
		//* the rest of these may or may not work, copied from button
		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"
	]
	message(string) : "Message (set sound too)"
	spawnflags(flags) = 
	[
//*		1: "monsters":0
		2: "No Players,entity only":0
		4: "Pushables": 0
	]
]

@BaseClass size(-16 -16 0, 16 16 32) color(0 0 200) base(Targetname, Appearflags, Angles, Targetx, RenderFields) = Weapon []

@BaseClass = ZHLT
[
	zhlt_invisible(choices) :"Invisible" : "" =
	[
		"": "no"
		1: "yes"
	]
	zhlt_noclip(choices) :"Non solid" : "" =
	[
		"": "no"
		1: "yes"
	]
	zhlt_lightflags(choices) :"Light Flags (Zhlt 2.2+)" : "" =
	[
		"": "Normal"
		1: "Embedded Fix"
		2: "Opaque (Blocks Light)"
		3: "Opaque + Embedded Fix"
		5: "Opaque + Concave Fix"
	]
	zhlt_customshadow(string) : "Custom shadow"
	light_origin(string) : "Light Origin (Zhlt 2.2+)"
]

//
// Entities
//

@PointClass base(Targetname) iconsprite("sprites/CS/AmbientGeneric.spr") = ambient_generic : "Universal sound Ambient"
[
	message(sound) : "Path/filename.wav of WAV"
	health(integer) : "Volume (10 = loudest)" : 10
	preset(choices) :"Dynamic Presets" : "" =
	[
		"": "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
//*main pitch frequency
	pitch(integer) : "Pitch (> 100 = higher)" : 100
//*begin pitch 
	pitchstart(integer) : "Start Pitch" : 100
//*how fast to change from begin pitch to main pitch.
	spinup(integer) : "Spin up time (0-100)" : 0
//*how fast to go back down from main pitch to nothing.
	spindown(integer) : "Spin down time (0-100)" : 0
//*LFO = low frequency oscillator.
//*type of sound wave, sqr will jump back and forth between low and high pitch, tri has sharp transitions, and rnd has smooth transitions. 
	lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0
//*rate is the frequency (how often the LFO effect repeats itself).
	lforate(integer) : "LFO rate (0-1000)" : 0
//*how much pitch change,  This effect is commonly called "vibrato" in music and song. 
	lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0
//*how strong a "pulse" of volume rather than a wavering pitch.
	lfomodvol(integer) : "LFO mod vol (0-100)" : 0
//*cspinup is unknown to me.
	cspinup(integer) : "Incremental spinup count" : 0
	spawnflags(flags) =
	[
		1: "Play Everywhere" : 0
//*small is <~800 units range
		2: "Small Radius" : 0
//* Medium is the default radius, so ticking this does nothing.  <~1250 units
		4: "Medium Radius" : 1
//*large is <~2000 units range
		8: "Large Radius" : 0
		16:"Start Silent":0
		32:"Not Toggled":0
	]
]

@PointClass base(Angles) iconsprite("sprites/CS/Armoury.spr") size(-16 -16 0, 16 16 16) = armoury_entity : "Items in the armoury" 
[
	item(choices)  : "Item" : "" = 
	[
		"": "weapon_mp5navy"
		1: "weapon_tmp"
		2: "weapon_p90"
		3: "weapon_mac10"
		4: "weapon_ak47"
		5: "weapon_sg552"
		6: "weapon_m4a1"
		7: "weapon_aug"
		8: "weapon_scout"
		9: "weapon_g3sg1"
		10: "weapon_awp"
		11: "weapon_m3"
		12: "weapon_xm1014"
		13: "weapon_m249"
		14: "weapon_flashbang"
		15: "weapon_hegrenade"
		16: "item_kevlar"
		17: "item_assaultsuit"
		18: "weapon_smokegrenade"
	]
//*
//*note: count always resets to only one item after first round
//*
	count(integer) : "Count" : 1
]

@PointClass base(Targetname, Angles, RenderFields) size(-16 -16 0, 16 16 72) Studio() = cycler : "Monster Cycler" 
[
	model(studio) : "Model / Sprite"
]

@PointClass base(Targetname, Angles, RenderFields) Studio() = cycler_sprite : "Sprite Cycler" 
[
	model(studio) : "Model / Sprite" : ""
	sequence(integer) : "Animation # sequence (Models only)"
	framerate(string) : "Framerate (Sprites only)" : 10
]

@PointClass Studio()  base(Targetname, Angles, RenderFields) size(-4 -4 -4, 4 4 4) = cycler_wreckage : "Wreckage" 
[
	model(studio) : "Model / Sprite" : "sprites/dot.spr"
	framerate(string) : "Framerate (Sprites only)" : "10.0"
	scale(string) : "Scale (Sprites only)" : "1.0"
	spawnflags(flags) =
	[
		32: "Toggle" : 0
	]
]

//
// Environmental effects
//

//* the beam can lead to network lag due to continous changing animation.
@PointClass base(Targetname, BeamStartEnd, RenderFxChoices) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/beam.spr") = env_beam : "Energy Beam Effect"
[
	renderamt(integer) : "Brightness (1 - 255)" : 100
	rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
	//* If you only give the beam one endpoint, then radius will specifies how
	//* far away the other endpoint should be (randomly) placed.
	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) = 
	[
		//* This is the default unless you specify a name.
		1 : "Start On"		: 0
		2 : "Toggle"		: 0
		4 : "Random Strike"	: 0
		//* Makes the beam form a circle, with a diameter that stretches between the two endpoints.
		//* For some unknown reason, both endpoints must have a model.
		//*   NB: because the beam will stretch between the origins of the two entities, you'll
		//* need to give each endpoint an origin brush.
		8 : "Ring"			: 0
		16: "StartSparks"		: 0
		32: "EndSparks"		: 0
		64: "Decal End"		: 0
		//* The beam fades in from nothing, like a tracer bullet.
		128: "Fade Start"		: 0
		256: "Fade End"		: 0
	]
]

@PointClass base(Targetname, Angles) size(-4 -4 -4, 4 4 4) Studio("models/can.mdl") = env_beverage : "Beverage Dispenser"
[
	health(integer) : "Capacity" : 10
	skin(choices) : "Beverage Type" : "" = 
	[
		"" : "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) iconsprite("sprites/CS/blood.spr") = env_blood : "Blood Effects" 
[
	color(choices) : "Blood Color" : "" =
	[
		"" : "Black/White blood with yellow decals"
		1 : "Yellow blood with yellow decals"
		2 : "Red blood with red decals"
	]
	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
	]
]

//* Bubbles cannot drift sideways with this entity; use an env_model and
//* "valve/models/pipe_bubbles.mdl" instead.
@SolidClass base(Targetname) = 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) iconsprite("sprites/CS/envexplosion.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/CS/EnvFunnel.spr") = env_funnel : "Large Portal Funnel" 
[
	spawnflags(flags) =
	[
		1: "Reverse" : 0
	]
]

@PointClass base(Targetname) iconsprite("sprites/CS/EnvGlobal.spr") color(255 255 128) = env_global : "Global State"
[
	globalstate(string) : "Global State to Set"
	triggermode(choices) : "Trigger Mode" : "" =
	[
		"" : "Off"
		1 : "On"
		2 : "Dead"
		3 : "Toggle"
	]
	initialstate(choices) : "Initial State" : "" =
	[
		"" : "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) sprite() = env_glow : "Light Glow/Haze" 
[
	model(sprite) : "Sprite" : "sprites/glow01.spr"
	scale(integer) : "Sprite Scale" : 1
]

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

//* NOT YET SUPPORTED BY COUNTER-STRIKE AS OF VERSION 1.3 WITH HALF-LIFE VERSION 1.1.0.8
// Still not there no need to have this in because of all the ppl that desent read this
//@PointClass base(Targetname) iconsprite("sprites/CS/envfog.spr") = env_fog : "Global Fog Properties"
//[
//	fadein(integer) : "Fade in time" : 0
//	holdtime(string) : "Hold time (0 = permanent)" : "0"
//	fadeout(integer) : "Fade out time" : 0
//	startdist(integer) : "Fog start position" : 0
//      enddist(integer) : "Fog end position" : 1000
//	rendercolor(color255) : "Fog Color (R G B)" : "255 255 255"
//	spawnflags(flags) =
//	[
//		1 : "Start active"   : 0
//	]
//]

//*may cause network lag due to changing animation.
@PointClass base(Targetname, RenderFxChoices, Angles) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/laser.spr") = 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) iconsprite("sprites/CS/Announcement.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" : "" =
	[
//*small is <~800 units range
		"" : "Small Radius"
//*medium is <~1250 units range
		1 : "Medium Radius"
//*large is <~2000 units range
		2 : "Large  Radius"
		3 : "Play Everywhere"
	]
]

//*beta tested by [dmv]Cross, works in STEAM CS 1.6
@PointClass base(Targetname) iconsprite("sprites/CS/EnvRain.spr") = env_rain : "rain Properties" []

@PointClass base(Targetname, Target, RenderFields) size(-16 -16 -16, 16 16 16) color(100 100 0) iconsprite("sprites/CS/render.spr") = 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) iconsprite("sprites/CS/EnvShake.spr") = 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) Studio("models/CS/envshooter.mdl") size(-16 -16 -16, 16 16 16) = env_shooter : "Model Shooter"
[
	shootmodel(studio) : "Model" : "models/can.mdl"
	shootsounds(choices) :"Material Sound" : -1 =
	[
		-1: "None"
		//* debris/glass1-4.wav
		"": "Glass"
		//* debris/wood1-4.wav
		1: "Wood"
		//* debris/metal1-6.wav
		2: "Metal"
		//* debris/flesh1-7.wav
		3: "Flesh"
		//* debris/concrete1-3.wav
		4: "Concrete"  
	]
	scale(string) : "Gib Scale" : ""
	skin(integer) : "Gib Skin" : 0
]

//*
//*this changes sound for the player UNTIL IT IS RESET by another env sound.  make sure you reset it!
//*
@PointClass iconsprite("sprites/CS/EnvSound.spr") = env_sound : "DSP Sound" 
[
	radius(integer) : "Radius" : 128
	roomtype(Choices) : "Room Type" : "" =
	[
		"" : "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"
	]
]

//*beta tested by [dmv]Cross, works in STEAM CS 1.6
@PointClass base(Targetname) iconsprite("sprites/CS/EnvSnow.spr") = env_snow : "snow Properties" []

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

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


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

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

@PointClass base(Targetname, Master, Target) iconsprite("sprites/CS/GameCounterSet.spr") = game_counter_set : "Sets a game_counter"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	frags(integer) : "New Value" : 10
]

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

//* buggy entity, must use with weapon strip to avoid giving duplicate 
//* weapons to a player and causing a crash.
@PointClass base(Targetname) iconsprite("sprites/CS/GamePlayerEquip.spr") = game_player_equip : "Initial player equipment"
[
	master(string) : "Team Master"
	spawnflags(flags) =
	[
		1: "Use Only" : 0
	]
	weapon_knife (choices) : "Give Knife" : "" = 
	[
		"": "No"
		1: "Yes"
	]

	weapon_usp (choices) : "Give USP45 (45acp Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_glock18 (choices) : "Give Glock 18 (9mm Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_deagle (choices) : "Give Desert Eagle (50ae Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_p228 (choices) : "Give P-228 (357sig Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_elite (choices) : "Give Beretta Elites (9mm Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_fiveseven (choices) : "Give Five-Seven (57mm Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_m3 (choices) : "Give Benelli M3 (12 Gauge)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_xm1014 (choices) : "Give Benelli XM1014 (12 Gauge)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_mp5navy (choices) : "Give MP5/Navy (9mm Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_tmp (choices) : "Give TMP (9mm Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_p90 (choices) : "Give FN P90 (57mm Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]

	weapon_mac10 (choices) : "Give Mac-10 (45acp Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_ump45 (choices) : "Give UMP 45 (45acp Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_ak47 (choices) : "Give AK-47 (762nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_sg552 (choices) : "Give SG552 (556nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_m4a1 (choices) : "Give M4A1 (556nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_aug (choices) : "Give Aug (556nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_scout (choices) : "Give Scout (762nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_awp (choices) : "Give AWP (338magnum Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_g3sg1 (choices) : "Give G3/SG-1 (762nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_sg550 (choices) : "Give SG550 (556nato Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_m249 (choices) : "Give M249 (556natobox Calibre)" : "" = 
	[
		"": "No"
		1: "Yes"
	]	
	weapon_famas (choices) : "CS 1.6 Famas (762nato)" : "" = 
	[
		"": "No"
		1: "Yes"
	]

	weapon_galil (choices) : "CS 1.6 Galil (556natobox)"  : "" = 
	[
		"": "No"
		1: "Yes"
	]

	weapon_shield (choices) : "CS 1.6 Police Riot Shield" : "" = 
	[
		"": "No"
		1: "Yes"
	]
	
	item_kevlar (choices) : "Give Kevlar Vest" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	item_assaultsuit (choices) : "Give Kevlar Vest+Ballistic Helmet" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_flashbang (choices) : "Give Flash Bang" : "" = 
	[
		"": "No"
		1: "1"
		2: "2"
	]	

	weapon_hegrenade (choices) : "Give High-Explosive Grenade" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_smokegrenade (choices) : "Give Smoke Grenade" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	item_thighpack (choices) : "Give Defuse Kit" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	weapon_c4 (choices) : "Give C4 Plastique Bomb" : "" = 
	[
		"": "No"
		1: "Yes"
	]	

	ammo_9mm (choices) : "Give 9mm Parabellum Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (30 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Clips (Fill Glock 18)"
		4: "4 Clips (Fill Elites, MP5 & TMP)"
	]	

	ammo_45acp (choices) : "Give .45 ACP Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (12 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Clips"
		4: "4 Clips (Fill USP45)"
		5: "5 Clips"
		6: "6 Clips"
		7: "7 Clips"
		8: "8 Clips (Fill Mac-10)"
		9: "9 Clips (Fill UMP 45)"
	]	

	ammo_50ae (choices) : "Give .50 Deagle Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (7 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Clips"
		4: "4 Clips"
		5: "5 Clips (Fill Desert Eagle)"
	]	

	ammo_57mm (choices) : "Give 5.7mm Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (50 Bullets Per Clip)"
		2: "2 Clips (Fill Five-Seven & P90)"
	]	

	ammo_357sig (choices) : "Give .357 SIG Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (13 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Clips"
		4: "4 Clips (Fill P-228)"
	]	

	ammo_buckshot (choices) : "Give 12 Gauge Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (8 Shells Per Clip)"
		2: "2 Clips"
		3: "3 Clips"
		4: "4 Clips (Fill Benelli M3, XM1014)"
	]	

	ammo_762nato (choices) : "Give 7.62mm NATO Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (30 Bullets Per Clip)"
		2: "2 Clips (Fill Scout & G3/S-G1)"
		3: "3 Clips (Fill AK-47)"
	]	

	ammo_556nato (choices) : "Give 5.56mm NATO Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (30 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Fill SG552 M4A1 Aug SG550"
	]	

	ammo_556natobox (choices) : "Give 5.56mm NATO Box Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (30 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Clips"
		4: "4 Clips"
		5: "5 Clips"
		6: "6 Clips"
		7: "7 Clips (Fill FN M249 Para)"

	]	

	ammo_338magnum (choices) : "Give .338 AWP Ammo" : "" = 
	[
		"": "No"
		1: "1 Clip (10 Bullets Per Clip)"
		2: "2 Clips"
		3: "3 Clips (Fill AWP)"
	]	

	item_healthkit (choices) : "Give Health Kit" : "" = 
	[
		"": "No"
		1: "1 Healthkit = 15 Health Points"
		2: "2 Healthkits = 30 Health Points"
		3: "3 Healthkits = 45 Health Points"
		4: "4 Healthkits = 60 Health Points"
		5: "5 Healthkits = 75 Health Points"
		6: "6 Healthkits = 90 Health Points"
		7: "7 Healthkits = 100 Health Points"
	]	

	item_battery (choices) : "Give HL HEV Battery" : "" = 
	[
		"": "No"
		1: "1 Battery = 15 Kevlar Points"
		2: "2 Batteries = 30 Kevlar Points"
		3: "3 Batteries = 45 Kevlar Points"
		4: "4 Batteries = 60 Kevlar Points"
		5: "5 Batteries = 75 Kevlar Points"
		6: "6 Batteries = 90 Kevlar Points"
		7: "7 Batteries = 100 Kevlar Points"
	]	

	item_longjump (choices) : "Give HL Long Jump Module" : "" = 
	[
		"": "No"
		1: "Yes (An Unrealistic Item)"
	]

	spark_shower (choices) : "Make sparks" : "" = 
	[
		"": "No"
		1: "Yes"
	]	
]

@PointClass base(Targetname) iconsprite("sprites/CS/GamePlayerHurt.spr") = game_player_hurt : "Hurts player who fires"
[
	master(string) : "Master" 
	dmg(string) : "Damage To Apply" : "999"
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
]

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

@PointClass base(Targetname) iconsprite("sprites/CS/GameScore.spr") = game_score : "Award/Deduct Points" 
[
	master(string) : "Master" 
	spawnflags(flags) =
	[
		1: "Allow Negative" : 0
		2: "Team Points" : 0
	]

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

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

@PointClass base(Targetname, Master, Targetx) iconsprite("sprites/CS/GameTeamSet.spr") = game_team_set : "Sets team of team_master"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
]

@PointClass base(Targetname, Master, Target) iconsprite("sprites/CS/GameText.spr") = game_text : "HUD Text Message" 
[
	spawnflags(flags) =
	[
		1: "All Players" : 0
	]
	message(string) : "Message Text (79 Char. Limit)"
	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" : "" =
	[
		"" : "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"
	]
]

@SolidClass base(Targetname) = game_zone_player : "Player Zone brush"
[
	master(string) : "Master" 
	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"
]

@PointClass base(gibshooterbase) iconsprite("sprites/CS/gib.spr") = gibshooter : "Gib Shooter" []

@PointClass studio() base(PlayerClass, RenderFields, HostageAnim) = hostage_entity : "Hostage" 
[
	model(studio) : "Model" : "models/hostage.mdl"
	skin(integer) : "Skin" : 0
	body(integer) : "Body part 2 sub model" : 0
]


//
// Info entities
//

@PointClass iconsprite("sprites/CS/BombTarget.spr") = info_bomb_target : "Bomb target point" []
@PointClass iconsprite("sprites/CS/MapParams.spr") color(255 128 0) = info_texlights : "Textur lights" 
[	
// not shure if the spawn flag is supported
	spawnflags(flags) =
	[
              1 : "Override?"       : 1
	]
]

@PointClass iconsprite("sprites/CS/InfoCompileParameters.spr") = info_compile_parameters : "Compile Options"
[
	texdata(string) : "Texture Data Memory" : "4096"
   	estimate(choices) :"Estimate Compile Times?" : "" =
	[
		"": "No"
		1: "yes"
	]

   	priority(choices) : "Priority Level" : "" =
	[
		"" : "Normal"
		1 : "High"
		-1 : "Low"
	]
    verbose(choices) : "Verbose compile messages" : "" =
    [
        "" : "Off"
        1 : "On"
    ]

hlcsg(choices) : "HLCSG" : 1 =
    [
        1 : "Normal"
        2 : "Onlyents"
        "" : "Off"
    ]
    wadautodetect(choices) : "Wad Auto Detect" : 1 =
    [
        1 : "On"
	"" : "Off"
    ]
    noclipeconomy(choices) : "Strip Uneeded Clipnodes?" : "" = 
    [
        "" : "Yes"
        1 : "No"
    ]
    noskyclip(choices) : "Clip sky" : "" =
    [
        "" : "Yes"
        1 : "No"
    ]
    nocliphull(choices) : "Generate clipping hulls" : "" =
    [
        "" : "Yes"
        1 : "No"
    ]
    cliptype(choices) : "clipping type" : 3 =
    [
        "" : "Smallest"
        1 : "Normalized"
        2 : "simple"
        3 : "Precise"
        4 : "Legacy"
    ]
    hullfile(string) : "Custom Hullfile"
    wadconfig(string) : "Custom Wad Configuration"

hlbsp(choices) : "HLBSP" : 1 =
    [
        "" : "Off" 
        1 : "Normal"
        2 : "Leakonly"
    ]

hlvis(choices) : "HLVIS" : 2 = 
    [ 
        "" : "Off"
        1 : "Fast"
        2 : "Normal" 
        3 : "Full"
    ]

hlrad(choices) : "HLRAD" : 1 =
    [
        "" : "Off"
        1 : "Normal"
        2 : "Extra"
    ]
    sparse(choices) : "Vismatrix Method" : 1 =
    [
        "" : "No Vismatrix"
        1 : "Sparse Vismatrix"
        2 : "Normal"
    ]
    bounce(integer) : "Number of radiosity bounces" : 1
    ambient(string) : "Ambient light (0.000 to 1.000, R G B)" : "0 0 0"
    smooth(integer) : "Smoothing threshold (in degrees)" : 0
    dscale(integer) : "Direct Lighting Scale" : 1
    chop(integer) : "Chop Size" : 64
    texchop(integer) : "Texture Light Chop Size" : 32
    lightdata(string) : "Light Data Memory in KB" : "6144"
    circus(choices) : "Circus RAD lighting" : "" =
    [
        "" : "Off"
        1 : "On"
    ]

]


@PointClass iconsprite("sprites/CS/HostageRescue.spr") = info_hostage_rescue : "Hostage rescue point" []

@PointClass iconsprite("sprites/CS/MapParams.spr") = info_map_parameters : "Miscellaneous mapping parameters"
[
	buying(choices)  : "Weapon_Buying" : "" =
	[
		"": "Both teams can buy guns"
		1: "Only CT's can buy guns"
		2: "Only T's can buy guns"
		3: "Neither CT's nor T's can buy guns"
	]
	bombradius(integer) : "Bomb Radius" : 500
]

@PointClass base(Targetname) iconsprite("sprites/CS/null.spr") = info_null : "info_null (spotlight target)" []

@PointClass base(PlayerClass, PlayerAnim) studio() = info_player_deathmatch : "Terrorist start"
[
model(choices)  : "Model (editor)" : "models/player/guerilla/guerilla.mdl" =
	[
		"models/player/arctic/arctic.mdl": "Arctic"
		"models/player/guerilla/guerilla.mdl": "Guerilla"
		"models/player/leet/leet.mdl": "Leet"
		"models/player/terror/terror.mdl": "Terror"
	]
]

@PointClass base(PlayerClass, PlayerAnim) studio() = info_player_start : "Counter-terrorist start"
[
model(choices)  : "Model (editor)" : "models/player/gsg9/gsg9.mdl" =
	[
		"models/player/gign/gign.mdl": "Gign"
		"models/player/gsg9/gsg9.mdl": "Gsg9"
		"models/player/sas/sas.mdl": "Sas"
		"models/player/urban/urban.mdl": "Urban"
	]
]

@PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(200 100 50) iconsprite("sprites/CS/EnvTarget.spr") = info_target : "Beam Target" []

@PointClass size(-8 -8 0, 8 8 16) base(Targetname, PlayerClass) iconsprite("sprites/CS/infoteleportdestination.spr") = info_teleport_destination : "Teleport destination" []

@PointClass studio("models/player/vip/vip.mdl") base(PlayerClass, PlayerAnim) = info_vip_start : "VIP start" []

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

// all items will respawn after a shot period in a multiplayer game.
// in MP item_security respawns on time not round start
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_antidote.mdl") = item_antidote : "Antidote" []
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_kevlar.mdl") = item_assaultsuit : "Assaultsuit" []
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_kevlar.mdl") = item_kevlar : "Kevlar" []
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_battery.mdl") = item_battery : "HEV battery" []
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_medkit.mdl")= item_healthkit : "Small Health Kit" []
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_longjump.mdl") = item_longjump : "Longjump Module" []
@PointClass size(-16 -16 0, 16 16 36) base(Weapon) Studio("models/w_security.mdl") = item_security : "Security card" []

//
// Light entities
//

@PointClass iconsprite("sprites/lightbulb.spr") base(Targetname, Target, Light) = light : "Invisible lightsource" []

@PointClass base(Targetname, Target, Light) iconsprite("sprites/CS/LightEnvironment.spr") = light_environment : "Environment" 
[
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 270 0"
	pitch(integer) : "Pitch" : -90
//Shade is used only by Adam Foster's hack of HLRAD to vary the color of shade.
	_diffuse_light(color255) : "Shade" : "255 255 128 200"
]

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

//* ------------------------------------------------------------------------------------------------------------
//* Triggers a sequence of up to 16 entities, at various time offsets.
//*   To specify the list of entities for it to trigger, turn off Worldcraft's "smart edit" mode
//* and add fields manually. The name of the field is the targetname of the entity to trigger,
//* and the contents of the field are the time (in seconds) to wait before triggering it.
//* 
//*  Beware: the seconds countdown will continue thru round ends causing some events to happen into the next round.
//*------------------------------------------------------------------------------------------------------------
@PointClass base(Targetname) color(255 128 0) iconsprite("sprites/CS/multi_manager.spr") = multi_manager : "MultiTarget Manager" 
[
	spawnflags(Flags) = 
	[
		//* By default, a manager will ignore all inputs while it's performing a sequence.
		//* Tick this to allow more than one sequence to run at a time.
		1 : "multithreaded" : 0
	]
]

//*
//*multiple inputs to one switch, the AND gate
//*
@PointClass base(Targetname, Target) color(128 255 128) iconsprite("sprites/CS/MultiSource.spr") = multisource : "Multisource" 
[
	globalstate(string) : "Global State Master"
]

@PointClass base(Targetname, Angles) size(16 16 16) color(247 181 82) iconsprite("sprites/CS/PathCorner.spr") = path_corner : "Moving platform stop"
[
	spawnflags(Flags) =
	[
		1: "Wait for retrigger" : 0
		2: "Teleport to next corner" : 0
		4: "Fire once" : 0
	]
	target(target_destination) : "Next stop target"
	message(target_destination) : "Fire On Pass"
	wait(integer) : "Wait here (secs)" : 0
//*if speed more than 2000 problems may result
	speed(integer) : "New Train Speed" : 0
	yaw_speed(integer) : "New Train rot. Speed" : 0
]

@PointClass base(Targetname) size(16 16 16) iconsprite("sprites/CS/PathTrack.spr") = path_track : "Train Track Path"
[
	target(target_destination) : "Next stop target"
	spawnflags(Flags) =
	[
		1: "Disabled" : 0
		2: "Fire once" : 0
		4: "Branch Reverse" : 0
		8: "Disable train" : 0
	]
	message(target_destination) : "Fire On Pass"
	altpath(target_destination) : "Branch Path"
	netname(target_destination) : "Fire on dead end"
//if speed more than 2000 problems may result
	speed(integer) : "New Train Speed" : 0
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) iconsprite("sprites/CS/PlayerWeaponStrip.spr") = player_weaponstrip : "Strips player's weapons" []

//
// Monsters
//

@PointClass studio("models/scientist.mdl") base(PlayerClass, RenderFields, HostageAnim) size(-16 -16 0, 16 16 72) = monster_scientist : "Scientist Hostage" 
[
      body(Choices) : "Body" : -1 =
	[
		-1 : "Random"
		"" : "Glasses"
		1 : "Einstein"
		2 : "Luther"
		3 : "Slick"
	]
]

@PointClass iconsprite("sprites/CS/TestEffect.spr") base(Targetname) = test_effect : "yellow charge" []

//
// Trigger entities
//

//
//will only trigger ONCE per MAP, will not reset or retrigger for a new round!
//
@PointClass base(Targetx) iconsprite("sprites/CS/TriggerAuto.spr") = trigger_auto : "AutoTrigger"
[
	spawnflags(Flags) =
	[
		1 : "Remove On fire" : 1
	]
	globalstate(string) : "Global State to Read"
	triggerstate(choices) : "Trigger State" : "" = 
	[
		"" : "Off"
		1 : "On"
		2 : "Toggle"
	]
]

//
//before team selection, engine will cycle thru all camera views whether usable or not to show views of level.
//
@PointClass base(Targetname, Targetx, Angles) Studio("models\CS\TriggerCamera.mdl") = 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
	]
//
//note: max speed is 2000 or things go wrong
//
	speed(string) : "Initial Speed" : "0"
	acceleration(string) : "Acceleration units/sec^2" : "500"
	deceleration(string) : "Stop Deceleration units/sec^2" : "500"
]

//
//makes another trigger point to something different.
//
@PointClass base(Targetname, Targetx) iconsprite("sprites/CS/TriggerChangetarget.spr") = trigger_changetarget : "Trigger Change Target"
[
	m_iszNewTarget(string) : "New Target"
]

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

@SolidClass base(Targetname, Master) = trigger_autosave : "Auto save" []

//
//gravity changes player state, will have to be reset to normal as player leaves low friction area.
//
@SolidClass base(Trigger) = trigger_gravity : "Trigger Gravity"
[
	gravity(integer) : "Gravity (0.0-1)" : 1
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

@SolidClass base(Targetname, Master, Target) = trigger_hurt : "Trigger player hurt" 
[
	delay(string) : "Delay before trigger" : "0"
	spawnflags(flags) = 
	[ 
		1: "Target Once" : 0 
		2: "Start Off" : 0
		16:"FireClientOnly" : 0
		32:"TouchClientOnly" : 0
	]
	dmg(integer) : "Damage" : 10
	damagetype(choices) : "Damage Type" : "" =
	[
		"" : "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"
	]
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

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

@SolidClass base(Trigger) = trigger_once : "Trigger: Activate once" 
[
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

@SolidClass base(Trigger, Angles) = trigger_push : "Trigger player push"
[
	spawnflags(flags) = 
	[ 
		1: "Once Only" : 0 
		2: "Start Off" : 0
	]
//
//speed of ~1000 needed to go up.
//
	speed(integer) : "Speed of push" : 40
]

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

@SolidClass base(Trigger) = trigger_teleport : "Trigger teleport" 
[
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]


//
// Function entities
//

@SolidClass = func_bomb_target : "Bomb target zone"
[
	target(target_destination) : "Target (when bomb blows)"
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

@SolidClass base(Breakable, RenderFields, ZHLT, TexLightType) = func_breakable : "Breakable Object" 
[
	onlydamagedby(choices) : "Break on grenade touch" : 0 =
	[
		0: "No"
		1: "Yes"
	]
	spawnflags(flags) =
	[
		1 : "Only Trigger" : 0
		2 : "Touch"	   : 0
		4 : "Stand on Pressure is buggy" : 0
		256: "Instant Crowbar" : 1
	]
	_minlight(string) : "Minimum light level" : "0"
]

@SolidClass base(Targetname, Global, Master, Target, RenderFields, Angles, ZHLT, TexLightType) = func_button : "Button" 
[
	speed(integer) : "Speed" : 5
	netname(target_destination) : "Target Path"
	//* Path Target overrides Targetted Object
	health(integer) : "Health (shootable if > 0)" : 0
	lip(integer) : "Lip" : 0
	//* The number against each sound (except Lightswitch) corresponds to the wav file
	//* played. e.g. Buzz (10) plays "buttons/button10.wav".
	sounds(choices) : "Sounds" : "" = 
	[
		"": "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
	]
//* see baseclass door sound notes
	locked_sound(choices) : "Locked Sound" : "" = 
	[
		"": "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	unlocked_sound(choices) : "Unlocked Sound" : "" = 
	[
		"": "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" : "" = 
	[
		"": "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" : "" = 
	[
		"": "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" : "0"
]

@SolidClass = func_buyzone : "Buy zone" 
[
	team(choices) : "Team" : "" =
	[
		"": "All teams (unassigned)"
		1: "Terrorist"
		2: "Counter-terrorist"
	]
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

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

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

@SolidClass base(Door, Angles, ZHLT, TexLightType) = 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
]
//*may not work in LINUX system servers.
@SolidClass = func_escapezone : "Terrorist escape zone" 
[
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

//*
//* friction changes player state, will have to be reset to normal as player leaves low friction area.
//* 0% = No friction, 100% = Normal Friction
//*
@SolidClass base(RenderFields, ZHLT, Appearflags, TexLightType) = func_friction : "Surface with a change in friction" 
[
	modifier(integer) : "Percentage of standard (0 - 100)" : 15
]

//     Notes, from info by FJL:
//     func_grencatch checks for what type grenade falls in its space. If for instance, func_grencatch
//     is set up to check for a smokegrenade, then the smokegrenade must be thrown and
//     land within the solid entities occupied space for it to trigger another entity.
//     I do not really know what the "Disable On Grenade" field is for. 
//     This entity actually will work on multiplayer games but will only function ONCE per MAP, not per round.

@SolidClass = func_grencatch : "Grenade Check"
[
      triggerongrenade(string) : "Trigger When Grenade Hits"
	grenadetype(choices): "grenade type" : "flash" =
	[
		"flash": "Flashbang"
		"smoke": "Smoke grenade"
	]
      disableongrenade(string) : "Disable On Grenade"
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]

]

@SolidClass base(Targetname, Global, RenderFields, ZHLT, TexLightType) = func_guntarget : "Moving platform" 
[
	target(target_source) : "First stop target"
	speed(integer) : "Speed (units per second)" : 100
	message(target_source) : "Fire on damage"
	health(integer) : "Damage to Take" : 0
	_minlight(string) : "Minimum light level" : "0"
]

@SolidClass base(Global, RenderFields, ZHLT, TexLightType) = func_healthcharger: "Wall health recharger" 
[
	//* dmdelay may not work in CS
	dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level" : "0"
]

@SolidClass = func_hostage_rescue : "Hostage rescue zone" 
[
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

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

	skin(choices) : "Contents" : -1 =
	[
		-1: "Empty"
		-3: "water"
		-4: "slime touch drown"
		-5: "lava touch fire death"
		-7: "Volumetric Light"
		-16: "make ladder"
	]
	_minlight(string) : "Minimum light level" : "0"
]

//* Creates an invisible, climbable field.
@SolidClass base(Targetname) = func_ladder : "Ladder" 
[
zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

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

//* Only partially implemented, some keys don't work properly. 
//* NOTE: the continous changing animation can lead to lag.
@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, Appearflags, TexLightType) = 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(string) : "Minimum light level" : "0"
//*	_minlight(integer) : "_minlight" : 0
]

@SolidClass base(Targetname, Global, RenderFields, PlatSounds, ZHLT, TexLightType) = 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" : "0"
]	

@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, TexLightType, PlatSounds) = 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" : "0"
]

@SolidClass base(Breakable, RenderFields, ZHLT, TexLightType) = func_pushable : "Pushable object"
[
	size(choices) : "Hull Size" : "" =
	[
		"": "Point size"
		1: "Player size"
		2: "Big Size"
		3: "Player duck"
	]
	spawnflags(flags) =
	[
		1 : "Only Trigger" : 0
		2 : "Broken on touch is buggy" : 0
		4 : "Pressure is buggy" : 0
            128: "Breakable" : 1
		256: "Instant Crowbar" : 1
	]
	friction(integer) : "Friction (0-400)" : 50
	buoyancy(integer) : "Buoyancy" : 20
	_minlight(string) : "Minimum light level" : "0"
]

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

//* Like func_button, except it rotates.
@SolidClass base(Targetname, Global, Master, Target, Angles, RenderFields, ZHLT, TexLightType) = func_rot_button : "RotatingButton" 
[
	delay(string) : "Delay before trigger" : "0"
	//* changetarget will change the button's target's TARGET field to the button's changetarget when button is pressed.
	changetarget(target_destination) : "ChangeTarget Name"
	speed(integer) : "Speed" : 50
	health(integer) : "Health (shootable if > 0)" : 0
	//* The number against each sound corresponds to the wav file
	//* played. e.g. Squeaky (1) plays "buttons/lever1.wav".
	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"
		 3: "3 sec default"
	]
	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(string) : "Minimum light level" : "0"
]

@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, TexLightType) = func_rotating : "Rotating Object"
[
	speed(integer)	: "Rotation Speed" : 0
	volume(integer) : "Volume (10 = loudest)" : 10
	fanfriction(integer) : "Friction (0 - 100%)" : 20
	//* The number against each sound corresponds to the wav file
	//* played. e.g. Slow Rush (2) plays "fans/fan2.wav".	
	sounds(choices) : "Fan Sounds" : "" =
	[
		"" : "No Sound" 
		1 : "Fast Whine"
		2 : "Slow Rush"
		3 : "Medium Rickety"
		4 : "Fast Beating"
		5 : "Slow Smooth"
	]
	//* The sound to play while active. This will only be used if "Fan Sounds" is set to "No Sound".
	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
		//* This, and the other "radius" settings, only affect the
		//* way the Fan Sounds are played; if you set a small radius,
		//* the sounds will only be audible near to the fan.
		128: "Small Radius" : 0
		256: "Medium Radius" : 0
		512: "Large Radius" : 1	
	]
	_minlight(string) : "Minimum light level" : "0"
//*	_minlight(integer) : "_minlight" : 0
	spawnorigin(string) : "X Y Z - Move here after lighting" : "0 0 0"
	dmg(integer) : "Damage inflicted when blocked" : 0
]

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

@SolidClass = func_tankcontrols : "Tank controls"
[
	target(target_destination) : "Tank entity name"
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

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

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

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

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

@SolidClass base(Targetname, Global, Angles, RenderFields, ZHLT, TexLightType) = 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"
//*
//*if startspeed is not 0, then maybe no train sounds
//*
	//* The number against each sound corresponds to the wav file
	//* played. e.g. Rail 1 plays "plats/ttrain1.wav".
	sounds(choices) : "Sound" : "" =
	[
		"": "None"
		1: "Rail 1"
		2: "Rail 2"
		3: "Rail 3"
		4: "Rail 4"
		5: "Rail 6"
		6: "Rail 7"
	]
//*
//*distance between wheels relates to stability in turns
//*
	wheels(integer) : "Distance between the wheels" : 50
//*
//*relates to how high above track ORIGIN brush for train runs.
//*
	height(integer) : "Height above track" : 4
//*
//*note: max speed is >2000 or things go wrong
//*and if startspeed is not 0, then maybe no train sounds
//*
	startspeed(integer) : "Initial speed" : 0
	speed(integer) : "Speed (units per second)" : 64
	dmg(integer) : "Damage on crush" : 0	
	volume(integer) : "Volume (10 = loudest)" : 10
//*stabilty of turn Banking depends on distance between wheels
	bank(string) : "Bank angle on turns" : "0"
	_minlight(string) : "Minimum light level" : "0"
]


//* A func_train will not be rendered correctly once it has gone about 
//* 4096 units from its spawn position (ie where it sits in worldcraft 
//* space).  An invisible func_train will still be correctly moving 
//* around your train path, it is only the visible piece of the train 
//* that gets 'stuck'. 
//* So try having your train sitting in the middle of worldcraft's 
//* space when you compile the level.
//*(note- a func_train gets its lighting info from where it sits when 
//* compiled) 
@SolidClass base(Targetname, Global, RenderFields, ZHLT, TexLightType) = func_train : "Moving platform" 
[
	target(target_source) : "First stop target"
	movesnd(choices) : "Move Sound" : "" = 
	[
		"": "No Sound"
		//* plats/bigmove1.wav
		1: "big elev 1"
		//* plats/bigmove2.wav
		2: "big elev 2"
		//* plats/elevmove1.wav
		3: "tech elev 1"
		//* plats/elevmove2.wav
		4: "tech elev 2"
		//* plats/elevmove3.wav
		5: "tech elev 3"
		//* plats/freightmove1.wav
		6: "freight elev 1"
		//* plats/freightmove2.wav
		7: "freight elev 2"
		//* plats/heavymove1.wav
		8: "heavy elev"
		//* plats/rackmove1.wav
		9: "rack elev"
		//* plats/railmove1.wav
		10: "rail elev"
		//* plats/squeekmove1.wav
		11: "squeek elev"
		//* plats/talkmove1.wav
		12: "odd elev 1"
		//* plats/talkmove2.wav
		13: "odd elev 2"
	]
	stopsnd(choices) : "Stop Sound" : "" = 
	[
		"": "No Sound"
		//* plats/bigstop1.wav
		1: "big elev stop1"
		//* plats/bigstop2.wav
		2: "big elev stop2"
		//* plats/freightstop1.wav
		3: "freight elev stop"
		//* plats/heavystop2.wav
		4: "heavy elev stop"
		//* plats/rackstop1.wav
		5: "rack stop"
		//* plats/railstop1.wav
		6: "rail stop"
		//* plats/squeekstop1.wav
		7: "squeek stop"
		//* plats/talkstop1.wav
		8: "quick stop"
	]
//*
//*note: max speed is 2000 or things go wrong
//*
	speed(integer) : "Speed (units per second)" : 64
//*
//* avelocity is fixed speed of tumbling, cannot be changed in play
//*
	avelocity(string) : "Angular velocity (Y Z X)" : "0 0 0"
	dmg(integer) : "Damage on crush" : 0
	skin(choices) : "Contents (if not solid)" : "" =
	[
		 "": "default"
		-1: "if non solid Empty"
		-3: "if non solid swimable water"
//*
//*odd slime, lava and ladder can be used, but do not behave as other slime,lava,ladders.
//*
		-4: "if non solid odd slime"
		-5: "if non solid odd lava"
		-7: "if non solid Volumetric Light"
		-16: "if non solid odd ladder"
	]
	volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
	spawnflags(flags) =
	[
		8 : "Not solid" : 0
	]
	_minlight(string) : "Minimum light level" : "0"
]

@SolidClass = func_traincontrols : "Train Controls"
[
	target(target_destination) : "Train Name"
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

@SolidClass base(Targetname, Angles, RenderFields, ZHLT, TexLightType) = func_vehicle : "Drivable Vehicles" 
[
	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" : "" =
	[
		"": "None"
		1: "Vehicle 1"
		2: "Vehicle 2"
		3: "Vehicle 3"
		4: "Vehicle 4"
		5: "Vehicle 6"
		6: "Vehicle 7"
	]
	length(integer) : "Length of the vehicle" : 256
	width(integer) : "Width of the vehicle" : 128
	height(integer) : "Height above track" : 4
//*
//*note: max speed is 2000 or things go wrong
//*
	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" : "0"
]

@SolidClass = func_vehiclecontrols : "Vehicle Controls"
[
	target(target_destination) : "Vehicle Name"
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

@SolidClass = func_vip_safetyzone : "VIP safety zone" 
[
	zhlt_invisible(choices) :"Invisible" : 1 =
	[
		1: "yes"
	]
]

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

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

@SolidClass base(Door) = func_water : "Liquid" 
[
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		256:"Use Only" : 0
	]
	skin(choices) : "Contents" : -3 =
	[
		-1: "Empty"
		-3: "Water"
		-4: "Slime"
		-5: "Lava"
		-16: "ladder (only with non ! texture)"
	]
	WaveHeight(string) : "Wave Height" : "0"
]


//
// Miscellaneous entities
//


@SolidClass base(Master, Target, Angles, RenderFields, ZHLT) = button_target : "Target Button"
[
	spawnflags(flags) =
	[
		1: "Use Activates" : 1
		2: "Start On" : 0
	]
]

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

@SolidClass base(Targetname, Master, Angles, RenderFields, ZHLT) = momentary_rot_button : "Direct wheel control" 
[
	target(target_destination) : "Targetted object"
	speed(integer) : "Speed" : 50
	sounds(choices) : "Sounds" : "" = 
	[
		"": "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(string) : "Minimum light level" : "0"
//*	_minlight(integer) : "_minlight" : "0"
]