home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2003 February / Gamestar_48_2003-02_cd2.bin / GSSpecial / TheyHunger3.exe / Hunger / maps / thdm.fgd next >
Text File  |  2001-03-26  |  72KB  |  2,822 lines

  1. //
  2. // Half-Life game definition file (.fgd)
  3. // FOR THEY HUNGER DEATHMATCH
  4. //
  5. // Requires Worldcraft 3.3 or above, and Half-Life 1.1.0.0 or above
  6. // 
  7. // Version 1.7C updated by Einar Saukas
  8. // einar@ime.usp.br
  9. // http://www.planethalflife.com/manke/
  10. //
  11. // Based on version 1.7 updated by Chris Bokitch
  12. // worldcraft@valvesoftware.com
  13. // http://halflife.gamedesign.net/
  14. //
  15.  
  16. //
  17. // 0326 - version 1.7C
  18. //      - changed for THEY HUNGER 3 DM
  19. //
  20. // 0620 - version 1.7B
  21. //      - changed for THEY HUNGER 2 DM
  22. //
  23. // 0527 - version 1.7
  24. //      - made light, light_spot, and light_environment use the
  25. //        lightbulb icon
  26. //      - made ambient_generic, env_sound, and speaker use the
  27. //        speaker icon
  28. //      - made env_glow, env_sprite, and cycler_sprite display
  29. //        their sprite in the 3D view.
  30. //      - changed appropriate keys to sprite, sound, or studio type
  31. //        to allow for file browsing from the entity properties
  32. //      - gave env_glow a scale property... finally
  33. //      - gave infodecal the decal() helper
  34. //      - removed unnecessary size() declarations
  35. //
  36. // 0116 - version 1.6b
  37. // 0116 - added the Global Name property to applicable func entities
  38. // 0116 - added Targetname to func_ladder so it can be killed
  39. //
  40. //
  41. // 0113 - version 1.6a
  42. // 0113 - removed many defunct keys, clarified lots, big thanks
  43. //        to Juddhunter
  44. // 0112 - changed monster_satchelcharge to monster_satchel, 
  45. //        removed extra targetname (Ryan Desgroseilliers)
  46. //
  47. //
  48. // xxxx - old changes
  49. // 1122 - added func_tankcontrols
  50. // 1128 - added RenderFields to monsters
  51. // 1129 - added _minlight to most func_s
  52. // 1207 - added cute little monster_babycrab entity
  53. // 1208 - added ammo_9mmbox, 200 9mm shells
  54. //      - added monster_rat, has limited animations, no ai
  55. //      - added monster_snark (thanks HB :)
  56. // 0201 - changed worldspawn variable types
  57. // 0218 - removed unneeded properties from trigger_monsterjump
  58. //      - increased func_rot_button speed from 5 to 50
  59. //      - increased momentary_rot_button speed from 5 to 50
  60. //      - removed master from trigger_cdaudio
  61. // 0222 - added targetname to func_plat
  62. //      - cleaned up func_platrot a bit
  63. // 0224 - removed info_player_start2
  64. // 0302 - changed cycler_weapon size info
  65. //      - removed MoveTarget (target) from Monster definition
  66. //      - redid cycler properties
  67. //      - redid cycler_sprite properties and size
  68. // 0305 - removed obsolete flags from scripted_sequence (oops)
  69. // 0308 - removed obsolete flags from BaseTank entity baseclass
  70. //        affecting func_tank, -laser, -mortar, and -rockets.
  71. // 0312 - added speed to func_platrot
  72. //      - added sequence to weapon_crossbow
  73. //      - added rendering properties to button_target
  74. // 0315 - added first set of game_ ents: _counter, _counter_set, 
  75. //        _end, _player_hurt, _score, _team_master, _team_master_set,
  76. //        _text, and _zone_player (1.0.0.9 only)
  77. // 0319 - rearranged env_beam
  78. //      - added Targetname reference to Weapon BaseClass
  79. // 0324 - added game_player_equip
  80. // 0401 - added game_player_team
  81. //      - made changes to various game_ ents
  82. // 0410 - added master to BaseTank baseclass
  83. // 0411 - removed Appearflags from Monster baseclass
  84. //      - fixed some typos
  85. //      - changed default env_sprite to sprites/glow01.spr
  86. //        (sprites/glow.spr was not valid)
  87. //      - gave env_glow a default sprite of sprites/glow01.spr
  88. // 0412 - added speed to func_plat
  89. //      - added mapteams and defaultteam to worldspawn
  90. // 0428 - removed master from trigger_relay
  91. //      - set all choice default values to their first ordinal value
  92. // 0429 - changed instances of wait(string) to wait(integer)
  93. // 0506 - added Target to light_spot
  94. //      - changed light_spot _cone and _cone2 descriptions and defaults
  95. //      - added a Multithreaded flag to the multi_manager
  96. // 0510 - commented out master in game_zone_player
  97. //      - commented out dmdelay in func_recharge and func_healthcharger
  98. // 0518 - added Weapon and Targetx bases to items
  99. // 0524 - added Targetname to func_illusionary
  100. // 0910 - various minor fixes and improvements
  101. //      - changed entity coloring on some things
  102. //      - speed key for func_plat
  103. //      - added rendering properties to various things
  104. //
  105.  
  106. //
  107. // worldspawn
  108. //
  109.  
  110. @SolidClass = worldspawn : "World entity"
  111. [
  112.     message(string) : "Map Description / Title"
  113.     skyname(string) : "environment map (cl_skyname)"
  114.     sounds(integer) : "CD track to play" : 1
  115.     light(integer) : "Default light level"
  116.     WaveHeight(string) : "Default Wave Height"
  117.     MaxRange(string) : "Max viewable distance" : "4096"
  118.     chaptertitle(string) : "Chapter Title Message"
  119.     startdark(choices) : "Level Fade In" : 0 =
  120.     [    
  121.         0 : "No"
  122.         1 : "Yes"
  123.     ]
  124.     gametitle(choices) : "Display game title" : 0 = 
  125.     [    
  126.         0 : "No"
  127.         1 : "Yes"
  128.     ]
  129.     newunit(choices) : "New Level Unit" : 0 = 
  130.     [
  131.         0 : "No, keep current"
  132.         1 : "Yes, clear previous levels"
  133.     ]
  134.     mapteams(string) : "Map Team List"
  135.     defaultteam(choices) : "Default Team" : 0 = 
  136.     [
  137.         0 : "Fewest Players"
  138.         1 : "First Team"
  139.     ]
  140. ]
  141.  
  142. //
  143. // BaseClasses
  144. //
  145.  
  146. @BaseClass = Appearflags
  147. [
  148.     spawnflags(Flags) =
  149.     [
  150.         2048 : "Not in Deathmatch" : 0
  151.     ]
  152. ]
  153.  
  154. @BaseClass size(0 0 0, 32 32 32) color(80 0 200) base(Appearflags) = Ammo []
  155.  
  156. @BaseClass = Targetname 
  157.     targetname(target_source) : "Name"
  158. ]
  159. @BaseClass = Target 
  160.     target(target_destination) : "Target" 
  161. ]
  162. @BaseClass size(-16 -16 0, 16 16 32) color(0 0 200) base(Targetname, Appearflags) = Weapon []
  163. @BaseClass = Global 
  164.     globalname(string) : "Global Entity Name" 
  165. ]
  166.  
  167. @BaseClass base(Target) = Targetx 
  168. [
  169.     delay(string) : "Delay before trigger" : "0"
  170.     killtarget(target_destination) : "KillTarget"
  171. ]
  172.  
  173. @BaseClass = RenderFxChoices
  174. [
  175.     renderfx(choices) :"Render FX" : 0 =
  176.     [
  177.         0: "Normal"
  178.         1: "Slow Pulse"
  179.         2: "Fast Pulse"
  180.         3: "Slow Wide Pulse"
  181.         4: "Fast Wide Pulse"
  182.         9: "Slow Strobe"
  183.         10: "Fast Strobe"
  184.         11: "Faster Strobe"
  185.         12: "Slow Flicker"
  186.         13: "Fast Flicker"
  187.         5: "Slow Fade Away"
  188.         6: "Fast Fade Away"
  189.         7: "Slow Become Solid"
  190.         8: "Fast Become Solid"
  191.         14: "Constant Glow"
  192.         15: "Distort"
  193.         16: "Hologram (Distort + fade)"
  194.     ]
  195. ]
  196.  
  197. @BaseClass base(RenderFxChoices) = RenderFields 
  198. [
  199.     rendermode(choices) : "Render Mode" : 0 =
  200.     [
  201.         0: "Normal"
  202.         1: "Color"
  203.         2: "Texture"
  204.         3: "Glow"
  205.         4: "Solid"
  206.         5: "Additive"
  207.     ]
  208.     renderamt(integer) : "FX Amount (1 - 255)"
  209.     rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
  210. ]
  211.  
  212. @BaseClass base(Appearflags) size(-16 -16 -36, 16 16 36) color(0 255 0) = PlayerClass []
  213.  
  214. @BaseClass base(Target, Targetname, RenderFields) color(0 200 200) = Monster 
  215. [
  216.     TriggerTarget(String) : "TriggerTarget"
  217.       TriggerCondition(Choices) : "Trigger Condition" : 0 =
  218.     [
  219.         0 : "No Trigger"
  220.         1 : "See Player, Mad at Player"
  221.         2 : "Take Damage"
  222.         3 : "50% Health Remaining"
  223.         4 : "Death"
  224.         7 : "Hear World"
  225.         8 : "Hear Player"
  226.         9 : "Hear Combat"
  227.         10: "See Player Unconditional"
  228.         11: "See Player, Not In Combat"
  229.     ]
  230.     spawnflags(Flags) = 
  231.     [
  232.         1 : "WaitTillSeen"     : 0
  233.         2 : "Gag"        : 0
  234.         4 : "MonsterClip"    : 0
  235.         16: "Prisoner"        : 0
  236.         128: "WaitForScript"     : 0
  237.         256: "Pre-Disaster"     : 0
  238.         512: "Fade Corpse"    : 0
  239.     ]
  240. ]
  241.  
  242. @BaseClass = TalkMonster
  243. [
  244.     UseSentence(String) : "Use Sentence"
  245.     UnUseSentence(String) : "Un-Use Sentence"
  246. ]
  247.  
  248. @BaseClass size(-16 -16 -16, 16 16 16) = gibshooterbase
  249. [
  250.     targetname (target_source) : "Name"
  251.  
  252.     // how many pieces to create
  253.     m_iGibs(integer) : "Number of Gibs" : 3
  254.     
  255.     // delay (in seconds) between shots. If 0, all gibs shoot at once.
  256.     delay(string) : "Delay between shots" : "0"
  257.  
  258.     // how fast the gibs are fired
  259.     m_flVelocity(integer) : "Gib Velocity" : 200
  260.  
  261.     // Course variance
  262.     m_flVariance(string) : "Course Variance" : "0.15"
  263.  
  264.     // Time in seconds for gibs to live +/- 5%
  265.     m_flGibLife(string) : "Gib Life" : "4"
  266.  
  267.     spawnflags(Flags) = 
  268.     [
  269.         1 : "Repeatable"     : 0
  270.     ]
  271. ]
  272.  
  273. @BaseClass = Light 
  274. [
  275.     _light(color255) : "Brightness" : "255 255 128 200"
  276.       style(Choices) : "Appearance" : 0 =
  277.     [
  278.         0 : "Normal"
  279.         10: "Fluorescent flicker"
  280.         2 : "Slow, strong pulse"
  281.         11: "Slow pulse, noblack"
  282.         5 : "Gentle pulse"
  283.         1 : "Flicker A"
  284.         6 : "Flicker B"
  285.         3 : "Candle A"
  286.         7 : "Candle B"
  287.         8 : "Candle C"
  288.         4 : "Fast strobe"
  289.         9 : "Slow strobe"
  290.     ]
  291.     pattern(string) : "Custom Appearance"
  292. ]
  293.  
  294. @BaseClass base(Targetname,Global) = Breakable
  295. [
  296.     master(string) : "TH_MASTER"
  297.     target(target_destination) : "Target on break"
  298.     health(integer) : "Strength" : 1
  299.     material(choices) :"Material type" : 0 =
  300.     [
  301.         0: "Glass"
  302.         1: "Wood"
  303.         2: "Metal"
  304.         3: "Flesh"
  305.         4: "Cinder Block"  
  306.         5: "Ceiling Tile"
  307.         6: "Computer"
  308.         7: "Unbreakable Glass"
  309.         8: "Rocks"
  310.     ]
  311.     explosion(choices) : "Gibs Direction" : 0 =
  312.     [
  313.         0: "Random"
  314.         1: "Relative to Attack"
  315.     ]
  316.     delay(string) : "Delay before fire" : "0"
  317.     gibmodel(studio) : "Gib Model" : ""
  318.     spawnobject(choices) : "Spawn On Break" : 0 =
  319.     [
  320.         0: "Nothing"
  321.         1: "Battery"
  322.         2: "Healthkit"
  323.         3: "9mm Handgun"
  324.         4: "9mm Clip"
  325.         5: "Machine Gun"
  326.         6: "Machine Gun Clip"
  327.         7: "Machine Gun Grenades"
  328.         8: "Shotgun"
  329.         9: "Shotgun Shells"
  330.         10: "Crossbow"
  331.         11: "Crossbow Bolts"
  332.         12: "357"
  333.         13: "357 clip"
  334.         14: "RPG"
  335.         15: "RPG Clip"
  336.         16: "Gauss clip"
  337.         17: "Hand grenade"
  338.         18: "Tripmine"
  339.         19: "Satchel Charge"
  340.         20: "Snark"
  341. //        21: "Hornet Gun"
  342.         22: "TH_OLD - WEAPONEINAR1"
  343.         23: "TH_OLD - AMMOEINAR1"
  344.         24: "TH_WEAPONSPANNER"
  345.         25: "TH_WEAPONAP9"
  346.         26: "TH_AMMOAP9"
  347.         27: "TH_WEAPONSHOVEL"
  348.         28: "TH_WEAPONTAURUS"
  349.         29: "TH_AMMOTAURUS"
  350.         30: "TH_WEAPONCHAINGUN"
  351.         31: "TH_WEAPONMEDKIT"
  352.         32: "TH_WEAPONSNIPER"
  353.         33: "TH_AMMOSNIPER"
  354.     ]
  355.     explodemagnitude(integer) : "Explode Magnitude (0=none)" : 0
  356. ]
  357.  
  358. @BaseClass base(Appearflags, Targetname, RenderFields, Global) = Door
  359. [
  360.     killtarget(target_destination) : "KillTarget"
  361.     speed(integer) : "Speed" : 100
  362.     master(string) : "Master" 
  363.     movesnd(choices) : "Move Sound" : 0 = 
  364.     [
  365.         0: "No Sound"
  366.         1: "Servo (Sliding)"
  367.         2: "Pneumatic (Sliding)"
  368.         3: "Pneumatic (Rolling)"
  369.         4: "Vacuum"
  370.         5: "Power Hydraulic"
  371.         6: "Large Rollers"
  372.         7: "Track Door"
  373.         8: "Snappy Metal Door"
  374.         9: "Squeaky 1"
  375.         10: "Squeaky 2"
  376.     ]
  377.     stopsnd(choices) : "Stop Sound" : 0 = 
  378.     [
  379.         0: "No Sound"
  380.         1: "Clang with brake"
  381.         2: "Clang reverb"
  382.         3: "Ratchet Stop"
  383.         4: "Chunk"
  384.         5: "Light airbrake"
  385.         6: "Metal Slide Stop"
  386.         7: "Metal Lock Stop"
  387.         8: "Snappy Metal Stop"
  388.     ]
  389.     wait(integer) : "delay before close, -1 stay open " : 4
  390.     lip(integer) : "Lip"
  391.     dmg(integer) : "Damage inflicted when blocked" : 0
  392.     message(string) : "Message if triggered"
  393.     target(target_destination) : "Target"
  394.     delay(integer) : "Delay before fire" 
  395.     netname(string) : "Fire on Close"
  396.     health(integer) : "Health (shoot open)" : 0
  397.     spawnflags(flags) =
  398.     [
  399.         1 : "Starts Open" : 0
  400.         4 : "Don't link" : 0
  401.         8: "Passable" : 0
  402.             32: "Toggle" : 0
  403.         256:"Use Only" : 0
  404.         512: "Monsters Can't" : 0
  405.     ]
  406.     // NOTE: must be duplicated in BUTTON
  407.     locked_sound(choices) : "Locked Sound" : 0 = 
  408.     [
  409.         0: "None"
  410.         2: "Access Denied"
  411.         8: "Small zap"
  412.         10: "Buzz"
  413.         11: "Buzz Off"
  414.         12: "Latch Locked"
  415.     ]
  416.     unlocked_sound(choices) : "Unlocked Sound" : 0 = 
  417.     [
  418.         0: "None"
  419.         1: "Big zap & Warmup"
  420.         3: "Access Granted"
  421.         4: "Quick Combolock"
  422.         5: "Power Deadbolt 1"
  423.         6: "Power Deadbolt 2"
  424.         7: "Plunger"
  425.         8: "Small zap"
  426.         9: "Keycard Sound"
  427.         10: "Buzz"
  428.         13: "Latch Unlocked"
  429.     ]
  430.     locked_sentence(choices) : "Locked Sentence" : 0 = 
  431.     [
  432.         0: "None"
  433.         1: "Gen. Access Denied"
  434.         2: "Security Lockout"
  435.         3: "Blast Door"
  436.         4: "Fire Door"
  437.         5: "Chemical Door"
  438.         6: "Radiation Door"
  439.         7: "Gen. Containment"
  440.         8: "Maintenance Door"
  441.         9: "Broken Shut Door"
  442.     ]
  443.     unlocked_sentence(choices) : "Unlocked Sentence" : 0 = 
  444.     [
  445.         0: "None"
  446.         1: "Gen. Access Granted"
  447.         2: "Security Disengaged"
  448.         3: "Blast Door"
  449.         4: "Fire Door"
  450.         5: "Chemical Door"
  451.         6: "Radiation Door"
  452.         7: "Gen. Containment"
  453.         8: "Maintenance area"
  454.     ]    
  455.     _minlight(string) : "Minimum light level"
  456. ]
  457.  
  458. @BaseClass base(Targetname, Target, RenderFields, Global) = BaseTank
  459. [
  460.     spawnflags(flags) =
  461.     [
  462.         1 : "Active" : 0
  463.         16: "Only Direct" : 0
  464.         32: "Controllable" : 0
  465.     ]
  466.  
  467.     // Mainly for use with 1009 team settings (game_team_master)
  468.     master(string) : "(Team) Master" 
  469.  
  470.     yawrate(string) : "Yaw rate" : "30"
  471.     yawrange(string) : "Yaw range" : "180"
  472.     yawtolerance(string) : "Yaw tolerance" : "15"
  473.     pitchrate(string) : "Pitch rate" : "0"
  474.     pitchrange(string) : "Pitch range" : "0"
  475.     pitchtolerance(string) : "Pitch tolerance" : "5"
  476.     barrel(string) : "Barrel Length" : "0"
  477.     barrely(string) : "Barrel Horizontal" : "0"
  478.     barrelz(string) : "Barrel Vertical" : "0"
  479.     spritesmoke(string) : "Smoke Sprite" : ""
  480.     spriteflash(string) : "Flash Sprite" : ""
  481.     spritescale(string) : "Sprite scale" : "1"
  482.     rotatesound(sound) : "Rotate Sound" : ""
  483.     firerate(string) : "Rate of Fire" : "1"
  484.     bullet_damage(string) : "Damage Per Bullet" : "0"
  485.     persistence(string) : "Firing persistence" : "1"
  486.     firespread(choices) : "Bullet accuracy" : 0 =
  487.     [
  488.         0: "Perfect Shot"
  489.         1: "Small cone"
  490.         2: "Medium cone"
  491.         3: "Large cone"
  492.         4: "Extra-large cone"
  493.     ]
  494.     minRange(string) : "Minmum target range" : "0"
  495.     maxRange(string) : "Maximum target range" : "0"
  496.     _minlight(string) : "Minimum light level"
  497. ]
  498.  
  499. @BaseClass = PlatSounds 
  500. [
  501.     movesnd(choices) : "Move Sound" : 0 = 
  502.     [
  503.         0: "No Sound"
  504.         1: "big elev 1"
  505.         2: "big elev 2"
  506.         3: "tech elev 1"
  507.         4: "tech elev 2"
  508.         5: "tech elev 3"
  509.         6: "freight elev 1"
  510.         7: "freight elev 2"
  511.         8: "heavy elev"
  512.         9: "rack elev"
  513.         10: "rail elev"
  514.         11: "squeek elev"
  515.         12: "odd elev 1"
  516.         13: "odd elev 2"
  517.     ]
  518.     stopsnd(choices) : "Stop Sound" : 0 = 
  519.     [
  520.         0: "No Sound"
  521.         1: "big elev stop1"
  522.         2: "big elev stop2"
  523.         3: "freight elev stop"
  524.         4: "heavy elev stop"
  525.         5: "rack stop"
  526.         6: "rail stop"
  527.         7: "squeek stop"
  528.         8: "quick stop"
  529.     ]
  530.     volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
  531. ]
  532.  
  533. @BaseClass base(Targetname, RenderFields, Global, PlatSounds) = Trackchange
  534. [
  535.     height(integer) : "Travel altitude" : 0
  536.     spawnflags(flags) =
  537.     [
  538.         1: "Auto Activate train" : 0
  539.         2: "Relink track" : 0
  540.         8: "Start at Bottom" : 0
  541.         16: "Rotate Only" : 0
  542.         64: "X Axis" : 0
  543.         128: "Y Axis" : 0
  544.     ]
  545.     rotation(integer) : "Spin amount" : 0
  546.     train(target_destination) : "Train to switch"
  547.     toptrack(target_destination) : "Top track"
  548.     bottomtrack(target_destination) : "Bottom track"
  549.     speed(integer) : "Move/Rotate speed" : 0
  550. ]
  551.  
  552. @BaseClass base(Target, Targetname) = Trigger
  553. [
  554.     killtarget(target_destination) : "Kill target"
  555.     netname(target_destination) : "Target Path"
  556.     style(integer) : "Style" : 32
  557.     master(string) : "Master" 
  558.     sounds(choices) : "Sound style" : 0 =
  559.     [
  560.         0 : "No Sound"
  561.     ]
  562.     delay(string) : "Delay before trigger" : "0"
  563.     message(string) : "Message (set sound too!)"
  564.     spawnflags(flags) = 
  565.     [
  566.         1: "Monsters" : 0
  567.         2: "No Clients" : 0
  568.         4: "Pushables": 0
  569.     ]
  570. ]
  571.  
  572. //
  573. // Entities
  574. //
  575.  
  576. @PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 72) color(255 0 255) = aiscripted_sequence : "AI Scripted Sequence"
  577. [
  578.     m_iszEntity(string) : "Target Monster"
  579.     m_iszPlay(string) : "Action Animation" : ""
  580.     m_flRadius(integer) : "Search Radius" : 512
  581.     m_flRepeat(integer) : "Repeat Rate ms" : 0
  582.     m_fMoveTo(Choices) : "Move to Position" : 0 =
  583.     [
  584.         0 : "No"
  585.         1 : "Walk"
  586.         2 : "Run"
  587.         4 : "Instantaneous"
  588.         5 : "No - Turn to Face"
  589.     ]
  590.     m_iFinishSchedule(Choices) : "AI Schedule when done" : 0 =
  591.     [
  592.         0 : "Default AI"
  593.         1 : "Ambush"
  594.     ]
  595.     spawnflags(Flags) = 
  596.     [
  597.         4 : "Repeatable"        : 0
  598.         8 : "Leave Corpse"    : 0
  599.     ]
  600. ]
  601.  
  602. @PointClass iconsprite("sprites/speaker.spr") base(Targetname) = ambient_generic : "Universal Ambient"
  603. [
  604.     message(sound) : "WAV Name"
  605.     health(integer) : "Volume (10 = loudest)" : 10
  606.     preset(choices) :"Dynamic Presets" : 0 =
  607.     [
  608.         0: "None"
  609.         1: "Huge Machine"
  610.         2: "Big Machine"
  611.         3: "Machine"
  612.         4: "Slow Fade in"  
  613.         5: "Fade in"
  614.         6: "Quick Fade in"
  615.         7: "Slow Pulse"
  616.         8: "Pulse"
  617.         9: "Quick pulse"
  618.         10: "Slow Oscillator"
  619.         11: "Oscillator"
  620.         12: "Quick Oscillator"
  621.         13: "Grunge pitch"
  622.         14: "Very low pitch"
  623.         15: "Low pitch"
  624.         16: "High pitch"
  625.         17: "Very high pitch"
  626.         18: "Screaming pitch"
  627.         19: "Oscillate spinup/down"
  628.         20: "Pulse spinup/down"
  629.         21: "Random pitch"
  630.         22: "Random pitch fast"
  631.         23: "Incremental Spinup"
  632.         24: "Alien"
  633.         25: "Bizzare"
  634.         26: "Planet X"
  635.         27: "Haunted"
  636.     ]
  637.     volstart(integer) : "Start Volume" : 0
  638.     fadein(integer) : "Fade in time (0-100)" : 0
  639.     fadeout(integer) : "Fade out time (0-100)" : 0
  640.     pitch(integer) : "Pitch (> 100 = higher)" : 100
  641.     pitchstart(integer) : "Start Pitch" : 100
  642.     spinup(integer) : "Spin up time (0-100)" : 0
  643.     spindown(integer) : "Spin down time (0-100)" : 0
  644.     lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0
  645.     lforate(integer) : "LFO rate (0-1000)" : 0
  646.     lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0
  647.     lfomodvol(integer) : "LFO mod vol (0-100)" : 0
  648.     cspinup(integer) : "Incremental spinup count" : 0
  649.     spawnflags(flags) =
  650.     [
  651.         1: "Play Everywhere" : 0
  652.         2: "Small Radius" : 0
  653.         4: "Medium Radius" : 1
  654.         8: "Large Radius" : 0
  655.         16:"Start Silent":0
  656.         32:"Is NOT Looped":0
  657.     ]
  658. ]
  659.  
  660. //
  661. // ammo
  662. //
  663.  
  664.  
  665. @PointClass base(Weapon, Targetx) = ammo_9mmclip : "9mm Pistol Ammo" []
  666. @PointClass base(Weapon, Targetx) = ammo_9mmAR : "9mm Assault Rifle Ammo" []
  667. @PointClass base(Weapon, Targetx) = ammo_9mmbox : "box of 200 9mm shells" []
  668. @PointClass base(Weapon, Targetx) = ammo_ARgrenades : "Assault Grenades" []
  669. @PointClass base(Weapon, Targetx) = ammo_buckshot : "Shotgun Ammo" []
  670. @PointClass base(Weapon, Targetx) = ammo_357 : "357 Ammo" []
  671. @PointClass base(Weapon, Targetx) = ammo_rpgclip : "RPG Ammo" []
  672. @PointClass base(Weapon, Targetx) = ammo_gaussclip : "Gauss Gun Ammo" []
  673. @PointClass base(Weapon, Targetx) = ammo_egonclip : "TH_AMMOFLAMETHROWER" []
  674. @PointClass base(Weapon, Targetx) = ammo_crossbow : "Crossbow Ammo" []
  675. @PointClass base(Weapon, Targetx) = ammo_th_sniper : "TH_AMMOSNIPER" []
  676. @PointClass base(Weapon, Targetx) = ammo_th_ap9 : "TH_AMMOAP9" []
  677. @PointClass base(Weapon, Targetx) = ammo_th_taurus : "TH_AMMOTAURUS" []
  678.  
  679. @SolidClass base(Target) = button_target : "Target Button"
  680. [
  681.     spawnflags(flags) =
  682.     [
  683.         1: "Use Activates" : 1
  684.         2: "Start On" : 0
  685.     ]
  686.     master(string) : "Master" 
  687.     renderfx(choices) :"Render FX" : 0 =
  688.     [
  689.         0: "Normal"
  690.         1: "Slow Pulse"
  691.         2: "Fast Pulse"
  692.         3: "Slow Wide Pulse"
  693.         4: "Fast Wide Pulse"
  694.         9: "Slow Strobe"
  695.         10: "Fast Strobe"
  696.         11: "Faster Strobe"
  697.         12: "Slow Flicker"
  698.         13: "Fast Flicker"
  699.         5: "Slow Fade Away"
  700.         6: "Fast Fade Away"
  701.         7: "Slow Become Solid"
  702.         8: "Fast Become Solid"
  703.         14: "Constant Glow"
  704.         15: "Distort"
  705.         16: "Hologram (Distort + fade)"
  706.     ]
  707.     rendermode(choices) : "Render Mode" : 0 =
  708.     [
  709.         0: "Normal"
  710.         1: "Color"
  711.         2: "Texture"
  712.         3: "Glow"
  713.         4: "Solid"
  714.         5: "Additive"
  715.     ]
  716.     renderamt(integer) : "FX Amount (1 - 255)"
  717.     rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
  718. ]
  719.  
  720.  
  721. //
  722. // cyclers
  723. //
  724.  
  725. @PointClass base(Targetname) size(-16 -16 0, 16 16 72) = cycler : "Monster Cycler" 
  726. [
  727.     model(studio) : "Model"
  728.     renderfx(choices) :"Render FX" : 0 =
  729.     [
  730.         0: "Normal"
  731.         1: "Slow Pulse"
  732.         2: "Fast Pulse"
  733.         3: "Slow Wide Pulse"
  734.         4: "Fast Wide Pulse"
  735.         9: "Slow Strobe"
  736.         10: "Fast Strobe"
  737.         11: "Faster Strobe"
  738.         12: "Slow Flicker"
  739.         13: "Fast Flicker"
  740.         5: "Slow Fade Away"
  741.         6: "Fast Fade Away"
  742.         7: "Slow Become Solid"
  743.         8: "Fast Become Solid"
  744.         14: "Constant Glow"
  745.         15: "Distort"
  746.         16: "Hologram (Distort + fade)"
  747.     ]
  748.     rendermode(choices) : "Render Mode" : 0 =
  749.     [
  750.         0: "Normal"
  751.         1: "Color"
  752.         2: "Texture"
  753.         3: "Glow"
  754.         4: "Solid"
  755.         5: "Additive"
  756.     ]
  757.     renderamt(integer) : "FX Amount (1 - 255)"
  758.     rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
  759. ]
  760.  
  761. @PointClass base(Targetname) sprite() = cycler_sprite : "Sprite Cycler" 
  762. [
  763.     model(sprite) : "Sprite"
  764.     framerate(integer) : "Frames per second" : 10
  765.     renderfx(choices) :"Render FX" : 0 =
  766.     [
  767.         0: "Normal"
  768.         1: "Slow Pulse"
  769.         2: "Fast Pulse"
  770.         3: "Slow Wide Pulse"
  771.         4: "Fast Wide Pulse"
  772.         9: "Slow Strobe"
  773.         10: "Fast Strobe"
  774.         11: "Faster Strobe"
  775.         12: "Slow Flicker"
  776.         13: "Fast Flicker"
  777.         5: "Slow Fade Away"
  778.         6: "Fast Fade Away"
  779.         7: "Slow Become Solid"
  780.         8: "Fast Become Solid"
  781.         14: "Constant Glow"
  782.         15: "Distort"
  783.         16: "Hologram (Distort + fade)"
  784.     ]
  785.     rendermode(choices) : "Render Mode" : 0 =
  786.     [
  787.         0: "Normal"
  788.         1: "Color"
  789.         2: "Texture"
  790.         3: "Glow"
  791.         4: "Solid"
  792.         5: "Additive"
  793.     ]
  794.     renderamt(integer) : "FX Amount (1 - 255)"
  795.     rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
  796. ]
  797.  
  798. @PointClass base(Monster) size(-16 -16 -16, 16 16 16) = cycler_weapon : "Weapon Cycler" 
  799. [
  800.     model(studio) : "model"
  801. ]
  802.  
  803. //
  804. // Environmental effects
  805. //
  806.  
  807. @BaseClass = BeamStartEnd 
  808. [
  809.     LightningStart(target_destination) : "Start Entity" 
  810.     LightningEnd(target_destination) : "Ending Entity" 
  811. ]
  812. @PointClass base(Targetname, BeamStartEnd, RenderFxChoices) size(-16 -16 -16, 16 16 16) = env_beam : "Energy Beam Effect"
  813. [
  814.     renderamt(integer) : "Brightness (1 - 255)" : 100
  815.     rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
  816.     Radius(integer) : "Radius" : 256
  817.     life(string) : "Life (seconds 0 = infinite)" : "1"
  818.     BoltWidth(integer) : "Width of beam (pixels*0.1 0-255)" : 20
  819.     NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
  820.     texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
  821.     TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
  822.     framerate(integer) : "Frames per 10 seconds" : 0
  823.     framestart(integer) : "Starting Frame" : 0
  824.     StrikeTime(string) : "Strike again time (secs)" : "1"
  825.     damage(string) : "Damage / second" : "0"
  826.     spawnflags(flags) = 
  827.     [
  828.         1 : "Start On" : 0
  829.         2 : "Toggle" : 0
  830.         4 : "Random Strike" : 0
  831.         8 : "Ring" : 0
  832.         16: "StartSparks" : 0
  833.         32: "EndSparks" : 0
  834.         64: "Decal End" : 0
  835.         128: "Shade Start" : 0
  836.         256: "Shade End" : 0
  837.     ]
  838. ]
  839.  
  840. @PointClass base(Targetname) size(-4 -4 -4, 4 4 4) = env_beverage : "Beverage Dispenser"
  841. [
  842.     health(integer) : "Capacity" : 10
  843.     skin(choices) : "Beverage Type" : 0 = 
  844.     [
  845.         0 : "Coca-Cola"
  846.         1 : "Sprite"
  847.         2 : "Diet Coke"
  848.         3 : "Orange"
  849.         4 : "Surge"
  850.         5 : "Moxie"
  851.         6 : "Random"
  852.     ]
  853. ]
  854.  
  855. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) color(255 0 0) = env_blood : "Blood Effects" 
  856. [
  857.     color(choices) : "Blood Color" : 0 =
  858.     [
  859.         0 : "Red (Human)"
  860.         1 : "Yellow (Alien)"
  861.     ]
  862.     amount(string) : "Amount of blood (damage to simulate)" : "100"
  863.     spawnflags(flags) =
  864.     [
  865.         1: "Random Direction" : 0
  866.         2: "Blood Stream" : 0
  867.         4: "On Player" : 0
  868.         8: "Spray decals" : 0
  869.     ]
  870. ]
  871.  
  872. @SolidClass base(Targetname) = env_bubbles : "Bubble Volume" 
  873. [
  874.     density(integer) : "Bubble density" : 2
  875.     frequency(integer) : "Bubble frequency" : 2
  876.     current(integer) : "Speed of Current" : 0
  877.     spawnflags(Flags) = 
  878.     [
  879.         1 : "Start Off"     : 0
  880.     ]
  881. ]
  882.  
  883. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_explosion : "Explosion" 
  884. [
  885.     iMagnitude(Integer) : "Magnitude" : 100
  886.     spawnflags(flags) =
  887.     [
  888.         1: "No Damage" : 0
  889.         2: "Repeatable" : 0
  890.         4: "No Fireball" : 0
  891.         8: "No Smoke" : 0
  892.         16: "No Decal" : 0
  893.         32: "No Sparks" : 0
  894.     ]
  895. ]
  896.  
  897. @PointClass base(Targetname) color(255 255 128) = env_global : "Global State"
  898. [
  899.     globalstate(string) : "Global State to Set"
  900.     triggermode(choices) : "Trigger Mode" : 0 =
  901.     [
  902.         0 : "Off"
  903.         1 : "On"
  904.         2 : "Dead"
  905.         3 : "Toggle"
  906.     ]
  907.     initialstate(choices) : "Initial State" : 0 =
  908.     [
  909.         0 : "Off"
  910.         1 : "On"
  911.         2 : "Dead"
  912.     ]
  913.     spawnflags(flags) =
  914.     [
  915.         1 : "Set Initial State" : 0
  916.     ]
  917. ]
  918.  
  919. @PointClass sprite() base(Targetname, RenderFields) size(-4 -4 -4, 4 4 4) color(30 100 0) = env_glow : "Light Glow/Haze" 
  920. [
  921.     model(sprite) : "Sprite Name" : "sprites/glow01.spr"
  922.     scale(integer) : "Scale" : 1
  923. ]
  924.  
  925. @PointClass base(Targetname) = env_fade : "Screen Fade" 
  926. [
  927.     spawnflags(flags) =
  928.     [
  929.         1: "Fade From" : 0
  930.         2: "Modulate" : 0
  931.         4: "Activator Only" : 0
  932.     ]
  933.     duration(string) : "Duration (seconds)" : "2"
  934.     holdtime(string) : "Hold Fade (seconds)" : "0"
  935.     renderamt(integer) : "Fade Alpha" : 255
  936.     rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
  937. ]
  938.  
  939. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_funnel : "Large Portal Funnel" 
  940. [
  941.     spawnflags(flags) =
  942.     [
  943.         1: "Reverse" : 0
  944.     ]
  945. ]
  946.  
  947. @PointClass base(Targetname, RenderFxChoices) size(-16 -16 -16, 16 16 16) = env_laser : "Laser Beam Effect"
  948. [
  949.     LaserTarget(target_destination) : "Target of Laser" 
  950.     renderamt(integer) : "Brightness (1 - 255)" : 100
  951.     rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
  952.     width(integer) : "Width of beam (pixels*0.1 0-255)" : 20
  953.     NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
  954.     texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
  955.     EndSprite(sprite) : "End Sprite" : ""
  956.     TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
  957.     framestart(integer) : "Starting Frame" : 0
  958.     damage(string) : "Damage / second" : "100"
  959.     spawnflags(flags) = 
  960.     [
  961.         1 : "Start On" : 0
  962.         16: "StartSparks" : 0
  963.         32: "EndSparks" : 0
  964.         64: "Decal End" : 0
  965.     ]
  966. ]
  967.  
  968. @PointClass base(Targetname, Target) = env_message : "HUD Text Message" 
  969. [
  970.     message(string) : "Message Name"
  971.     spawnflags(flags) =
  972.     [
  973.         1: "Play Once" : 0
  974.         2: "All Clients" : 0
  975.     ]
  976.     messagesound(sound) : "Sound Effect"
  977.     messagevolume(string) : "Volume 0-10" : "10"
  978.     messageattenuation(Choices) : "Sound Radius" : 0 =
  979.     [
  980.         0 : "Small Radius"
  981.         1 : "Medium Radius"
  982.         2 : "Large  Radius"
  983.         3 : "Play Everywhere"
  984.     ]
  985. ]
  986.  
  987. @PointClass base(Targetname, Target, RenderFields) size(-16 -16 -16, 16 16 16) color(100 100 0) = env_render : "Render Controls"
  988. [
  989.     spawnflags(flags) =
  990.     [
  991.         1: "No Renderfx" : 0
  992.         2: "No Renderamt" : 0
  993.         4: "No Rendermode" : 0
  994.         8: "No Rendercolor" : 0
  995.     ]
  996. ]
  997.  
  998. @PointClass base(Targetname) = env_shake : "Screen Shake" 
  999. [
  1000.     spawnflags(flags) =
  1001.     [
  1002.         1: "GlobalShake" : 0
  1003.     ]
  1004.     amplitude(string) : "Amplitude 0-16" : "4"
  1005.     radius(string) : "Effect radius" : "500"
  1006.     duration(string) : "Duration (seconds)" : "1"
  1007.     frequency(string) : "0.1 = jerk, 255.0 = rumble" : "2.5"
  1008. ]
  1009.  
  1010. @PointClass base(gibshooterbase, RenderFields) size(-16 -16 -16, 16 16 16) = env_shooter : "Model Shooter"
  1011. [
  1012.     shootmodel(studio) : "Model or Sprite name" : ""
  1013.     shootsounds(choices) :"Material Sound" : -1 =
  1014.     [
  1015.         -1: "None"
  1016.         0: "Glass"
  1017.         1: "Wood"
  1018.         2: "Metal"
  1019.         3: "Flesh"
  1020.         4: "Concrete"  
  1021.     ]
  1022.     scale(string) : "Gib Sprite Scale" : ""
  1023.     skin(integer) : "Gib Skin" : 0
  1024. ]
  1025.  
  1026. @PointClass iconsprite("sprites/speaker.spr") = env_sound : "DSP Sound" 
  1027. [
  1028.     radius(integer) : "Radius" : 128
  1029.     roomtype(Choices) : "Room Type" : 0 =
  1030.     [
  1031.         0 : "Normal (off)"
  1032.         1 : "Generic"
  1033.         
  1034.         2 : "Metal Small"
  1035.         3 : "Metal Medium"
  1036.         4 : "Metal Large"
  1037.     
  1038.         5 : "Tunnel Small"
  1039.         6 : "Tunnel Medium"
  1040.         7 : "Tunnel Large"
  1041.     
  1042.         8 : "Chamber Small"
  1043.         9 : "Chamber Medium"
  1044.         10: "Chamber Large"
  1045.  
  1046.         11: "Bright Small"
  1047.         12: "Bright Medium"
  1048.         13: "Bright Large"
  1049.  
  1050.         14: "Water 1"
  1051.         15: "Water 2"
  1052.         16: "Water 3"
  1053.  
  1054.         17: "Concrete Small"
  1055.         18: "Concrete Medium"
  1056.         19: "Concrete Large"
  1057.  
  1058.         20: "Big 1"
  1059.         21: "Big 2"
  1060.         22: "Big 3"
  1061.  
  1062.         23: "Cavern Small"
  1063.         24: "Cavern Medium"
  1064.         25: "Cavern Large"
  1065.  
  1066.         26: "Weirdo 1"
  1067.         27: "Weirdo 2"
  1068.         28: "Weirdo 3"
  1069.     ]
  1070. ]
  1071.  
  1072. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_spark : "Spark" 
  1073. [
  1074.     MaxDelay(string) : "Max Delay" : "0"
  1075.     spawnflags(flags) =
  1076.     [
  1077.         32: "Toggle" : 0
  1078.         64: "Start ON" : 0
  1079.     ]
  1080. ]
  1081.  
  1082. @PointClass sprite() base(Targetname, RenderFields) size(-4 -4 -4, 4 4 4) = env_sprite : "Sprite Effect" 
  1083. [
  1084.     framerate(string) : "Framerate" : "10.0"
  1085.     model(sprite) : "Sprite Name" : "sprites/glow01.spr"
  1086.     scale(string) : "Scale" : ""
  1087.     spawnflags(flags) =
  1088.     [
  1089.         1: "Start on" : 0
  1090.         2: "Play Once" : 0
  1091.     ]
  1092. ]
  1093.  
  1094. @SolidClass base(Breakable, RenderFields) = func_breakable : "Breakable Object" 
  1095. [
  1096.     spawnflags(flags) =
  1097.     [
  1098.         1 : "Only Trigger" : 0
  1099.         2 : "Touch"       : 0
  1100.         4 : "Pressure"     : 0
  1101.         256: "Instant Crowbar" : 1
  1102.     ]
  1103.     _minlight(string) : "Minimum light level"
  1104. ]
  1105.  
  1106. @SolidClass base(Global,Targetname, Target, RenderFields) = func_button : "Button" 
  1107. [
  1108.     speed(integer) : "Speed" : 5
  1109.     target(target_destination) : "Targetted object"
  1110.     netname(target_destination) : "Target Path"
  1111.     health(integer) : "Health (shootable if > 0)"
  1112.     lip(integer) : "Lip"
  1113.     master(string) : "Master" 
  1114.     sounds(choices) : "Sounds" : 0 = 
  1115.     [
  1116.         0: "None"
  1117.         1: "Big zap & Warmup"
  1118.         2: "Access Denied"
  1119.         3: "Access Granted"
  1120.         4: "Quick Combolock"
  1121.         5: "Power Deadbolt 1"
  1122.         6: "Power Deadbolt 2"
  1123.         7: "Plunger"
  1124.         8: "Small zap"
  1125.         9: "Keycard Sound"
  1126.         10: "Buzz"
  1127.         11: "Buzz Off"
  1128.         14: "Lightswitch"
  1129.     ]
  1130.     wait(integer) : "delay before reset (-1 stay)" : 3
  1131.     delay(string) : "Delay before trigger" : "0"
  1132.     spawnflags(flags) =
  1133.     [
  1134.         1: "Don't move" : 0
  1135.         32: "Toggle" : 0
  1136.         64: "Sparks" : 0
  1137.         256:"Touch Activates": 0
  1138.     ]
  1139.     locked_sound(choices) : "Locked Sound" : 0 = 
  1140.     [
  1141.         0: "None"
  1142.         2: "Access Denied"
  1143.         8: "Small zap"
  1144.         10: "Buzz"
  1145.         11: "Buzz Off"
  1146.         12: "Latch Locked"
  1147.     ]
  1148.     unlocked_sound(choices) : "Unlocked Sound" : 0 = 
  1149.     [
  1150.         0: "None"
  1151.         1: "Big zap & Warmup"
  1152.         3: "Access Granted"
  1153.         4: "Quick Combolock"
  1154.         5: "Power Deadbolt 1"
  1155.         6: "Power Deadbolt 2"
  1156.         7: "Plunger"
  1157.         8: "Small zap"
  1158.         9: "Keycard Sound"
  1159.         10: "Buzz"
  1160.         13: "Latch Unlocked"
  1161.         14: "Lightswitch"
  1162.     ]
  1163.     locked_sentence(choices) : "Locked Sentence" : 0 = 
  1164.     [
  1165.         0: "None"
  1166.         1: "Gen. Access Denied"
  1167.         2: "Security Lockout"
  1168.         3: "Blast Door"
  1169.         4: "Fire Door"
  1170.         5: "Chemical Door"
  1171.         6: "Radiation Door"
  1172.         7: "Gen. Containment"
  1173.         8: "Maintenance Door"
  1174.         9: "Broken Shut Door"
  1175.     ]
  1176.     unlocked_sentence(choices) : "Unlocked Sentence" : 0 = 
  1177.     [
  1178.         0: "None"
  1179.         1: "Gen. Access Granted"
  1180.         2: "Security Disengaged"
  1181.         3: "Blast Door"
  1182.         4: "Fire Door"
  1183.         5: "Chemical Door"
  1184.         6: "Radiation Door"
  1185.         7: "Gen. Containment"
  1186.         8: "Maintenance area"
  1187.     ]
  1188.     _minlight(string) : "Minimum light level"
  1189. ]
  1190.  
  1191. @SolidClass base(Global,RenderFields, Targetname) = func_conveyor : "Conveyor Belt" 
  1192. [
  1193.     spawnflags(flags) =
  1194.     [
  1195.         1 : "No Push" : 0
  1196.         2 : "Not Solid" : 0
  1197.     ]
  1198.     speed(string) : "Conveyor Speed" : "100"
  1199.     _minlight(string) : "Minimum light level"
  1200. ]
  1201.  
  1202. @SolidClass base(Door) = func_door : "Basic door" []
  1203.  
  1204. @SolidClass base(Door) = func_door_rotating : "Rotating door" 
  1205. [
  1206.     spawnflags(flags) =
  1207.     [
  1208.         2 : "Reverse Dir" : 0
  1209.         16: "One-way" : 0
  1210.         64: "X Axis" : 0
  1211.         128: "Y Axis" : 0
  1212.     ]
  1213.     distance(integer) : "Distance (deg)" : 90
  1214.     angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
  1215. ]
  1216.  
  1217. @SolidClass base(Appearflags, RenderFields) = func_friction : "Surface with a change in friction" 
  1218. [
  1219.     modifier(integer) : "Percentage of standard (0 - 100)" : 15
  1220. ]
  1221.  
  1222. @SolidClass base(Targetname, RenderFields, Global) = func_guntarget : "Moving platform" 
  1223. [
  1224.     speed(integer) : "Speed (units per second)" : 100
  1225.     target(target_source) : "First stop target"
  1226.     message(target_source) : "Fire on damage"
  1227.     health(integer) : "Damage to Take" : 0
  1228.     _minlight(string) : "Minimum light level"
  1229. ]
  1230.  
  1231. @SolidClass base(Global, RenderFields) = func_healthcharger: "Wall health recharger" 
  1232. [
  1233.     // dmdelay(integer) : "Deathmatch recharge delay" : 0
  1234.     _minlight(string) : "Minimum light level"
  1235. ]
  1236.  
  1237. @SolidClass base(Targetname, RenderFields) = func_illusionary : "Fake Wall/Light" 
  1238. [
  1239.  
  1240.     skin(choices) : "Contents" : -1 =
  1241.     [
  1242.         -1: "Empty"
  1243.         -7: "Volumetric Light"
  1244.     ]
  1245.     _minlight(string) : "Minimum light level"
  1246. ]
  1247.  
  1248. @SolidClass base(Targetname) = func_ladder : "Ladder" []
  1249.  
  1250. @SolidClass base(Targetname) = func_monsterclip : "Monster clip brush" []
  1251.  
  1252. @SolidClass base(Targetname) = func_mortar_field : "Mortar Field" 
  1253. [
  1254.     m_flSpread(integer) : "Spread Radius" : 64
  1255.     m_iCount(integer) : "Repeat Count" : 1
  1256.     m_fControl(Choices) : "Targeting" : 0 =
  1257.     [
  1258.         0 : "Random"
  1259.         1 : "Activator"
  1260.         2 : "Table"
  1261.     ]
  1262.     m_iszXController(target_destination) : "X Controller"
  1263.     m_iszYController(target_destination) : "Y Controller"
  1264. ]
  1265.  
  1266. @SolidClass base(Global,Appearflags, Targetname, RenderFields) = func_pendulum : "Swings back and forth" 
  1267. [
  1268.     speed(integer) : "Speed" : 100
  1269.     distance(integer) : "Distance (deg)" : 90
  1270.     damp(integer) : "Damping (0-1000)" : 0
  1271.     dmg(integer) : "Damage inflicted when blocked" : 0
  1272.     spawnflags(flags) =
  1273.     [
  1274.         1: "Start ON" : 0
  1275.         8: "Passable" : 0
  1276.         16: "Auto-return" : 0
  1277.         64: "X Axis" : 0
  1278.         128: "Y Axis" : 0
  1279.     ]
  1280.  
  1281.     _minlight(integer) : "_minlight"
  1282.     angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
  1283. ]
  1284.  
  1285. @SolidClass base(Targetname,Global,RenderFields, PlatSounds) = func_plat : "Elevator" 
  1286. [
  1287.     spawnflags(Flags) =
  1288.     [
  1289.         1: "Toggle" : 0
  1290.     ]
  1291.     height(integer) : "Travel altitude (can be negative)" : 0
  1292.     speed(integer) : "Speed" : 50
  1293.     _minlight(string) : "Minimum light level"
  1294. ]    
  1295.  
  1296. @SolidClass base(Targetname, Global, RenderFields, PlatSounds) = func_platrot : "Moving Rotating platform" 
  1297. [
  1298.     spawnflags(Flags) =
  1299.     [
  1300.         1: "Toggle" : 1
  1301.         64: "X Axis" : 0
  1302.         128: "Y Axis" : 0
  1303.     ]
  1304.     speed(integer) : "Speed of rotation" : 50
  1305.     height(integer) : "Travel altitude (can be negative)" : 0
  1306.     rotation(integer) : "Spin amount" : 0
  1307.     angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
  1308.     _minlight(string) : "Minimum light level"
  1309. ]
  1310.  
  1311. @SolidClass base(Breakable, RenderFields) = func_pushable : "Pushable object"
  1312. [
  1313.     size(choices) : "Hull Size" : 0 =
  1314.     [
  1315.         0: "Point size"
  1316.         1: "Player size"
  1317.         2: "Big Size"
  1318.         3: "Player duck"
  1319.     ]
  1320.     spawnflags(flags) =
  1321.     [
  1322.         128: "Breakable" : 0
  1323.     ]
  1324.     friction(integer) : "Friction (0-400)" : 50
  1325.     buoyancy(integer) : "Buoyancy" : 20
  1326.     _minlight(string) : "Minimum light level"
  1327. ]
  1328.  
  1329. @SolidClass base(Global,RenderFields) = func_recharge: "Battery recharger" 
  1330. [
  1331.     // dmdelay(integer) : "Deathmatch recharge delay" : 0
  1332.     _minlight(string) : "Minimum light level"
  1333. ]
  1334.  
  1335. @SolidClass base(Targetname, Global, RenderFields) = func_rot_button : "RotatingButton" 
  1336. [
  1337.     target(target_destination) : "Targetted object"
  1338.     // changetarget will change the button's target's TARGET field to the button's changetarget.
  1339.     changetarget(target_destination) : "ChangeTarget Name"
  1340.     master(string) : "Master" 
  1341.     speed(integer) : "Speed" : 50
  1342.     health(integer) : "Health (shootable if > 0)"
  1343.     sounds(choices) : "Sounds" : 21 = 
  1344.     [
  1345.         21: "Squeaky"
  1346.         22: "Squeaky Pneumatic"
  1347.         23: "Ratchet Groan"
  1348.         24: "Clean Ratchet"
  1349.         25: "Gas Clunk"
  1350.     ]
  1351.     wait(choices) : "Delay before reset" : 3 =
  1352.     [
  1353.         -1: "Stays pressed"
  1354.     ]
  1355.     delay(string) : "Delay before trigger" : "0"
  1356.     distance(integer) : "Distance (deg)" : 90
  1357.     spawnflags(flags) =
  1358.     [
  1359.         1 : "Not solid" : 0
  1360.         2 : "Reverse Dir" : 0
  1361.         32: "Toggle" : 0
  1362.         64: "X Axis" : 0
  1363.         128: "Y Axis" : 0
  1364.         256:"Touch Activates": 0
  1365.     ]
  1366.     _minlight(integer) : "_minlight"
  1367.     angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
  1368. ]
  1369.  
  1370. @SolidClass base(Targetname, Global, RenderFields) = func_rotating : "Rotating Object"
  1371. [
  1372.     speed(integer)    : "Rotation Speed" : 0
  1373.     volume(integer) : "Volume (10 = loudest)" : 10
  1374.     fanfriction(integer) : "Friction (0 - 100%)" : 20
  1375.     sounds(choices) : "Fan Sounds" : 0 =
  1376.     [
  1377.         0 : "No Sound" 
  1378.         1 : "Fast Whine"
  1379.         2 : "Slow Rush"
  1380.         3 : "Medium Rickety"
  1381.         4 : "Fast Beating"
  1382.         5 : "Slow Smooth"
  1383.     ]
  1384.     message(sound) : "WAV Name"
  1385.     spawnflags(flags) =
  1386.     [
  1387.         1 : "Start ON"         : 0
  1388.         2 : "Reverse Direction" : 0
  1389.         4 : "X Axis"         : 0
  1390.         8 : "Y Axis"         : 0
  1391.         16: "Acc/Dcc"        : 0
  1392.         32: "Fan Pain"        : 0
  1393.         64: "Not Solid"        : 0
  1394.         128: "Small Radius" : 0
  1395.         256: "Medium Radius" : 0
  1396.         512: "Large Radius" : 1    
  1397.     ]
  1398.     _minlight(integer) : "_minlight"
  1399.     angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
  1400.     spawnorigin(string) : "X Y Z - Move here after lighting" : "0 0 0"
  1401.     dmg(integer) : "Damage inflicted when blocked" : 0
  1402. ]
  1403.  
  1404. @SolidClass base(BaseTank) = func_tank : "Brush Gun Turret" 
  1405. [
  1406.     bullet(choices) : "Bullets" : 0 = 
  1407.     [
  1408.         0: "None"
  1409.         1: "9mm"
  1410.         2: "MP5"
  1411.         3: "12mm"
  1412.     ]
  1413. ]
  1414.  
  1415. @SolidClass = func_tankcontrols : "Tank controls"
  1416. [
  1417.     target(target_destination) : "Tank entity name"
  1418. ]
  1419.  
  1420. @SolidClass base(BaseTank) = func_tanklaser : "Brush Laser Turret" 
  1421. [
  1422.     laserentity(target_source) : "env_laser Entity"
  1423. ]
  1424.  
  1425. @SolidClass base(BaseTank) = func_tankrocket : "Brush Rocket Turret" []
  1426.  
  1427.  
  1428. @SolidClass base(BaseTank) = func_tankmortar : "Brush Mortar Turret" 
  1429. [
  1430.     iMagnitude(Integer) : "Explosion Magnitude" : 100
  1431. ]
  1432.  
  1433. @SolidClass base(Trackchange) = func_trackautochange : "Automatic track changing platform"
  1434. [
  1435.     _minlight(string) : "Minimum light level"
  1436. ]
  1437.  
  1438. @SolidClass base(Trackchange) = func_trackchange : "Train track changing platform"
  1439. [
  1440.     _minlight(string) : "Minimum light level"
  1441. ]
  1442.  
  1443. @SolidClass base(Targetname, Global, RenderFields) = func_tracktrain : "Track Train" 
  1444. [
  1445.     spawnflags(flags) =
  1446.     [
  1447.         1 : "No Pitch (X-rot)" : 0
  1448.         2 : "No User Control" : 0
  1449.         8 : "Passable" : 0
  1450.         32 : "TH_SOUNDS" : 0
  1451.     ]
  1452.     target(target_destination) : "First stop target"
  1453.     sounds(choices) : "Sound" : 0 =
  1454.     [
  1455.         0: "None"
  1456.         1: "Rail 1"
  1457.         2: "Rail 2"
  1458.         3: "Rail 3"
  1459.         4: "Rail 4"
  1460.         5: "Rail 6"
  1461.         6: "Rail 7"
  1462.     ]
  1463.     wheels(integer) : "Distance between the wheels" : 50
  1464.     height(integer) : "Height above track" : 4
  1465.     startspeed(integer) : "Initial speed" : 0
  1466.     speed(integer) : "Speed (units per second)" : 64
  1467.     dmg(integer) : "Damage on crush" : 0    
  1468.     volume(integer) : "Volume (10 = loudest)" : 10
  1469.     bank(string) : "Bank angle on turns" : "0"
  1470.     _minlight(string) : "Minimum light level"
  1471. ]
  1472.  
  1473. @SolidClass = func_traincontrols : "Train Controls"
  1474. [
  1475.     target(target_destination) : "Train Name"
  1476. ]
  1477.  
  1478. @SolidClass base(Targetname, Global, RenderFields) = func_train : "Moving platform" 
  1479. [
  1480.     target(target_source) : "First stop target"
  1481.     movesnd(choices) : "Move Sound" : 0 = 
  1482.     [
  1483.         0: "No Sound"
  1484.         1: "big elev 1"
  1485.         2: "big elev 2"
  1486.         3: "tech elev 1"
  1487.         4: "tech elev 2"
  1488.         5: "tech elev 3"
  1489.         6: "freight elev 1"
  1490.         7: "freight elev 2"
  1491.         8: "heavy elev"
  1492.         9: "rack elev"
  1493.         10: "rail elev"
  1494.         11: "squeek elev"
  1495.         12: "odd elev 1"
  1496.         13: "odd elev 2"
  1497.     ]
  1498.     stopsnd(choices) : "Stop Sound" : 0 = 
  1499.     [
  1500.         0: "No Sound"
  1501.         1: "big elev stop1"
  1502.         2: "big elev stop2"
  1503.         3: "freight elev stop"
  1504.         4: "heavy elev stop"
  1505.         5: "rack stop"
  1506.         6: "rail stop"
  1507.         7: "squeek stop"
  1508.         8: "quick stop"
  1509.     ]
  1510.     speed(integer) : "Speed (units per second)" : 64
  1511.     dmg(integer) : "Damage on crush" : 0
  1512.     skin(integer) : "Contents" : 0
  1513.     volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
  1514.     spawnflags(flags) =
  1515.     [
  1516.         8 : "Not solid" : 0
  1517.     ]
  1518.     _minlight(string) : "Minimum light level"
  1519. ]
  1520.  
  1521. @SolidClass base(Targetname, Appearflags, RenderFields, Global) = func_wall : "Wall" 
  1522. [
  1523.     _minlight(string) : "Minimum light level"
  1524. ]
  1525.  
  1526. @SolidClass base(func_wall) = func_wall_toggle : "Toggleable geometry" 
  1527. [
  1528.     spawnflags(flags) =
  1529.     [
  1530.         1 : "Starts Invisible" : 0
  1531.     ]
  1532. ]
  1533.  
  1534. @SolidClass base(Door) = func_water : "Liquid" 
  1535. [
  1536.     spawnflags(flags) =
  1537.     [
  1538.         1 : "Starts Open" : 0
  1539.         256:"Use Only" : 0
  1540.     ]
  1541.     skin(choices) : "Contents" : -3 =
  1542.     [
  1543.         -3: "Water"
  1544.         -4: "Slime"
  1545.         -5: "Lava"
  1546.     ]
  1547.     WaveHeight(string) : "Wave Height" : "3.2"
  1548. ]
  1549.  
  1550. //
  1551. // game entities (requires Half-Life 1.0.0.9)
  1552. //
  1553.  
  1554. @PointClass base(Targetname, Targetx) = game_counter : "Fires when it hits limit"
  1555. [
  1556.     spawnflags(flags) =
  1557.     [
  1558.         1: "Remove On fire" : 0
  1559.         2: "Reset On fire" : 1
  1560.     ]
  1561.     master(string) : "Master"
  1562.     frags(integer) : "Initial Value" : 0
  1563.     health(integer) : "Limit Value" : 10
  1564. ]
  1565.  
  1566. @PointClass base(Targetname, Target) = game_counter_set : "Sets a game_counter"
  1567. [
  1568.     spawnflags(flags) =
  1569.     [
  1570.         1: "Remove On fire" : 0
  1571.     ]
  1572.     master(string) : "Master"
  1573.     frags(integer) : "New Value" : 10
  1574. ]
  1575.  
  1576. @PointClass base(Targetname) = game_end : "End this multiplayer game" 
  1577. [
  1578.     master(string) : "Master" 
  1579. ]
  1580.  
  1581. @PointClass base(Targetname) = game_player_equip : "Initial player equipment"
  1582. [
  1583.     spawnflags(flags) =
  1584.     [
  1585.         1: "Use Only" : 0
  1586.     ]
  1587.     master(string) : "Team Master"
  1588. ]
  1589.  
  1590. @PointClass base(Targetname) = game_player_hurt : "Hurts player who fires"
  1591. [
  1592.     dmg(string) : "Damage To Apply" : "999"
  1593.     spawnflags(flags) =
  1594.     [
  1595.         1: "Remove On fire" : 0
  1596.     ]
  1597.     master(string) : "Master" 
  1598. ]
  1599.  
  1600. @PointClass base(Targetname) = game_player_team : "Allows player to change teams"
  1601. [
  1602.     spawnflags(flags) =
  1603.     [
  1604.         1 : "Remove On fire" : 0
  1605.         2 : "Kill Player" : 0
  1606.         4 : "Gib Player" : 0
  1607.     ]
  1608.     target(string) : "game_team_master to use" 
  1609.     master(string) : "Master"
  1610. ]
  1611.  
  1612. @PointClass base(Targetname) = game_score : "Award/Deduct Points" 
  1613. [
  1614.     spawnflags(flags) =
  1615.     [
  1616.         1: "Allow Negative" : 0
  1617.         2: "Team Points" : 0
  1618.     ]
  1619.  
  1620.     points(integer) : "Points to add (+/-)" : 1
  1621.     master(string) : "Master" 
  1622. ]
  1623.  
  1624. @PointClass base(Targetname, Targetx) = game_team_master : "Team based master/relay"
  1625. [
  1626.     spawnflags(flags) =
  1627.     [
  1628.         1: "Remove On fire" : 0
  1629.     ]
  1630.     triggerstate(choices) : "Trigger State" : 0 = 
  1631.     [
  1632.         0: "Off"
  1633.         1: "On"
  1634.         2: "Toggle"
  1635.     ]
  1636.     teamindex(integer) : "Team Index (-1 = no team)" : -1
  1637.     master(string) : "Master" 
  1638. ]
  1639.  
  1640. @PointClass base(Targetname, Targetx) = game_team_set : "Sets team of team_master"
  1641. [
  1642.     spawnflags(flags) =
  1643.     [
  1644.         1: "Remove On fire" : 0
  1645.     ]
  1646.     master(string) : "Master" 
  1647. ]
  1648.  
  1649. @PointClass base(Targetname, Target) = game_text : "HUD Text Message" 
  1650. [
  1651.     spawnflags(flags) =
  1652.     [
  1653.         1: "All Players" : 0
  1654.     ]
  1655.  
  1656.     message(string) : "Message Text"
  1657.     x(string) : "X (0 - 1.0 = left to right) (-1 centers)" : "-1"
  1658.     y(string) : "Y (0 - 1.0 = top to bottom) (-1 centers)" : "-1"
  1659.     effect(Choices) : "Text Effect" : 0 =
  1660.     [
  1661.         0 : "Fade In/Out"
  1662.         1 : "Credits"
  1663.         2 : "Scan Out"
  1664.     ]
  1665.     color(color255) : "Color1" : "100 100 100"
  1666.     color2(color255) : "Color2" : "240 110 0"
  1667.     fadein(string) : "Fade in Time (or character scan time)" : "1.5"
  1668.     fadeout(string) : "Fade Out Time" : "0.5"
  1669.     holdtime(string) : "Hold Time" : "1.2"
  1670.     fxtime(string) : "Scan time (scan effect only)" : "0.25"
  1671.     channel(choices) : "Text Channel" : 1 =
  1672.     [
  1673.         1 : "Channel 1"
  1674.         2 : "Channel 2"
  1675.         3 : "Channel 3" 
  1676.         4 : "Channel 4"
  1677.     ]
  1678.     master(string) : "Master" 
  1679. ]
  1680.  
  1681. @SolidClass base(Targetname) = game_zone_player : "Player Zone brush"
  1682. [
  1683.     intarget(target_destination) : "Target for IN players"
  1684.     outtarget(target_destination) : "Target for OUT players"
  1685.     incount(target_destination) : "Counter for IN players"
  1686.     outcount(target_destination) : "Counter for OUT players"
  1687.     // master(string) : "Master" 
  1688. ]
  1689.  
  1690. @PointClass base(gibshooterbase) = gibshooter : "Gib Shooter" []
  1691.  
  1692. //
  1693. // info entities
  1694. //
  1695.  
  1696. @PointClass decal() base(Targetname, Appearflags) = infodecal : "Decal"
  1697. [
  1698.     texture(decal)
  1699. ]
  1700.  
  1701. @PointClass base(Targetname) size(-24 -24 0, 24 24 16) color(20 190 60) = info_bigmomma : "Big Mamma Node" 
  1702. [
  1703.     spawnflags(Flags) =
  1704.     [
  1705.         1 : "Run To Node" : 0
  1706.         2 : "Wait Indefinitely" : 0
  1707.     ]
  1708.     target(target_destination) : "Next node"
  1709.     radius(string) : "Radius" : "0"
  1710.     reachdelay(string) : "Wait after approach" : "0"
  1711.     killtarget(target_destination) : "KillTarget"
  1712.     reachtarget(target_destination) : "Fire on approach"
  1713.     reachsequence(string) : "Sequence on approach" : ""
  1714.     health(string) : "Health on approach" : ""
  1715.     presequence(string) : "Sequence before approach" : ""
  1716. ]
  1717.  
  1718. @PointClass base(Target) size(-4 -4 -4, 4 4 4) color(0 255 0) = info_intermission : "Intermission Spot" []
  1719.  
  1720. @PointClass base(Targetname) = info_landmark : "Transition Landmark" []
  1721.  
  1722. @PointClass size(-24 -24 -4, 24 24 4) color(255 255 0) = info_node : "ai node"
  1723. [
  1724.     hinttype(choices) : "Hint" : 0 = 
  1725.     [
  1726.           0: "None"
  1727.  
  1728.           1: "World: Door"
  1729.           2: "World: Window"
  1730.           3: "World: Button"
  1731.           4: "World: Machinery"
  1732.           5: "World: Ledge"
  1733.           6: "World: Light Source"
  1734.           7: "World: Heat Source"
  1735.           8: "World: Blinking Light"
  1736.           9: "World: Bright Colors"
  1737.          10: "World: Human Blood Decal"
  1738.          11: "World: Alien Blood Decal"
  1739.  
  1740.         300: "Stuka: Ceiling Perch"
  1741.         301: "Stuka: Landing spot"
  1742.     ]
  1743.     activity(choices) : "Activity" : 0 =
  1744.     [
  1745.          0: "None"
  1746.         35: "Eat"
  1747.         45: "Inspect Ground"
  1748.         46: "Inspect Wall"
  1749.     ]
  1750. ]
  1751.  
  1752. @PointClass size(-32 -32 0, 32 32 64) color(255 255 0) = info_node_air : "ai air node" []
  1753.  
  1754. @PointClass base(Targetname) = info_null : "info_null (spotlight target)" []
  1755.  
  1756. @PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" []
  1757. @PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" 
  1758. [
  1759.     target(target_destination) : "Target"
  1760.     master(string) : "Master"
  1761. ]
  1762. @PointClass base(PlayerClass) = info_player_start : "Player 1 start" []
  1763.  
  1764. @PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(200 100 50) = info_target : "Beam Target" []
  1765. @PointClass size(-8 -8 0, 8 8 16) base(PlayerClass, Targetname) = info_teleport_destination : "Teleport destination" []
  1766.  
  1767. //
  1768. // items
  1769. //
  1770.  
  1771. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_airtank : "Oxygen tank" []
  1772. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_antidote : "Poison antidote" []
  1773. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_battery : "HEV battery" []
  1774. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_healthkit : "Small Health Kit"
  1775. [
  1776.     health(integer) : "TH_HEALTH" : 0
  1777. ]
  1778.  
  1779. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_longjump : "Longjump Module" []
  1780. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_security : "Security card" []
  1781. @PointClass size(-16 -16 0, 16 16 36) base(Weapon, Targetx) = item_suit : "HEV Suit" 
  1782. [
  1783.     spawnflags(Flags) =
  1784.     [
  1785.         1 : "Short Logon" : 0
  1786.         32: "TH_REDMODE" : 0
  1787.     ]
  1788. ]
  1789.  
  1790. //
  1791. // lights
  1792. //
  1793.  
  1794. @PointClass iconsprite("sprites/lightbulb.spr") base(Target, Targetname, Light) = light : "Invisible lightsource"
  1795. [
  1796.     spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  1797. ]
  1798.  
  1799. @PointClass iconsprite("sprites/lightbulb.spr") base(Targetname, Target) = light_spot : "Spotlight" 
  1800. [
  1801.     _cone(integer) : "Inner (bright) angle" : 30
  1802.     _cone2(integer) : "Outer (fading) angle" : 45
  1803.     pitch(integer) : "Pitch" : -90
  1804.     _light(color255) : "Brightness" : "255 255 128 200"
  1805.     _sky(Choices) : "Is Sky" : 0 = 
  1806.     [ 
  1807.         0 : "No"
  1808.         1 : "Yes"
  1809.     ]
  1810.     spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  1811.       style(Choices) : "Appearance" : 0 =
  1812.     [
  1813.         0 : "Normal"
  1814.         10: "Fluorescent flicker"
  1815.         2 : "Slow, strong pulse"
  1816.         11: "Slow pulse, noblack"
  1817.         5 : "Gentle pulse"
  1818.         1 : "Flicker A"
  1819.         6 : "Flicker B"
  1820.         3 : "Candle A"
  1821.         7 : "Candle B"
  1822.         8 : "Candle C"
  1823.         4 : "Fast strobe"
  1824.         9 : "Slow strobe"
  1825.     ]
  1826.     pattern(string) : "Custom Appearance"
  1827. ]
  1828.  
  1829. @PointClass iconsprite("sprites/lightbulb.spr") = light_environment : "Environment" 
  1830. [
  1831.     pitch(integer) : "Pitch" : 0
  1832.     _light(color255) : "Brightness" : "255 255 128 200"
  1833. ]
  1834.  
  1835. @SolidClass base(Door) = momentary_door : "Momentary/Continuous door" 
  1836. [
  1837.     spawnflags(flags) =
  1838.     [
  1839.         1 : "Starts Open" : 0
  1840.     ]
  1841. ]
  1842.  
  1843. @SolidClass base(RenderFields, Targetname) = momentary_rot_button : "Direct wheel control" 
  1844. [
  1845.     target(target_destination) : "Targetted object"
  1846.     speed(integer) : "Speed" : 50
  1847.     master(string) : "Master" 
  1848.     sounds(choices) : "Sounds" : 0 = 
  1849.     [
  1850.         0: "None"
  1851.         1: "Big zap & Warmup"
  1852.         2: "Access Denied"
  1853.         3: "Access Granted"
  1854.         4: "Quick Combolock"
  1855.         5: "Power Deadbolt 1"
  1856.         6: "Power Deadbolt 2"
  1857.         7: "Plunger"
  1858.         8: "Small zap"
  1859.         9: "Keycard Sound"
  1860.         21: "Squeaky"
  1861.         22: "Squeaky Pneumatic"
  1862.         23: "Ratchet Groan"
  1863.         24: "Clean Ratchet"
  1864.         25: "Gas Clunk"
  1865.     ]
  1866.     distance(integer) : "Distance (deg)" : 90
  1867.     returnspeed(integer) : "Auto-return speed" : 0
  1868.     spawnflags(flags) =
  1869.     [
  1870.         1: "Door Hack" : 0
  1871.         2: "Not useable" : 0
  1872.         16: "Auto Return" : 0
  1873.         64: "X Axis" : 0
  1874.         128: "Y Axis" : 0
  1875.     ]
  1876.     _minlight(integer) : "_minlight"
  1877.     angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
  1878. ]
  1879.  
  1880. //
  1881. // monsters
  1882. //
  1883.  
  1884. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_alien_controller : "Controller"
  1885. [
  1886.     spawnflags(Flags) = 
  1887.     [
  1888.         32: "TH_REDBLOOD" : 0
  1889.     ]
  1890. ]
  1891.  
  1892. @PointClass base(Monster) size(-32 -32 0, 32 32 64) = monster_alien_grunt : "Alien Grunt" 
  1893. [
  1894.     netname(string) : "Squad Name"
  1895.     message(string) : "TH_WAVEDIR"
  1896.     spawnflags(Flags) =
  1897.     [
  1898.         32 : "SquadLeader" : 0
  1899.         256 : "TH_NOZAP" : 0
  1900.     ]
  1901.     health(integer) : "TH_HEALTH" : 0
  1902. ]
  1903. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_alien_slave : "Vortigaunt" 
  1904. [
  1905.     model(string) : "TH_MODEL"
  1906.     netname(string) : "Squad Name"
  1907.     spawnflags(Flags) =
  1908.     [
  1909.         32 : "SquadLeader" : 0
  1910.         64 : "IgnorePlayer" : 0
  1911.         256 : "TH_NOZAP" : 0
  1912.     ]
  1913. ]
  1914. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_th_babykelly : "TH_BABYKELLY" 
  1915. [
  1916.     model(string) : "TH_MODEL"
  1917.     netname(string) : "Squad Name"
  1918.     spawnflags(Flags) =
  1919.     [
  1920.         32 : "SquadLeader" : 0
  1921.         64 : "IgnorePlayer" : 0
  1922.         256 : "TH_NOZAP" : 0
  1923.     ]
  1924. ]
  1925. @PointClass base(Monster) size(-360 -360 -172, 360 360 8) = monster_apache : "Apache" 
  1926. [
  1927.     skin(choices) : "TH_SKIN" : 0 = 
  1928.     [
  1929.         0 : "TH_POLICE"
  1930.         1 : "TH_ARMY"
  1931.     ]
  1932.     model(string) : "TH_MODEL"
  1933.     health(integer) : "TH_HEALTH" : 0
  1934.     spawnflags(Flags) = 
  1935.     [
  1936.         8 : "NoWreckage"    : 0
  1937.         64 : "Start Inactive" : 0
  1938.     ]
  1939. ]
  1940. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_th_cyberfranklin : "TH_CYBERFRANKLIN" []
  1941. @PointClass base(Monster) size(-360 -360 -172, 360 360 8) = monster_th_boss : "TH_BOSS"
  1942. [
  1943.     health(integer) : "TH_HEALTH" : 0
  1944.     spawnflags(Flags) = 
  1945.     [
  1946.         8 : "NoWreckage"    : 0
  1947.         64 : "Start Inactive" : 0
  1948.     ]
  1949. ]
  1950. @PointClass base(Monster) size(-16 -16 0, 16 16 36) = monster_babycrab : "Baby Headcrab" []
  1951. @PointClass base(RenderFields) size(-16 -16 -36, 16 16 0) = monster_barnacle : "Barnacle Monster" []
  1952. @PointClass base(Monster,TalkMonster) size(-16 -16 0, 16 16 72) = monster_barney : "Barney"
  1953. [
  1954.     model(string) : "TH_MODEL"
  1955.     spawnflags(Flags) = 
  1956.     [
  1957.         64: "TH_ZOMBIECOP" : 0
  1958.     ]
  1959.     skin(choices) : "TH_SKINTYPE" : 0 =
  1960.     [
  1961.         0 : "TH_Normal cop"
  1962.         1 : "TH_Young Zombie cop"
  1963.         2 : "TH_Old Zombie cop"
  1964.         3 : "TH_Asylum Guard"
  1965.         4 : "TH_Zombie Asylum Guard"
  1966.     ]
  1967.     health(integer) : "TH_HEALTH" : 0
  1968. ]
  1969.  
  1970. @PointClass base(RenderFields,Appearflags) size(-16 -16 0, 16 16 72) = monster_barney_dead : "Dead Barney" 
  1971. [
  1972.     model(string) : "TH_MODEL"
  1973.       pose(Choices) : "Pose" : 0 =
  1974.     [
  1975.         0 : "On back"
  1976.         1 : "On side"
  1977.         2 : "On stomach"
  1978.     ]
  1979. ]
  1980. @PointClass base(Monster) size(-95 -95 0, 95 95 190) = monster_bigmomma : "Big Mamma" 
  1981. [
  1982.     netname(string) : "First node" : ""
  1983.     spawnflags(Flags) = 
  1984.     [
  1985.         32: "TH_REDBLOOD" : 0
  1986.     ]
  1987. ]
  1988. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_bloater : "Bloater"
  1989. [
  1990.     spawnflags(Flags) = 
  1991.     [
  1992.         32: "TH_REDBLOOD" : 0
  1993.     ]
  1994. ]
  1995.  
  1996. @PointClass base(Monster) size(-32 -32 0, 32 32 64) = monster_bullchicken : "BullChicken" []
  1997. @PointClass base(Monster) size(-32 -32 0, 32 32 64) = monster_th_zombiebull : "TH_ZOMBIEBULL" []
  1998. @PointClass base(Monster) size(-160 -160 0, 160 160 256) = monster_th_megasquid : "TH_MEGASQUID" []
  1999. @PointClass base(Monster) size(-3 -3 0, 3 3 3) = monster_cockroach : "Cockroach" []
  2000. @PointClass base(Monster) size(-16 -16 0, 16 16 16) = monster_flyer_flock : "Flock of Flyers" 
  2001. [
  2002.     iFlockSize(Integer) : "Flock Size" : 8
  2003.     flFlockRadius(Integer) : "Flock Radius" : 128
  2004. ]
  2005. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_furniture : "Monster Furniture" 
  2006. [
  2007.     model(studio) : "model"
  2008.  
  2009. ]
  2010. @PointClass base(Monster) size(-32 -32 0, 32 32 128) = monster_gargantua : "Gargantua"
  2011. [
  2012.     spawnflags(Flags) = 
  2013.     [
  2014.         32: "TH_REDBLOOD" : 0
  2015.     ]
  2016. ]
  2017. @PointClass base(Monster, RenderFields) size(-16 -16 -36, 16 16 36) = monster_generic : "Generic Script Monster" 
  2018. [
  2019.     spawnflags(Flags) = 
  2020.     [
  2021.         4 : "Not solid"    : 0
  2022.     ]
  2023.     model(studio) : "model"
  2024.     body(Integer) : "Body" : 0
  2025. ]
  2026. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_gman : "G-Man" []
  2027. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_grunt_repel : "Human Grunt (Repel)"
  2028. [
  2029.     spawnflags(Flags) =
  2030.     [
  2031.         32 : "TH_PARACHUTE" : 0
  2032.     ]
  2033. ]
  2034. @PointClass base(Weapon, Targetx, RenderFields) = monster_handgrenade : "Live Handgrenade" []
  2035. @PointClass base(Monster) size(-16 -16 0, 16 16 36) = monster_headcrab : "Head Crab" []
  2036. @PointClass base(Monster) size(-12 -12 0, 12 12 24) = einar_hand : "TH_HAND" []
  2037. @PointClass base(Monster) size(-12 -12 0, 12 12 24) = monster_th_chicken : "TH_CHICKEN" []
  2038. @PointClass base(Appearflags,RenderFields) size(-16 -16 0, 16 16 72) = monster_hevsuit_dead : "Dead HEV Suit" 
  2039. [
  2040.       pose(Choices) : "Pose" : 0 =
  2041.     [
  2042.         0 : "On back"
  2043.         1 : "Seated"
  2044.         2 : "On stomach"
  2045.         3 : "On Table"
  2046.     ]
  2047. ]
  2048. @PointClass base(Appearflags,RenderFields) size(-16 -16 0, 16 16 72) = monster_hgrunt_dead : "Dead Human Grunt" 
  2049. [
  2050.     spawnflags(Flags) = 
  2051.     [
  2052.         64 : "TH_ZSOLDIER" : 0
  2053.     ]
  2054.     model(string) : "TH_MODEL"
  2055.       pose(Choices) : "Pose" : 0 =
  2056.     [
  2057.         0 : "On stomach"
  2058.         1 : "On side"
  2059.         2 : "Seated"
  2060.     ]
  2061.     body(Choices) : "Body" : 0 =
  2062.     [
  2063.         0 : "Grunt with Gun"
  2064.         1 : "Commander with Gun"
  2065.         2 : "Grunt no Gun"
  2066.         3 : "Commander no Gun"
  2067.     ]
  2068. ]
  2069. @PointClass base(Monster) size(-16 -16 0, 16 16 36) = monster_houndeye : "Houndeye" 
  2070. [
  2071.     netname(string) : "Squad Name"
  2072.     spawnflags(Flags) =
  2073.     [
  2074.         32 : "SquadLeader" : 0
  2075.         256 : "TH_NOZAP" : 0
  2076.     ]
  2077. ]
  2078. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_assassin : "Human Assassin" []
  2079. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_grunt : "Human Grunt (camo)" 
  2080. [
  2081.     model(string) : "TH_MODEL"
  2082.     spawnflags(Flags) =
  2083.     [
  2084.         32 : "SquadLeader" : 0
  2085.         64 : "TH_ZSOLDIER" : 0
  2086.     ]
  2087.     netname(string) : "Squad Name"
  2088.     weapons(Choices) : "Weapons" : 1 =
  2089.     [
  2090.         1 : "9mmAR"
  2091.         3 : "9mmAR + HG"
  2092.         5 : "9mmAR + GL"
  2093.         8 : "Shotgun"
  2094.         10 : "Shotgun + HG"
  2095.     ]
  2096. ]
  2097. @PointClass base(Monster) size(-32 -32 0, 32 32 64) = monster_ichthyosaur : "Ichthyosaur" []
  2098. @PointClass base(Monster) size(-6 -6 0, 6 6 6) = monster_leech : "Leech" []
  2099. @PointClass base(Monster) size(-16 -16 -32, 16 16 32) = monster_miniturret : "Mini Auto Turret"
  2100. [
  2101.     orientation(Choices) : "Orientation" : 0 =
  2102.     [
  2103.         0 : "Floor Mount"
  2104.         1 : "Ceiling Mount"
  2105.     ]
  2106.     spawnflags(Flags) = 
  2107.     [
  2108.         32 : "Autostart" : 0
  2109.         64 : "Start Inactive" : 0
  2110.     ]
  2111. ]
  2112. @PointClass base(Monster) size(-192 -192 0, 192 192 384) = monster_nihilanth : "Nihilanth"
  2113. [
  2114.     spawnflags(Flags) = 
  2115.     [
  2116.         32: "TH_REDBLOOD" : 0
  2117.     ]
  2118. ]
  2119. @PointClass base(Monster) size(-480 -480 -112, 480 480 24) = monster_osprey : "Osprey"
  2120. [
  2121.     spawnflags(Flags) = 
  2122.     [
  2123.         64 : "Start Inactive" : 0
  2124.     ]
  2125. ]
  2126. @PointClass base(Monster) size(-6 -6 0, 6 6 6) = monster_rat : "Rat (no ai?)" []
  2127. @PointClass base(Weapon,Targetx,RenderFields) = monster_satchelcharge : "Live Satchel Charge" []
  2128. @PointClass base(Monster, TalkMonster) size(-16 -16 0, 16 16 72) = monster_scientist : "Scared Scientist" 
  2129. [
  2130.       body(Choices) : "Body" : -1 =
  2131.     [
  2132.         -1 : "Random"
  2133.         0 : "Glasses"
  2134.         1 : "Einstein"
  2135.         2 : "Luther"
  2136.         3 : "Slick"
  2137.     ]
  2138.     skin(choices) : "TH_CLOTHINGTYPE" : 0 = 
  2139.     [
  2140.         0 : "TH_Civilian"
  2141.         2 : "TH_Doctor"
  2142.         3 : "TH_Preist"
  2143.         4 : "TH_Patient"
  2144.     ]
  2145.     health(integer) : "TH_HEALTH (0=default)" : 0
  2146. ]
  2147. @PointClass base(Monster, TalkMonster) size(-16 -16 0, 16 16 72) = einar_civ : "TH_CIV"
  2148. [
  2149.       body(Choices) : "TH_BODY" : 0 =
  2150.     [
  2151.         0 : "TH_Glasses_with_clipboard_or_bible"
  2152.         1 : "TH_Doc_Franklin"
  2153.         2 : "TH_Rear_Echelon_Officer"
  2154.         3 : "TH_Slick_in_Biohazard_suit"
  2155.         4 : "TH_Orderly"
  2156.     ]
  2157.     skin(choices) : "TH_CLOTHINGTYPE" : 0 = 
  2158.     [
  2159.         0 : "TH_Civilian[young_RE_Officer]"
  2160.         2 : "TH_Doctor[Old_RE_Officer]"
  2161.         3 : "TH_Preist[Old_RE_Officer]"
  2162.         4 : "TH_Patient[Young_RE_Officer]"
  2163.     ]
  2164.     health(integer) : "TH_HEALTH" : 0
  2165. ]
  2166.  
  2167. @PointClass base(Appearflags,RenderFields) size(-16 -16 0, 16 16 72) = monster_scientist_dead : "Dead Scientist" 
  2168. [
  2169.       body(Choices) : "Body" : -1 =
  2170.     [
  2171.         -1 : "Random"
  2172.         0 : "Glasses"
  2173.         1 : "Einstein"
  2174.         2 : "Luther"
  2175.         3 : "Slick"
  2176.     ]
  2177.       pose(Choices) : "Pose" : 0 =
  2178.     [
  2179.         0 : "On back"
  2180.         1 : "On Stomach"
  2181.         2 : "Sitting"
  2182.         3 : "Hanging"
  2183.         4 : "Table1"
  2184.         5 : "Table2"
  2185.         6 : "Table3"
  2186.     ]
  2187.     skin(choices) : "TH_CLOTHINGTYPE" : 0 = 
  2188.     [
  2189.         0 : "TH_Civilian"
  2190.         2 : "TH_Doctor"
  2191.         3 : "TH_Preist"
  2192.         4 : "TH_Patient"
  2193.     ]
  2194. ]
  2195. @PointClass base(Appearflags,RenderFields) size(-16 -16 0, 16 16 72) = einar_civ_dead : "TH_DEADCIV"
  2196. [
  2197.       body(Choices) : "TH_BODY" : 0 =
  2198.     [
  2199.         0 : "TH_Glasses_with_clipboard_or_bible"
  2200.         1 : "TH_Doc_Franklin"
  2201.         2 : "TH_Rear_Echelon_Officer"
  2202.         3 : "TH_Slick_in_Biohazard_suit"
  2203.     ]
  2204.     skin(choices) : "TH_CLOTHINGTYPE" : 0 = 
  2205.     [
  2206.         0 : "TH_Civilian[young_RE_Officer]"
  2207.         2 : "TH_Doctor[Old_RE_Officer]"
  2208.         3 : "TH_Preist[Old_RE_Officer]"
  2209.         4 : "TH_Patient[Young_RE_Officer]"
  2210.     ]
  2211.       pose(Choices) : "Pose" : 0 =
  2212.     [
  2213.         0 : "On back"
  2214.         1 : "On Stomach"
  2215.         2 : "Sitting"
  2216.         3 : "Hanging"
  2217.         4 : "Table1"
  2218.         5 : "Table2"
  2219.         6 : "Table3"
  2220.     ]
  2221. ]
  2222. @PointClass base(Monster) size(-14 -14 22, 14 14 72) = monster_sitting_scientist : "Sitting Scientist" 
  2223. [
  2224.       body(Choices) : "Body" : -1 =
  2225.     [
  2226.         -1 : "Random"
  2227.         0 : "Glasses"
  2228.         1 : "Einstein"
  2229.         2 : "Luther"
  2230.         3 : "Slick"
  2231.     ]
  2232.     skin(choices) : "TH_CLOTHINGTYPE" : 0 = 
  2233.     [
  2234.         0 : "TH_Civilian"
  2235.         2 : "TH_Doctor"
  2236.         3 : "TH_Preist"
  2237.         4 : "TH_Patient"
  2238.     ]
  2239. ]
  2240. @PointClass base(Monster) size(-14 -14 22, 14 14 72) = einar_civ_sit : "TH_SITCIV"
  2241. [
  2242.       body(Choices) : "TH_BODY" : 0 =
  2243.     [
  2244.         0 : "TH_Glasses_with_clipboard_or_bible"
  2245.         1 : "TH_Doc_Franklin"
  2246.         2 : "TH_Rear_Echelon_Officer"
  2247.         3 : "TH_Slick_in_Biohazard_suit"
  2248.     ]
  2249.     skin(choices) : "TH_CLOTHINGTYPE" : 0 = 
  2250.     [
  2251.         0 : "TH_Civilian[young_RE_Officer]"
  2252.         2 : "TH_Doctor[Old_RE_Officer]"
  2253.         3 : "TH_Preist[Old_RE_Officer]"
  2254.         4 : "TH_Patient[Young_RE_Officer]"
  2255.     ]
  2256. ]
  2257. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_sentry : "Sentry Turret Gun"
  2258. [
  2259.     spawnflags(Flags) = 
  2260.     [
  2261.         32 : "Autostart" : 0
  2262.         64 : "Start Inactive" : 0
  2263.     ]
  2264. ]
  2265. @PointClass base(Monster) size(-16 -16 0, 16 16 36) = monster_snark : "Armed Snark" []
  2266. @PointClass base(Monster) size(-32 -32 0, 32 32 64) = monster_tentacle : "Tentacle Arm" 
  2267. [
  2268.     sweeparc(integer) : "Sweep Arc" : 130
  2269.     sound(Choices) : "Tap Sound" : -1 =
  2270.     [
  2271.         -1 : "None"
  2272.         0 : "Silo"
  2273.         1 : "Dirt"
  2274.         2 : "Water"
  2275.     ]
  2276.     spawnflags(Flags) = 
  2277.     [
  2278.         32: "TH_REDBLOOD" : 0
  2279.     ]
  2280. ]
  2281. @PointClass base(Monster) = monster_tripmine : "Active Tripmine" 
  2282. [
  2283.     spawnflags(Flags) =
  2284.     [
  2285.         1 : "Instant On" : 1
  2286.     ]
  2287. ]
  2288. @PointClass base(Monster) size(-32 -32 -32, 32 32 32) = monster_turret : "Auto Turret"
  2289. [
  2290.     orientation(Choices) : "Orientation" : 0 =
  2291.     [
  2292.         0 : "Floor Mount"
  2293.         1 : "Ceiling Mount"
  2294.     ]
  2295.     spawnflags(Flags) = 
  2296.     [
  2297.         32 : "Autostart" : 0
  2298.         64 : "Start Inactive" : 0
  2299.     ]
  2300. ]
  2301. @PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_zombie : "Scientist Zombie" [
  2302.     model(string) : "TH_MODEL"
  2303.     skin(choices) : "TH_SKINTYPE" : 0 = 
  2304.     [
  2305.         0 : "TH_Standard"
  2306.         1 : "TH_Cop"
  2307.         2 : "TH_Burn"
  2308.         3 : "TH_Flesh"
  2309.     ]
  2310.       body(Choices) : "TH_BODY" : 0 =
  2311.          [
  2312.             0 : "TH_Funeral"
  2313.             1 : "TH_Headlessf"
  2314.             2 : "TH_Civillian"
  2315.             3 : "TH_Headlessc"
  2316.             4 : "TH_Cop"
  2317.             5 : "TH_Female"
  2318.         6 : "TH_Biohazardsuit"
  2319.         7 : "TH_Rear_Echelon_officer"
  2320.             8 : "TH_ENST_Zombie"
  2321.             9 : "TH_doctor_zomb"
  2322.             10 : "TH_Patient_zomb"
  2323.          ]
  2324.     message(string) : "TH_WAVEDIR"
  2325.     spawnflags(Flags) = 
  2326.     [
  2327.         1024 : "TH_FASTMODE" : 0
  2328.     ]
  2329.     health(integer) : "TH_HEALTH" : 0
  2330. ]
  2331. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = monstermaker : "Monster Maker"
  2332. [
  2333.     skin(choices) : "TH_SKINTYPE" : 0 = 
  2334.     [
  2335.         0 : "TH_Standard"
  2336.         1 : "TH_Cop"
  2337.         2 : "TH_Burn"
  2338.         3 : "TH_Flesh"
  2339.     ]
  2340.     model(string) : "TH_MODEL"
  2341.     health(integer) : "TH_HEALTH" : 0
  2342.     target(string) : "Target On Release" 
  2343.     monstertype(string) : "Monster Type"
  2344.     netname(string) : "Childrens' Name"
  2345.     spawnflags(Flags) = 
  2346.     [
  2347.         1 : "Start ON"     : 0
  2348.     //     2 : "PVS On/Off" : 0  // not implemented
  2349.         4 : "Cyclic" : 0
  2350.         8 : "MonsterClip" : 0
  2351.         32: "TH_REDBLOOD" : 0
  2352.         64: "TH_ZOMBIECOP" : 0
  2353.         256 : "TH_NOZAP" : 0
  2354.         512: "TH_FADECORPSE"    : 0
  2355.         1024 : "TH_FASTMODEZOMBIE" : 0
  2356.     ]
  2357.     message(string) : "TH_WAVEDIR"
  2358.  
  2359.     // how many monsters the monstermaker can create (-1 = unlimited)
  2360.     monstercount(integer) : "Number of Monsters" : -1
  2361.     
  2362.     // if delay is -1, new monster will be made when last monster dies.
  2363.     // else, delay is how often (seconds) a new monster will be dookied out.
  2364.     delay(string) : "Frequency" : "5"
  2365.  
  2366.     // maximum number of live children allowed at one time. (New ones will not be made until one dies)
  2367.     // -1 no limit
  2368.     m_imaxlivechildren(integer) : "Max live children" : 5
  2369. ]
  2370.  
  2371. @PointClass base(Targetname) color(255 128 0) = multi_manager : "MultiTarget Manager" 
  2372. [
  2373.     spawnflags(Flags) = 
  2374.     [
  2375.         1 : "multithreaded" : 0
  2376.     ]
  2377. ]
  2378.  
  2379. @PointClass base(Targetname, Target) color(128 255 128) = multisource : "Multisource"
  2380. [
  2381.     globalstate(string) : "Global State Master"
  2382. ]
  2383.  
  2384. @PointClass base(Targetname) size(16 16 16) color(247 181 82) = path_corner : "Moving platform stop"
  2385. [
  2386.     spawnflags(Flags) =
  2387.     [
  2388.         1: "Wait for retrigger" : 0
  2389.         2: "Teleport" : 0
  2390.         4: "Fire once" : 0
  2391.     ]
  2392.     target(target_destination) : "Next stop target"
  2393.     message(target_destination) : "Fire On Pass"
  2394.     wait(integer) : "Wait here (secs)" : 0
  2395.     speed(integer) : "New Train Speed" : 0
  2396.     yaw_speed(integer) : "New Train rot. Speed" : 0
  2397.     angles(string) : "X Y Z angles" 
  2398. ]
  2399.  
  2400. @PointClass base(Targetname) size(16 16 16) = path_track : "Train Track Path"
  2401. [
  2402.     spawnflags(Flags) =
  2403.     [
  2404.         1: "Disabled" : 0
  2405.         2: "Fire once" : 0
  2406.         4: "Branch Reverse" : 0
  2407.         8: "Disable train" : 0
  2408.     ]
  2409.     target(target_destination) : "Next stop target"
  2410.     message(target_destination) : "Fire On Pass"
  2411.     altpath(target_destination) : "Branch Path"
  2412.     netname(target_destination) : "Fire on dead end"
  2413.     speed(integer) : "New Train Speed" : 0
  2414. ]
  2415.  
  2416. //
  2417. // player effects
  2418. //
  2419.  
  2420. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_loadsaved : "Load Auto-Saved game" 
  2421. [
  2422.     duration(string) : "Fade Duration (seconds)" : "2"
  2423.     holdtime(string) : "Hold Fade (seconds)" : "0"
  2424.     renderamt(integer) : "Fade Alpha" : 255
  2425.     rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
  2426.     messagetime(string) : "Show Message delay" : "0"
  2427.     message(string) : "Message To Display" : ""
  2428.     loadtime(string) : "Reload delay" : "0"
  2429. ]
  2430.  
  2431. @PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_weaponstrip : "Strips player's weapons" []
  2432.  
  2433. @PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 72) color(255 0 255) = scripted_sentence : "Scripted Sentence"
  2434. [
  2435.     spawnflags(Flags) = 
  2436.     [
  2437.         1 : "Fire Once"     : 1
  2438.         2 : "Followers Only"    : 0
  2439.         4 : "Interrupt Speech"    : 1
  2440.         8 : "Concurrent"    : 0
  2441.     ]
  2442.     sentence(string) : "Sentence Name" : ""
  2443.     entity(string) : "Speaker Type"
  2444.     duration(string) : "Sentence Time" : "3"
  2445.     radius(integer) : "Search Radius" : 512
  2446.     refire(string) : "Delay Before Refire" : "3"
  2447.     listener(string) : "Listener Type"
  2448.     volume(string) : "Volume 0-10" : "10"
  2449.     attenuation(Choices) : "Sound Radius" : 0 =
  2450.     [
  2451.         0 : "Small Radius"
  2452.         1 : "Medium Radius"
  2453.         2 : "Large  Radius"
  2454.         3 : "Play Everywhere"
  2455.     ]
  2456. ]
  2457.  
  2458. @PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 72) color(255 0 255) = scripted_sequence : "Scripted Sequence"
  2459. [
  2460.     m_iszEntity(string) : "Target Monster"
  2461.     m_iszPlay(string) : "Action Animation" : ""
  2462.     m_iszIdle(string) : "Idle Animation" : ""
  2463.     m_flRadius(integer) : "Search Radius" : 512
  2464.     m_flRepeat(integer) : "Repeat Rate ms" : 0
  2465.     m_fMoveTo(choices) : "Move to Position" : 0 =
  2466.     [
  2467.         0 : "No"
  2468.         1 : "Walk"
  2469.         2 : "Run"
  2470.         4 : "Instantaneous"
  2471.         5 : "No - Turn to Face"
  2472.     ]
  2473.     spawnflags(Flags) = 
  2474.     [
  2475.         4 : "Repeatable"    : 0
  2476.         8 : "Leave Corpse"    : 0
  2477.         32: "No Interruptions"    : 0
  2478.         64: "Override AI"    : 0
  2479.         128: "No Script Movement" : 0
  2480.     ]
  2481. ]
  2482.  
  2483. @PointClass iconsprite("sprites/speaker.spr") base(Targetname) = speaker : "Announcement Speaker"
  2484. [
  2485.     preset(choices) :"Announcement Presets" : 0 =
  2486.     [
  2487.         0: "None"
  2488.         1: "C1A0 Announcer"
  2489.         2: "C1A1 Announcer"
  2490.         3: "C1A2 Announcer"
  2491.         4: "C1A3 Announcer"
  2492.         5: "C1A4 Announcer"  
  2493.         6: "C2A1 Announcer"
  2494.         7: "C2A2 Announcer"
  2495.         // 8: "C2A3 Announcer"
  2496.         9: "C2A4 Announcer"
  2497.         // 10: "C2A5 Announcer"
  2498.         11: "C3A1 Announcer"
  2499.         12: "C3A2 Announcer"
  2500.     ]
  2501.     message(string) : "Sentence Group Name"
  2502.     targetname(target_source) : "Target Name"
  2503.     health(integer) : "Volume (10 = loudest)" : 5
  2504.     spawnflags(flags) =
  2505.     [
  2506.         1: "Start Silent" : 0
  2507.     ]
  2508. ]
  2509.  
  2510. @PointClass base(Targetname) = target_cdaudio : "CD Audio Target"
  2511. [
  2512.     health(choices) : "Track #" : -1 =
  2513.     [
  2514.         -1 : "Stop"
  2515.         1 : "Track 1"
  2516.         2 : "Track 2"
  2517.         3 : "Track 3"
  2518.         4 : "Track 4"
  2519.         5 : "Track 5"
  2520.         6 : "Track 6"
  2521.         7 : "Track 7"
  2522.         8 : "Track 8"
  2523.         9 : "Track 9"
  2524.         10 : "Track 10"
  2525.         11 : "Track 11"
  2526.         12 : "Track 12"
  2527.         13 : "Track 13"
  2528.         14 : "Track 14"
  2529.         15 : "Track 15"
  2530.         16 : "Track 16"
  2531.         17 : "Track 17"
  2532.         18 : "Track 18"
  2533.         19 : "Track 19"
  2534.         20 : "Track 20"
  2535.         21 : "Track 21"
  2536.         22 : "Track 22"
  2537.         23 : "Track 23"
  2538.         24 : "Track 24"
  2539.         25 : "Track 25"
  2540.         26 : "Track 26"
  2541.         27 : "Track 27"
  2542.         28 : "Track 28"
  2543.         29 : "Track 29"
  2544.         30 : "Track 30"
  2545.     ]
  2546.     radius(string) : "Player Radius"
  2547. ]
  2548.  
  2549. //
  2550. // Triggers
  2551. //
  2552.  
  2553. @PointClass base(Targetx) = trigger_auto : "AutoTrigger"
  2554. [
  2555.     spawnflags(Flags) =
  2556.     [
  2557.         1 : "Remove On fire" : 1
  2558.     ]
  2559.     globalstate(string) : "Global State to Read"
  2560.     triggerstate(choices) : "Trigger State" : 0 = 
  2561.     [
  2562.         0 : "Off"
  2563.         1 : "On"
  2564.         2 : "Toggle"
  2565.     ]
  2566. ]
  2567.  
  2568. @SolidClass base(Targetname) = trigger_autosave : "AutoSave Trigger"
  2569. [
  2570.     master(string) : "Master" 
  2571. ]
  2572.  
  2573. @PointClass base(Targetx, Targetname) = trigger_camera : "Trigger Camera" 
  2574. [
  2575.     wait(integer) : "Hold time" : 10
  2576.     moveto(string) : "Path Corner"
  2577.     spawnflags(flags) =
  2578.     [
  2579.         1: "Start At Player" : 1
  2580.         2: "Follow Player" : 1
  2581.         4: "Freeze Player" : 0
  2582.     ]
  2583.     speed(string) : "Initial Speed" : "0"
  2584.     acceleration(string) : "Acceleration units/sec^2" : "500"
  2585.     deceleration(string) : "Stop Deceleration units/sec^2" : "500"
  2586. ]
  2587.  
  2588. @SolidClass base(Targetname) = trigger_cdaudio : "Trigger CD Audio"
  2589. [
  2590.     health(choices) : "Track #" : -1 =
  2591.     [
  2592.         -1 : "Stop"
  2593.         1 : "Track 1"
  2594.         2 : "Track 2"
  2595.         3 : "Track 3"
  2596.         4 : "Track 4"
  2597.         5 : "Track 5"
  2598.         6 : "Track 6"
  2599.         7 : "Track 7"
  2600.         8 : "Track 8"
  2601.         9 : "Track 9"
  2602.         10 : "Track 10"
  2603.         11 : "Track 11"
  2604.         12 : "Track 12"
  2605.         13 : "Track 13"
  2606.         14 : "Track 14"
  2607.         15 : "Track 15"
  2608.         16 : "Track 16"
  2609.         17 : "Track 17"
  2610.         18 : "Track 18"
  2611.         19 : "Track 19"
  2612.         20 : "Track 20"
  2613.         21 : "Track 21"
  2614.         22 : "Track 22"
  2615.         23 : "Track 23"
  2616.         24 : "Track 24"
  2617.         25 : "Track 25"
  2618.         26 : "Track 26"
  2619.         27 : "Track 27"
  2620.         28 : "Track 28"
  2621.         29 : "Track 29"
  2622.         30 : "Track 30"
  2623.     ]
  2624. ]
  2625.  
  2626. @SolidClass = trigger_changelevel : "Trigger: Change level"
  2627. [
  2628.     targetname(string) : "Name"
  2629.     map(string) : "New map name"
  2630.     landmark(string) : "Landmark name"
  2631.     changetarget(target_destination) : "Change Target"
  2632.     changedelay(string) : "Delay before change target" : "0"
  2633.     spawnflags(flags) =
  2634.     [
  2635.         1: "No Intermission" : 0
  2636.         2: "USE Only" : 0
  2637.     ]
  2638. ]
  2639.  
  2640. @PointClass base(Targetx, Targetname) = trigger_changetarget : "Trigger Change Target"
  2641. [
  2642.     m_iszNewTarget(string) : "New Target"
  2643. ]
  2644.  
  2645. @SolidClass base(Trigger, Targetname) = trigger_counter : "Trigger counter" 
  2646. [
  2647.     spawnflags(flags) = 
  2648.     [ 
  2649.         1 : "No Message" : 0 
  2650.     ]
  2651.     master(string) : "Master" 
  2652.     count(integer) : "Count before activation" : 2
  2653. ]
  2654.  
  2655. @SolidClass base(Targetname) = trigger_endsection : "EndSection Trigger"
  2656. [
  2657.     section(string) : "Section"
  2658.     spawnflags(flags) =
  2659.     [
  2660.         1: "USE Only" : 0
  2661.     ]
  2662. ]
  2663.  
  2664. @SolidClass base(Trigger) = trigger_gravity : "Trigger Gravity"
  2665. [
  2666.     gravity(integer) : "Gravity (0-1)" : 1
  2667. ]
  2668.  
  2669. @SolidClass base(Targetname,Target) = trigger_hurt : "Trigger player hurt" 
  2670. [
  2671.     spawnflags(flags) = 
  2672.     [ 
  2673.         1: "Target Once" : 0 
  2674.         2: "Start Off" : 0
  2675.         8: "No clients" : 0
  2676.         16:"FireClientOnly" : 0
  2677.         32:"TouchClientOnly" : 0
  2678.     ]
  2679.     master(string) : "Master" 
  2680.     dmg(integer) : "Damage" : 10
  2681.     delay(string) : "Delay before trigger" : "0"
  2682.     damagetype(choices) : "Damage Type" : 0 =
  2683.     [
  2684.         0 : "GENERIC"
  2685.         1 : "CRUSH"
  2686.         2 : "BULLET"
  2687.         4 : "SLASH"
  2688.         8 : "BURN"
  2689.         16 : "FREEZE"
  2690.         32 : "FALL"
  2691.         64 : "BLAST"
  2692.         128 : "CLUB"
  2693.         256 : "SHOCK"
  2694.         512 : "SONIC"
  2695.         1024 : "ENERGYBEAM"
  2696.         16384: "DROWN"
  2697.         32768 : "PARALYSE"
  2698.         65536 : "NERVEGAS"
  2699.         131072 : "POISON"
  2700.         262144 : "RADIATION"
  2701.         524288 : "DROWNRECOVER"
  2702.         1048576 : "CHEMICAL"
  2703.         2097152 : "SLOWBURN"
  2704.         4194304 : "SLOWFREEZE"
  2705.     ]
  2706. ]
  2707.  
  2708. @SolidClass = trigger_monsterjump : "Trigger monster jump" 
  2709. [
  2710.     master(string) : "Master" 
  2711.     speed(integer) : "Jump Speed" : 40
  2712.     height(integer) : "Jump Height" : 128
  2713. ]
  2714.  
  2715. @SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple" 
  2716. [
  2717.     wait(integer) : "Delay before reset" : 10
  2718. ]
  2719.  
  2720. @SolidClass base(Trigger) = trigger_once : "Trigger: Activate once" []
  2721.  
  2722. @SolidClass base(Trigger) = trigger_push : "Trigger player push"
  2723. [
  2724.     spawnflags(flags) = 
  2725.     [ 
  2726.         1: "Once Only" : 0 
  2727.         2: "Start Off" : 0
  2728.     ]
  2729.     speed(integer) : "Speed of push" : 40
  2730. ]
  2731.  
  2732. @PointClass base(Targetname, Targetx) = trigger_relay : "Trigger Relay"
  2733. [
  2734.     spawnflags(flags) =
  2735.     [
  2736.         1: "Remove On fire" : 0
  2737.     ]
  2738.     triggerstate(choices) : "Trigger State" : 0 = 
  2739.     [
  2740.         0: "Off"
  2741.         1: "On"
  2742.         2: "Toggle"
  2743.     ]
  2744. ]
  2745.  
  2746. @SolidClass base(Trigger) = trigger_teleport : "Trigger teleport" []
  2747.  
  2748. @SolidClass base(Targetname) = trigger_transition : "Trigger: Select Transition Area" []
  2749.  
  2750. //
  2751. // weapons
  2752. //
  2753.  
  2754. @PointClass base(Weapon, Targetx) = weapon_crowbar : "Crowbar" []
  2755. @PointClass base(Weapon, Targetx) = weapon_9mmhandgun : "9mm Handgun"
  2756. [
  2757.     body(choices) : "TH_ALTWEAPON" : 0 =
  2758.     [
  2759.         0: "TH_NORMAL"
  2760.         1: "TH_SILENCER"
  2761.     ]
  2762. ]
  2763. @PointClass base(Weapon, Targetx) = weapon_357 : "357 Handgun" []
  2764. @PointClass base(Weapon, Targetx) = weapon_9mmAR : "9mm Assault Rifle" []
  2765. @PointClass base(Weapon, Targetx) = weapon_shotgun : "Shotgun" []
  2766. @PointClass base(Weapon, Targetx) = weapon_rpg : "RPG" []
  2767. @PointClass base(Weapon, Targetx) = weapon_gauss : "Gauss Gun" []
  2768. @PointClass base(Weapon, Targetx) = weapon_crossbow : "Crossbow" 
  2769. [
  2770.     sequence(choices) : "Placement" : 0 =
  2771.     [
  2772.         0 : "Normal (flat)"
  2773.         1 : "Realistic (tilted)"
  2774.     ]
  2775. ]
  2776. @PointClass base(Weapon, Targetx) = weapon_th_sniper : "TH_WEAPONSNIPER" []
  2777. @PointClass base(Weapon, Targetx) = weapon_th_shovel : "TH_WEAPONSHOVEL" []
  2778. @PointClass base(Weapon, Targetx) = weapon_th_spanner : "TH_WEAPONSPANNER" []
  2779. @PointClass base(Weapon, Targetx) = weapon_egon : "TH_WEAPONFLAMETHROWER" []
  2780. @PointClass base(Weapon, Targetx) size(-16 -16 -5, 16 16 27) = weapon_tripmine : "Tripmine Ammo" []
  2781. @PointClass base(Weapon, Targetx) = weapon_satchel : "Satchel Charge Ammo" []
  2782. @PointClass base(Weapon, Targetx) = weapon_handgrenade : "Handgrenade Ammo" []
  2783. @PointClass base(Weapon, Targetx) = weapon_snark : "Squeak Grenade" []
  2784. //@PointClass base(Weapon, Targetx) = weapon_hornetgun : "Hornet Gun" []
  2785. @PointClass base(Weapon, Targetx) = weapon_th_ap9 : "TH_WEAPONAP9" []
  2786. @PointClass base(Weapon, Targetx) = weapon_th_taurus : "TH_WEAPONTAURUS" []
  2787. @PointClass base(Weapon, Targetx) = weapon_th_chaingun : "TH_WEAPONCHAINGUN" []
  2788. @PointClass base(Weapon, Targetx) = weapon_th_medkit : "TH_WEAPONMEDKIT" []
  2789.  
  2790. @PointClass size(-16 -16 0, 16 16 64) color(0 128 0) =  weaponbox : "Weapon/Ammo Container" []
  2791.  
  2792. @PointClass base(Weapon, Targetx) = world_items : "World Items" 
  2793. [
  2794.     type(choices) :"types" : 42 =
  2795.     [
  2796.         42: "Antidote"
  2797.         43: "Security Card"
  2798.         44: "Battery"
  2799.         45: "Suit"
  2800.     ]
  2801. ]
  2802.  
  2803. //
  2804. // Xen
  2805. //
  2806.  
  2807. @PointClass base(Target, Targetname, RenderFields) size(-48 -48 0, 48 48 32 ) = xen_plantlight : "Xen Plant Light" []
  2808. @PointClass base(Targetname, RenderFields) size(-8 -8 0, 8 8 32 ) = xen_hair : "Xen Hair" 
  2809. [
  2810.     spawnflags(Flags) = 
  2811.     [
  2812.         1 : "Sync Movement"     : 0
  2813.     ]
  2814. ]
  2815. @PointClass base(Targetname, RenderFields) size(-24 -24 0, 24 24 188 ) = xen_tree : "Xen Tree" []
  2816. @PointClass base(Targetname, RenderFields) size(-16 -16 0, 16 16 64 ) = xen_spore_small : "Xen Spore (small)" []
  2817. @PointClass base(Targetname, RenderFields) size(-40 -40 0, 40 40 120 ) = xen_spore_medium : "Xen Spore (medium)" []
  2818. @PointClass base(Targetname, RenderFields) size(-90 -90 0, 90 90 220 ) = xen_spore_large : "Xen Spore (large)" []
  2819.