-
Notifications
You must be signed in to change notification settings - Fork 7
/
halflife2.fgd
4671 lines (3891 loc) · 198 KB
/
halflife2.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
//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======
//
// Purpose: Half-Life 2 game definition file (.fgd)
//
//=============================================================================
@include "base.fgd"
//-------------------------------------------------------------------------
//
// NPCs
//
//-------------------------------------------------------------------------
@BaseClass base(BaseNPC) = TalkNPC
[
UseSentence(string) : "Use Sentence"
UnUseSentence(string) : "Un-Use Sentence"
DontUseSpeechSemaphore(choices) : "Don't Use Speech Semaphore" : 0 : "Friendly NPCs are not allowed to speak if another friendly NPC is speaking. In some cases we don't want speaking NPCs to prevent other NPCs from speaking (for instance, if there is a friendly NPC speaking for a long time on a monitor). To make this NPC not prevent other NPCs from talking, make it not grab the semaphore when it speaks." =
[
0 : "No (Use speech semaphore)"
1 : "Yes (Don't use speech semaphore)"
]
input SpeakResponseConcept(string) : "Speak the specified response concept."
]
@BaseClass base(BaseNPC) = PlayerCompanion
[
input OutsideTransition(void) : "Use this input to teleport the NPC to a hintnode with the Player Squad Transition Point hint type."
input EnableAlwaysTransition(void) : "Enable the 'always transition' behavior"
input DisableAlwaysTransition(void) : "Disable the 'always transition' behavior"
input EnableSpeakWhileScripting(void) : "Allow this NPC to speak responses while in a scripted sequence or while StartScripting is active."
input DisableSpeakWhileScripting(void) : "Cancels this NPC's ability to speak responses while in a scripted sequence or while StartScripting is active if it was previously enabled by EnableSpeakWhileScripting."
AlwaysTransition(choices) : "Always transition" : "No" : "If yes, this NPC will always teleport to a Player Squad Transition Point if they're not within the trigger_transition volume." =
[
0 : "No"
1 : "Yes"
]
DontPickupWeapons(choices) : "Prevent picking up weapons?" : "No" : "If yes, this NPC will NOT be allowed to pick up weapons they find on the ground." =
[
0 : "No"
1 : "Yes"
]
GameEndAlly(choices) : "Is this a vital ally?" : "No" : "If yes, this NPC will cause the game to end if killed." =
[
0 : "No"
1 : "Yes"
]
input MakeGameEndAlly(void) : "Make this NPC a game end ally."
input MakeRegularAlly(void) : "Make this NPC a regular ally."
input EnableWeaponPickup(void) : "Enable Weapon Pickup"
input DisableWeaponPickup(void) : "Disable Weapon Pickup"
input GiveWeapon(string) : "Gives the NPC a weapon of the specified entity name."
input SetReadinessPanic(void) : "Set readiness to panic state (Special)"
input SetReadinessLow(void) : "Set readiness to calmest state (Bored)"
input SetReadinessMedium(void) : "Set readiness to moderate (Alert)"
input SetReadinessHigh(void) : "Set readiness to highest. (Combat imminent)"
input LockReadiness(float) : "Lock readiness at current setting for x seconds -1 = forever, 0 = unlock now"
input ClearAllOutputs(void) : "Obliterate every output that this NPC has."
output OnWeaponPickup(void) : "Fires when this NPC picks a weapon off the ground or a gun rack."
]
@BaseClass base(BaseNPC ) = RappelNPC
[
waitingtorappel(choices) : "Waiting to Rappel?" : "No" : "If yes, this NPC spawns suspended in air and awaits a BeginRappel input. It will then spawn a zipline and slide down. When it hits the ground, NPC will cut away the line and try to move forward a few feet to make room for the next NPC. The NPC will not attempt to clear its landing space if it cannot do so by taking a few steps forward" =
[
0 : "No"
1 : "Yes"
]
// Inputs
input BeginRappel(void) : "BeginRappel"
// Outputs
output OnRappelTouchdown(void) : "Fires when done rappeling"
]
@BaseClass = AlyxInteractable
[
// Outputs
output OnAlyxStartedInteraction(void) : "Fired when Alyx begins to interact with this entity."
output OnAlyxFinishedInteraction(void) : "Fired when Alyx has finished interacting with this entity."
input InteractivePowerDown(void) : "Shutdown this target."
]
@BaseClass base(Targetname, Origin, Angles, Global) = CombineBallSpawners
[
spawnflags(Flags) =
[
4096 : "Start inactive" : 1
8192 : "Combine power supply" : 0
]
ballcount(integer) : "Ball count" : 3 : "This is how many balls will be bouncing around inside the spawner"
minspeed(float) : "Min ball speed" : "300.0" : "The minimum speed of balls that fly in the spawner"
maxspeed(float) : "Max ball speed" : "600.0" : "The maximum speed of balls that fly in the spawner"
ballradius(float) : "Ball radius" : "20.0" : "The radius of the energy balls"
balltype(choices) : "Ball Type" : "Combine Energy Ball 1" =
[
0 : "Combine Energy Ball 1"
1 : "Combine Energy Ball 2"
2 : "Combine Energy Ball 3"
]
ballrespawntime(float) : "Ball Respawn Time" : "4.0f" : "The energy balls respawn time"
input Enable(void) : "Enable spawning of combine balls"
input Disable(void) : "Disable spawning of combine balls"
output OnBallGrabbed(void) : "Fired when a combine ball is grabbed from the field by a mega physcannon"
output OnBallReinserted(void) : "Fired when a combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
output OnBallHitTopSide(void) : "Fired when a combine ball in hits the top side of the field (only gets triggered when Combine Power supply is checked)"
output OnBallHitBottomSide(void) : "Fired when a combine ball in hits the bottom side of the field (only gets triggered when Combine Power supply is checked)"
output OnLastBallGrabbed(void) : "Fired when the last combine ball is grabbed from the field by a mega physcannon"
output OnFirstBallReinserted(void) : "Fired when the first combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
]
@PointClass base(BasePropPhysics) studioprop() = prop_combine_ball :
"A prop that physically simulates as a single rigid body. It can be constrained to other physics objects using hinges "+
"or other constraints. It can also be configured to break when it takes enough damage."
[
// Inputs
input Explode(void) : "Explode"
]
@SolidClass base(Trigger, Angles) = trigger_physics_trap :
"A volumetric trigger that disintegrates enemies"
[
dissolvetype(choices) : "Dissolve Type" : "Energy" =
[
0 : "Energy"
1 : "Heavy electrical"
2 : "Light electrical"
]
]
@SolidClass base(Trigger) = trigger_weapon_dissolve :
"A volumetric trigger that dissolves all weapons within it"
[
emittername(target_destination) : "Emitter Name" : "" : "Name of a single or multiple entities to use as the basis for the emitted effects."
// Outputs
output OnDissolveWeapon(void) : "Fires when one weapon is starting to dissolve in the trigger volume."
output OnChargingPhyscannon(void) : "Fires when the trigger begins to charge the physcannon."
// Inputs
input StopSound(void) : "Stops all sounds."
]
@SolidClass base(Trigger) = trigger_weapon_strip :
"A volumetric trigger that strips combat characters of all weapons"
[
KillWeapons(choices) : "Kill Weapons" : "No" =
[
0 : "No"
1 : "Yes"
]
]
@SolidClass base(CombineBallSpawners) = func_combine_ball_spawner :
"Spawns Combine balls."
[
output OnBallReinserted(void) : "Fired when a combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
output OnLastBallGrabbed(void) : "Fired when the last combine ball is grabbed from the field by a mega physcannon"
]
@PointClass base(CombineBallSpawners) = point_combine_ball_launcher :
"Launches Combine balls."
[
launchconenoise(float) : "Noise to launch direction" : "0.0" : "Noise in degrees added to the launch direction."
bullseyename(string) : "Name of bullseye" : "" : "If you select the Attach Bullseye spawnflag, you may specify a name here which will be given to the bullseye."
maxballbounces(integer) : "Max number of bounces" : 8 : "Maximum number of bounces the balls are allowed to do before they are removed."
spawnflags(Flags) =
[
1 : "Attach Bullseye" : 0
2 : "Balls should collide against player" : 0
]
// Inputs
input LaunchBall(void) : "Launch a ball from the spawner."
]
@NPCClass base(BaseNPC) studio("models/combine_soldier.mdl") = npc_blob : "Blob"
[
input FormPathShape(string) : "Tells the group to go distribute themselves along a shape defined by path corner entities"
input SetRadius(float) : "Force the group to change the radius (density)"
]
@NPCClass base(BaseNPC) studio("models/Weapons/w_grenade.mdl") = npc_grenade_frag : "Hand Grenade"
[
input SetTimer(float) : "This input makes the grenade live, and specifies how many seconds before it explodes."
]
@NPCClass base(BaseNPC) sphere(sightdist) studio("models/combine_soldier.mdl") = npc_combine_cannon : "Combine Cannon"
[
sightdist(float) : "Sight radius" : 1024 : "Radius distance at which the cannon is able to aquire enemies."
]
@NPCClass base(BaseNPC) sphere(innerradius) sphere(outerradius) studio("models/combine_camera/combine_camera.mdl") = npc_combine_camera :
"Combine security camera"
[
spawnflags(Flags) =
[
32 : "Always Become Angry On New Enemy" : 1
64 : "Ignore Enemies (Scripted Targets Only)" : 0
128 : "Start Inactive" : 0
]
innerradius(integer) : "Inner radius" : 300 : "The camera will only lock onto enemies that are within the inner radius."
outerradius(integer) : "Outer radius" : 450 : "The camera will flash amber when enemies are within the outer radius, but outside the inner radius."
minhealthdmg(integer) : "Min req'd damage for hurting camera" : 0
defaulttarget(target_destination) : "Default target" : "" : "The default target is the entity that the camera follows when it has no other target to track."
// Inputs
input Disable(void) : "Disables the camera. If open, the camera closes."
input Enable(void) : "Enables the camera. If closed, the camera opens."
input Toggle(void) : "Toggle - If open, close. If closed, open."
input SetDefaultTargetEntity(string) : "Sets the entity for the camera to track when it has nothing better to track, by name."
input SetTargetEntity(string) : "Sets the entity for the camera to track now, by name."
input SetAngry(void) : "Causes the camera to become angry as if it has seen something upsetting."
input SetIdle(void) : "Causes the camera to calm down if it is angry."
output OnFoundPlayer(string) : "Fired when the player is spotted within the inner radius"
output OnFoundEnemy(void) : "Fired when a non-player enemy is spotted within the inner radius."
]
@PointClass base(BaseNPC, Parentname, AlyxInteractable) studio( "models/combine_turrets/ground_turret.mdl" ) = npc_turret_ground : "Combine ground turret"
[
input Enable(void) : "Turn turret on."
input Disable(void) : "Turn turret off."
output OnAreaClear(void) : "Fires when the turret can't find any more enemies (7 second delay)"
]
@PointClass base(Targetname, Angles, Studiomodel) studio( "models/combine_turrets/ceiling_turret.mdl" ) = npc_turret_ceiling : "Combine Ceiling Turret"
[
spawnflags(Flags) =
[
32 : "Autostart" : 1
64 : "Start Inactive" : 0
128 : "Never Retire" : 0
256 : "Out of Ammo" : 0
]
minhealthdmg(integer) : "Min req'd damage for hurting turret" : 0
// Inputs
input Enable(void) : "If closed, open."
input Disable(void) : "If open, close."
input Toggle(void) : "Toggle - If open, close. If closed, open."
// Outputs
output OnDeploy(void) : "Turret is becoming active and dangerous."
output OnRetire(void) : "Turret is becoming inactive and harmless."
output OnTipped(void) : "Turret has been tipped over and is inactive."
]
@PointClass base(Targetname, Angles) studio( "models/combine_turrets/floor_turret.mdl" ) = npc_turret_floor : "Combine Floor Turret"
[
spawnflags(Flags) =
[
32 : "Autostart" : 0
64 : "Start Inactive" : 0
128 : "Fast Retire" : 0
256 : "Out of Ammo" : 0
512 : "Citizen modified (Friendly)" : 0
]
SkinNumber(integer) : "Skin Number" : 0 : "Which skin to use for this turret. Set to 0 to select randomly."
// Inputs
input Toggle(void) : "Toggle - If open, close. If closed, open."
input Enable(void) : "Enable the turret."
input Disable(void) : "Disable the turret."
input DepleteAmmo(void) : "Depletes all the ammo from a turret, causing it to dry-fire."
input RestoreAmmo(void) : "Restores ammo to a turret, allowing it to fire live rounds again."
input SelfDestruct(void) : "Causes the turret to warn and then explode."
// Outputs
output OnDeploy(void) : "Turret is becoming active and dangerous."
output OnRetire(void) : "Turret is becoming inactive and harmless."
output OnTipped(void) : "Turret has been tipped over and is inactive."
output OnPhysGunPickup(void) : "Picked up with physgun"
output OnPhysGunDrop(void) : "Released by physgun"
]
@BaseClass base(BaseNPC) = VehicleDriverNPC
[
vehicle(target_destination) : "Vehicle to drive"
spawnflags(Flags) =
[
65536 : "Start Inactive" : 1
]
input StartFiring(void) : "Tell the driver to attack nearby enemies with the vehicle's weaponry (if any)"
input StopFiring(void) : "Tell the driver to stop attacking nearby enemies with the vehicle's weaponry."
input GotoPathCorner(string) : "Tell the driver to go to a specific path corner and continue from there."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_vehicledriver :
"NPC used to drive a target vehicle."
[
drivermaxspeed(float) : "Maxspeed (percentage of vehicle's maxspeed)." : 1
driverminspeed(float) : "MinSpeed (percentage of vehicle's maxspeed)." : 0
input SetDriversMaxSpeed(float) : "Set the Maxspeed (percentage of vehicle's maxspeed)."
input SetDriversMinSpeed(float) : "Set the Minspeed (percentage of vehicle's maxspeed)."
input StartForward(void) : "Tell the driver to start driving."
input Stop(void) : "Tell the driver to stop driving."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_cranedriver :
"NPC used to drive cranes."
[
releasepause(float) : "Pause time before dropping a ForceDrop specified object." : 0
// Inputs
input ForcePickup(string) : "Force the driver to pickup the specified entity (by targetname)"
input ForceDrop(string) : "Force the driver to drop the currently held object at the specified entity's location."
// Outputs
output OnPickedUpObject(void) : "Fired when the ForcePickup specified object has been picked up."
output OnDroppedObject(void) : "Fired when the ForceDrop specified object has been dropped."
output OnPausingBeforeDrop(void): "Fired at the start of the pause before dropping the ForceDrop specified object."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_apcdriver :
"NPC used to drive an APC vehicle."
[
spawnflags(Flags) =
[
65536 : "No Rocket Attacks" : 0
131072 : "No Gun Attacks" : 0
]
drivermaxspeed(float) : "Maxspeed (percentage of vehicle's maxspeed)." : 1
driverminspeed(float) : "MinSpeed (percentage of vehicle's maxspeed)." : 0
input SetDriversMaxSpeed(float) : "Set the Maxspeed (percentage of vehicle's maxspeed)."
input SetDriversMinSpeed(float) : "Set the Minspeed (percentage of vehicle's maxspeed)."
input StartForward(void) : "Tell the driver to start driving."
input Stop(void) : "Tell the driver to stop driving."
input DisableFiring(float) : "Disables firing from happening"
input EnableFiring(float) : "Enables firing to start. Firing is enabled by default"
]
@NPCClass base(BaseNPC,AlyxInteractable) studio("models/roller.mdl") = npc_rollermine : "Roller Mine"
[
spawnflags(Flags) =
[
65536 : "Friendly" : 0
131072 : "Use prop_physics collision rules" : 0
]
startburied(choices) : "Start Buried" : "No" =
[
0 : "No"
1 : "Yes"
]
uniformsightdist(choices) : "Sight Distance" : 0 =
[
0 : "Ignore distant targets not in a vehicle (default)."
1 : "Equal visibility for all targets."
]
input TurnOn(void) : "Restore this rollermine to normal functionality."
input TurnOff(void) : "Make this rollermine completely inert. Does not run AI and NPCs will ignore it."
output OnPhysGunPickup(void) : "Picked up with physgun"
output OnPhysGunDrop(void) : "Released by physgun"
]
@NPCClass base(BaseNPC) studio("models/missile_defense.mdl") = npc_missiledefense : "Missile Defense"
[
]
@NPCClass base(BaseNPC) studio("models/combine_soldier.mdl") = npc_sniper : "Sniper"
[
radius(integer) : "Patience Radius" : 0 : "Sniper will hold fire until the target is within this radius. After that, sniper will always attack, even if the target retreats outside of this radius"
misses(integer) : "Initial Misses" : 0 : "How many times to miss a target on purpose before beginning to fire accurately."
beambrightness(integer) : "Beam Brightness (0 to 255)" : 100 : "How bright the laser sight beam should be. (0 - 255)"
shootZombiesInChest(choices) : "Shoot zombies in chest" : 0 : "If true, aim for chest instead of headcrab. Useful when at great distance and height." =
[
0 : "No"
1 : "Yes"
]
shielddistance(float) : "Bullet shield distance" : 64 : "Obsolete"
shieldradius(float) : "Bullet shield radius" : 48 : "Obsolete"
PaintInterval(float): "Paint interval" : 1 : "Sniper will keep a target painted for this many seconds before shooting. 'Faster Shooting' sniper flag multiplies this by 0.75."
PaintIntervalVariance(float): "Paint interval variance" : "0.75" : "When shooting at NPCs, a random number between 0 and this is added to PaintInterval for every shot."
// Inputs
input EnableSniper(void) : "Enable Shooting"
input DisableSniper(void) : "Disable Shooting"
input SetDecoyRadius(integer) : "Set Decoy Radius"
input SweepTarget(string) : "Sweep a Target"
input SweepTargetHighestPriority(string) : "Drop everything and sweep this target!"
input SweepGroupRandomly(string) : "Randomly Sweep a Group"
input StopSweeping(void) : "Stop any target sweeping operation started by entity I/O"
input ProtectTarget(target_destination) : "Protect the specified enemy. The sniper will attempt to shoot the enemy nearest the protect target at all times."
input SetPaintInterval(float) : "Set PaintInterval field."
input SetPaintIntervalVariance(float) : "Set PaintIntervalVariance field."
output OnShotFired(void) : "Fires when sniper fires a shot"
spawnflags(Flags) =
[
65536 : "Hidden" : 0
131072 : "Laser Viewcone" : 0
262144 : "No Corpse" : 0
524288 : "Start Disabled" : 0
1048576 : "Faster shooting (Episodic)" : 0
2097152 : "No sweep away from target (Episodic)" : 0
]
]
@PointClass base(Targetname, Parentname, EnableDisable) iconsprite("editor/info_target.vmt") sphere(radius) = info_radar_target : "Jalopy Radar Beacon"
[
radius(float) : "Effective Radius" : 6000 : "How close the Jalopy must be to detect this beacon. If this radius is -1, the range is infinite"
type(choices) : "Type of target" : 0 =
[
0 : "Generic Citizen Beacon"
1 : "Magnussen RDU Beacon"
2 : "Dog"
3 : "Ally Installation"
]
mode(choices) : "Mode" : 0 =
[
0 : "Default"
1 : "Sticky - once detected, ignore effective radius."
]
]
@PointClass base(Targetname, Angles, EnableDisable) iconsprite("editor/info_target.vmt") = info_target_vehicle_transition : "Vehicle Transition Point"
[
]
@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = info_snipertarget : "Sniper Target"
[
speed(integer) : "Sweep to speed" : 2
groupname(string) : "Group Name"
spawnflags(Flags) =
[
1 : "Shoot Me" : 0
2 : "No Interruptions" : 0
// 4 : "Snap Shot" : 0 OBSOLETE NOW but don't overwrite, in case some levels need legacy support.
8 : "Resume if Interrupted" : 0
16: "Snap to me" : 0
]
]
@PointClass base(Targetname, Angles) studio() = prop_thumper : "Thumper"
[
model(studio) : "World model" : "models/props_combine/CombineThumper002.mdl"
dustscale(choices) : "Dust Scale" : "Small Thumper" =
[
128 : "Small Thumper"
256 : "Large Thumper"
]
input Enable(void) : "Enable Thumper"
input Disable(void) : "Disable Thumper"
output OnThumped(void) : "Fires when thumper impacts the ground."
EffectRadius(integer) : "Effect Radius" : 1000 : "Radius of the thumper's sound. EPISODIC ONLY."
]
@NPCClass base(BaseNPC) studio("models/antlion.mdl") sphere() = npc_antlion :
"Antlions will run away from ai_sound, type: Thumper."
[
startburrowed(choices) : "Start Burrowed" : "No" =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
65536 : "Burrow when eluded" : 0
131072 : "Use Ground Checks" : 0
262144 : "Worker Type" : 0
]
radius(integer) : "Alert Radius" : 256
eludedist(integer) : "Distance until eluded" : 1024 : "Only available when Burrow When Eluded is flagged"
ignorebugbait(choices) : "Ignore Bugbait" : "No" =
[
0 : "No"
1 : "Yes"
]
unburroweffects(choices) : "Suppress unburrow effects" : "No" =
[
0 : "No"
1 : "Yes"
]
input Unburrow(void) : "Unburrow from the ground"
input Burrow(void) : "Burrow into the ground"
input BurrowAway(void) : "Burrow into the ground and remove the antlion"
input FightToPosition(string) : "Fight to position"
input EnableJump(void) : "Allow non-navigational jumping"
input DisableJump(void) : "Disallow non-navigational jumping"
input IgnoreBugbait(void) : "Ignore bugbait"
input HearBugbait(void) : "Hear bugbait"
output OnReachedFightGoal(void) : "Fires when the antlion reaches his specified fight-to location"
output OnUnBurrowed(void) : "Fires when the antlion unburrows"
]
@NPCClass base(BaseNPC) studio("models/antlion_guard.mdl") = npc_antlionguard : "Antlion Guard"
[
spawnflags(Flags) =
[
65536 : "Create server-side ragdoll on death" : 0
131072 : "Use inside footsteps" : 0
]
startburrowed(choices) : "Start Burrowed" : "No" =
[
0 : "No"
1 : "Yes"
]
allowbark(choices) : "Allow Bark" : "No" =
[
0 : "No"
1 : "Yes"
]
cavernbreed(choices) : "Cavern Guard Model and Texture" : "No" =
[
0 : "No"
1 : "Yes"
]
incavern(choices) : "Use inside-Cavern Behavior" : "No" =
[
0 : "No"
1 : "Yes"
]
shovetargets(string) : "Shove Targets" : ""
// Inputs
input Unburrow(void) : "Unburrow from the ground"
input SetShoveTarget(string) : "Sets a shove target to attack"
input SetChargeTarget(string) : "Sets a charge target to attack. Parameters are the name of the entity to start at and the name of the entity to charge towards, separated by a space (i.e. start target)"
input ClearChargeTarget(void) : "Clear the charge target"
input SetCoverFromAttack(integer) : "Sets whether or not the creature will protect itself from attacks"
input Ragdoll(void) : "Causes the antlion guard to die, regardless of health"
input EnableBark(void) : "Allow the antlion guard to try and summon antlions"
input DisableBark(void) : "Stop the antlion guard from trying to summon antlions"
input InvestigateHint(string) : "Sniff around at a hint group until told otherwise"
input StopInvestigating(void) : "Stop trying to sniff out the player"
input EnablePreferPhysicsAttack(void) : "Prefer to use physics attacks if at all possible, even when inside a cavern."
input DisablePreferPhysicsAttack(void) : "Do not prefer to use physics attacks if at all possible, even when inside a cavern."
// Outputs
output OnSeeHiddenPlayer(void) : "Fires when the current enemy is seen while trying to hide"
output OnSmellHiddenPlayer(void) : "Fires when the current enemy is smelled while trying to hide"
output OnSummon(void) : "Antlion guard is attempting to summon antlions"
]
@NPCClass base(BaseNPC) studio("models/crow.mdl") = npc_crow : "Crow"
[
input FlyAway( string ) : "Forces the crow to fly to the nearest crow flyto hint node."
deaf(choices) : "Deaf?" : 0 =
[
0 : "No."
1 : "Yes. Ignore sounds."
]
]
@NPCClass base(BaseNPC) studio("models/seagull.mdl") = npc_seagull : "Seagull"
[
input FlyAway( string ) : "Forces the seagull to fly to the nearest crow flyto hint node."
deaf(choices) : "Deaf?" : 0 =
[
0 : "No."
1 : "Yes. Ignore sounds."
]
]
@NPCClass base(BaseNPC) studio("models/pigeon.mdl") = npc_pigeon : "Pigeon"
[
input FlyAway( string ) : "Forces the pigeon to fly to the nearest crow flyto hint node."
deaf(choices) : "Deaf?" : 0 =
[
0 : "No."
1 : "Yes. Ignore sounds."
]
]
@NPCClass base(BaseNPC) studio("models/ichthyosaur.mdl") = npc_ichthyosaur : "Ichthyosaur. Not fully functional"
[
]
@BaseClass base(BaseNPC) = BaseHeadcrab
[
startburrowed(choices) : "Start burrowed" : "No" =
[
0 : "No"
1 : "Yes"
]
spawnflags(flags) =
[
65536 : "Start hidden" : 0
131072 : "Start hanging from ceiling" : 0
]
input StartHangingFromCeiling(void) : "Start hanging from ceiling."
input DropFromCeiling(void) : "Drop if hanging from ceiling."
]
@NPCClass base(BaseHeadcrab, Parentname) studio("models/Headcrabclassic.mdl") = npc_headcrab : "Headcrab"
[
]
@NPCClass base(BaseHeadcrab) studio("models/Headcrab.mdl") = npc_headcrab_fast : "Fast Headcrab"
[
]
@NPCClass base(BaseHeadcrab) studio("models/Headcrabblack.mdl") = npc_headcrab_black : "Black Headcrab"
[
]
@NPCClass base(BaseNPC) studio("models/Stalker.mdl") = npc_stalker : "Stalker"
[
BeamPower(choices) : "Beam Power" : "Low" =
[
0 : "Low"
1 : "Medium"
2 : "High"
]
]
@NPCClass base(Parentname, BaseNPC) iconsprite("editor/bullseye.vmt") color(255 0 0) = npc_bullseye : "Bullseye"
[
// Unlike other NPCs level designers are allowed to set the health on bullseyes
health(Integer) : "Health" : 35
minangle(string) : "Minimum Angle" : "360" : "Angle from the bullseye required for bullseye to be a valid enemy"
mindist(string) : "Minimum Distance" : "0" : "Distance from the bullseye required for bullseye to be a valid enemy"
autoaimradius(float) : "Autoaim Radius" : "0" : "Radius of autoaim influence. Use ent_autoaim <picker> to visualize."
spawnflags(Flags) =
[
65536 : "Not Solid" : 0
131072 : "Take No Damage" : 0
262144 : "Enemy Damage Only" : 0
524288 : "Bleed" : 0
1048576 : "Perfect Accuracy" : 0
2097152 : "Collide against physics objects (Creates VPhysics Shadow)" : 0
]
output OnTargeted(void) : "Fires when targeted"
output OnReleased(void) : "Fires when no longer targeted"
]
@NPCClass base(Parentname, BaseNPC) size(-16 -16 -16, 16 16 16) color(255 150 0) = npc_enemyfinder : "EnemyFinder"
[
spawnflags(flags) =
[
65536 : "Check Visibility" : 1
131072 : "APC Visibility checks" : 0
262144 : "Short memory" : 0
524288 : "Can be an enemy" : 0
]
FieldOfView(string) : "FieldOfView" : "0.2" : "How far to look (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
MinSearchDist(integer) : "Min Search Dist" : 0
MaxSearchDist(integer) : "Max Search Dist" : 2048
freepass_timetotrigger(float) : "Player pass issue time" : 0 : "Amount of time an enemy is hidden after which a 'free pass' on reaquire is granted"
freepass_duration(float) : "Player pass duration" : 0 : "After granted 'free pass', the amount of time a target is allowed before reaquire"
freepass_movetolerance(float) : "Player pass move tolerance" : 120 : "After granted 'free pass', the distance the target is allowed to move before reaquire"
freepass_refillrate(float) : "Player pass refill rate" : "0.5" : "After free pass begins expiring, how much the time the target gets back for every second they hide again"
freepass_peektime(float) : "Player pass peek time" : 0 : "How long targets in cover are allowed to peek without penalty"
StartOn(choices) : "Start On" : 1 =
[
0 : "No"
1 : "Yes"
]
// Inputs
input TurnOn(void) : "Turn on: Look for enemies"
input TurnOff(void) : "Turn off: Stop looking for enemies"
output OnLostEnemies(void) : "Fires when the enemy finder has no enemies."
output OnAcquireEnemies(void) : "Fires when the enemy finder acquires enemies."
]
@NPCClass base(Parentname, BaseNPC) size(-16 -16 -16, 16 16 16) color(255 150 0) = npc_enemyfinder_combinecannon : "EnemyFinder Specifically for use with func_tank_combine_cannon"
[
spawnflags(flags) =
[
65536 : "Check Visibility" : 1
131072 : "APC Visibility checks" : 0
262144 : "Short memory" : 0
524288 : "Can be an enemy" : 0
]
FieldOfView(string) : "FieldOfView" : "0.2" : "How far to look (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
MinSearchDist(integer) : "Min Search Dist" : 0
MaxSearchDist(integer) : "Max Search Dist" : 2048
SnapToEnt(target_destination) : "Name of entity to snap to" : "" : "Since it can be hard to position these entities with respect to the func_tank brushwork, you can specify an entity name here and this enemyfinder will position itself at the center of that entity."
freepass_timetotrigger(float) : "Player pass issue time" : 0 : "Amount of time an enemy is hidden after which a 'free pass' on reaquire is granted"
freepass_duration(float) : "Player pass duration" : 0 : "After granted 'free pass', the amount of time a target is allowed before reaquire"
freepass_movetolerance(float) : "Player pass move tolerance" : 120 : "After granted 'free pass', the distance the target is allowed to move before reaquire"
freepass_refillrate(float) : "Player pass refill rate" : "0.5" : "After free pass begins expiring, how much the time the target gets back for every second they hide again"
freepass_peektime(float) : "Player pass peek time" : 0 : "How long targets in cover are allowed to peek without penalty"
StartOn(choices) : "Start On" : 1 =
[
0 : "No"
1 : "Yes"
]
// Inputs
input TurnOn(void) : "Turn on: Look for enemies"
input TurnOff(void) : "Turn off: Stop looking for enemies"
input SetWideFOVForSeconds(float) : "Gives this enemyfinder a 180 degree viewcone for the number of seconds specified in the parameter override"
output OnLostEnemies(void) : "Fires when the enemy finder has no enemies."
output OnAcquireEnemies(void) : "Fires when the enemy finder acquires enemies."
]
@NPCClass base(BaseNPC,Parentname, TalkNPC, PlayerCompanion ) studio() = npc_citizen : "Citizen"
[
spawnflags(Flags) =
[
65536 : "Follow player on spawn" : 0
131072 : "Medic" : 0
262144 : "Random Head" : 1
524288 : "Ammo Resupplier" : 0
1048576 : "Not Commandable" : 0
2097152 : "Don't use Speech Semaphore - OBSOLETE" : 0
4194304 : "Random male head" : 0
8388608 : "Random female head" : 0
16777216 : "Use RenderBox in ActBusies" : 0
]
additionalequipment(choices) : "Weapons" : "0" =
[
"weapon_smg1" : "SMG1"
"weapon_ar2" : "AR2"
"weapon_stunstick" : "Stun Stick"
"weapon_crowbar" : "Crow Bar"
"weapon_shotgun" : "Shotgun"
"weapon_beerbottle" : "Beer Bottle"
"weapon_beerbottle2" : "Beer Bottle2"
"weapon_rpg" : "RPG"
"0" : "Nothing"
]
ammosupply(choices) : "Ammo to Resupply (if spawnflag set)" : "SMG1" =
[
"Pistol" : "Pistol"
"SMG1" : "SMG1"
"SMG1_Grenade" : "SMG1 Grenade"
"AR2" : "AR2"
"Buckshot" : "Shotgun"
"RPG_Round" : "RPG"
"Grenade" : "Grenade"
"XBowBolt" : "Crossbow Bolt"
]
ammoamount(integer) : "Amount of ammo to give" : 1
citizentype(choices) : "Type" : "Default" =
[
0 : "Default"
1 : "Downtrodden"
2 : "Refugee"
3 : "Rebel"
4 : "Unique"
]
expressiontype(choices) : "Expression Type" : "Random" =
[
0 : "Random"
1 : "Scared"
2 : "Normal"
3 : "Angry"
]
//!!!BUGBUG - don't ship with these names
//!!!FIXME - don't ship with these names
model(choices) : "Model" : "models/humans/group01/male_01.mdl" =
[
"models/humans/group01/male_01.mdl" : "Male 1"
"models/humans/group01/male_02.mdl" : "Male 2"
"models/humans/group01/male_03.mdl" : "Male 3"
"models/humans/group01/male_04.mdl" : "Male 4"
"models/humans/group01/male_05.mdl" : "Male 5"
"models/humans/group01/male_06.mdl" : "Male 6"
"models/humans/group01/male_07.mdl" : "Male 7"
"models/humans/group01/male_08.mdl" : "Male 8"
"models/humans/group01/male_09.mdl" : "Male 9"
"models/humans/group01/female_01.mdl" : "Female 1"
"models/humans/group01/female_02.mdl" : "Female 2"
"models/humans/group01/female_03.mdl" : "Female 3"
"models/humans/group01/female_04.mdl" : "Female 4"
"models/humans/group01/female_06.mdl" : "Female 5"
"models/humans/group01/female_07.mdl" : "Female 6"
"models/humans/male_cheaple.mdl" : "Cheaple Male 1"
"models/odessa.mdl" : "Odessa. DO NOT USE."
]
ExpressionOverride(string) : "Facial expression override"
notifynavfailblocked(choices) : "Fire output when Nav is blocked?" : 0 =
[
0 : "No"
1 : "Yes"
]
neverleaveplayersquad(choices) : "Permanent squad member?" : 0 : "A permanent squad member cannot leave the player's squad unless killed or explicity removed by entity I/O. Only use this if you're sure you want to override the default AI." =
[
0 : "No. This is default behavior."
1 : "Yes, stay in squad until death."
]
denycommandconcept(string) : "Deny command speech concept" : "" : "If you want your citizens to squad with the player but not obey commands the player gives to move the squad, put a concept here and this citizen will speak the concept instead of obeying the order."
//Inputs
input RemoveFromPlayerSquad(void) : "Remove from player squad, instantly."
input SetExpressionOverride(string) : "Set facial expression override"
input StartPatrolling(void) : "Patrol whenever I'm idle or alert."
input StopPatrolling(void) : "Stop patrolling when I'm idle or alert."
input SetCommandable(void) : "Make a previously uncommandable citizen commandable"
input SetMedicOn(void) : "Set the medic flag on. Will not change the model or skin of the citizen."
input SetMedicOff(void) : "Set the medic flag off. Will not change the model or skin of the citizen."
input SetAmmoResupplierOn(void) : "Set the ammo-resupplier flag on. Will not change the model or skin of the citizen."
input SetAmmoResupplierOff(void) : "Set the ammo-resupplier flag off. Will not change the model or skin of the citizen."
// Outputs
output OnJoinedPlayerSquad(void) : "Fires when joins player squad"
output OnLeftPlayerSquad(void) : "Fires when leaves player squad"
output OnFollowOrder(void) : "Fires when ordered to follow player"
output OnStationOrder(void) : "Fires when ordered to a location by player"
output OnPlayerUse(void) : "Fires when a player +USEs the citizen"
output OnNavFailBlocked(void) : "Fires when this Citizen's movement fails because he/she is blocked."
]
@NPCClass base(BaseNPC) studio("models/Barney.mdl") = npc_fisherman : "Fisherman"
[
ExpressionOverride(string) : "Facial expression override"
input SetExpressionOverride(string) : "Set facial expression override"
]
@NPCClass base(TalkNPC, BaseNPC, PlayerCompanion) studio("models/Barney.mdl") = npc_barney : "Barney"
[
additionalequipment(choices) : "Weapons" : "weapon_pistol" =
[
"weapon_pistol" : "Pistol"
"weapon_smg1" : "SMG1"
"weapon_stunstick" : "Stun Stick"
"weapon_shotgun" : "Shotgun"
"weapon_ar2" : "AR2"
"0" : "Nothing"
]
ExpressionOverride(string) : "Facial expression override"
input SetExpressionOverride(string) : "Set facial expression override"
// Outputs
output OnPlayerUse(void) : "Fires when a player +USEs Barney"
]
@BaseClass base(BaseNPC, RappelNPC) = BaseCombine
[
additionalequipment(choices) : "Weapons" : "weapon_smg1" =
[
"weapon_ar2" : "AR2"
"weapon_shotgun" : "Shotgun"
"weapon_smg1" : "SMG1"
"weapon_stunstick" : "Stun Stick"
"0" : "Nothing"
]
spawnflags(Flags) =
[
65536 : "Start LookOff" : 0
131072 : "Don't drop grenades" : 0
262144 : "Don't drop ar2 alt fire (elite only) " : 0
]
NumGrenades(choices) : "Number of Grenades" : "5" =
[
"0" : "None"
"1" : "1"
"2" : "2"
"3" : "3"
"4" : "4"
"5" : "5"
"999999" : "Unlimited"
]
// Inputs
input LookOn(void) : "Look normally"
input LookOff(void) : "Don't look for myself, use other squad member's eyes"
input StartPatrolling(void) : "Patrol whenever I'm idle or alert."
input StopPatrolling(void) : "Stop patrolling when I'm idle or alert."
input ThrowGrenadeAtTarget(target_destination) : "Throw a grenade at the specified target."
]
@NPCClass base(BaseCombine) studio("models/Combine_Soldier.mdl") = npc_combine_s : "Combine Soldier"
[
input Assault(string) : "Start an assault. Parameter passed in should be the name of the rally point."
model(choices) : "Model" : "models/combine_soldier.mdl" : "Regular Soldier" =
[
"models/combine_soldier.mdl" : "Regular Soldier"
"models/combine_soldier_prisonguard.mdl" : "Nova Prospekt Soldier"
"models/combine_super_soldier.mdl" : "Elite Soldier"
]
tacticalvariant(choices) : "Tactical Variant" : "0" =
[
"0" : "Normal Tactics"
"1" : "Pressure the enemy (Keep advancing)"
"2" : "Pressure until within 30ft, then normal"
]
usemarch(choices) : "Walk Easy" : "0" : "When true, will use a variety of more casual walking animations instead of the standard walk. For use in crowds. WARNING: this animation only has a north component. For use under very special circumstances only." =
[
"0" : "No"
"2" : "Yes"
]
]
@PointClass base(Parentname, BaseNPC) studio("models/junk/w_traffcone.mdl") = npc_launcher : "Launcher"
[
spawnflags(Flags) =
[
65536 : "Check LOS" : 1
]
StartOn(choices) : "Start On" : 0 =
[
0: "Off"
1: "On"
]
MissileModel(studio) : "Missile Model" : "models/Weapons/wscanner_grenade.mdl"
LaunchSound(sound) : "Launch Sound" : "npc/waste_scanner/grenade_fire.wav"
FlySound(sound) : "Fly Sound": "ambient/objects/machine2.wav"
SmokeTrail(choices) : "Smoke Trail" : 1 =
[
0: "Off"