-
Notifications
You must be signed in to change notification settings - Fork 5
/
SECSS.fgd
4334 lines (4329 loc) · 330 KB
/
SECSS.fgd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//To install this FGD:
//1. Open Hammer.
//2. Click 'Tools'.
//3. Click 'Options'.
//4. Select both files in the 'Game Data files' window and press 'Remove' to remove them from Hammer (they will still exist on your computer, so you can put them back at any time).
//5. Click 'Add' and browse to this file's location on your computer.
//6. Open Counter-Strike Source/cstrike/gameinfo.txt and add these two lines (without the comment syntax)
// GameData "SECSS.fgd"
// InstancePath "maps/instances/"
//Submit queries here: https://github.com/Pinsplash/SEFGD Even if you just have a question, it may help me improve this FGD.
//Wanna help me out? Search "TODO:" in this file.
//Derivatives are allowed to be made and distributed.
@mapsize(-16384, 16384)
@MaterialExclusion //Texture folders to not load. You can remove everything from this list if you want, but you probably won't ever use these, they'll make more clutter in Hammer's texture browser, and you'll probably be better off making your own brush/sprite/whatever-friendly versions of them anyway.
[
"console" //backgrounds
"cstrike" //junk
"debug" //debug stuff?
// "detail" //detail sprites. doesn't seem to break anything if excluded but I can see it happening
// "editor" //can't exclude editor because editor/wireframe is needed by Hammer itself
"effects" //does have just a few things of use...
"engine"
"halflife" //HL1 textures??
"hlmv"
"hud"
"matsys_regressiontest" //meow
"overviews" //minimaps
// "particle" //not excluded since some entity defaults use textures in here
"perftest" //does have some usable textures but mostly junk
"scripted"
"shadertest"
"skybox" //skies. trust me, it's easier to view them on VDC
// "vgui" //vgui_slideshow_display uses this folder
"voice"
"vr"
]
@AutoVisGroup = "Custom" //Custom visgroups under the auto tab
[
"AI"
[
"func_nav_blocker"
]
"Gameplay"//entities used for gameplay things, so entities for things like bomb sites, hostages, windows, doors - color(0 255 0)
[
"func_bomb_target"
"func_buyzone"
"func_breakable"
"func_breakable_surf"
"func_door"
"func_door_rotating"
"func_hostage_rescue"
"func_ladder"
"game_end"
"game_player_equip"
"game_score"
"hostage_entity"
"info_map_parameters"
"info_player_counterterrorist"
"info_player_terrorist"
"prop_door_rotating"
"trigger_hurt"
]
"Interactive things"
[
"func_breakable"
"func_breakable_surf"
"func_button"
"func_door"
"func_door_rotating"
"func_fish_pool"
"func_guntarget"
"func_rot_button"
"func_tanktrain"
"func_tracktrain"
"func_weight_button"
"momentary_rot_button"
"prop_door_rotating"
]
"Lighting & Light FX"// color(160 240 37)
[
"env_lightglow"
"env_particlelight"
"env_projectedtexture"
"env_tonemap_controller"
"info_lighting"
"info_no_dynamic_shadow"
"light"
"light_dynamic"
"light_environment"
"light_spot"
"point_spotlight"
"shadow_control"
]
"Logic"// color(248 155 0)
[
"env_entity_maker"
"env_firesensor"
"env_firesource"
"env_global"
"filter_activator_class"
"filter_activator_mass_greater"
"filter_activator_name"
"filter_damage_type"
"filter_multi"
"game_ui"
"game_zone_player"
"logic_auto"
"logic_branch"
"logic_branch_listener"
"logic_case"
"logic_compare"
"logic_multicompare"
"logic_relay"
"logic_timer"
"math_colorblend"
"math_counter"
"math_remap"
"point_anglesensor"
"point_angularvelocitysensor"
"point_clientcommand"
"point_proximity_sensor"
"point_servercommand"
"point_template"
"point_velocitysensor"
"trigger_multiple"
"trigger_once"
"trigger_proximity"
]
"Misc"
[
"env_entity_dissolver"
"env_entity_igniter"
"func_brush"
"func_instance"
"func_instance_parms"
"func_proprrespawnzone"
"func_traincontrols"
"func_wall"
"func_wall_toggle"
"hammer_updateignorelist"
"info_null"
"info_target"
"info_teleport_destination"
"path_corner"
"path_track"
"point_devshot_camera"
"point_enable_motion_fixup"
"point_playermoveconstraint"
"point_teleport"
"trigger_playermovement"
"trigger_remove"
"trigger_teleport"
"trigger_teleport_relative"
]
"Moving things"
[
"func_button"
"func_door"
"func_door_rotating"
"func_guntarget"
"func_movelinear"
"func_physbox_multiplayer"
"func_platrot"
"func_rot_button"
"func_rotating"
"func_tanktrain"
"func_trackautochange"
"func_trackchange"
"func_tracktrain"
"func_train"
"func_water_analog"
"momentary_rot_button"
"prop_door_rotating"
"prop_physics"
"prop_physics_multiplayer"
"prop_physics_override"
"prop_ragdoll"
"prop_sphere"
]
"Optimization"// color(0 180 0)
[
"env_detail_controller"
"func_areaportal"
"func_areaportalwindow"
"func_detail"
"func_lod"
"func_occluder"
"func_viscluster"
"game_gib_manager"
"game_weapon_manager"
]
"Physics"// color(255 0 255)
[
"env_physexplosion"
"env_physimpact"
"env_wind"
"func_clip_vphysics"
"func_conveyor"
"func_physbox_multiplayer"
"func_weight_button"
"info_constraint_anchor"
"info_mass_center"
"logic_collision_pair"
"logic_measure_movement"
"phys_ballsocket"
"phys_constraint"
"phys_constraintsystem"
"phys_convert"
"phys_hinge"
"phys_keepupright"
"phys_lengthconstraint"
"phys_magnet"
"phys_motor"
"phys_pulleyconstraint"
"phys_ragdollconstraint"
"phys_ragdollmagnet"
"phys_slideconstraint"
"phys_spring"
"phys_thruster"
"phys_torque"
"physics_cannister"
"point_push"
"prop_physics"
"prop_physics_multiplayer"
"prop_physics_override"
"prop_ragdoll"
"prop_sphere"
"target_changegravity"
"trigger_apply_impulse"
"trigger_gravity"
"trigger_impact"
"trigger_push"
"trigger_vphysics_motion"
"trigger_wind"
]
"Player Spawns"
[
"info_player_counterterrorist"
"info_player_terrorist"
]
"Scripting"// color(0 255 255)
[
"env_explosion"
"env_fade"
"player_speedmod"
"player_weaponstrip"
"point_hurt"
"point_viewcontrol"
]
"Sound"// color(0 0 255)
[
"ambient_generic"
"env_microphone"
"env_soundscape"
"env_soundscape_proxy"
"env_soundscape_triggerable"
"func_footstep_control"
"point_surroundtest"
"trigger_soundscape"
]
"Visual"// color(255 203 11)
[
"color_correction"
"cycler"
"env_beam"
"env_blood"
"env_bubbles"
"env_cubemap"
"env_dustpuff"
"env_dusttrail"
"env_effectscript"
"env_embers"
"env_fire"
"env_fire_trail"
"env_fog_controller"
"env_funnel"
"env_gunfire"
"env_laser"
"env_muzzleflash"
"env_screenoverlay"
"env_shake"
"env_shooter"
"env_smokestack"
"env_smoketrail"
"env_spark"
"env_splash"
"env_sporeexplosion"
"env_sprite"
"env_sprite_oriented"
"env_spritetrail"
"env_steam"
"env_sun"
"env_texturetoggle"
"env_viewpunch"
"func_dustcloud"
"func_dustmotes"
"func_fish_pool"
"func_illusionary"
"func_monitor"
"func_precipitation"
"func_reflective_glass"
"func_smokevolume"
"game_text"
"info_camera_link"
"info_overlay"
"info_overlay_transition"
"info_particle_system"
"info_player_logo"
"info_projecteddecal"
"infodecal"
"keyframe_rope"
"material_modify_control"
"move_rope"
"point_camera"
"point_posecontroller"
"point_tesla"
"prop_detail"
"prop_dynamic"
"prop_dynamic_ornament"
"prop_dynamic_override"
"prop_static"
"sky_camera"
"spark_shower"
"vgui_screen"
"vgui_slideshow_display"
]
"Weapons, pickups"// color(160 37 240)
[
"item_defuser"
"weapon_ak47"
"weapon_aug"
"weapon_awp"
"weapon_c4"
"weapon_deagle"
"weapon_elite"
"weapon_famas"
"weapon_fiveseven"
"weapon_flashbang"
"weapon_g3sg1"
"weapon_galil"
"weapon_glock"
"weapon_hegrenade"
"weapon_knife"
"weapon_m249"
"weapon_m3"
"weapon_m4a1"
"weapon_mac10"
"weapon_mp5navy"
"weapon_p228"
"weapon_p90"
"weapon_scout"
"weapon_sg550"
"weapon_sg552"
"weapon_smokegrenade"
"weapon_tmp"
"weapon_ump45"
"weapon_usp"
"weapon_xm1014"
]
]
//SE BASE SPECIAL CLASSES
@BaseClass = Angles
[
angles(angle) : "Pitch Yaw Roll (Y Z X)" : "0 0 0" : "This entity's orientation in the world. Pitch is rotation around the object's Y axis (looking up or down), yaw is rotation around the object's Z axis (looking left and right), roll is rotation around the object's X axis (similar to a person doing cartwheels)."
]
@BaseClass = DamageFilter
[
damagefilter(filterclass) : "Damage Filter Name" : : "When this entity receives damage, it will filter by this entity."
input SetDamageFilter(target_destination) : "Sets Damage Filter."
]
@BaseClass = EnableDisable
[
StartDisabled(choices) : "Start Disabled" : 0 : "Stay inactive until Enabled." =
[
0 : "No"
1 : "Yes"
]
input Enable(void) : "Makes the entity active."
input Disable(void) : "Makes the entity inactive."
]
@BaseClass = FadeKeys
[
fademindist(float) : "Start Fade Distance" : -1 : "Distance at which the entity starts fading. If less than 0, the entity will disappear instantly when the End Fade Distance is hit. The value will scale appropriately if the entity is in a 3D Skybox."
fademaxdist(float) : "End Fade Distance" : 0 : "Distance at which the entity ends fading. If less than 0, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox."
]
//Many entities force a particular model, so keeping this in CBaseAnimating wouldn't be the most intuitive...
@BaseClass = Model
[
model(studio) : "World Model" : : "A path to a .mdl."
]
@BaseClass = Origin
[
origin(origin) : "Origin (X Y Z)" : : "The point in the world that acts as sort of center of the entity. Rotating entities typically rotate around their origin. Changing the origin with AddOutput usually results in the entity moving."
]
@BaseClass = Parent
[
parentname(target_destination) : "Parent" : : "Specifies a movement parent. An entity with a parent will be forced to maintain its current position relative to the specified entity. Child entities cannot be moved in any other way and will intersect with other solid objects if they must. Parented entities will forward Use inputs to their parent.\n" +
"An attachment point for this entity to follow can be specified by putting its name after the parent entity's name, separated by a comma. View attachment points ingame with ent_attachments.\n" +
"Entities which aren't intended to be parented may not function correctly. phys_constraint can be used as an alternative to parenting."
input SetParent(target_destination) : "Sets Parent."
input SetParentAttachment(string) : "Teleports this entity to a specific attachment point on its Parent and moves identically to that attachment point."
input SetParentAttachmentMaintainOffset(string) : "Same as SetParentAttachment, but the entity is not teleported and instead keeps its current position and angles, until the attachment moves."
input ClearParent(void) : "Sets the Parent keyvalue to be blank, removing this entity from any hierarchy."
]
@BaseClass = RenderMode
[
rendermode(choices) : "Render Mode" : 0 : "A special rendering mode to use on this entity. (https://developer.valvesoftware.com/wiki/Render_Modes)" =
[
0 : "Normal"
1 : "Color"
2 : "Texture"
3 : "Glow"
4 : "Solid/Alphatest"
5 : "Additive"
7 : "Additive Fractional Frame"
8 : "Alpha Add"
9 : "World Space Glow"
10 : "Don't Render"
]
]
@BaseClass = RenderAmount
[
renderamt(integer) : "Render Amount/Transparency" : 255 : "Transparency amount. Requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible."
input Alpha(integer) : "Sets Render Amount/Transparency."
]
@BaseClass = RenderColor
[
rendercolor(color255) : "Render Color (R G B)" : "255 255 255" : "Color channel filter to add to this entity's texture(s)."
input Color(color255) : "Sets Render Color."
]
@BaseClass base(RenderAmount,RenderColor) = RenderAlphaColor
[
]
@BaseClass = RenderFX
[
renderfx(choices) : "Render FX" : 0 : "Preset appearance effects. Bug: Sometimes functions incorrectly if changed with AddOutput, but is the only way to change effects other than making multiple versions of the object." =
[
0 : "Normal"
1 : "Slow Pulse"
2 : "Fast Pulse"
3 : "Slow Wide Pulse"
4 : "Fast Wide Pulse"
5 : "Slow Fade Away (from another mode)"
6 : "Fast Fade Away (from another mode)"
7 : "Slow Become Solid (from another mode)"
8 : "Fast Become Solid (from another mode)"
9 : "Slow Strobe"
10 : "Fast Strobe"
11 : "Faster Strobe"
12 : "Slow Flicker"
13 : "Fast Flicker"
15 : "Distort"
24 : "Faster Pulse"
]
]
@BaseClass base(RenderMode,RenderAlphaColor,RenderFX) = RenderFields
[
]
@BaseClass base(RenderFields,Parent) = VisibleBrush
[
_minlight(float) : "Minimum Light" : 0 : "Minimum amount of light to hit this brush. 0 is none, 1 is 'fullbright'. Useful because the lightmaps will not update as the entity moves."
disablereceiveshadows(choices) : "Disable Receiving Shadows" : 0 : "Adds EF_NORECEIVESHADOW to this entity. (_rt_shadows shadows don't cast onto entity)" =
[
0 : "No"
1 : "Yes"
]
vrad_brush_cast_shadows(choices) : "Static Shadow" : 0 : "Determines if this entity will cast a static shadow." =
[
0 : "No static shadow"
1 : "Cast static shadow"
]
]
@BaseClass = Toggle
[
input Toggle(void) : "If on, turn off. If off, turn on."
]
//I don't want these on doors.
@BaseClass = DynamicPropAnimations
[
DefaultAnim(string) : "Default Animation" : : "The animation this prop will play when not doing a random or forced animation."
RandomAnimation(choices) : "Randomly Animate" : 0 : "Makes the prop randomly select and play animations at intervals defined by the Min/Max Random Anim Time keyvalues. In between the random animations, it will revert to playing the Default Animation." =
[
0 : "No"
1 : "Yes"
]
MinAnimTime(float) : "Min Random Anim Time" : : "Minimum time between random animations."
MaxAnimTime(float) : "Max Random Anim Time" : : "Maximum time between random animations."
input SetAnimation(string) : "Forces the prop to play the specified animation."
input SetDefaultAnimation(string) : "Sets Default Animation."
input SetPlaybackRate(float) : "Sets the framerate at which animations are played."
output OnAnimationBegun(void) : "Fired when an animation begins."
output OnAnimationDone(void) : "Fired when an animation finishes."
]
//SE BASE CLASSES
@BaseClass = CBaseEntity
[
targetname(target_source) : "Name" : : "The name that other entities refer to this entity by. TIP: avoid naming an entity the same thing as any classname to avoid issues with code that tries searching by targetname *and* classname."
globalname(string) : "Global Entity Name" : : "Name by which this entity is linked to another entity in the map. When a new round begins, entities in the next round with Global Entity Names matching entities in the previous will copy the previous entity's state. TODO: Describe what this is useful for, especially in multiplayer..."
hammerid(integer) : "Hammer ID" : : "An ID (usually) automatically assigned to this entity by Hammer. Used by some debugging commands, such as ent_keyvalue. Entities spawned at run-time are not assigned any Hammer ID."
input Kill(void) : "Removes this entity and any entities parented to it from the world."
input KillHierarchy(void) : "Functions the same as Kill, although this entity and any entities parented to it are killed on the same frame. TODO: Cases where this is needed?"
input AddOutput(string) : "Changes a keyvalue or adds an I/O connection on this entity. Not all keyvalues will work with this input as they require special handling.\n" +
"Keyvalue format: <key> <value>\n" +
"IO format: <output name> <targetname>:<input name>:<parameter>:<delay>:<fire once>\n" +
"The parameter can be left blank, but do not omit either ':' surrounding it or the game will think the delay is the parameter! <fire once> is whether the IO event can be fired again. Put 0 to allow infinite refires, put 1 to make it only fire once ever."
input FireUser1(string) : "Fires the OnUser1 output. Bug: These inputs can pass a string parameter, but do nothing with it. If the input is sent from an output that automatically passes a non-string parameter (such as OnLessThan from logic_compare) the input will fail to send because the parameters types are incompatible. To work around this, place any placeholder text in the parameter box."
input FireUser2(string) : "Fires the OnUser2 output."
input FireUser3(string) : "Fires the OnUser3 output."
input FireUser4(string) : "Fires the OnUser4 output."
input DispatchEffect(string) : "Dispatches a special effect from the entity's origin. See here: https://developer.valvesoftware.com/wiki/List_of_Client_Effects"
output OnUser1(void) : "Fires in response to the FireUser1 input."
output OnUser2(void) : "Fires in response to the FireUser2 input."
output OnUser3(void) : "Fires in response to the FireUser3 input."
output OnUser4(void) : "Fires in response to the FireUser4 input."
]
@BaseClass base(CBaseEntity,Parent,Angles,FadeKeys,RenderFields) = CBaseAnimating
[
skin(integer) : "Skin" : 0 : "Some models have multiple skins. This value selects from the index, starting with 0."
body(integer) : "Body Group" : 0 : "Sets the the active $bodygroup."
playbackrate(float) : "Playback Rate" : : "A multiplier of the speed at which the current animation will be played, negative values are accepted. The model will go back to its regular animation speed once its current one finishes."
cycle(float) : "Cycle" : : "How far along the model is through playing its current animation, as a range from 0-1. This can be changed with AddOutput."
LightingOrigin(target_destination) : "Lighting Origin" : : "An entity from which to sample lighting instead of the entity's origin. It cannot be any internal entity, including info_lighting."
fadescale(float) : "Fade Scale" : 1 : "If specified in the worldspawn, or if the game is running below DirectX 8, entities will fade out even if the Start/End Fade Distance keyvalues aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out farther away, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also $noforcedfade."
disableshadows(choices) : "Disable Shadows" : 0 : "Adds EF_NOSHADOW to this entity. (No _rt_shadows shadow cast.)" =
[
0 : "No"
1 : "Yes"
]
shadowcastdist(integer) : "Shadow Cast Distance" : 0 : "Sets how far the entity casts _rt_shadows shadows. 0 means default distance from the shadow_control entity."
modelscale(float) : "Model Scale" : 1 : "A multiplier for the size of the model. Negative values are accepted. Does not scale the individual pieces that make up physics meshes, but will scale the distances between them."
input Skin(integer) : "Sets Skin."
input SetBodyGroup(integer) : "Sets the Body Group keyvalue."
input Ignite(void) : "Makes the entity catch on fire indefinitely."
input IgniteLifetime(float) : "Makes the entity catch on fire for a given amount of time."
input BecomeRagdoll(void) : "Kills the entity and creates a client-side ragdoll from the model. The model must have $collisionjoints, otherwise it may cause bugs. See also: phys_convert."
input SetLightingOrigin(target_destination) : "Sets Lighting Origin."
input SetModelScale(string) : "Sets Model Scale. Does not alter the physics collisions in most cases, however. Negative values are accepted. Takes two values separated by a space. Depending on the entity, you may be able to add a second number to make the model grow/shrink smoothly over a certain number of seconds."
input EnableDamageForces(void) : "Allows the entity to be pushed by damage done to it (usually force amount correlates with the damage done)."
input DisableDamageForces(void) : "Prevents the entity from being pushed by damage done to it."
input EnableShadow(void) : "Adds _rt_shadows shadows to the entity."
input DisableShadow(void) : "Removes _rt_shadows shadows from the entity."
output OnIgnite(void) : "Fired when the entity catches fire, such as from an env_entity_igniter or the Ignite inputs."
]
@BaseClass base(CBaseAnimating) = CBaseCombatWeapon
[
spawnflags(flags) =
[
1 : "Start constrained - Makes the weapon not move." : 0
2 : "Deny player pickup" : 0
]
input HideWeapon(void) : "If the weapon is being held by someone, makes it invisible. The weapon will reappear if they switch weapons."
output OnPlayerUse(void) : "Fires when a player +uses this weapon."
output OnPlayerPickup(void) : "Fires when a player picks up this weapon."
]
@BaseClass base(CBaseEntity) = CBaseFilter
[
Negated(choices) : "Filter mode" : 0 : "If set to Allow, only entities who match the criteria will pass the filter." =
[
0 : "Allow entities that match criteria"
1 : "Disallow entities that match criteria"
]
input TestActivator(void) : "Tests if the !activator of this input meets the criteria, then and fires either OnPass or OnFail. Changing Filter mode will affect which output is fired."
output OnPass(void) : "Fires when TestActivator is sent and the !activator is allowed by the criteria."
output OnFail(void) : "Fires when TestActivator is sent and the !activator is not allowed by the criteria."
]
@BaseClass base(CBaseEntity,VisibleBrush,DamageFilter,Origin) = CBaseButton
[
spawnflags(flags) =
[
1 : "Don't move" : 0
32 : "Toggle - Button can be sent back to its original position at any time. Otherwise, only when Delay Before Reset is over." : 0
256 : "Touch Activates - OnPressed fires when players physically bump into the button." : 0
512 : "Damage Activates - OnPressed fires when the entity is hit. Does not affect OnDamaged." : 0
1024 : "Use Activates - OnPressed fires when the entity is +used." : 1
2048 : "Starts locked" : 0
]
speed(integer) : "Speed" : : "The speed that the button moves, in units per second or degrees per second if rotating."
wait(integer) : "Delay Before Reset (-1 stay)" : 1 : "Amount of time in seconds after the button has moved to the pressed position before it returns to the starting position. Once it has returned, it can be used again. If the value is set to -1, the button never returns."
sounds(choices) : "Press Sound 1" : 0 : "Sound to play when pressed and unlocked." =
[
0 : "None"
2 : "Access denied 1"
8 : "Access denied 2"
10 : "Access denied 3"
11 : "Access denied 4"
3 : "Access granted"
9 : "Beep 1"
15 : "Beep 2"
16 : "Beep 3"
17 : "Beep 4"
18 : "Beep 5"
19 : "Beep 6"
34 : "Beep 7"
40 : "Combine lock 1"
41 : "Combine lock 2"
42 : "Combine lock 3"
43 : "Combine lock 4"
45 : "Combine lock 5"
47 : "Combine lock 6"
12 : "Door locked"
13 : "Door opened"
1 : "Light hum"
5 : "Machine 1"
6 : "Machine 2"
4 : "Moving parts 1"
21 : "Moving parts 2"
22 : "Moving parts 3"
23 : "Moving parts 4"
24 : "Moving parts 5"
25 : "Moving parts 6"
26 : "Moving parts 7"
27 : "Moving parts 8"
28 : "Moving parts 9"
]
unlocked_sound(choices) : "Press Sound 2" : 0 : "Sound played when the button is pressed while unlocked. If set, the sound that plays alternates between this and Press Sound 1, even if the first one is set to None." =
[
0 : "None"
2 : "Access denied 1"
8 : "Access denied 2"
10 : "Access denied 3"
11 : "Access denied 4"
3 : "Access granted"
9 : "Beep 1"
15 : "Beep 2"
16 : "Beep 3"
17 : "Beep 4"
18 : "Beep 5"
19 : "Beep 6"
34 : "Beep 7"
40 : "Combine lock 1"
41 : "Combine lock 2"
42 : "Combine lock 3"
43 : "Combine lock 4"
45 : "Combine lock 5"
47 : "Combine lock 6"
12 : "Door locked"
13 : "Door opened"
1 : "Light hum"
5 : "Machine 1"
6 : "Machine 2"
4 : "Moving parts 1"
21 : "Moving parts 2"
22 : "Moving parts 3"
23 : "Moving parts 4"
24 : "Moving parts 5"
25 : "Moving parts 6"
26 : "Moving parts 7"
27 : "Moving parts 8"
28 : "Moving parts 9"
]
locked_sound(choices) : "Locked Sound" : 2 : "Sound played when the player tries to use the button, and fails because it's locked." =
[
0 : "None"
2 : "Access denied 1"
8 : "Access denied 2"
10 : "Access denied 3"
11 : "Access denied 4"
3 : "Access granted"
9 : "Beep 1"
15 : "Beep 2"
16 : "Beep 3"
17 : "Beep 4"
18 : "Beep 5"
19 : "Beep 6"
34 : "Beep 7"
40 : "Combine lock 1"
41 : "Combine lock 2"
42 : "Combine lock 3"
43 : "Combine lock 4"
45 : "Combine lock 5"
47 : "Combine lock 6"
12 : "Door locked"
13 : "Door opened"
1 : "Light hum"
5 : "Machine 1"
6 : "Machine 2"
4 : "Moving parts 1"
21 : "Moving parts 2"
22 : "Moving parts 3"
23 : "Moving parts 4"
24 : "Moving parts 5"
25 : "Moving parts 6"
26 : "Moving parts 7"
27 : "Moving parts 8"
28 : "Moving parts 9"
]
input Lock(void) : "Locks the button, preventing it from functioning."
input Unlock(void) : "Unlocks the button, allowing it to function."
input Press(void) : "Activates the button as if it was pressed."
input PressIn(void) : "Activates the button as if it was pressed, sending it to the pressed position."
input PressOut(void) : "Unpresses the button, sending it to the unpressed position."
output OnDamaged(void) : "Fires when the button is damaged."
output OnPressed(void) : "Fires when the button is pressed."
output OnUseLocked(void) : "Fires when the button is pressed but locked."
output OnIn(void) : "Fires when the button reaches the in/pressed position."
output OnOut(void) : "Fires when the button reaches the out/released position."
]
@BaseClass base(CBaseAnimating) = CBaseCombatCharacter
[
physdamagescale(float) : "Physics Impact Damage Scale" : : "Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics."
input PhysDamageScale(float) : "Sets Physics Impact Damage Scale."
]
@BaseClass base(CBaseEntity,VisibleBrush,Origin) = CBaseDoor
[
spawnflags(flags) =
[
4 : "Non-solid to Player (not compatible with Ignore Debris as that also sets a collision group)" : 0
8 : "Passable - Door is solid to nothing at all." : 0
32 : "Toggle - Door can be closed by +use even if Delay Before Reset is not over." : 0
256 : "Use Opens" : 1
1024 : "Touch Opens - When player touches the door, counts as an attempt to open it." : 0
2048 : "Starts locked" : 0
4096 : "Door Silent" : 0
65536 : "If closing, allow Use to reopen." : 0
]
speed(integer) : "Speed" : 200 : "The speed that the door moves, in units per second or degrees per second if rotating."
wait(integer) : "Delay Before Reset (-1 stay)" : 1 : "Amount of time in seconds after the door has moved to the open position before it returns to the closed position. Once it has returned, it can be used again. If the value is set to -1, the door never returns."
noise1(sound) : "Start Sound" : : "Sound to play when the door starts moving. If Start Close Sound is specified, this sound only plays when the door starts opening."
noise2(sound) : "Stop Sound" : : "Sound to play when the door stops moving. If Stop Close Sound is specified, this sound only plays when the door starts closing."
startclosesound(sound) : "Start Close Sound" : : "Sound to play when the door starts closing."
closesound(sound) : "Stop Close Sound" : : "Sound to play when the door stops closing."
locked_sound(sound) : "Locked Sound" : : "Sound played when the player tries to open the door, and fails because it's locked."
unlocked_sound(sound) : "Unlocked Sound" : : "Sound played when door is pressed and unlocked."
chainstodoor(target_destination) : "Linked Door" : : "Passes the door's +use inputs and touch events onto a different door, so it also is activated."
forceclosed(choices) : "Force Closed" : 0 : "Damages things that block the door. (Or attempts to push it out, if the blocker is an umdamageable physics object.) Useful for doors that have to close even if the player tries to block them with objects. Requires Blocking Damage be set to a non-zero value." =
[
0 : "No"
1 : "Yes"
]
dmg(float) : "Blocking Damage" : 1 : "Amount of damage done to entities that block the movement of this door, per tick. Requires Force Closed to be set to Yes."
spawnpos(choices) : "Spawn Position" : 0 : "The door will spawn in this position. Does NOT change what positions are considered 'open' or 'closed'." =
[
0 : "Closed"
1 : "Open"
]
loopmovesound(choices) : "Loop Moving Sound?" : 0 : "Makes the door's Start Sound loop until the door finishes moving. BUG: If an already-looping sound is played with this enabled, it can continue forever. Further attempts to open or close the door will only add another looping sample to the noise." =
[
0 : "No"
1 : "Yes"
]
ignoredebris(choices) : "Ignore Debris" : 0 : "Changes the door's collision group to COLLISION_GROUP_INTERACTIVE, which ignores debris objects. Not compatible with the Non-solid to Player spawnflag as it also sets a collision group." =
[
0 : "No"
1 : "Yes"
]
input Open(void) : "Opens door."
input Close(void) : "Closes door."
input Toggle(void) : "Opens door if closed, closes door if open."
input Lock(void) : "Prevents door from opening or closing."
input Unlock(void) : "Allows door to operate as normal."
input SetSpeed(float) : "Sets Speed."
input Use(void) : "Simulates a player using the door (acts mostly the same as the other inputs)."
output OnClose(void) : "Fires when the door starts to close."
output OnOpen(void) : "Fires when the door starts to open."
output OnFullyClosed(void) : "Fires when the door finishes closing. Reversed if Start Open flag is set."
output OnFullyOpen(void) : "Fires when the door finishes opening. Reversed if Start Open flag is set."
output OnBlockedClosing(void) : "Fires when the door has been blocked from closing. Activator is whatever blocks the door."
output OnBlockedOpening(void) : "Fires when the door has been blocked from opening. Activator is whatever blocks the door."
output OnUnblockedClosing(void) : "Fires when the door is no longer blocked from closing."
output OnUnblockedOpening(void) : "Fires when the door is no longer blocked from opening."
output OnLockedUse(void) : "Fires when the player tries to open the door but fails because it is locked."
]
//Out of alphabetical order here because the FGD parser is big dummy
@BaseClass base(Model,CBaseAnimating,DamageFilter) = CBreakableProp
[
spawnflags(flags) =
[
16 : "Break on Touch" : 0
32 : "Break on Pressure (breaks whenever put under any pressure e.g. being stood on)" : 0
]
solid(choices) : "Collisions" : 6 : "Method of collision for this entity." =
[
0 : "None"
2 : "Bounding Box"
6 : "VPhysics"
]
ExplodeDamage(float) : "Explosion Damage" : 0 : "If non-zero, when this entity breaks it will create an explosion that causes the specified amount of damage. See also Explosion Radius."
ExplodeRadius(float) : "Explosion Radius" : 0 : "If non-zero, when this entity breaks it will create an explosion with a radius of the specified amount. See also Explosion Damage."
minhealthdmg(integer) : "Min Damage to Hurt" : : "If a single hit to the object doesn't do at least this much damage, the prop won't take any of the damage from that hit."
PerformanceMode(choices) : "Performance Mode" : 0 : "Used to limit the amount of gibs produced when this entity breaks, for performance reasons." =
[
0 : "Normal"
1 : "No Gibs"
3 : "Reduced gibs"
]
BreakModelMessage(string) : "Break Model Message" : : "'If set, will use this break model message instead of the normal break behavior.' TODO: What is this"
PressureDelay(float) : "Pressure Delay" : 0 : "Seconds to delay breaking from pressure if Break on Pressure is checked. Allows creaking/groaning sounds to play."
physdamagescale(float) : "Physics Impact Damage Scale" : 1 : "Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics."
input physdamagescale(float) : "Sets Physics Impact Damage Scale."
input Break(void) : "Breaks the prop."
input SetHealth(integer) : "Sets a new value for the prop's health. If the prop's health reaches zero it will break. Works even if not using an _override entity."
input AddHealth(integer) : "Adds health to the prop."
input RemoveHealth(integer) : "Removes health from the prop."
output OnBreak(void) : "Fired when this object breaks. !Activator is whatever breaks the object."
output OnHealthChanged(float) : "Fired whenever the health of the prop has increased or decreased. Automatically puts the new health amount as a decimal percent (e.g. 45% = 0.45) as the input parameter, unless overridden by the mapper."
]
@BaseClass base(CBreakableProp) = CDynamicProp
[
spawnflags(flags) =
[
64 : "Use Hitboxes for Renderbox TODO: Does this REALLY do that?" : 0
128 : "TODO: 'No VPhysics'" : 0
256 : "Start with collision disabled" : 0
]
StartDisabled(choices) : "Start Disabled" : 0 : "Makes the prop invisible but solid. It can be made visible with the Enable input." =
[
0 : "No"
1 : "Yes"
]
DisableBoneFollowers(choices) : "Disable Bone Followers" : 0 : "Disables generation of phys_bone_followers for each piece of the model if it's using $collisionjoints. phys_bone_followers can quickly eat up the edict count, so this keyvalue can be very helpful in freeing resources. Disabling this will make the model lose solidity aside from a small box, which can be disabled by setting the 'Start with collision disabled' flag." =
[
0 : "No"
1 : "Yes"
]
input TurnOff(void) : "Hides the prop, by adding EF_NODRAW."
input TurnOn(void) : "Shows the prop, by removing EF_NODRAW."
input EnableCollision(void) : "Makes the prop solid."
input DisableCollision(void) : "Makes the prop non-solid."
]
@BaseClass base(CDynamicProp) = CBasePropDoor
[
spawnflags(flags) =
[
2048 : "Starts locked - Cannot be opened or closed until Unlocked." : 0
4096 : "Door silent - Door does not play sounds. All sounds can be controlled with keyvalues." : 0
32768 : "Ignore player +use" : 0
]
speed(float) : "Speed" : 300 : "How fast the door moves, in world units per second (or degrees per second, if the door rotates)."
hardware(choices) : "Hardware Type" : 1 : "Sets the model's $bodygroup. The opening/closing sounds may also change." =
[
0 : "None"
1 : "Lever (door knob)"
2 : "Push bar"
3 : "Keypad"
]
returndelay(float) : "Delay Before close" : -1 : "Amount of time, in seconds, after the door has opened before it closes. If the value is set to -1, the door never closes itself."
soundmoveoverride(sound) : "Moving Sound" : : "Sound to play when the door starts to close or open, even when changing direction while opening or closing. Doors may have default sounds which play depending on the model."
soundopenoverride(sound) : "Fully Open Sound" : : "Sound to play when the door finishes opening."
soundcloseoverride(sound) : "Fully Closed Sound" : : "Sound to play when the door finishes closing."
soundlockedoverride(sound) : "Locked Sound" : : "Sound played when the player tries to open the door, and fails because it's locked."
soundunlockedoverride(sound) : "Unlocked Sound" : : "Sound to play when the door is used while not currently moving."
slavename(target_destination) : "Slave Name" : : "Targetname of another door that should open and close whenever this one does."
forceclosed(choices) : "Force Closed" : 1 : "If set, this door will close even if something is blocking it. The door will attempt to break or shove the object out of the way." =
[
0 : "No"
1 : "Yes"
]
input Open(void) : "If not already open, opens the door."
input OpenAwayFrom(target_destination) : "If not already open, opens the door away from the specified entity (to avoid hitting that entity)."
input Close(void) : "If not already open, closes the door."
input Toggle(void) : "If open, close. If closed, open."
input Use(void) : "Like Toggle, opens or closes the door. The difference is that this input will behave more like it was opened by a real person (special sounds, lever animation, etc). OnLockedUse will fire if applicable."
input Lock(void) : "Makes the door unable to be opened or closed."
input Unlock(void) : "Makes the door openable and closable."
output OnOpen(void) : "Fires when the door begins to open."
output OnClose(void) : "Fires when the door begins to close."
output OnFullyOpen(void) : "Fires when the door is finished opening."
output OnFullyClosed(void) : "Fires when the door is finished closing."
output OnBlockedOpening(void) : "Fires when the door is blocked while opening. !activator is whatever blocks the door."
output OnBlockedClosing(void) : "Fires when the door is blocked while closing. !activator is whatever blocks the door."
output OnUnblockedOpening(void) : "Fires when the door is no longer being blocked while opening."
output OnUnblockedClosing(void) : "Fires when the door is no longer being blocked while closing."
output OnLockedUse(void) : "Fires when the player attempts to open or close the door, but fails because it's locked."
]
@BaseClass base(CBaseEntity,Parent,EnableDisable,Toggle,Origin) = CBaseTrigger
[
spawnflags(flags) =
[
1 : "Clients (players) may trigger." : 1
8 : "Physics Objects may trigger." : 0
64 : "Everything (not including physics debris) may trigger." : 0
1024 : "Physics debris may trigger. Debris objects are usually small and not solid to players." : 0
4096 : "Disallow Bots from triggering." : 0
]
filtername(filterclass) : "Filter Name" : : "A filter entity (such as filter_activator_name) to test potential activators against."
input TouchTest(void) : "For testing if something is currently touching the trigger. Fires either the OnTouching or OnNotTouching output."
input StartTouch(void) : "Fires the OnStartTouch output."
input EndTouch(void) : "Fires the OnEndTouch output."
input DisableAndEndTouch(void) : "Disables this trigger and acts as if all currently touching entities have stopped touching it immediately."
output OnStartTouch(void) : "Fired when a valid entity starts touching this trigger."
output OnStartTouchAll(void) : "Fired when a valid entity starts touching this trigger, and no other entities are already touching it. If there are any other entities touching the trigger when a new one begins to touch, only OnStartTouch will fire."
output OnEndTouch(void) : "Fired when a valid entity stops touching this trigger. WARNING: If the !activator of this output is a player who disconnected, any entity trying to see what the activator was can cause a crash."
output OnEndTouchAll(void) : "Fired when ALL valid entities stop touching this trigger."
output OnTouching(void) : "Fired if something is currently touching this trigger when sent TouchTest."
output OnNotTouching(void) : "Fired if nothing is currently touching this trigger when sent TouchTest."
]
@BaseClass base(CBaseEntity,Parent,EnableDisable,Toggle) = CBaseVPhysicsTrigger
[
spawnflags(flags) =
[
1 : "Clients (players) may trigger." : 1
8 : "Physics Objects may trigger." : 0
64 : "Everything (not including physics debris) may trigger." : 0
1024 : "Physics debris may trigger. Debris objects are usually small and not solid to players." : 0
4096 : "Can move (through parenting)" : 0
]
filtername(filterclass) : "Filter Name" : : "A filter entity to test potential activators against."
]
@BaseClass base(CBaseEntity,Parent,RenderAlphaColor) = CBeam
[
spawnflags(flags) =
[
1 : "Start On" : 1
2 : "Toggle (Obsolete. Uncheck if checked and use the Toggle input instead.)" : 0
16 : "StartSparks (temporarily emits a sparks at starting point.)" : 0
32 : "EndSparks (temporarily emits a sparks at ending point.)" : 0
64 : "Decal End (scorch mark where a damaging beam hits something. For env_beam see Decal Name.)" : 0
]
HDRColorScale(float) : "HDR color scale" : "1.0" : "Value to multiply sprite color by when running in HDR mode."
damage(integer) : "Damage/second" : 0 : "How much damage this beam does per second to things it hits when it is continually on, or instantaneously if it strikes. For continuous damage, the value should be greater than 10 or it may not work."
dissolvetype(choices) : "Sparks on Damage" : 0 : "If this beam damages something, shows sparks on that entity." =
[
0 : "No"
1 : "Yes"
]
input Width(float) : "Sets the radius of the beam (i.e. 1 = 2 world units total thickness)."
input Noise(float) : "Sets how far away from the middle that the beam is allowed to deviate."
input ColorRedValue(integer) : "Sets how red the beam is (0-255). The resulting color will be affected by any color in the base texture, so only hueless textures will be able to show the full color spectrum."
input ColorGreenValue(integer) : "Sets how green the beam is (0-255)."
input ColorBlueValue(integer) : "Sets how blue the beam is (0-255)."
]
@BaseClass base(CBaseEntity,VisibleBrush,DamageFilter) = CBreakable
[
spawnflags(flags) =
[
1 : "Only Break on Trigger (Break input)" : 0
2 : "Break on Touch" : 0
4 : "Break on Pressure (when something is on top of this entity)" : 0
512 : "Break immediately on Physics (any physics damage will break the brush)" : 0
1024 : "Don't take physics damage" : 0
]
propdata(choices) : "Prop Data" : 0 : "Set to the best approximation of the size and material of this entity's brushes. If set, this will override Strength and Material Type and the damage amounts taken from various weapons. Some settings can make the brush unbreakable." =
[
0 : "None"
1 : "Wooden.Tiny"
2 : "Wooden.Small"
3 : "Wooden.Medium"
4 : "Wooden.Large"
5 : "Wooden.Huge"
6 : "Metal.Small"
7 : "Metal.Medium"
8 : "Metal.Large"
9 : "Cardboard.Small"
10 : "Cardboard.Medium"
11 : "Cardboard.Large"
12 : "Stone.Small"
13 : "Stone.Medium"
14 : "Stone.Large"
15 : "Stone.Huge"
16 : "Glass.Small"
17 : "Plastic.Small"
18 : "Plastic.Medium"
19 : "Plastic.Large"
20 : "Pottery.Small"
21 : "Pottery.Medium"
22 : "Pottery.Large"
23 : "Pottery.Huge"
24 : "Glass.Window"
]
health(integer) : "Strength/Health" : 1 : "How much damage to take before breaking. The brush will not break from damage if this is 0."
material(choices) : "Material Type" : 0 : "Material type of the brush. Decides what sounds to make when damaged, and what gibs to produce when broken." =
[
0 : "Glass"
1 : "Wood"
2 : "Metal"
4 : "Concrete"
5 : "Ceiling Tile - Tile sound, HL1 plaster gib sound on break, wood gibs"
6 : "Computer - Metal sounds, spark sound and effect, wood gibs"
7 : "Unbreakable Glass - Not breakable. Makes cartoon-y bullet sound."
8 : "Rocks"
10 : "None - Wood gibs"
]
explosion(choices) : "Gibs Direction" : 1 : "Used to decide which direction to throw gibs when broken." =
[
0 : "Random"
1 : "Relative to Attack"
2 : "Use Precise Gib Dir (see below)"
]
gibdir(angle) : "Precise Gib Direction" : "0 0 0" : "An exact direction in which to throw gibs when breaking. Be sure to select Use Precise Gib Dir in Gibs Direction!"
PerformanceMode(choices) : "Gib Mode" : 0 : "How many gibs to spawn." =
[
0 : "All Gibs"
3 : "Reduced gibs"
1 : "No Gibs"
]
minhealthdmg(integer) : "Min Damage to Hurt" : 1 : "If a single hit to the object doesn't do at least this much damage, the entity won't take any of the damage from that hit."
PressureDelay(float) : "Pressure Delay" : 0 : "Seconds to delay breaking from pressure if Break on Pressure is checked. Allows creaking/groaning sounds to play."
physdamagescale(float) : "Physics Impact Damage Scale" : 1 : "Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics."
input SetMass(float) : "If this entity is physically simulated, set its mass."
input Break(void) : "Breaks the breakable."
input SetHealth(integer) : "Sets a new value for the breakable's health. If the breakable's health reaches zero it will break."
input AddHealth(integer) : "Adds health to the breakable."
input RemoveHealth(integer) : "Removes health from the breakable."
output OnBreak(void) : "Fired when this object breaks. Activator is whatever breaks the object."
output OnHealthChanged(float) : "Fired whenever the health of the breakable has increased or decreased. Will fire multiple times at once when shot by shotguns. Automatically puts the new health amount as a decimal percent (e.g. 45% = 0.45) as the input parameter, unless overridden by the mapper."
]
@BaseClass base(CBaseEntity,Parent,EnableDisable) = CEnvSoundscape