Quake2.fgd 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674
  1. //
  2. // Quake 2 game definition file (.fgd)
  3. //
  4. // Originally written by by autolycus
  5. // Special thanks to: Disruptor, Zoid, Zaphod, Imaginos, EutecTic, xaGe.
  6. //
  7. // Last updated by Paril for re-release
  8. // Includes stuff from the tools for lighting etc
  9. @include "ericw_tools.fgd"
  10. //
  11. // worldspawn
  12. //
  13. // 0302 - added "nextmap" key
  14. @SolidClass base(EWT_base_Worldspawn) = worldspawn : "World entity"
  15. [
  16. sky(string) : "Environment map name"
  17. skyaxis(vector) : "Vector axis for rotating sky"
  18. skyrotate(string) : "Speed of rotation (degrees/second)"
  19. skyautorotate(integer) : "Disable to set sky rotation manually" : 1
  20. sounds(integer) : "CD Track Number" : 1
  21. gravity(integer) : "Gravity" : 800
  22. instantitems(integer) : "Instant Item Use" : 0
  23. message(string) : "Level name"
  24. nextmap(string) : "Next map (DM only)"
  25. start_items(string) : "Starting items: a semi-colon delimited list of items and amounts to be given to player if they have a clear inventory."
  26. achievement(string) : "If an EOU is triggered from this map, this is the achievement to give out."
  27. fog_density(float) : "density value of fog, 0-1"
  28. fog_color(color) : "color value of fog, 3d vector with values between 0-1 (r g b)"
  29. fog_sky_factor(float) : "sky factor value of fog, 0-1"
  30. heightfog_falloff(float) : "falloff value of heightfog, 0-1"
  31. heightfog_density(float) : "density value of heightfog, 0-1"
  32. heightfog_start_color(color) : "start color of heightfog, 3d vector with values between 0-1 (r g b)"
  33. heightfog_end_color(color) : "end color of heightfog, 3d vector with values between 0-1 (r g b)"
  34. heightfog_start_dist(float) : "start distance value of heightfog, in world units"
  35. heightfog_end_dist(float) : "start distance value of heightfog, in world units"
  36. ]
  37. //
  38. // base marker definitions
  39. //
  40. // EditorFlags apply to everything - all entities should inherit it.
  41. @baseclass = EditorFlags [
  42. spawnflags(Flags) =
  43. [
  44. 256 : "Not in Easy" : 0
  45. 512 : "Not in Normal" : 0
  46. 1024 : "Not in Hard" : 0
  47. 2048 : "Not in Deathmatch" : 0
  48. // Paril: Rogue
  49. 4096 : "Not in Coop" : 0
  50. 8192 : "Reserved Editor Flag" : 0
  51. // Paril: Kex
  52. 16384 : "Coop Only" : 0
  53. 32768 : "Reserved Editor Flag" : 0
  54. ]
  55. ]
  56. // Entity can take angle or angles.
  57. @baseclass = Angleable [
  58. angle(choices) : "Facing angle (yaw)" : 0 =
  59. [
  60. -1 : "Up"
  61. -2 : "Down"
  62. ]
  63. angles(vector) : "pitch yaw roll" : "0 0 0" : "Facing angles"
  64. ]
  65. // Entity can be targeted by stuff.
  66. @baseclass = Targetable [
  67. targetname(target_source) : "Name for firing"
  68. ]
  69. // Entity will call G_UseTargets
  70. @baseclass = UseTargets [
  71. target(target_destination) : "Target to fire"
  72. delay(float) : "Target delay"
  73. message(string): "Message on activation"
  74. killtarget(target_destination) : "Targets to fully delete"
  75. ]
  76. // Entity supports pointing at something, but won't call G_UseTargets
  77. @baseclass = Target [
  78. target(target_destination) : "Target to fire"
  79. ]
  80. // Entity supports "team"
  81. @baseclass = Teamable [
  82. team(string) : "Team identifier"
  83. ]
  84. // Entity supports brush model animations
  85. @baseclass = BmodelAnim [
  86. bmodel_anim_start(integer) : "Start frame of animation"
  87. bmodel_anim_end(integer) : "End frame of animation"
  88. bmodel_anim_style(choices) : "Animation style" : 0 =
  89. [
  90. 0 : "Forwards"
  91. 1 : "Backwards"
  92. 2 : "Random"
  93. ]
  94. bmodel_anim_speed(integer) : "Animation speed, in milliseconds"
  95. bmodel_anim_nowrap(integer) : "If set, frames are clamped rather than wrapping"
  96. bmodel_anim_alt_start(integer) : "Start frame of alternate animation"
  97. bmodel_anim_alt_end(integer) : "End frame of alternate animation"
  98. bmodel_anim_alt_style(choices) : "Alternate animation style" : 0 =
  99. [
  100. 0 : "Forwards"
  101. 1 : "Backwards"
  102. 2 : "Random"
  103. ]
  104. bmodel_anim_alt_speed(integer) : "Alternate animation speed, in milliseconds"
  105. bmodel_anim_alt_nowrap(integer) : "If set, alternate frames are clamped rather than wrapping"
  106. ]
  107. // Entity supports brush model sound modifications
  108. @baseclass = BmodelSounds [
  109. noise_start(string) : "Noise to play on activation"
  110. noise_middle(string) : "Noise to play while traveling"
  111. noise_end(string) : "Noise to play on end"
  112. ]
  113. // Entity supports noise key
  114. @baseclass = Noise [
  115. noise(string) : "Noise to play"
  116. ]
  117. // Entity supports alpha key
  118. @baseclass = Alpha [
  119. alpha(float) : "Alpha"
  120. ]
  121. // Entity supports scale key
  122. @baseclass = Scale [
  123. scale(float) : "Scale"
  124. ]
  125. // Includes stuff related to the kex dynamic lights
  126. @include "kexlights.fgd"
  127. //
  128. // player start, deathmatch, coop, deathmatch intermission
  129. //
  130. @baseclass base(EditorFlags, Angleable) size(-16 -16 -24, 16 16 32) color(0 255 0) model({ "path": ":models/monsters/insane/tris.md2", "frame":209, "skin":1}) = PlayerClass []
  131. @PointClass base(PlayerClass) = info_player_start : "Player start" []
  132. @PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" []
  133. @PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" [
  134. targetname(string) : "Spawn point name, to be matched to previous levels' target_changelevel"
  135. ]
  136. @PointClass base(PlayerClass) = info_player_coop_lava : "Smart Water lava spawn point" []
  137. @PointClass base(PlayerClass, Targetable) = info_player_intermission : "Deathmatch intermission point" []
  138. @PointClass base(PlayerClass) = info_player_team1 : "CTF Red start" []
  139. @PointClass base(PlayerClass) = info_player_team2 : "CTF Blue start" []
  140. // Notes on the 'team' key: First of all, it's really only useful in DM because it creates a
  141. // random respawn pattern. Let's say that in one spot, you want to have the shotgun, Quad
  142. // damage and mega health item to respawn in alternance. Place all of them in approximately
  143. // the same location, team them and voila! The FIRST item that you place in the map will be
  144. // the team MASTER - the others will be SLAVES. In DM play, the Master will be the first one
  145. // to spawn. Once the Master is picked up, the respawn pattern becomes RANDOM: it could be
  146. // the same or one of the other 2. If you try to use this in a Single Player map, it's
  147. // pretty useless because only the team MASTER spawns and the others never appear obviously.
  148. // Also, in CTF, only the master appears. No idea why.
  149. @BaseClass base(EditorFlags, Angleable, UseTargets, Targetable) color(76 76 255) size(-15 -15 -15, 15 15 15) = Item [
  150. team(string) : "Team"
  151. spawnflags(Flags) =
  152. [
  153. 1 : "Trigger Spawn" : 0
  154. 2 : "Disable Pickup" : 0
  155. 4 : "Toss Item On Spawn" : 0
  156. ]
  157. ]
  158. @BaseClass base(Item) color(76 76 255) = Ammo []
  159. @BaseClass base(Item) color(255 76 76) = Weapons []
  160. @BaseClass base(Item) color(76 255 255) size(-16 -16 -16, 16 16 16) = Items []
  161. @BaseClass base(Item) color(0 128 204) size(-16 -16 -16, 16 16 16) = Keys []
  162. @PointClass base(Ammo) model({ "path": ":models/items/ammo/shells/medium/tris.md2" }) = ammo_shells : "Shotgun ammo" []
  163. @PointClass base(Ammo) model({ "path": ":models/items/ammo/bullets/medium/tris.md2" }) = ammo_bullets : "Machine/Chain gun ammo" []
  164. @PointClass base(Ammo) model({ "path": ":models/items/ammo/cells/medium/tris.md2" }) = ammo_cells : "Blaster/BFG ammo" []
  165. @PointClass base(Ammo) model({ "path": ":models/items/ammo/grenades/medium/tris.md2" }) = ammo_grenades : "Grenades" []
  166. @PointClass base(Ammo) model({ "path": ":models/items/ammo/rockets/medium/tris.md2" }) = ammo_rockets : "Rockets" []
  167. @PointClass base(Ammo) model({ "path": ":models/items/ammo/slugs/medium/tris.md2" }) = ammo_slugs : "Rail gun ammo" []
  168. @PointClass base(Ammo) model({ "path": ":models/objects/ammo/tris.md2" }) = ammo_magslug : "Phalanx ammo" []
  169. @PointClass base(Ammo) model({ "path": ":models/ammo/am_flechette/tris.md2" }) = ammo_flechettes : "ETF Rifle ammo" []
  170. @PointClass base(Ammo) model({ "path": ":models/ammo/am_flechette/tris.md2" }) = ammo_nails : "ETF Rifle ammo" []
  171. @PointClass base(Ammo) model({ "path": ":models/ammo/am_prox/tris.md2" }) = ammo_prox : "Prox Launcher ammo" []
  172. @PointClass base(Ammo) model({ "path": ":models/ammo/am_disr/tris.md2" }) = ammo_disruptor : "Disruptor ammo" []
  173. @PointClass base(Ammo) model({ "path": ":models/weapons/g_trap/tris.md2" }) = ammo_trap : "Traps" []
  174. @PointClass base(Ammo) model({ "path": ":models/ammo/am_tesl/tris.md2" }) = ammo_tesla : "Teslas" []
  175. @PointClass base(Ammo) model({ "path": ":models/weapons/g_nuke/tris.md2" }) = ammo_nuke : "A-M Bomb (usable nuke); DM only" []
  176. @PointClass base(Weapons) model({ "path": ":models/weapons/g_shotg/tris.md2" }) = weapon_shotgun : "Shotgun" []
  177. @PointClass base(Weapons) model({ "path": ":models/weapons/g_shotg2/tris.md2" }) = weapon_supershotgun : "Super shotgun" []
  178. @PointClass base(Weapons) model({ "path": ":models/weapons/g_machn/tris.md2" }) = weapon_machinegun : "Machinegun" []
  179. @PointClass base(Weapons) model({ "path": ":models/weapons/g_chain/tris.md2" }) = weapon_chaingun : "Chain gun" []
  180. @PointClass base(Weapons) model({ "path": ":models/weapons/g_launch/tris.md2" }) = weapon_grenadelauncher : "Grenade launcher" []
  181. @PointClass base(Weapons) model({ "path": ":models/weapons/g_rocket/tris.md2" }) = weapon_rocketlauncher : "Rocket launcher" []
  182. @PointClass base(Weapons) model({ "path": ":models/weapons/g_hyperb/tris.md2" }) = weapon_hyperblaster : "Hyperblaster" []
  183. @PointClass base(Weapons) model({ "path": ":models/weapons/g_rail/tris.md2" }) = weapon_railgun : "Rail gun" []
  184. @PointClass base(Weapons) model({ "path": ":models/weapons/g_bfg/tris.md2" }) = weapon_bfg : "Big Freakin Gun!" []
  185. @PointClass base(Weapons) model({ "path": ":models/weapons/g_chainf/tris.md2" }) = weapon_chainfist : "Chainfist" []
  186. @PointClass base(Weapons) model({ "path": ":models/weapons/g_etf_rifle/tris.md2" }) = weapon_etf_rifle : "ETF Rifle" []
  187. @PointClass base(Weapons) model({ "path": ":models/weapons/g_etf_rifle/tris.md2" }) = weapon_nailgun : "ETF Rifle" []
  188. @PointClass base(Weapons) model({ "path": ":models/weapons/g_plaunch/tris.md2" }) = weapon_proxlauncher : "Prox Launcher" []
  189. @PointClass base(Weapons) model({ "path": ":models/weapons/g_boom/tris.md2" }) = weapon_boomer : "Ionripper" []
  190. @PointClass base(Weapons) model({ "path": ":models/weapons/g_beamer/tris.md2" }) = weapon_plasmabeam : "Plasma Beam" []
  191. @PointClass base(Weapons) model({ "path": ":models/weapons/g_beamer/tris.md2" }) = weapon_heatbeam : "Plasma Beam" []
  192. @PointClass base(Weapons) model({ "path": ":models/weapons/g_shotx/tris.md2" }) = weapon_phalanx : "Phalanx" []
  193. @PointClass base(Weapons) model({ "path": ":models/weapons/g_dist/tris.md2" }) = weapon_disintegrator : "Disruptor" []
  194. @PointClass base(Items) model({ "path": ":models/items/adrenal/tris.md2" }) = item_adrenaline : "+1 to max health" []
  195. @PointClass base(Items) model({ "path": ":models/items/c_head/tris.md2" }) = item_ancient_head : "+2 to max health" []
  196. @PointClass base(Items) model({ "path": ":models/items/armor/body/tris.md2" }) = item_armor_body : "Body armor" []
  197. @PointClass base(Items) model({ "path": ":models/items/armor/combat/tris.md2" }) = item_armor_combat : "Combat armor" []
  198. @PointClass base(Items) model({ "path": ":models/items/armor/jacket/tris.md2" }) = item_armor_jacket : "Jacket armor" []
  199. @PointClass base(Items) model({ "path": ":models/items/armor/shard/tris.md2" }) = item_armor_shard : "Armor shard" []
  200. @PointClass base(Items) model({ "path": ":models/items/band/tris.md2" }) = item_bandolier : "Equipment belt" []
  201. @PointClass base(Items) model({ "path": ":models/items/breather/tris.md2" }) = item_breather : "Underwater breather" []
  202. @PointClass base(Items) model({ "path": ":models/items/enviro/tris.md2" }) = item_enviro : "Enviro-Suit" []
  203. @PointClass base(Items) model({ "path": ":models/items/healing/medium/tris.md2" }) = item_health : "+10 health" []
  204. @PointClass base(Items) model({ "path": ":models/items/healing/stimpack/tris.md2" }) = item_health_small : "+2 health" []
  205. @PointClass base(Items) model({ "path": ":models/items/healing/large/tris.md2" }) = item_health_large : "+25 health" []
  206. @PointClass base(Items) model({ "path": ":models/items/mega_h/tris.md2" }) = item_health_mega : "+100 health" []
  207. @PointClass base(Items) model({ "path": ":models/items/invulner/tris.md2" }) = item_invulnerability : "Invulnerability" []
  208. @PointClass base(Items) model({ "path": ":models/items/pack/tris.md2" }) = item_pack : "Heavy backpack" []
  209. @PointClass base(Items) model({ "path": ":models/items/armor/screen/tris.md2" }) = item_power_screen : "Power screen" []
  210. @PointClass base(Items) model({ "path": ":models/items/armor/shield/tris.md2" }) = item_power_shield : "Power shield" []
  211. @PointClass base(Items) model({ "path": ":models/items/quaddama/tris.md2" }) = item_quad : "Quad damage" []
  212. @PointClass base(Items) model({ "path": ":models/items/silencer/tris.md2" }) = item_silencer : "Silencer" []
  213. @PointClass base(Items) model({ "path": ":models/items/silencer/tris.md2" }) = item_flashlight : "Flashlight" []
  214. @PointClass base(Items) model({ "path": ":models/items/quadfire/tris.md2" }) = item_quadfire : "DualFire Damage" []
  215. @PointClass base(Items) model({ "path": ":models/items/goggles/tris.md2" }) = item_ir_goggles : "IR Goggles" []
  216. @PointClass base(Items) model({ "path": ":models/items/ddamage/tris.md2" }) = item_double : "Double Damage" []
  217. @PointClass base(Items) model({ "path": ":models/items/vengnce/tris.md2" }) = item_sphere_vengeance : "vengeance sphere" []
  218. @PointClass base(Items) model({ "path": ":models/items/hunter/tris.md2" }) = item_sphere_hunter : "hunter sphere" []
  219. @PointClass base(Items) model({ "path": ":models/items/defender/tris.md2" }) = item_sphere_defender : "defender sphere" []
  220. @PointClass base(Items) model({ "path": ":models/items/dopple/tris.md2" }) = item_doppleganger : "Doppleganger" []
  221. @PointClass base(Keys) model({ "path": ":models/items/keys/target/tris.md2" }) = key_airstrike_target : "Tank commander's head" []
  222. @PointClass base(Keys) model({ "path": ":models/items/keys/key/tris.md2" }) = key_blue_key : "Normal door key - blue" []
  223. @PointClass base(Keys) model({ "path": ":models/monsters/commandr/head/tris.md2" }) = key_commander_head : "Tank commander's head (key)" []
  224. @PointClass base(Keys) model({ "path": ":models/items/keys/data_cd/tris.md2" }) = key_data_cd : "Data CD key for computer centers" []
  225. @PointClass base(Keys) model({ "path": ":models/items/keys/spinner/tris.md2" }) = key_data_spinner : "Data Spinner key for city computer" []
  226. @PointClass base(Keys) model({ "path": ":models/items/keys/pass/tris.md2" }) = key_pass : "Security pass for secret level" []
  227. @PointClass base(Keys) model({ "path": ":models/items/keys/power/tris.md2" }) = key_power_cube : "Warehouse circuits" []
  228. @PointClass base(Keys) model({ "path": ":models/items/keys/pyramid/tris.md2" }) = key_pyramid : "Pyramid Key for entrance to jail3" []
  229. @PointClass base(Keys) model({ "path": ":models/items/keys/red_key/tris.md2" }) = key_red_key : "normal door key - red" []
  230. // Expansions
  231. @PointClass base(Keys) model({ "path": ":models/items/keys/green_key/tris.md2" }) = key_green_key : "normal door key - green" []
  232. @PointClass base(Keys) model({ "path": ":models/weapons/g_nuke/tris.md2" }) = key_nuke_container : "Antimatter Pod (nuke key part 1)" []
  233. @PointClass base(Keys) model({ "path": ":models/weapons/g_nuke/tris.md2" }) = key_nuke : "Antimatter Bomb (nuke key part 2)" []
  234. // N64
  235. @PointClass base(Keys) model({ "path": ":models/items/n64/charge/tris.md2" }) = key_explosive_charges : "Explosive Charge" []
  236. @PointClass base(Keys) model({ "path": ":models/items/n64/yellow_key/tris.md2" }) = key_yellow_key : "Yellow Key" []
  237. @PointClass base(Keys) model({ "path": ":models/items/n64/power_core/tris.md2" }) = key_power_core : "Power Core" []
  238. // CTF
  239. @PointClass base(Keys) model({ "path": ":players/male/flag1.md2" }) = item_flag_team1 : "CTF Flag (red)" []
  240. @PointClass base(Keys) model({ "path": ":players/male/flag2.md2" }) = item_flag_team2 : "CTF Flag (blue)" []
  241. // Keep in mind when using func_areaportal that it must
  242. // *completely* separate two areas. otherwise, you will
  243. // get an error message and the areaportal will not work
  244. @SolidClass base(EditorFlags, Targetable) = func_areaportal : "Area portal (Vis blocker)" []
  245. @SolidClass base(EditorFlags, Angleable, UseTargets, Targetable, EWT_base_BModel, BmodelAnim, BmodelSounds) color(0 128 204) = func_button : "Button"
  246. [
  247. speed(float) : "Speed" : "40"
  248. wait(choices) : "Wait before reset" : 1 =
  249. [
  250. -1 : "Never Return"
  251. ]
  252. lip(float) : "Lip remaining after move" : "4"
  253. health(float) : "Health (shootable)"
  254. sounds(choices) : "Sounds" : 0 =
  255. [
  256. 0 : "Audible"
  257. 1 : "Silent"
  258. ]
  259. ]
  260. @PointClass base(EditorFlags, Targetable, UseTargets) color(0 0 255) size(-8 -8 -8, 8 8 8) = func_clock : "Clock"
  261. [
  262. spawnflags(Flags) =
  263. [
  264. 1 : "Timer Up" : 0
  265. 2 : "Timer Down" : 0
  266. 4 : "Start Off" : 0
  267. 8 : "Multi Use" : 0
  268. ]
  269. count(integer) : "Clock Count" : 3600
  270. pathtarget(target_destination) : "Target to fire"
  271. target(target_destination) : "Should be targeting a target_string"
  272. style(choices) : "Style" : 0 =
  273. [
  274. 0 : "xx"
  275. 1 : "xx:xx"
  276. 2 : "xx:xx:xx"
  277. ]
  278. ]
  279. @PointClass base(EditorFlags, Targetable) color(0 0 255) size(-8 -8 -8, 8 8 8) = target_string : "func_clock holder for time string"
  280. [
  281. team(string) : "target_characters to team with"
  282. ]
  283. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel) color(0 0 255) = target_character : "single character for target_string"
  284. [
  285. team(string) : "Team"
  286. count(integer) : "Position in the string"
  287. ]
  288. @SolidClass base(Angleable, EditorFlags, Targetable, UseTargets, Teamable, EWT_base_BModel, BmodelSounds) color(0 128 204) = func_door : "Door"
  289. [
  290. spawnflags(Flags) =
  291. [
  292. 1 : "Start Open" : 0
  293. 4 : "Crusher" : 0
  294. 8 : "No Monsters" : 0
  295. 16 : "Animated" : 0
  296. 32 : "Toggle" : 0
  297. 64 : "Animated Fast" : 0
  298. ]
  299. health(float) : "Health (shootable)"
  300. speed(float) : "Speed" : "100"
  301. wait(choices) : "Wait before close" : 3 =
  302. [
  303. -1 : "Stay open"
  304. ]
  305. lip(float) : "Lip remaining after move" : "8"
  306. dmg(float) : "Damage when blocked" : "2"
  307. sounds(choices) : "Sounds" : 0 =
  308. [
  309. 0 : "Audible"
  310. 1 : "Silent"
  311. ]
  312. ]
  313. @SolidClass base(Angleable, EditorFlags, Targetable, UseTargets, EWT_base_BModel, BmodelSounds) color(0 128 204) = func_door_rotating : "Rotating Door"
  314. [
  315. spawnflags(Flags) =
  316. [
  317. 1 : "Start Open" : 0
  318. 2 : "Reverse" : 0
  319. 4 : "Crusher" : 0
  320. 8 : "No Monsters" : 0
  321. 16 : "Animated" : 0
  322. 32 : "Toggle" : 0
  323. 64 : "X Axis" : 0
  324. 128 : "Y Axis" : 0
  325. 65536 : "Inactive (must be triggered)" : 0
  326. 131072 : "Safe Open (opens opposite dir. if activator facing 'angles')" : 0
  327. ]
  328. team(string) : "Team"
  329. distance(float) : "Degrees of rotation" : "90"
  330. health(float) : "Health (shootable)"
  331. speed(float) : "Speed" : "100"
  332. wait(choices) : "Wait before close" : 3 =
  333. [
  334. -1 : "Stay open"
  335. ]
  336. dmg(float) : "Damage when blocked" : "2"
  337. sounds(choices) : "Sounds" : 0 =
  338. [
  339. 0 : "Audible"
  340. 1 : "Silent"
  341. ]
  342. ]
  343. @SolidClass base(Angleable, EditorFlags, Targetable, UseTargets, EWT_base_BModel, BmodelSounds) color(0 128 204) = func_door_secret : "Secret Door"
  344. [
  345. spawnflags(Flags) =
  346. [
  347. 1 : "Always shoot" : 0
  348. 2 : "1st Left" : 0
  349. 4 : "1st Down" : 0
  350. ]
  351. dmg(float) : "Damage when blocked" : "2"
  352. wait(choices) : "Wait before close" : 5 =
  353. [
  354. -1 : "Stay open"
  355. ]
  356. ]
  357. // not visible in DM mode
  358. @SolidClass base(EditorFlags, Targetable, UseTargets, EWT_base_BModel) color(0 128 204) = func_explosive : "Exploding/Breakable brush"
  359. [
  360. spawnflags(Flags) =
  361. [
  362. 1 : "Trigger Spawn" : 0
  363. 2 : "Animated" : 0
  364. 4 : "Animated Fast" : 0
  365. ]
  366. health(float) : "Health" : "100"
  367. mass(float) : "Mass (debris)" : "75"
  368. dmg(float) : "Damage" : "0"
  369. sounds(choices) : "Sounds" : 0 =
  370. [
  371. 0 : "Silent"
  372. 1 : "Glass Break"
  373. ]
  374. ]
  375. @SolidClass base(EditorFlags, Targetable) color(255 0 0) = func_killbox : "Instant death"
  376. [
  377. spawnflags(Flags) =
  378. [
  379. 2 : "Level Restart Required" : 0
  380. 4 : "Exact Trigger Collision" : 0
  381. ]
  382. ]
  383. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel) color (0 128 204) = func_object : "Solid bmodel, will fall if its support is removed"
  384. [
  385. spawnflags(Flags) =
  386. [
  387. 1 : "Trigger Spawn" : 0
  388. 2 : "Animated" : 0
  389. 4 : "Animated Fast" : 0
  390. ]
  391. dmg(float) : "Crush damage" : "100"
  392. ]
  393. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel, BmodelSounds) color(0 128 204) = func_rotating : "Rotating brush"
  394. [
  395. spawnflags(Flags) =
  396. [
  397. 1 : "Start On" : 0
  398. 2 : "Reverse" : 0
  399. 4 : "X Axis" : 0
  400. 8 : "Y Axis" : 0
  401. 16 : "Pain on Touch" : 0
  402. 32 : "Block Stops" : 0
  403. 64 : "Animated" : 0
  404. 128 : "Animated Fast" : 0
  405. 65536 : "Acceleration" : 0
  406. ]
  407. team(string) : "Team"
  408. speed(float) : "Speed" : "100"
  409. dmg(float) : "Damage when blocked" : "2"
  410. accel(float) : "Acceleration speed, when flag is enabled" : "1"
  411. decel(float) : "Deceleration speed, when flag is enabled" : "1"
  412. ]
  413. @PointClass base(EditorFlags, Targetable, UseTargets) color(76 25 153) size(-8 -8 -8, 8 8 8) = func_timer : "Timer"
  414. [
  415. spawnflags(Flags) =
  416. [
  417. 1 : "Start On" : 0
  418. ]
  419. wait(float) : "Base wait time" : "1"
  420. random(float) : "Wait variance (+/-) - should be <= wait"
  421. delay(float) : "Delay before firing when used"
  422. pausetime(float) : "Additional delay for START_ON timers"
  423. ]
  424. // 0219 - added "team" key
  425. @SolidClass base(EditorFlags, Targetable, UseTargets, Teamable, EWT_base_BModel) color(0 128 204) = func_train : "Moving platform"
  426. [
  427. spawnflags(Flags) =
  428. [
  429. 1 : "Start On" : 0
  430. 2 : "Toggle" : 0
  431. 4 : "Block Stops" : 0
  432. 8 : "Move Teamchain" : 0
  433. 16 : "Fix Offset (fixes legacy -1,-1,-1 offset)" : 0
  434. 32 : "Use Origin" : 0
  435. ]
  436. pathtarget(target_destination) : "Target to fire when we reach a point"
  437. target(target_destination) : "First corner to be placed at"
  438. speed(float) : "Speed" : "100"
  439. dmg(float) : "Damage when blocked" : "2"
  440. noise(string) : "Travel noise (path/file.wav)"
  441. ]
  442. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel) color(0 128 204) = func_wall : "Solid Wall"
  443. [
  444. spawnflags(Flags) =
  445. [
  446. 1 : "Trigger Spawn" : 0
  447. 2 : "Toggle" : 0
  448. 4 : "Start On" : 0
  449. 8 : "Animated" : 0
  450. 16 : "Animated Fast" : 0
  451. ]
  452. ]
  453. @SolidClass base(EditorFlags, Targetable, Teamable, EWT_base_BModel, BmodelSounds) color(0 128 204) = func_water : "Moveable water"
  454. [
  455. spawnflags(Flags) =
  456. [
  457. 1 : "Start Open" : 0
  458. 2 : "Smart Water (player position aware rising)" : 0
  459. ]
  460. speed(float) : "Speed" : "25"
  461. wait(choices) : "Wait before return" : -1 =
  462. [
  463. -1 : "Toggle"
  464. ]
  465. lip(float) : "Lip remaining after move"
  466. sounds(Choices) : "Sounds" : 1 =
  467. [
  468. 0 : "No Sounds"
  469. 1 : "Water"
  470. 2 : "Water"
  471. ]
  472. accel(float) : "divisor of lowest player's distance, to determine rising speed" : "20"
  473. ]
  474. @PointClass base(Targetable) color(128 0 0) size(-2 -2 -2, 2 2 2) = info_null : "Compiler-only target (spotlights, etc)" []
  475. @PointClass base(EditorFlags, Targetable) color(0 128 0) size(-4 -4 -4, 4 4 4) = info_notnull : "Game target" []
  476. // expansion
  477. @PointClass base(info_notnull) = info_teleport_destination : "Teleport Destination" []
  478. @PointClass base(EditorFlags, Targetable, Target, EWT_base_PointLight) color(0 255 0) size(-8 -8 -8, 8 8 8) = light : "Light"
  479. [
  480. spawnflags(Flags) =
  481. [
  482. 1 : "Start Off" : 0
  483. 2 : "Allow In Deathmatch" : 0
  484. ]
  485. style(Choices) : "Style" : 0 =
  486. [
  487. 0 : "Normal"
  488. 1 : "Flicker #1"
  489. 6 : "Flicker #2"
  490. 2 : "Slow Strong Pulse"
  491. 3 : "Candle #1"
  492. 7 : "Candle #2"
  493. 8 : "Candle #3"
  494. 4 : "Fast Strobe"
  495. 5 : "Gentle Pulse #1"
  496. 9 : "Slow Strobe"
  497. 10 : "Fluorescent Flicker"
  498. 11 : "Slow pulse, no black"
  499. ]
  500. ]
  501. @PointClass base(EditorFlags, Targetable, Target) color(0 255 0) size(-2 -2 -12, 2 2 12) model({ "path": ":models/objects/minelite/light1/tris.md2", "skin": 0 }) = light_mine1 : "Clean fluorescent light fixture" []
  502. @PointClass base(EditorFlags, Targetable, Target) color(0 255 0) size(-2 -2 -12, 2 2 12) model({ "path": ":models/objects/minelite/light2/tris.md2", "skin": 0 }) = light_mine2 : "Dusty fluorescent light fixture" []
  503. @PointClass base(EditorFlags) color(255 128 0) size(-4 -4 0, 4 4 246) model({ "path": ":models/objects/banner/tris.md2" }) = misc_banner : "Flowing banner" []
  504. @PointClass base(EditorFlags, Targetable, Scale, Alpha) color(255 128 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/black/tris.md2" }) = misc_blackhole : "Blackhole" [
  505. spawnflags(Flags) =
  506. [
  507. 1 : "Auto-Noise (N64)" : 0
  508. ]
  509. ]
  510. // Expansion
  511. @PointClass base(EditorFlags, Targetable) color(255 128 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/core/tris.md2" }) = misc_nuke_core : "Nuke Core (must be targeted to appear)" []
  512. @PointClass base(EditorFlags) color(255 128 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/items/spawngro2/tris.md2", "frame": 2 }) = target_orb : "Large Orb" []
  513. @PointClass base(EditorFlags) color(255 128 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/items/spawngro2/tris.md2", "frame": 1 }) = target_blacklight : "Large Orb (black light)" []
  514. @PointClass base(EditorFlags) color(255 128 0) size(-16 -16 0, 16 16 16) model({{
  515. spawnflags & 32 -> { "path": ":models/deadbods/dude/tris.md2", "frame": 5 },
  516. spawnflags & 16 -> { "path": ":models/deadbods/dude/tris.md2", "frame": 4 },
  517. spawnflags & 8 -> { "path": ":models/deadbods/dude/tris.md2", "frame": 3 },
  518. spawnflags & 4 -> { "path": ":models/deadbods/dude/tris.md2", "frame": 2 },
  519. spawnflags & 2 -> { "path": ":models/deadbods/dude/tris.md2", "frame": 1 },
  520. ":models/deadbods/dude/tris.md2"
  521. }}) = misc_deadsoldier : "Dead guys! 6 of em!"
  522. [
  523. spawnflags(Flags) =
  524. [
  525. 1 : "On Back" : 0
  526. 2 : "On Stomach" : 0
  527. 4 : "Back, Decap" : 0
  528. 8 : "Fetal Position" : 0
  529. 16 : "Sitting, Decap" : 0
  530. 32 : "Impaled" : 0
  531. ]
  532. ]
  533. // The following three entities are eye-candy - they don't do anything
  534. @PointClass base(EditorFlags) color(255 128 0) size(-32 -32 -16, 32 32 32) model({ "path": ":models/monsters/tank/tris.md2", "frame":254, "skin": 2}) = misc_eastertank : "Tank sitting down. Make him a chair out of brushes." []
  535. @PointClass base(EditorFlags) color(255 128 0) size(-32 -32 0, 32 32 32) model({ "path": ":models/monsters/bitch/tris.md2", "frame":208}) = misc_easterchick : "Chick #1 sitting: Place her near misc_eastertank." []
  536. @PointClass base(EditorFlags) color(255 128 0) size(-32 -32 0, 32 32 32) model({ "path": ":models/monsters/bitch/tris.md2", "frame":248}) = misc_easterchick2 : "Chick #2 sitting w/ different pose. Can be placed close to misc_eastertank's for full effect." []
  537. @PointClass base(EditorFlags) color(0 128 204) size(-16 -16 0, 16 16 40) model({ "path": ":models/objects/barrels/tris.md2" }) = misc_explobox : "Large exploding box"
  538. [
  539. mass(float) : "Mass" : "100"
  540. health(float) : "Health" : "80"
  541. dmg(float) : "Damage" : "150"
  542. ]
  543. // set angle for gib direction, otherwise it just drops
  544. @PointClass base(EditorFlags) color(255 0 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/gibs/arm/tris.md2" }) = misc_gib_arm : "arm gib, use with target_spawner" []
  545. @PointClass base(EditorFlags) color(255 0 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/gibs/head/tris.md2" }) = misc_gib_head : "head gib, use with target_spawner" []
  546. @PointClass base(EditorFlags) color(255 0 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/gibs/arm/tris.md2" }) = misc_gib_leg : "leg gib, use with target_spawner" []
  547. @PointClass base(EditorFlags, Targetable) color(255 128 0) size(-64 -64 0, 64 64 128)
  548. model(
  549. {{
  550. spawnflags & 32 -> { "path": ":models/objects/satellite/tris.md2", "frame": 38 },
  551. ":models/objects/satellite/tris.md2"
  552. }}
  553. ) =
  554. misc_satellite_dish : "Satellite Dish"
  555. [
  556. spawnflags(Flags) =
  557. [
  558. 32 : "(editor only) Show End Position" : 0
  559. ]
  560. ]
  561. @PointClass base(EditorFlags, Targetable, Target) color(255 128 0) size(-16 -16 0, 16 16 32) model({ "path": ":models/ships/strogg1/tris.md2" }) = misc_strogg_ship : "Strogg ship for flybys"
  562. [
  563. speed(float) : "Speed" : "300"
  564. ]
  565. @PointClass base(EditorFlags, Target) color(255 0 0) size(-32 -32 -24, 32 32 -16) model({ "path": ":models/objects/dmspot/tris.md2", "skin": 1 }) = misc_teleporter : "Teleporter: To hide the teleport pads, place them units 10 units into a brush."
  566. [
  567. spawnflags(Flags) =
  568. [
  569. 1 : "No Sound" : 0
  570. 2 : "No Effect" : 0
  571. 4 : "N64 Effect" : 0
  572. ]
  573. ]
  574. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-32 -32 -24, 32 32 -16) model({ "path": ":models/objects/dmspot/tris.md2", "skin": 0 }) = misc_teleporter_dest : "Teleport Destination: To hide the teleport pads, place them units 10 units into a brush or use an info_notnull." []
  575. @PointClass base(EditorFlags) color(255 128 0) size(-176 -120 -24, 176 120 72) model({ "path": ":models/ships/bigviper/tris.md2" }) = misc_bigviper : "Large stationary Viper" []
  576. @PointClass base(misc_strogg_ship) model({ "path": ":models/ships/viper/tris.md2" }) = misc_viper : "Viper for flybys" []
  577. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/bomb/tris.md2" }) = misc_viper_bomb : "Viper Bomb"
  578. [
  579. dmg(float) : "Damage"
  580. ]
  581. // Expansion
  582. @PointClass base(misc_strogg_ship) model({ "path": ":models/ships/viper/tris.md2" }) = misc_crashviper : "Viper that crashes"
  583. [
  584. ]
  585. @PointClass base(EditorFlags, Targetable, Target) color(255 0 0) size(-8 -8 -8, 8 8 8) model({ "path": ":models/objects/bomb/tris.md2" }) = misc_viper_missile : "Viper Missile"
  586. [
  587. dmg(float) : "Damage" : "250"
  588. ]
  589. @PointClass base(misc_strogg_ship) model({ "path": ":models/objects/ship/tris.md2" }) = misc_transport : "Xatrix Transport"
  590. [
  591. ]
  592. //
  593. // Monsters!
  594. //
  595. @BaseClass base(EditorFlags, Targetable, Target, Scale, Alpha) color(255 128 0) size(-16 -16 -24, 16 16 32) = Monsters
  596. [
  597. spawnflags(Flags) =
  598. [
  599. 1 : "Ambush" : 0
  600. 2 : "Trigger Spawn" : 0
  601. 4 : "Ambush Override (don't use)" : 0
  602. 65536 : "Spawn Dead" : 0
  603. 131072 : "Super Step" : 0
  604. 262144 : "drop to ground" : 0
  605. ]
  606. combattarget(target_destination) : "Point combat target"
  607. deathtarget(target_destination) : "Entity to trigger at death"
  608. healthtarget(target_destination) : "Entity to trigger when health hits target"
  609. itemtarget(target_destination) : "Entity to trigger when item dropped by this monster is picked up"
  610. killtarget(target_destination) : "Entity to remove at death"
  611. item(string) : "Spawn Item"
  612. health_multiplier(float) : "Set health based on multiplier of base health" : "1.0"
  613. dead_frame(integer) : "Frame to spawn dead monsters on" : 0
  614. power_armor_power(integer) : "Override power armor amount"
  615. power_armor_type(Choices) : "Override power armor type" : 0 =
  616. [
  617. 0 : "None"
  618. 1 : "Screen"
  619. 2 : "Shield"
  620. ]
  621. ]
  622. @PointClass base(Monsters) color(255 128 0) size(-16 -16 -24, 16 16 32) model({{
  623. spawnflags & 32 -> { "path": ":models/monsters/insane/tris.md2", "frame": 0 },
  624. spawnflags & 16 -> { "path": ":models/monsters/insane/tris.md2", "frame": 74 },
  625. spawnflags & 8 -> { "path": ":models/monsters/insane/tris.md2", "frame": 252 },
  626. spawnflags & 4 -> { "path": ":models/monsters/insane/tris.md2", "frame": 38 },
  627. spawnflags & 2 -> { "path": ":models/monsters/insane/tris.md2", "frame": 0 },
  628. ":models/monsters/insane/tris.md2"
  629. }}) = misc_insane : "Insane Soldiers"
  630. [
  631. spawnflags(Flags) =
  632. [
  633. 4 : "Crawl" : 0
  634. 8 : "Crucified" : 0
  635. 16 : "Stand Ground" : 0
  636. 32 : "Always Stand" : 0
  637. 64 : "Quiet" : 0
  638. ]
  639. ]
  640. @PointClass base(Monsters) model({ "path": ":models/monsters/berserk/tris.md2" }) = monster_berserk : "Berserker" [
  641. spawnflags(Flags) =
  642. [
  643. 8 : "No jumping" : 0
  644. ]
  645. ]
  646. @PointClass base(Monsters) size(-56 -56 0, 56 56 80) model({ "path": ":models/monsters/boss2/tris.md2" }) = monster_boss2 : "Hornet"
  647. [
  648. spawnflags(Flags) =
  649. [
  650. 8 : "N64 (hyperblaster, staggered rockets)" : 0
  651. ]
  652. ]
  653. // Just fidgets in one spot and teleports away when triggered
  654. //
  655. // 0221 - removed Monsters class inheritance
  656. @PointClass base(EditorFlags, Targetable) size(-32 -32 0, 32 32 80) model({ "path": ":models/monsters/boss3/rider/tris.md2", "frame": 414}) = monster_boss3_stand : "Stationnary Makron" []
  657. @PointClass base(Monsters) model({ "path": ":models/monsters/brain/tris.md2" }) = monster_brain : "Brains"
  658. [
  659. spawnflags(Flags) =
  660. [
  661. 1 : "Ambush" : 0
  662. 2 : "Trigger Spawn" : 0
  663. 8 : "no laser eyes" : 0
  664. ]
  665. ]
  666. @PointClass base(Monsters) model({ "path": ":models/monsters/bitch/tris.md2" }) size(-16 -16 0, 16 16 56) = monster_chick : "Iron Maiden" []
  667. @PointClass base(EditorFlags, Targetable) color(255 128 0) size(-32 -32 0, 32 32 48) model({ "path": ":models/monsters/commandr/tris.md2" }) = monster_commander_body : "Tank commander's decapitated body" []
  668. @PointClass base(Monsters) model({ "path": ":models/monsters/flipper/tris.md2" }) = monster_flipper : "Barracuda shark" []
  669. @PointClass base(Monsters) size(-24 -24 -24, 24 24 48) model({ "path": ":models/monsters/float/tris.md2" }) = monster_floater : "Technician"
  670. [
  671. spawnflags(Flags) =
  672. [
  673. 1 : "Ambush" : 0
  674. 2 : "Trigger Spawn" : 0
  675. 8 : "Disguise as barrel" : 0
  676. ]
  677. ]
  678. @PointClass base(Monsters) model({ "path": ":models/monsters/flyer/tris.md2" }) = monster_flyer : "Flyer" []
  679. @PointClass base(Monsters) size(-32 -32 -24, 32 32 64) model({ "path": ":models/monsters/gladiatr/tris.md2" }) = monster_gladiator : "Gladiator" []
  680. @PointClass base(Monsters) model({ "path": ":models/monsters/gunner/tris.md2" }) = monster_gunner : "Gunner"
  681. [
  682. spawnflags(Flags) =
  683. [
  684. 8 : "No jumping" : 0
  685. ]
  686. ]
  687. @PointClass base(Monsters) model({ "path": ":models/monsters/gunner/tris.md2", "frame": 249 }) = monster_guncmdr : "Gunner Commander"
  688. [
  689. spawnflags(Flags) =
  690. [
  691. 8 : "No jumping" : 0
  692. ]
  693. ]
  694. @PointClass base(Monsters) model({ "path": ":models/monsters/hover/tris.md2" }) = monster_hover : "Icarus" []
  695. @PointClass base(Monsters) model({ "path": ":models/monsters/infantry/tris.md2", "frame": 64}) = monster_infantry : "Infantry"
  696. [
  697. spawnflags(Flags) =
  698. [
  699. 8 : "No jumping" : 0
  700. ]
  701. ]
  702. @PointClass base(Monsters) size(-80 -80 0, 90 90 140) model({ "path": ":models/monsters/boss3/jorg/tris.md2" }) = monster_jorg : "Jorg" []
  703. // 0221 - this entity can only spawn once the Jorg dies ... im sure someone will change that tho
  704. @PointClass base(Monsters) size(-32 -32 0, 32 32 80) model({ "path": ":models/monsters/boss3/rider/tris.md2", "frame": 414}) = monster_makron : "Makron" []
  705. @PointClass base(Monsters) model({ "path": ":models/monsters/medic/tris.md2" }) = monster_medic : "Medic" []
  706. @PointClass base(Monsters) size(-32 -32 -24, 32 32 32)
  707. model(
  708. {{
  709. spawnflags & 65536 -> { "path": ":models/monsters/mutant/tris.md2", "skin": 1, "frame": 33 },
  710. ":models/monsters/mutant/tris.md2"
  711. }}
  712. ) =
  713. monster_mutant : "Mutant"
  714. [
  715. spawnflags(Flags) =
  716. [
  717. 8 : "No jumping" : 0
  718. ]
  719. ]
  720. @PointClass base(Monsters) model({ "path": ":models/monsters/parasite/tris.md2" }) = monster_parasite : "Parasite"
  721. [
  722. spawnflags(Flags) =
  723. [
  724. 8 : "No jumping" : 0
  725. ]
  726. ]
  727. @PointClass base(Monsters) model({ "path": ":models/monsters/soldier/tris.md2", "skin": 0 }) = monster_soldier_light : "Light Soldier"
  728. [
  729. spawnflags(Flags) =
  730. [
  731. 1 : "Ambush" : 0
  732. 2 : "Trigger Spawn" : 0
  733. 8 : "Blind" : 0
  734. ]
  735. ]
  736. @PointClass base(Monsters) model({ "path": ":models/monsters/soldier/tris.md2", "skin": 2 }) = monster_soldier : "Soldier"
  737. [
  738. spawnflags(Flags) =
  739. [
  740. 1 : "Ambush" : 0
  741. 2 : "Trigger Spawn" : 0
  742. 8 : "Blind" : 0
  743. ]
  744. ]
  745. @PointClass base(Monsters) model({ "path": ":models/monsters/soldier/tris.md2", "skin": 4 }) = monster_soldier_ss : "SS Soldier"
  746. [
  747. spawnflags(Flags) =
  748. [
  749. 1 : "Ambush" : 0
  750. 2 : "Trigger Spawn" : 0
  751. 8 : "Blind" : 0
  752. ]
  753. ]
  754. @PointClass base(Monsters) size(-32 -32 -16, 32 32 72) model({ "path": ":models/monsters/tank/tris.md2" }) = monster_tank : "Tank" []
  755. @PointClass base(Monsters) size(-32 -32 -16, 32 32 72) model({ "path": ":models/monsters/tank/tris.md2", "skin": 2 }) = monster_tank_commander : "Tank Commander"
  756. [
  757. speed(float) : "homing missile speed" : "0.0"
  758. spawnflags(Flags) =
  759. [
  760. 8 : "N64" : 0
  761. 16 : "Heat-Seeking Missiles" : 0
  762. ]
  763. ]
  764. @PointClass base(Monsters) size(-64 -64 0, 64 64 72) model({ "path": ":models/monsters/boss1/tris.md2" }) = monster_supertank : "Super Tank Boss"
  765. [
  766. spawnflags(Flags) =
  767. [
  768. 1 : "Ambush" : 0
  769. 2 : "Trigger Spawn" : 0
  770. 8 : "Power Shield" : 0
  771. ]
  772. ]
  773. // Expansions
  774. @PointClass base(Monsters) model({ "path": ":models/monsters/soldier/tris.md2", "skin": 6 }) = monster_soldier_ripper : "Ripper Soldier"
  775. [
  776. spawnflags(Flags) =
  777. [
  778. 1 : "Ambush" : 0
  779. 2 : "Trigger Spawn" : 0
  780. 8 : "Blind" : 0
  781. ]
  782. ]
  783. @PointClass base(Monsters) model({ "path": ":models/monsters/soldier/tris.md2", "skin": 8 }) = monster_soldier_hypergun : "Hypergun Soldier"
  784. [
  785. spawnflags(Flags) =
  786. [
  787. 1 : "Ambush" : 0
  788. 2 : "Trigger Spawn" : 0
  789. 8 : "Blind" : 0
  790. ]
  791. ]
  792. @PointClass base(Monsters) model({ "path": ":models/monsters/soldier/tris.md2", "skin": 10 }) = monster_soldier_lasergun : "Lasergun Soldier"
  793. [
  794. spawnflags(Flags) =
  795. [
  796. 1 : "Ambush" : 0
  797. 2 : "Trigger Spawn" : 0
  798. 8 : "Blind" : 0
  799. ]
  800. ]
  801. @PointClass base(Monsters) size(-32 -32 -24, 32 32 24) model({ "path": ":models/monsters/fixbot/tris.md2" }) = monster_fixbot : "Fixbot"
  802. [
  803. spawnflags(Flags) =
  804. [
  805. 1 : "Ambush" : 0
  806. 2 : "Trigger Spawn" : 0
  807. 4 : "Fix stuff" : 0
  808. 8 : "Takeoff" : 0
  809. 16 : "Landing" : 0
  810. ]
  811. ]
  812. @SolidClass base(EditorFlags, Targetable) color (0 128 204) = func_object_repair : "Fixbot repair object"
  813. [
  814. delay(float) : "delay between sparks" : "1"
  815. ]
  816. @PointClass base(Monsters) size(-24 -24 -24, 24 24 24)
  817. model(
  818. {{
  819. spawnflags & 65536 -> { "path": ":models/monsters/gekk/tris.md2", "skin": 2, "frame": 141 },
  820. ":models/monsters/gekk/tris.md2"
  821. }}
  822. ) =
  823. monster_gekk : "Gekk"
  824. [
  825. spawnflags(Flags) =
  826. [
  827. 1 : "Ambush" : 0
  828. 2 : "Trigger Spawn" : 0
  829. 8 : "Chanting" : 0
  830. 16: "No jumping" : 0
  831. 32: "No swimming" : 0
  832. ]
  833. ]
  834. @PointClass base(Monsters) model({ "path": ":models/monsters/bitch/tris.md2", "skin": 2 }) size(-16 -16 0, 16 16 56) = monster_chick_heat : "Iron Maiden (heat-seeking missile)" []
  835. @PointClass base(Monsters) size(-32 -32 -24, 32 32 64) model({ "path": ":models/monsters/gladiatr/tris.md2", "skin": 2 }) = monster_gladb : "Gladiator (phalanx)" []
  836. @PointClass base(Monsters) size(-64 -64 0, 64 64 72) model({ "path": ":models/monsters/boss1/tris.md2", "skin": 2 }) = monster_boss5 : "Super Tank Boss (power armor)" []
  837. @PointClass base(info_notnull, Target, Targetable) = hint_path : "Monster Path"
  838. [
  839. spawnflags(Flags) =
  840. [
  841. 1 : "Endpoint" : 0
  842. ]
  843. wait(float) : "wait for this amount of time" : "0"
  844. ]
  845. @PointClass base(Monsters) model({ "path": ":models/monsters/hover/tris.md2", "skin": 2 }) = monster_daedalus : "Daedalus" []
  846. @PointClass base(Monsters) size(-56 -56 -44, 56 56 44) model({ "path": ":models/monsters/carrier/tris.md2" }) = monster_carrier : "Carrier"
  847. [
  848. reinforcements(string): "Semicolon separated list of entity classes and cost of monster to spawn" : "monster_flyer 1;monster_flyer 1;monster_flyer 1;monster_kamikaze 1"
  849. monster_slots(integer) : "How many points to spend on monster spawns. Increases by up to 2x for Hard skill" : 3
  850. ]
  851. @PointClass base(Monsters) size(-40 -40 0, 40 40 144) model({ "path": ":models/monsters/blackwidow/tris.md2" }) = monster_widow : "Black Widow (on foot)" []
  852. //Why is there two of these with no difference?
  853. //@PointClass base(Monsters) size(-70 -70 0, 70 70 144) model({ "path": ":models/monsters/blackwidow2/tris.md2" }) = monster_widow : "Black Widow (spider)" []
  854. @PointClass base(Monsters) model({ "path": ":models/monsters/medic/tris.md2", "skin": 2 }) = monster_medic_commander : "Medic Commander"
  855. [
  856. reinforcements(string): "Semicolon separated list of entity classes and cost of monster to spawn" : "monster_soldier_light 1;monster_soldier 2;monster_soldier_ss 2;monster_infantry 3;monster_gunner 4;monster_medic 5;monster_gladiator 6"
  857. monster_slots(integer) : "How many points to spend on monster spawns. Increases by up to 2x for Hard skill" : 3
  858. ]
  859. @PointClass base(Monsters) model({ "path": ":models/monsters/flyer/tris.md2" }) = monster_kamikaze : "Flyer (kamikaze)" []
  860. @PointClass base(Monsters) size(-12 -12 -12, 12 12 12) model({ "path": ":models/monsters/turret/tris.md2" }) = monster_turret : "Turret Monster"
  861. [
  862. spawnflags(Flags) =
  863. [
  864. 1 : "Ambush" : 0
  865. 2 : "Trigger Spawn" : 0
  866. 8 : "Blaster" : 0
  867. 16 : "Chaingun" : 0
  868. 32 : "Rocket" : 0
  869. 128: "Wall Unit (must be targeted)" : 0
  870. 262144 : "No Lasersight (beware)" : 0
  871. ]
  872. ]
  873. @PointClass base(Monsters) size(-28 -28 -18, 28 28 18) model({ "path": ":models/monsters/stalker/tris.md2" }) = monster_stalker : "Stalker"
  874. [
  875. spawnflags(Flags) =
  876. [
  877. 1 : "Ambush" : 0
  878. 2 : "Trigger Spawn" : 0
  879. 8 : "Start On Roof" : 0
  880. 16 : "No Jumping" : 0
  881. ]
  882. ]
  883. // using a "wait" value of -1 on a path corner causes a func_train to go silent between
  884. // itself and the next path corner when the train is restarted. The train's sound will
  885. // resume as soon as it reaches a path corner with a "wait" value other than -1
  886. @PointClass base(EditorFlags, Targetable, UseTargets) color(128 76 0) size(-8 -8 -8, 8 8 8) = path_corner : "Path marker"
  887. [
  888. spawnflags(Flags) =
  889. [
  890. 1 : "Teleport" : 0
  891. ]
  892. target(target_destination) : "Next path target"
  893. pathtarget(target_destination) : "Event to trigger"
  894. wait(choices) : "Wait" : 0 =
  895. [
  896. -1 : "Wait for retrigger"
  897. ]
  898. ]
  899. @PointClass base(path_corner) color(128 76 9) size(-8 -8 -8, 8 8 8) = point_combat : "Point of combat - should be the first/only target of a monster"
  900. [
  901. spawnflags(Flags) =
  902. [
  903. 1 : "Hold" : 0
  904. ]
  905. ]
  906. @PointClass base(EditorFlags, Targetable, Angleable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_blaster : "Blaster (use angles to point it)"
  907. [
  908. spawnflags(Flags) =
  909. [
  910. 1 : "No Trail" : 0
  911. 2 : "No Effects" : 0
  912. ]
  913. dmg(float) : "Damage" : "15"
  914. speed(float) : "Speed" : "1000"
  915. ]
  916. // set "map" value to "mapname$playername" where playername equals
  917. // the targetname of a corresponding info_player_start in the
  918. // next map. To play a cinematic before starting the level, the
  919. // "map" value should be "cinemeatic.cin+mapname$playername". Note
  920. // that a playername is not required if the corresponding info_player_start
  921. // doesn't have a targetname. If you want this to be designated as the last
  922. // level of a unit, place an asterix (*) before the map name.
  923. @PointClass base(EditorFlags, Targetable, Target) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_changelevel : "Change level"
  924. [
  925. spawnflags(Flags) =
  926. [
  927. 8 : "Clear Inventory" : 0
  928. 16 : "No End of Unit" : 0
  929. 32 : "Fade out" : 0
  930. 64 : "Immediate Leave" : 0
  931. ]
  932. map(string) : "Next map; append $targetname to spawn at matched targetname"
  933. target(target_destination) : "Name of info_landmark in the next map to link this exit to"
  934. ]
  935. @PointClass base(EditorFlags, Targetable) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crosslevel_trigger : "Cross-level trigger"
  936. [
  937. spawnflags(Flags) =
  938. [
  939. 1 : "Trigger 1" : 0
  940. 2 : "Trigger 2" : 0
  941. 4 : "Trigger 3" : 0
  942. 8 : "Trigger 4" : 0
  943. 16 : "Trigger 5" : 0
  944. 32 : "Trigger 6" : 0
  945. 64 : "Trigger 7" : 0
  946. 128 : "Trigger 8" : 0
  947. 65536 : "Trigger 9" : 0
  948. 131072 : "Trigger 10" : 0
  949. 262144 : "Trigger 11" : 0
  950. 524288 : "Trigger 12" : 0
  951. 1048576 : "Trigger 13" : 0
  952. 2097152 : "Trigger 14" : 0
  953. 4194304 : "Trigger 15" : 0
  954. 8388608 : "Trigger 16" : 0
  955. ]
  956. ]
  957. @PointClass base(EditorFlags, Targetable, UseTargets) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crosslevel_target : "Cross-level trigger"
  958. [
  959. spawnflags(Flags) =
  960. [
  961. 1 : "Trigger 1" : 0
  962. 2 : "Trigger 2" : 0
  963. 4 : "Trigger 3" : 0
  964. 8 : "Trigger 4" : 0
  965. 16 : "Trigger 5" : 0
  966. 32 : "Trigger 6" : 0
  967. 64 : "Trigger 7" : 0
  968. 128 : "Trigger 8" : 0
  969. 65536 : "Trigger 9" : 0
  970. 131072 : "Trigger 10" : 0
  971. 262144 : "Trigger 11" : 0
  972. 524288 : "Trigger 12" : 0
  973. 1048576 : "Trigger 13" : 0
  974. 2097152 : "Trigger 14" : 0
  975. 4194304 : "Trigger 15" : 0
  976. 8388608 : "Trigger 16" : 0
  977. ]
  978. ]
  979. @PointClass base(target_crosslevel_trigger) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crossunit_trigger : "Cross-unit trigger"
  980. [
  981. ]
  982. @PointClass base(target_crosslevel_target) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crossunit_target : "Cross-unit target"
  983. [
  984. ]
  985. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_earthquake : "Level wide earthquake"
  986. [
  987. spawnflags(Flags) =
  988. [
  989. 1 : "Silent" : 0
  990. 2 : "Toggle" : 0
  991. 8 : "One Shot" : 0
  992. ]
  993. speed(float) : "Severity of quake" : "200"
  994. count(float) : "Duration" : "5"
  995. ]
  996. @PointClass base(EditorFlags, Targetable, UseTargets) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_explosion : "Explosion"
  997. [
  998. delay(float) : "Delay before explosion"
  999. dmg(float) : "Radius damage" : "0"
  1000. ]
  1001. @PointClass base(EditorFlags, Targetable, UseTargets) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_goal : "Counts a goal completed"
  1002. [
  1003. spawnflags(Flags) =
  1004. [
  1005. 1 : "Keep Music" : 0
  1006. ]
  1007. ]
  1008. @PointClass base(EditorFlags, Targetable) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_healthbar : "Monster Health bar"
  1009. [
  1010. delay(float) : "Delay before healthbar disappears after death" : "0.0"
  1011. message(string) : "Boss name" : ""
  1012. target(string): "Boss" : ""
  1013. ]
  1014. @PointClass base(EditorFlags, Targetable) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_help : "Computer help message"
  1015. [
  1016. spawnflags(Flags) =
  1017. [
  1018. 1 : "Main Onjective" : 0
  1019. 2 : "Set POI on use" : 0
  1020. ]
  1021. message(string) : "Computer message"
  1022. ]
  1023. // if no color spawnflags are set, the laser color defaults to dim gray (and hard to see)
  1024. // setting the damage to 0 makes it use the default damage of 1
  1025. // setting the damage to a negative number will actually give health
  1026. @PointClass base(EditorFlags, Targetable, Target, Angleable) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_laser : "Laser"
  1027. [
  1028. spawnflags(Flags) =
  1029. [
  1030. 1 : "Start On" : 0
  1031. 2 : "Red" : 0
  1032. 4 : "Green" : 0
  1033. 8 : "Blue" : 0
  1034. 16 : "Yellow" : 0
  1035. 32 : "Orange" : 0
  1036. 64 : "Fat" : 0
  1037. 128 : "Stop on windows" : 0
  1038. 65536 : "Lightning" : 0
  1039. ]
  1040. dmg(float) : "Damage"
  1041. rgba(integer) : "Laser colors; four palette indices separated by spaces"
  1042. ]
  1043. // Expansion
  1044. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_nuke : "Nuke (kill all entities)"
  1045. [
  1046. ]
  1047. @PointClass base(EditorFlags, Targetable, Target) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_mal_laser : "Laser (Xatrix; Mal Laser)"
  1048. [
  1049. spawnflags(Flags) =
  1050. [
  1051. 1 : "Start On" : 0
  1052. 2 : "Red" : 0
  1053. 4 : "Green" : 0
  1054. 8 : "Blue" : 0
  1055. 16 : "Yellow" : 0
  1056. 32 : "Orange" : 0
  1057. 64 : "Fat" : 0
  1058. ]
  1059. delay(float) : "Delay" : "0.1"
  1060. wait(float) : "Wait" : "0.1"
  1061. dmg(float) : "Damage"
  1062. ]
  1063. @PointClass base(EditorFlags, Targetable, Target) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_lightramp : "Light ramp"
  1064. [
  1065. spawnflags(Flags) =
  1066. [
  1067. 1 : "Toggle" : 0
  1068. ]
  1069. speed(float) : "Speed"
  1070. message(string) : "start/end light level"
  1071. ]
  1072. @PointClass base(EditorFlags, Targetable, UseTargets) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_secret : "Counts a secret found"
  1073. [
  1074. message(string) : "Message to print"
  1075. noise(string) : "Noise to play" : "misc/secret.wav"
  1076. ]
  1077. // set speed and angle, otherwise spawned object drops
  1078. @PointClass base(EditorFlags, Targetable, Angleable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_spawner : "Monster/Item spawner"
  1079. [
  1080. target(target_destination) : "Monster/Item to spawn"
  1081. speed(float) : "Speed"
  1082. ]
  1083. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_speaker : "Sound player"
  1084. [
  1085. spawnflags(Flags) =
  1086. [
  1087. 1 : "Looped On" : 0
  1088. 2 : "Looped Off" : 0
  1089. 4 : "Reliable" : 0
  1090. 8 : "No Stereo Panning" : 0
  1091. ]
  1092. noise(string) : "Sound (path/file.wav)"
  1093. attenuation(Choices) : "Attenuation" : 0 =
  1094. [
  1095. -1 : "None, send to whole level"
  1096. 0 : "Default (1 for non-looped, 3 for looped)"
  1097. 1 : "Normal fighting sounds"
  1098. 2 : "Idle sound level"
  1099. 3 : "Ambient sound level"
  1100. ]
  1101. volume(float) : "Volume (0.0 - 1.0)" : "1"
  1102. ]
  1103. @PointClass base(EditorFlags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_amb4 : "Amb4 speaker"
  1104. [
  1105. ]
  1106. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_music : "Change music"
  1107. [
  1108. sounds(integer) : "CD Track Number" : 1
  1109. ]
  1110. // "sounds" values other than 1 are silent. leaving in the other
  1111. // options for availability to mods/fixes
  1112. //
  1113. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_splash : "Creates a splash when used"
  1114. [
  1115. sounds(choices) : "Type of splash" : 2 =
  1116. [
  1117. 1 : "Sparks"
  1118. 2 : "Blue water"
  1119. 3 : "Brown water"
  1120. 4 : "Slime"
  1121. 5 : "Lava"
  1122. 6 : "Blood"
  1123. 7 : "N64 Sparks"
  1124. ]
  1125. count(integer) : "Number of pixels in splash (1 - 255)"
  1126. dmg(float) : "Radius damage"
  1127. ]
  1128. // eye candy... Particles #2 (style 22) is quite cool
  1129. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_temp_entity : "Temp entity"
  1130. [
  1131. style(choices) : "Style" : 22 =
  1132. [
  1133. 6 : "Grenade explosion #1"
  1134. 8 : "Grenade explosion #2"
  1135. 18 : "Grenade explosion #3 (underwater)"
  1136. 20 : "Green Fireball (BFG small)"
  1137. 21 : "Particles #1 (BFG big)"
  1138. 22 : "Particles #2 (boss teleport)"
  1139. 35 : "Plain explosion"
  1140. 45 : "chainfist smoke"
  1141. 47 : "Tracker Explosion (black particles)"
  1142. 48 : "Teleport effect #1"
  1143. 49 : "Teleport effect #2"
  1144. 51 : "Nuke Blast"
  1145. 52 : "Widow Splash"
  1146. 58 : "Berserk Slam"
  1147. ]
  1148. ]
  1149. @PointClass base(EditorFlags, UseTargets) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_always : "Always triggers" []
  1150. @PointClass base(EditorFlags, Targetable, UseTargets) color(128 128 128) = trigger_counter : "Counter"
  1151. [
  1152. spawnflags(Flags) =
  1153. [
  1154. 1 : "No Message" : 0
  1155. ]
  1156. count(integer) : "Count before trigger" : 2
  1157. ]
  1158. @PointClass base(EditorFlags, Targetable, Target) color(76 25 153) = trigger_elevator : "Elevator trigger; note that whoever targets this must have a pathtarget set" []
  1159. @SolidClass base(EditorFlags, Targetable) color(128 128 128) = trigger_hurt : "Hurts on touch"
  1160. [
  1161. spawnflags(Flags) =
  1162. [
  1163. 1 : "Start Off" : 0
  1164. 2 : "Toggle" : 0
  1165. 4 : "Silent" : 0
  1166. 8 : "No Protection" : 0
  1167. 16 : "Slow hurt" : 0
  1168. 32 : "No Players" : 0
  1169. 64 : "No Monsters" : 0
  1170. 128 : "Clipped (must touch brushes, not just aabb)" : 0
  1171. ]
  1172. dmg(float) : "Damage" : "5"
  1173. ]
  1174. @PointClass base(EditorFlags, Targetable, UseTargets) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_key : "Triggers with key"
  1175. [
  1176. item(string) : "Item classname" : "key_blue_key"
  1177. ]
  1178. @SolidClass base(EditorFlags, Targetable) color(128 128 128) = trigger_monsterjump : "Makes monsters jump"
  1179. [
  1180. spawnflags(Flags) =
  1181. [
  1182. 1 : "Toggle" : 0
  1183. 2 : "Start Off" : 0
  1184. 4 : "Clipped (must touch brushes, not just aabb)" : 0
  1185. ]
  1186. speed(float) : "Speed thrown forward" : "200"
  1187. height(float) : "Height thrown upward" : "200"
  1188. ]
  1189. @PointClass base(EditorFlags, Targetable, UseTargets) color(128 128 128) = trigger_relay : "Relay trigger" []
  1190. @SolidClass base(trigger_relay) = trigger_once : "Single fire trigger"
  1191. [
  1192. spawnflags(Flags) =
  1193. [
  1194. 4 : "Triggered" : 0
  1195. 32 : "Clipped (must exactly touch brushes, not just aabb)" : 0
  1196. ]
  1197. ]
  1198. @SolidClass base(trigger_once) = trigger_multiple : "Multiple fire trigger"
  1199. [
  1200. spawnflags(Flags) =
  1201. [
  1202. 1 : "Monster" : 0
  1203. 2 : "Not Player" : 0
  1204. 4 : "Triggered (triggering will enable; starts off)" : 0
  1205. 8 : "Toggled (triggering will toggle between on/off; starts off)" : 0
  1206. 16 : "Latched (will trigger when an entity first enters & last leaves)" : 0
  1207. 32 : "Clipped (must exactly touch brushes, not just aabb)" : 0
  1208. ]
  1209. wait(float) : "Seconds between triggers" : "0"
  1210. ]
  1211. @SolidClass base(EditorFlags) color(128 128 128) = trigger_push : "Push trigger"
  1212. [
  1213. spawnflags(Flags) =
  1214. [
  1215. 1 : "Push Once" : 0
  1216. 2 : "Wait & Effect" : 0
  1217. 4 : "Silent" : 0
  1218. 8 : "Start Off" : 0
  1219. 16 : "Clipped (must exactly touch brushes, not just aabb)" : 0
  1220. ]
  1221. speed(float) : "Speed of push" : "1000"
  1222. wait(float) : "Time to wait between pushes" : "10"
  1223. ]
  1224. // Expansion
  1225. @SolidClass base(EditorFlags) color(128 128 128) = trigger_gravity : "Gravity trigger"
  1226. [
  1227. spawnflags(Flags) =
  1228. [
  1229. 1 : "Toggle" : 0
  1230. 2 : "Start Off" : 0
  1231. 4 : "Clipped (must exactly touch brushes, not just aabb)" : 0
  1232. ]
  1233. gravity(float) : "Gravity (standard = 1.0)" : "1"
  1234. ]
  1235. @SolidClass base(EditorFlags, Targetable, Target, EWT_base_BModel, Teamable) color(128 255 128) = turret_breach : "Turret breach"
  1236. [
  1237. speed(float) : "Speed" : "50"
  1238. dmg(float) : "Damage" : "10"
  1239. minpitch(float) : "Miminum pitch angle" : "-30"
  1240. maxpitch(float) : "Maximum pitch angle" : "30"
  1241. minyaw(float) : "Minimum yaw angle" : "0"
  1242. maxyaw(float) : "Maximum yaw angle" : "360"
  1243. ]
  1244. @SolidClass base(EditorFlags, EWT_base_BModel, Teamable) color(128 255 128) = turret_base : "Turret base"
  1245. [
  1246. ]
  1247. @PointClass base(EditorFlags) color(128 255 128) size(-16 -16 -24, 16 16 32) model({ "path": ":models/monsters/infantry/tris.md2"}) = turret_driver : "Turret driver" [ target(target_destination) : "Target (turret_breach)" ]
  1248. // Expansions
  1249. @PointClass base(EditorFlags) color(128 255 128) size(-4 -4 -4, 4 4 4) = turret_invisible_brain : "Turret invisible brain"
  1250. [
  1251. delay(float) : "Delay between firing; leave unset for skill ramping" : "0"
  1252. target(target_destination) : "Target (turret_breach)"
  1253. killtarget(target_destination) : "Entity to be attacked"
  1254. ]
  1255. @SolidClass base(EWT_base_BModel) color(0 128 204) = func_group : "group" []
  1256. // Paril: CTF
  1257. @PointClass base(EditorFlags) color(255 128 0) size(-4 -4 0, 4 4 246) model({ "path": ":models/ctf/banner/tris.md2" }) = misc_ctf_banner : "Flowing CTF banner"
  1258. [
  1259. spawnflags(Flags) =
  1260. [
  1261. 1 : "Blue Team" : 0
  1262. ]
  1263. ]
  1264. @PointClass base(EditorFlags) color(255 128 0) size(-4 -4 0, 4 4 246) model({ "path": ":models/ctf/banner/small.md2" }) = misc_ctf_small_banner : "Smaller flowing CTF banner"
  1265. [
  1266. spawnflags(Flags) =
  1267. [
  1268. 1 : "Blue Team" : 0
  1269. ]
  1270. ]
  1271. // Expansions
  1272. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_killplayers : "Nuke (kill all players)" []
  1273. @PointClass base(EditorFlags, Targetable) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_anger : "Anger (make monster angry at something)"
  1274. [
  1275. killtarget(target_destination) : "Target to be angry at"
  1276. target(target_destination) : "Target(s) to make angry"
  1277. ]
  1278. @PointClass base(EditorFlags, Targetable, Target) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_steam : "Steam Emitter"
  1279. [
  1280. speed(float) : "velocity of particles" : "75"
  1281. count(integer) : "number of particles" : 32
  1282. sounds(integer) : "color of particles (palette index)" : 8
  1283. wait(float) : "seconds to run before stopping"
  1284. ]
  1285. @SolidClass base(EditorFlags) color(128 128 128) = trigger_disguise : "Disguise"
  1286. [
  1287. spawnflags(Flags) =
  1288. [
  1289. 2 : "Start On" : 0
  1290. 4 : "Remove" : 0
  1291. ]
  1292. ]
  1293. @SolidClass base(EditorFlags, Targetable, Target, Angleable) color(128 128 128) = trigger_teleport : "Teleport"
  1294. [
  1295. spawnflags(Flags) =
  1296. [
  1297. 8 : "Start On" : 0
  1298. ]
  1299. ]
  1300. @SolidClass base(func_door_secret) color(0 128 204) = func_door_secret2 : "Secret Door (Rogue)" []
  1301. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel) color(0 128 204) = func_force_wall : "Force Wall"
  1302. [
  1303. spawnflags(Flags) =
  1304. [
  1305. 1 : "Start On" : 0
  1306. ]
  1307. style(integer) : "Color (palette index)" : 208
  1308. ]
  1309. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel) color(0 128 204) = func_plat : "OG Platform"
  1310. [
  1311. spawnflags(Flags) =
  1312. [
  1313. 1 : "Plat Low Trigger" : 0
  1314. 2 : "No Monsters" : 0
  1315. ]
  1316. speed(float) : "Speed" : "200"
  1317. accel(float) : "Acceleration" : "50"
  1318. decel(float) : "Acceleration" : "50"
  1319. lip(float) : "Lip remaining after move" : "8"
  1320. height(float) : "Movement distance"
  1321. dmg(float) : "Damage" : "2"
  1322. ]
  1323. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel) color(0 128 204) = func_plat2 : "Callable Platform"
  1324. [
  1325. spawnflags(Flags) =
  1326. [
  1327. 1 : "Plat Low Trigger" : 0
  1328. 2 : "Toggle" : 0
  1329. 4 : "Top" : 0
  1330. 8 : "Start Enabled" : 0
  1331. 32 : "Box Lift" : 0
  1332. ]
  1333. speed(float) : "Speed" : "200"
  1334. accel(float) : "Acceleration" : "50"
  1335. decel(float) : "Acceleration" : "50"
  1336. lip(float) : "Lip remaining after move" : "0"
  1337. height(float) : "Movement distance"
  1338. dmg(float) : "Damage" : "2"
  1339. ]
  1340. @PointClass base(EditorFlags) = misc_flare : "(N64) Light Flare"
  1341. [
  1342. spawnflags(Flags) =
  1343. [
  1344. 1 : "Red rim" : 0
  1345. 2 : "Green rim" : 0
  1346. 4 : "Blue rim" : 0
  1347. 8 : "Fixed rotation" : 0
  1348. ]
  1349. image(string) : "image" : "" : "The path to a custom flare image to use instead of the default"
  1350. radius(float) : "1.0" : "Scale multiplier"
  1351. rgba(color255) : "Color" : "255 255 255 255" : "Flare color"
  1352. fade_start_dist(integer) : "Distance in units that fade begins, should be smaller than fade_end_dist" : 96
  1353. fade_end_dist(integer) : "Distance in units that fade ends, should be greater than fade_start_dist" : 384
  1354. ]
  1355. @PointClass base(EditorFlags, Targetable) = target_camera : "(N64) Camera"
  1356. [
  1357. speed(float) : "Speed" : "75"
  1358. ]
  1359. @PointClass base(EditorFlags, Targetable) = info_landmark : "Landmark - connect one level to another with a seamless transition"
  1360. [
  1361. ]
  1362. @PointClass base(Monsters) size(-32 -32 -24, 32 32 64) model({ "path": ":models/monsters/shambler/tris.md2" }) = monster_shambler : "Shambler"
  1363. [
  1364. ]
  1365. @SolidClass base(EditorFlags) = trigger_flashlight : "Enable/Disable Flashlight"
  1366. [
  1367. spawnflags(Flags) =
  1368. [
  1369. 1 : "Clipped (must touch brushes, not just aabb)" : 0
  1370. ]
  1371. style(choices) : "style" : 0 =
  1372. [
  1373. 0 : "Default"
  1374. 1 : "Always turn on"
  1375. 2 : "Always turn off"
  1376. ]
  1377. angles(string) : "pitch yaw roll" : "Player traveling this direction will enable light, against it will disable."
  1378. ]
  1379. @PointClass base(EditorFlags) = misc_lavaball : "(N64) Lavaball"
  1380. [
  1381. ]
  1382. @PointClass base(EditorFlags) = misc_hologram : "(N64) Ship Hologram"
  1383. [
  1384. ]
  1385. @SolidClass base(EditorFlags) = trigger_fog : "Fog Transitions"
  1386. [
  1387. spawnflags(Flags) =
  1388. [
  1389. 1 : "Affect global fog" : 0
  1390. 2 : "Affect height fog" : 0
  1391. 4 : "Instaneous transition" : 0
  1392. 8 : "Force use (regardless of direction)" : 0
  1393. 16 : "Blend" : 0
  1394. ]
  1395. angles(string) : "angles" : "0 0 0" : "Direction of player travel for start/end"
  1396. target(target_destination) : "info_notnull target for fog params"
  1397. delay(float) : "Delay": "0.5" : "Time in seconds after transition starts to fully end"
  1398. wait(float) : "Wait" : "0.0" : "Time in seconds before a re-trigger will occur; mainly for Blend"
  1399. fog_density(float) : "density value of fog, 0-1"
  1400. fog_color(color) : "color value of fog, 3d vector with values between 0-1 (r g b)"
  1401. fog_sky_factor(float) : "sky_factor value of fog, 0-1"
  1402. fog_density_off(float) : "transition density value of fog, 0-1"
  1403. fog_color_off(color) : "transition color value of fog, 3d vector with values between 0-1 (r g b)"
  1404. fog_sky_factor_off(float) : "transition sky_factor value of fog, 0-1"
  1405. heightfog_falloff(float) : "falloff value of heightfog, 0-1"
  1406. heightfog_density(float) : "density value of heightfog, 0-1"
  1407. heightfog_start_color(color) : "start color of heightfog, 3d vector with values between 0-1 (r g b)"
  1408. heightfog_end_color(color) : "end color of heightfog, 3d vector with values between 0-1 (r g b)"
  1409. heightfog_start_dist(float) : "start distance value of heightfog, in world units"
  1410. heightfog_end_dist(float) : "start distance value of heightfog, in world units"
  1411. heightfog_falloff_off(float) : "transition falloff value of heightfog, 0-1"
  1412. heightfog_density_off(float) : "transition density value of heightfog, 0-1"
  1413. heightfog_start_color_off(color) : "transition start color of heightfog, 3d vector with values between 0-1 (r g b)"
  1414. heightfog_end_color_off(color) : "transition end color of heightfog, 3d vector with values between 0-1 (r g b)"
  1415. heightfog_start_dist_off(float) : "transition start distance value of heightfog, in world units"
  1416. heightfog_end_dist_off(float) : "transition start distance value of heightfog, in world units"
  1417. ]
  1418. @SolidClass base(EditorFlags, Angleable, UseTargets, EWT_base_BModel) color(0 128 204) = func_eye : "Camera-like brush model"
  1419. [
  1420. pathtarget(target_destination) : "point to an info_notnull (which gets freed after spawn) attached to the bmodel to automatically set the eye_position"
  1421. eye_position(string) : "x y z" : "Offset from the origin brush's center of the camera where the eye is located"
  1422. radius(float) : "512" : "detection radius for players"
  1423. speed(float) : "45" : "how fast, in degrees per second, we should move on each axis to reach the target"
  1424. vision_cone(float) : "0.5" : "how wide the cone of vision should be"
  1425. wait(float) : "the amount of time to wait after losing target before returning to neutral angles"
  1426. ]
  1427. @SolidClass base(EditorFlags, Targetable, EWT_base_BModel, BmodelAnim) color(0 128 204) = func_animation : "Similar to func_wall, but triggering it will toggle animation state rather than going on/off."
  1428. [
  1429. spawnflags(Flags) =
  1430. [
  1431. 1 : "Start in Alternate" : 0
  1432. ]
  1433. ]
  1434. @SolidClass base(EditorFlags, Targetable, UseTargets, EWT_base_BModel) color(128 128 128) = trigger_coop_relay : "Co-op relay trigger; will only fire if all entities are inside of the bounds, otherwise prints messages."
  1435. [
  1436. spawnflags(Flags) =
  1437. [
  1438. 1 : "Auto-Fire" : 0
  1439. ]
  1440. message(string) : "Trigger message to send to the triggerer"
  1441. message2(string) : "Trigger message to send to the players not in the bounds"
  1442. wait(float) : "1.0" : "Time in seconds for auto-fire triggers to check bounds"
  1443. ]
  1444. @PointClass base(Monsters) size(-96 -96 -66, 96 96 62) model({ "path": ":models/monsters/guardian/tris.md2" }) = monster_guardian : "Guardian (PSX)" []
  1445. @PointClass base(Monsters) size(-48 -48 -20, 48 48 48) model({ "path": ":models/monsters/arachnid/tris.md2" }) = monster_arachnid : "Arachnid (PSX)" []
  1446. @PointClass base(EditorFlags, Targetable, Teamable) color(255 0 0) size(-4 -4 -4, 4 4 4) = target_poi : "Compass POI"
  1447. [
  1448. spawnflags(Flags) =
  1449. [
  1450. 1 : "Pick nearest to player (teamed)" : 0
  1451. 2 : "Dummy" : 0
  1452. 4 : "Dynamic (teamed)" : 0
  1453. ]
  1454. count(integer) : "stage value; if set, will only allow activation if last stage activated is <= this value" : 0
  1455. style(integer) : "teamed POIs only; the lowest styled POI will take priority" : 0
  1456. image(string) : "Image to display at the POI" : "friend"
  1457. ]
  1458. @PointClass base(Angleable, EditorFlags, Target, Targetable) color(255 255 0) size(-8 -8 -8, 8 8 8) = info_world_text : "Info_World_Text"
  1459. [
  1460. spawnflags(Flags) =
  1461. [
  1462. 1 : "Start Off" : 0
  1463. 2 : "Trigger Once" : 0
  1464. 4 : "Remove On Trigger" : 0
  1465. ]
  1466. angle(float) : "Direction. -3 = Track Player. -2 = Down, -1 = Up, 0 - 360 = Yaw" : "-3"
  1467. radius(float) : "Text Size" : "0.2"
  1468. sounds(integer) : "Color Of Text. 0 = White, 1 = Red, 2 = Blue, 3 = Green, 4 = Yellow, 5 = Black, 6 = Cyan, 7 = Orange" : 0
  1469. ]
  1470. @PointClass base(EditorFlags, Target, Targetable) = info_nav_lock : "Flip locked flag on targeted doors"
  1471. [
  1472. ]
  1473. @PointClass base(EditorFlags, Targetable, UseTargets) color(128 128 128) = trigger_health_relay : "Health relay trigger"
  1474. [
  1475. speed(float) : "Percent of health that must be reached to fire"
  1476. ]
  1477. @PointClass base(EditorFlags, Targetable) = target_autosave : "Autosave"
  1478. [
  1479. ]
  1480. @PointClass base(EditorFlags, Targetable) = target_sky : "Change sky parameters"
  1481. [
  1482. sky(string) : "Environment map name"
  1483. skyaxis(vector) : "Vector axis for rotating sky"
  1484. skyrotate(string) : "Speed of rotation (degrees/second)"
  1485. skyautorotate(integer) : "Disable to set sky rotation manually" : 1
  1486. ]
  1487. @PointClass base(EditorFlags, Targetable) color(255 128 255) size(-16 -16 -24, 16 16 32) model({ "path": ":models/monsters/insane/tris.md2", "frame":209, "skin":1}) = misc_player_mannequin : "Player Mannequin"
  1488. [
  1489. distance(integer) : "Gesture To Use When Triggered. 0 = FlipOff, 1 = Salute, 2 = Taunt, 3 = Wave, 4 = Point" : 1
  1490. height(integer) : "Type Of Model To Use. 1 = Female, 2 = Male, 3 = Cyborg" : 1
  1491. radius(float) : "Scale To Use For Model"
  1492. goals(string) : "Name Of MD2 Player Weapon Model To Hold. EX: 'w_hyperblaster'"
  1493. image(string) : "Name Of PCX Player Skin To Use. EX: 'venus'"
  1494. ]