forked from TeamSpen210/HammerAddons
-
Notifications
You must be signed in to change notification settings - Fork 15
/
patch_postcompiler.fgd
1480 lines (1363 loc) · 85.2 KB
/
patch_postcompiler.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
@ExtendClass
appliesto(SRCTOOLS)
= BaseEntity
[
vscript_init_code[+SRCTOOLS, +VSCRIPT](string) : "[HA] Init Code" : : "This code will be executed after the Entity Scripts option. Backtick ( ` ) characters will be converted to quotes in-game for strings."
vscript_init_code2[+SRCTOOLS, +VSCRIPT](string) : "[HA] Init Code 2" : : "This code will be the second line executed after the Entity Scripts option. Backtick ( ` ) characters will be converted to quotes in-game for strings. Additional Init Code keyvalues can be added with SmartEdit off."
]
@ExtendClass
appliesto(SRCTOOLS)
= BaseEntityBrush
[
parentname[SRCTOOLS](target_destination) : "Parent" : : "The name of this entity\'s parent in the movement hierarchy. Entities with parents move with their parent."
parent_attachment_point[SRCTOOLS](string) : "[HA] Attachment Point" : : "If set, attach to this attachment point on the parent during spawn. The relative offset will be preserved."
vscript_init_code[+SRCTOOLS, +VSCRIPT](string) : "[HA] Init Code" : : "This code will be executed after the Entity Scripts option. Backtick ( ` ) characters will be converted to quotes in-game for strings."
vscript_init_code2[+SRCTOOLS, +VSCRIPT](string) : "[HA] Init Code 2" : : "This code will be the second line executed after the Entity Scripts option. Backtick ( ` ) characters will be converted to quotes in-game for strings. Additional Init Code keyvalues can be added with SmartEdit off."
]
@ExtendClass
appliesto(SRCTOOLS)
= BaseEntityInputs
[
// Inputs
input RunScriptCode[+SRCTOOLS, +VSCRIPT, -TF2](script) : "Execute a string of script source code. Using double quote characters will corrupt the VMF, use backticks ( ` ) instead if you need to pass in a string."
]
@ExtendClass
appliesto(SRCTOOLS)
= BaseEntityPoint
[
parentname[SRCTOOLS](target_destination) : "Parent" : : "The name of this entity\'s parent in the movement hierarchy. Entities with parents move with their parent."
parent_attachment_point[SRCTOOLS](string) : "[HA] Attachment Point" : : "If set, attach to this attachment point on the parent during spawn. The relative offset will be preserved."
vscript_init_code[+SRCTOOLS, +VSCRIPT](string) : "[HA] Init Code" : : "This code will be executed after the Entity Scripts option. Backtick ( ` ) characters will be converted to quotes in-game for strings."
vscript_init_code2[+SRCTOOLS, +VSCRIPT](string) : "[HA] Init Code 2" : : "This code will be the second line executed after the Entity Scripts option. Backtick ( ` ) characters will be converted to quotes in-game for strings. Additional Init Code keyvalues can be added with SmartEdit off."
]
@ExtendClass base(SRCIndicator)
appliesto(SRCTOOLS)
= BasePedButton
[
]
@ExtendClass base(SRCIndicator)
appliesto(SRCTOOLS)
= BasePortButton
[
]
@BaseClass
appliesto()
= ControlEnables: "A pair of keyvalues for specifying if a comp_ entity is enabled."
[
ctrl_type[ENGINE](boolean) : "Invert Value?" : 0
ctrl_type(choices) : "Control Type" : 0 : "Controls how the Control Value is interpreted" =
[
0: "Is Enabled\?"
1: "Is Disabled\?"
]
ctrl_value(boolean) : "Control Value" : 1 : "Decides whether this entity is enabled. If disabled, the entity has no effect."
]
@ExtendClass
appliesto(SRCTOOLS)
= DamageType
[
damageor1[SRCTOOLS](choices) : "[HA] Damage - Gibbing" : 0 : "Optional flags that can accompany the damage type." =
[
0: "Normal Behaviour"
4096: "Never use gibs"
8192: "Always gib if possible"
]
damageor2[SRCTOOLS](choices) : "[HA] Damage - Prevent Physics Force" : 0 : "Prevent applying physics force to the target." =
[
0: "Apply force"
2048: "Prevent force"
]
damageor3[SRCTOOLS](choices) : "[HA] Damage - No Ragdoll On Death" : 0 : "Prevent any ragdoll on death" =
[
0: "Allow ragdolls"
4194304: "Prevent ragdolls"
]
damageor4[SRCTOOLS](choices) : "[HA] Damage - Blast Surface" : 0 : "This is ignored by players when fully underwater." =
[
0: "Damage underwater"
134217728: "Damage only above the surface"
]
]
@BaseClass
appliesto()
= SRCIndicator: "Adds an Indicator Name option to toggle overlays."
[
indicatorname(target_destination) : "[HA] Indicator Name" : : "Set to the name of a set of info_overlays to toggle when this is activated and deactivated. The name may also point to a prop_indicator_panel, which will also be toggled appropriately."
// Inputs
input SetTextureIndex(integer) : "Manually change the index of the overlays. prop_indicator_panels must not be used."
]
@BaseClass
appliesto()
= SRCModel: "Adds keyvalues to set a custom model."
[
comp_custom_model_type[-ENGINE, SRCTOOLS](boolean) : "[HA] Override Model" : 0 : "If enabled, automatically pack a VScript to override the entity\'s model on spawn. NOTE: If you run into problems with players getting stuck on the model, make sure it has the same collisions as the base model, as this is known to sometimes cause issues."
]
@ExtendClass
appliesto(SRCTOOLS)
= SetSkin
[
skinset[SRCTOOLS](string) : "[HA] Used Skins" : : "Set this to a space seperated list of all the skin numbers which will be used by this ent (\'0 4 8\' for example). This allows auto-packing to skip unused ones. If blank all skins are assumed to be used."
]
@ExtendClass
appliesto(SRCTOOLS)
= ambient_generic
[
haddons_enabled[+SRCTOOLS](choices) : "[HA] Start Enabled" : -1 : "If set, overrides the \'Start Silent\' spawnflag. This allows this value to be easily controlled by $fixup values." =
[
-1: "Use Spawnflag"
0: "[0] Start Silent"
1: "[1] Start Playing"
]
haddons_infrange[+SRCTOOLS](choices) : "[HA] Infinite Range" : -1 : "If set, overrides the \'Infinite Range\' spawnflag. This allows this value to be easily controlled by $fixup values. Note that if a soundscript is used, that overrides this value." =
[
-1: "Use Spawnflag"
0: "[0] Limited Range"
1: "[1] Infinite Range"
]
haddons_mode[+SRCTOOLS](choices) : "[HA] Looping Mode" : -1 : "If set, overrides the \'Is NOT Looped\' spawnflag. This option controls how the entity controls the output, not whether the sound actually loops. If oneshot, PlaySound starts the sound afresh and StopSound does nothing, while in looping mode PlaySound requires it to already be stopped." =
[
-1: "Use Spawnflag"
0: "[0] Oneshot Sound"
1: "[1] Looping Sound"
]
]
@PointClass base(ControlEnables)
iconsprite("editor/comp_adv_output")
appliesto(SRCTOOLS)
= comp_adv_output: "Adds a single output to an entity, with precise control over fixup behaviour."
[
out_ent(target_destination) : "Outputting Entity" : : "The name of the entity or entities to add the output to."
out_name(string) : "Output Name" : : "The output name to use."
target_global(string) : "Target - String" : : "A fixed entity name, !special name or classname to fire inputs at."
target_local(target_destination) : "Target - Ent Name" : : "If set, the entity to fire inputs at."
target_instname(string) : "Target - Instance Name" : : "If set, this is appended to the target to form a full target-inst_name name."
inp_name(string) : "Input Name" : : "The input to fire."
delay(float) : "Delay Min" : "0.0" : "A delay to add to the output."
delay_max(float) : "Delay Max" : : "If set, the delay will be randomised between the min and max. This is seeded from the location of this entity."
delay2(float) : "Extra Delay" : "0.0" : "A second delay to add to the first delay. Useful for instance parameters."
times(integer) : "Times to Fire" : -1 : "The number of times this output can fire, or -1 for infinite. Hammer normally only allows setting this to 1 or -1."
params_fmt(string) : "Parameter" : "{1}" : "Sets the parameter to use. This can contain placeholders like {1},{2} etc which will be filled by values in the following parameters. Use two braces like {{ or }} if you need them in the parameter directly."
params_mode1[ENGINE](integer) : "Parameter 1 - Mode" : "legacy"
params_mode1(choices) : "Parameter 1 - Mode" : "legacy" : "Which value to use to replace {2} in the parameter. This allows using values altered in different ways by the instance. In legacy mode Ent Name then String is checked." =
[
"legacy": "Legacy (Entity Name or String)"
"global": "String"
"local": "Entity Name"
"position": "Position"
]
params_global1(string) : "Parameter 1 - String" : : "A value which will replace {1} in the parameter."
params_local1(target_destination) : "Parameter 1 - Ent Name" : : "If set, this is a fixed up entity name which will be used in the parameter, replacing {1}."
params_pos1(origin) : "Parameter 1 - Position" : : "If set, this is a XYZ position which will be used in the parameter, replacing {1}. This will be offset by instancing."
params_mode2[ENGINE](integer) : "Parameter 2 - Mode" : "legacy"
params_mode2(choices) : "Parameter 2 - Mode" : "legacy" : "Which value to use to replace {2} in the parameter. This allows using values altered in different ways by the instance. In legacy mode Ent Name then String is checked." =
[
"legacy": "Legacy (Entity Name or String)"
"global": "String"
"local": "Entity Name"
"position": "Position"
]
params_global2(string) : "Parameter 2 - String" : : "A value which will replace {2} in the parameter."
params_local2(target_destination) : "Parameter 2 - Ent Name" : : "If set, this is a fixed up entity name which will be used in the parameter, replacing {2}."
params_pos2(origin) : "Parameter 2 - Position" : : "If set, this is a XYZ position which will be used in the parameter, replacing {2}. This will be offset by instancing."
params_mode3[ENGINE](integer) : "Parameter 3 - Mode" : "legacy"
params_mode3(choices) : "Parameter 3 - Mode" : "legacy" : "Which value to use to replace {3} in the parameter. This allows using values altered in different ways by the instance. In legacy mode Ent Name then String is checked." =
[
"legacy": "Legacy (Entity Name or String)"
"global": "String"
"local": "Entity Name"
"position": "Position"
]
params_global3(string) : "Parameter 3 - String" : : "A value which will replace {3} in the parameter."
params_local3(target_destination) : "Parameter 3 - Ent Name" : : "If set, this is a fixed up entity name which will be used in the parameter, replacing {3}."
params_pos3(origin) : "Parameter 3 - Position" : : "If set, this is a XYZ position which will be used in the parameter, replacing {3}. This will be offset by instancing."
params_mode4[ENGINE](integer) : "Parameter 4 - Mode" : "legacy"
params_mode4(choices) : "Parameter 4 - Mode" : "legacy" : "Which value to use to replace {4} in the parameter. This allows using values altered in different ways by the instance. In legacy mode Ent Name then String is checked." =
[
"legacy": "Legacy (Entity Name or String)"
"global": "String"
"local": "Entity Name"
"position": "Position"
]
params_global4(string) : "Parameter 4 - Ent Name" : : "A value which will replace {4} in the parameter."
params_local4(target_destination) : "Parameter 4 - Ent Name" : : "If set, this is a fixed up entity name which will be used in the parameter, replacing {4}."
params_pos4(origin) : "Parameter 4 - Position" : : "If set, this is a XYZ position which will be used in the parameter, replacing {4}. This will be offset by instancing."
params_mode5[ENGINE](integer) : "Parameter 5 - Mode" : "legacy"
params_mode5(choices) : "Parameter 5 - Mode" : "legacy" : "Which value to use to replace {5} in the parameter. This allows using values altered in different ways by the instance. In legacy mode Ent Name then String is checked." =
[
"legacy": "Legacy (Entity Name or String)"
"global": "String"
"local": "Entity Name"
"position": "Position"
]
params_global5(string) : "Parameter 5 - String" : : "A value which will replace {5} in the parameter."
params_local5(target_destination) : "Parameter 5 - Ent Name" : : "If set, this is a fixed up entity name which will be used in the parameter, replacing {5}."
params_pos5(origin) : "Parameter 5 - Position" : : "If set, this is a XYZ position which will be used in the parameter, replacing {5}. This will be offset by instancing."
@resources
[
]
]
@PointClass base(StaticTargetName, ControlEnables)
iconsprite("editor/comp_case")
appliesto(SRCTOOLS)
= comp_case: "Simplified version of logic_case which is able to be optimised away by the compiler.This is primarly intended to be used in instances - depending on a fixup value, it will produce different results.It can be used alternatively to pick a random output, though this is fixed at compile time for each inputting entity."
[
MultipleCasesAllowed(boolean) : "Multiple case hits allowed" : 0 : "If an input value matches a given case, are we allowed to test the rest of the cases or should we stop there\? Don\'t worry about this if you\'re only using this entity for PickRandom."
value(string) : "Input Value" : : "If the InValue parameter is blank or Trigger is used, this value will be used instead."
mode[ENGINE](string) : "Mode" : "string"
mode(choices) : "Mode" : "casefold" : "Specifies how comparisons are performed. Text mode simply checks for a case that matches the input text. Numeric treats values as numbers, allowing cases to additionally specify a comparison like \'< 3.14\'. Weighted Random instead changes the case values to specify the chance to produce any given case. In all modes, each case is compared in order." =
[
"string": "Text - Case Sensitive"
"casefold": "Text - Case Insensitive"
"numeric": "Numeric"
"randweight": "Weighted Random"
]
seed(string) : "Random Seed" : : "For the PickRandom input, the position and name of the input entity and the case are used to seed a random number generator. This can be set to further randomise the chosen case."
misschance(float) : "Miss Chance (%)" : 0 : "If nonzero, PickRandom will skip picking cases entirely this often. Only OnUsed and OnMissed will be fired."
case01(string) : "Case 01" : : "Fires OnCase01 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case02(string) : "Case 02" : : "Fires OnCase02 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case03(string) : "Case 03" : : "Fires OnCase03 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case04(string) : "Case 04" : : "Fires OnCase04 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case05(string) : "Case 05" : : "Fires OnCase05 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case06(string) : "Case 06" : : "Fires OnCase06 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case07(string) : "Case 07" : : "Fires OnCase07 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case08(string) : "Case 08" : : "Fires OnCase08 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case09(string) : "Case 09" : : "Fires OnCase09 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case10(string) : "Case 10" : : "Fires OnCase10 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case11(string) : "Case 11" : : "Fires OnCase11 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case12(string) : "Case 12" : : "Fires OnCase12 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case13(string) : "Case 13" : : "Fires OnCase13 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case14(string) : "Case 14" : : "Fires OnCase14 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case15(string) : "Case 15" : : "Fires OnCase15 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
case16(string) : "Case 16" : : "Fires OnCase16 if the InValue parameter matches this value. In Numeric mode, comparison operators such as <, >, =, !=, >=, or <= may be put at the start of the value. In Weighted Random mode, this instead is the chance that this case will be picked."
// Inputs
input InValue(string) : "Replaced by whichever case matches the parameter. Does nothing in Weighted Random mode."
input Trigger(void) : "Replaced by whichever case matches the input keyvalue. In Weighted Random mode, behaves like PickRandom."
input PickRandom(void) : "Replaced by a random case with outputs defined."
// Outputs
output OnCase01(void) : "Fired when the input value equals the Case01 value."
output OnCase02(void) : "Fired when the input value equals the Case02 value."
output OnCase03(void) : "Fired when the input value equals the Case03 value."
output OnCase04(void) : "Fired when the input value equals the Case04 value."
output OnCase05(void) : "Fired when the input value equals the Case05 value."
output OnCase06(void) : "Fired when the input value equals the Case06 value."
output OnCase07(void) : "Fired when the input value equals the Case07 value."
output OnCase08(void) : "Fired when the input value equals the Case08 value."
output OnCase09(void) : "Fired when the input value equals the Case09 value."
output OnCase10(void) : "Fired when the input value equals the Case10 value."
output OnCase11(void) : "Fired when the input value equals the Case11 value."
output OnCase12(void) : "Fired when the input value equals the Case12 value."
output OnCase13(void) : "Fired when the input value equals the Case13 value."
output OnCase14(void) : "Fired when the input value equals the Case14 value."
output OnCase15(void) : "Fired when the input value equals the Case15 value."
output OnCase16(void) : "Fired when the input value equals the Case16 value."
output OnDefault(void) : "Fired when the input value does not equal any of the Case values."
output OnUsed(string) : "Fired when an input value is received, regardless of whether it matches a case."
output OnMatched(string) : "Fired when an input value matches any of the cases."
output OnMissed(string) : "Fired when the miss chance succeeded."
@resources
[
]
]
@PointClass base(BaseEntityPoint)
iconsprite("editor/comp_choreo_sceneset.vmt")
appliesto(SRCTOOLS)
= comp_choreo_sceneset: "Chains a set of choreographed scenes together."
[
play_dings[P2](boolean) : "Play Dings" : 1 : "Play the Aperture blip sounds at the start and end."
delay(float) : "Delay between each" : "0.1" : "Add a delay between each scene."
only_once(boolean) : "Clean up after starting" : 1 : "If set, Kill choreo scenes after starting so they only play once.If set, the Cancel input will not work properly."
busyactor[ENGINE](integer) : "If an Actor is talking..." : 1 : "What to do if an actor this scene needs is already talking when this scene is told to start."
busyactor(choices) : "If an Actor is talking..." : 1 : "What to do if an actor this scene needs is already talking when this scene is told to start." =
[
0: "Start immediately"
1: "Wait for actor to finish"
2: "Interrupt at next interrupt event"
3: "Cancel at next interrupt event"
]
onplayerdeath[ENGINE](integer) : "On player death" : 0 : "What should this entity do if the player dies"
onplayerdeath(choices) : "On player death" : 0 : "What should this entity do if the player dies" =
[
0: "Do Nothing"
1: "Cancel Script and return to AI"
]
scene01(scene) : "Scene 1"
scene02(scene) : "Scene 2"
scene03(scene) : "Scene 3"
scene04(scene) : "Scene 4"
scene05(scene) : "Scene 5"
scene06(scene) : "Scene 6"
scene07(scene) : "Scene 7"
scene08(scene) : "Scene 8"
scene09(scene) : "Scene 9"
scene10(scene) : "Scene 10"
scene11(scene) : "Scene 11"
scene12(scene) : "Scene 12"
scene13(scene) : "Scene 13"
scene14(scene) : "Scene 14"
scene15(scene) : "Scene 15"
scene16(scene) : "Scene 16"
scene17(scene) : "Scene 17"
scene18(scene) : "Scene 18"
scene19(scene) : "Scene 19"
scene20(scene) : "Scene 20"
// Inputs
input Start(void) : "Start the choreo sequence playing."
input Cancel(void) : "Stop the choreo sequence at any point."
// Outputs
output OnStart(void) : "Fired when the sequence starts."
output OnFinish(void) : "Fired when the sequence is complete."
]
@PointClass
appliesto(SRCTOOLS)
iconsprite("editor/comp_entity_finder")
sphere(radius)
cylinder(255 255 255, targetname, targetref, radius)
line(255 255 255, targetname, kv1_known)
line(255 255 255, targetname, kv2_known)
line(255 255 255, targetname, kv3_known)
line(255 255 255, targetname, kv4_known)
line(255 255 255, targetname, kv5_known)
= comp_entity_finder: "Finds the closest entity of a given type, then applies various transformations.Outputs from this entity will be moved to the found entity.Further keyvalues can be set manually with SmartEdit off."
[
targetname(target_source) readonly : "Targetname" : "<pack_rename>" : "Fake targetname, used to determine how containing instances are configured."
targetcls(string) : "Target Classname" : : "Classnames of the entity to find. Multiple classnames can be specified seperated by spaces."
radius(float) : "Search Radius" : 64 : "Radius to search inside, or 0 for infinite."
searchfov(float) : "Search Field Of View" : 180 : "The found entity must be within this many degrees of the direction of the finder."
angles(angle) : "Search Direction" : "0 0 0" : "If Search FOV is used, the direction to compare to."
targetref(target_destination) : "Reference position" : : "If set, look for entities close to this entity instead of the comp_entity_finder."
blacklist(target_destination) : "Search Blacklist" : : "If set, ignore entities matching this name."
teleporttarget(boolean) : "Teleport Target To Me" : 0 : "Move the found entity to the location of this entity or that of the reference."
rotatetarget(boolean) : "Match Target Rotation" : 0 : "Rotate the found entity to match the rotation of this entity or that of the reference."
makeunique(boolean) : "Make Target Unique" : 0 : "Append a numeric suffix to the target\'s name to make it unique."
sep1(string) readonly : "----------------------------------------------------------------------------------------------------------"
kv1_mode[ENGINE](string) : "1 - Mode"
kv1_mode(choices) : "1 - Mode" : : "The first modification to perform. For Replace Outputs, outputs sent to a !name specified in Destination will be switched to point to the found entity." =
[
"": "None"
"const2target": "Constant -> Target Ent KV"
"const2known": "Constant -> Known Ent KV"
"known2target": "Known Ent KV -> Target Ent KV"
"target2known": "Target Ent KV -> Known Ent KV"
"replacetarget": "Replace Outputs"
]
kv1_known(target_destination) : "1 - Known Entity" : : "The known entity to access."
kv1_src(string) : "1 - Source" : : "Constant value to use or keyvalue name to read from."
kv1_dest(string) : "1 - Destination" : : "Keyvalue name to write to or !special name to replace."
sep2(string) readonly : "----------------------------------------------------------------------------------------------------------"
kv2_mode[ENGINE](string) : "2 - Mode"
kv2_mode(choices) : "2 - Mode" : : "The second modification to perform. For Replace Outputs, outputs sent to a !name specified in Destination will be switched to point to the found entity." =
[
"": "None"
"const2target": "Constant -> Target KV"
"const2known": "Constant -> Known KV"
"known2target": "Known KV -> Target KV"
"target2known": "Target KV -> Known KV"
"replacetarget": "Replace Outputs"
]
kv2_known(target_destination) : "2 - Known Entity" : : "The known entity to access."
kv2_src(string) : "2 - Source" : : "Constant value or keyvalue name to read from."
kv2_dest(string) : "2 - Destination" : : "Keyvalue name to write to or !special name to replace."
sep3(string) readonly : "----------------------------------------------------------------------------------------------------------"
kv3_mode[ENGINE](string) : "3 - Mode"
kv3_mode(choices) : "3 - Mode" : : "The third modification to perform. For Replace Outputs, outputs sent to a !name specified in Destination will be switched to point to the found entity." =
[
"": "None"
"const2target": "Constant -> Target KV"
"const2known": "Constant -> Known Ent KV"
"known2target": "Known KV -> Target KV"
"target2known": "Target KV -> Known KV"
"replacetarget": "Replace Outputs"
]
kv3_known(target_destination) : "3 - Known Entity" : : "The known entity to access."
kv3_src(string) : "3 - Source" : : "Constant value or keyvalue name to read from."
kv3_dest(string) : "3 - Destination" : : "Keyvalue name to write to or !special name to replace."
sep4(string) readonly : "----------------------------------------------------------------------------------------------------------"
kv4_mode[ENGINE](string) : "4 - Mode"
kv4_mode(choices) : "4 - Mode" : : "The fourth modification to perform. For Replace Outputs, outputs sent to a !name specified in Destination will be switched to point to the found entity." =
[
"": "None"
"const2target": "Constant -> Target KV"
"const2known": "Constant -> Known Ent KV"
"known2target": "Known KV -> Target KV"
"target2known": "Target KV -> Known KV"
"replacetarget": "Replace Outputs"
]
kv4_known(target_destination) : "4 - Known Entity" : : "The known entity to access."
kv4_src(string) : "4 - Source" : : "Constant value or keyvalue name to read from."
kv4_dest(string) : "4 - Destination" : : "Keyvalue name to write to or !special name to replace."
sep5(string) readonly : "----------------------------------------------------------------------------------------------------------"
kv5_mode[ENGINE](string) : "5 - Mode"
kv5_mode(choices) : "5 - Mode" : : "The fifth modification to perform. For Replace Outputs, outputs sent to a !name specified in Destination will be switched to point to the found entity." =
[
"": "None"
"const2target": "Constant -> Target KV"
"const2known": "Constant -> Known Ent KV"
"known2target": "Known KV -> Target KV"
"target2known": "Target KV -> Known KV"
"replacetarget": "Replace Outputs"
]
kv5_known(target_destination) : "5 - Known Entity" : : "The known entity to access."
kv5_src(string) : "5 - Source" : : "Constant value or keyvalue name to read from."
kv5_dest(string) : "5 - Destination" : : "Keyvalue name to write to or !special name to replace."
// Outputs
output OutName(void) : "Needed to allow Hammer to add outputs to this."
@resources
[
]
]
@PointClass
iconsprite("editor/comp_entity_mover")
appliesto(SRCTOOLS)
sphere(distance)
line(255 255 255, targetname, target)
= comp_entity_mover: "Shift an entity by a given amount. This is useful to place entities into the void, for example."
[
target(target_destination) : "Target Entity" : : "The name of the entity or entities to move."
reference(target_destination) : "Reference Entity" : : "If set, the target will be offset by the amount that this entity is from the reference. The Distance will then be a multiplier."
direction(angle) : "Direction" : "0 0 0" : "If no Reference is provided, the direction to move in."
distance(float) : "Distance" : 1 : "The amount to move targets by."
@resources
[
]
]
@PointClass base(BaseEntityPoint)
appliesto(SRCTOOLS)
iconsprite("editor/comp_flicker")
line(255 255 255, targetname, target_mdl)
= comp_flicker: "Fires on/off inputs repeatedly to simulate a flicker-on effect. This converts to an info_target, and uses all of the FireUserX inputs/outputs."
[
target_mdl(target_destination) : "Model to Control" : : "An entity which will have skins swapped to turn on/off. This is simply a shortcut for adding OnTurnedOn/Off outputs."
mdl_skin_on(integer) : "On Skin" : 0 : "The \'on\' skin for the model. This is a shortcut for adding OnTurnedOn -> Skin outputs."
mdl_skin_off(integer) : "Off Skin" : 1 : "The \'on\' skin for the model. This is a shortcut for adding OnTurnedOff -> Skin outputs."
total_time(float) : "Total Time" : "1.5" : "The overall time taken to complete the on or off flicker."
flicker_min(float) : "Flicker Min" : "0.05" : "The delay used at the start of the on cycle, or at the end of the off cycle."
flicker_max(float) : "Flicker Max" : "0.2" : "The delay used at the end of the on cycle, or at the start of the off cycle."
variance(float) : "Variance" : "0.0" : "Random variance added/subtracted for each delay."
// Inputs
input TurnOn(void) : "Turn the target entities on."
input TurnOff(void) : "Turn the target entities off."
input FlickerOn(void) : "Flicker the target gradually on."
input FlickerOff(void) : "Flicker the target gradually off."
// Outputs
output OnTurnedOn(void) : "Fired when the target should turn on."
output OnTurnedOff(void) : "Fired when the target should turn off."
output OnFlickerOnStart(void) : "Fired after the flicker on effect has started."
output OnFlickerOffStart(void) : "Fired after the flicker off effect has started."
output OnFlickerOnEnd(void) : "Fired after the flicker on effect has finished."
output OnFlickerOffEnd(void) : "Fired after the flicker off effect has finished."
@resources
[
]
]
@PointClass base(Angles, ControlEnables)
iconsprite("editor/comp_kv_setter")
appliesto(SRCTOOLS)
= comp_kv_setter: "Sets a keyvalue on an entity to a new value. This is useful to compute spawnflags, or to adjust keyvalues when the target entity\'s options can\'t be set to a fixup variable."
[
target(target_destination) : "Target Entity" : : "The name of the entity or entities to set values on. *-suffixed names work to target multiple entities."
mode[ENGINE](string) : "Mode" : "kv"
mode(choices) : "Mode" : "kv" : "The type of value to set." =
[
"kv": "KeyValues"
"flags": "SpawnFlags"
]
kv_name(string) : "Name / Mask" : : "The name of the keyvalue to set, or the bits to change for spawnflags."
kv_value_mode[ENGINE](string) : "Value Mode" : "legacy"
kv_value_mode(choices) : "Value Mode" : "legacy" : "Which value to use. This allows using values altered in different ways by the instance.In legacy mode Ent Name then String is checked." =
[
"legacy": "Legacy (Entity Name or String)"
"global": "String"
"local": "Entity Name"
"position": "Position"
]
kv_value_global(string) : "Value - Fixed String" : : "The value to apply. This is unaffected by instance fixup names and transformations (except rotation if Rotate Value is turned on)."
kv_value_local(target_destination) : "Value - Ent Name" : : "Used in Entity name mode. In an instance, this recieves prefix/postfix fixups."
kv_value_pos(origin) : "Value - Position" : : "Used in Position mode. In an instance, this will be offset by the instance position."
invert(boolean) : "Invert Value" : 0 : "If enabled, invert the value so 0 and 1 are swapped."
rotate(boolean) : "Rotate Value" : 0 : "If enabled, treat the value as a vector and rotate it by the angles set on this entity first. Useful to rotate the value correctly in an instance."
conv_ang(boolean) : "Convert To Angle" : 0 : "If enabled, convert a +X axis normal back into the Euler angle."
// Outputs
output OnUser1(void) : "Fired in response to FireUser1 input."
output OnUser2(void) : "Fired in response to FireUser2 input."
output OnUser3(void) : "Fired in response to FireUser3 input."
output OnUser4(void) : "Fired in response to FireUser4 input."
output OnKilled[L4D](void) : "Fired when the entity is killed and removed from the game."
@resources
[
]
]
@PointClass base(logic_relay)
appliesto(SRCTOOLS)
line(255 255 255, targetname, target)
iconsprite("editor/comp_numeric_transition")
= comp_numeric_transition: "When triggered, animates a keyvalue/input over time with various options."
[
target(target_destination) : "Entity to Control" : : "The entity which the outputs will be directed to."
opt_name(string) : "Keyvalue/Input Name" : "SetSpeed" : "The name of the keyvalue or input to change.If the target is not an entity findable by the postcompiler, IO Type must be set."
io_type[ENGINE](string) : "I/O Type" : "auto"
io_type(choices) : "I/O Type" : "auto" : "The method used to control an entity. If Input, use the input name provided.If KeyValue, use AddOutput to change the keyvalue.If Auto, examine the entity class that is being controlled to determine the appropriate mode." =
[
"auto": "Automatic"
"io": "Input"
"kv": "KeyValue (AddOutput)"
]
transform[ENGINE](string) : "Value Type" : "speed"
transform(choices) : "Value Type" : "speed" : "The behaviour of the input, used to control what actual values are sent. Regardless of this value, the other options are \'position\'-type values!" =
[
"set": "Instantly Set"
"moveto": "Move to value"
"speed": "Adjust Speed"
"light": "Light Pattern"
]
line_trans2(string) readonly : "-------------------------------------------"
beat_interval(float) : "Beat Interval" : "0.1" : "Time between each output. Smaller values are more accurate, but increase the outputs generated."
delay(float) : "Start Delay" : "0.0" : "Wait this amount of time after being triggered before animating."
duration(float) : "Duration" : 5 : "Time the change will take."
startval(float) : "Start Value" : 0 : "Starting value. If the Value Type is Light Pattern, these may be a-z letters."
endval(float) : "Ending Value" : 100 : "Ending value. If the Value Type is Light Pattern, these may be a-z letters."
line_trans3(string) readonly : "-------------------------------------------"
easing_start[ENGINE](string) : "Easing Start" : "linear"
easing_start(choices) : "Easing Start" : "linear" : "Controls how the animation begins." =
[
"linear": "None"
"quad": "Quadratic (x²)"
"cubic": "Cubic (x³)"
"quartic": "Quartic (x^4)"
"sine": "Sinusoidal"
]
easing_end[ENGINE](string) : "Easing End" : "linear"
easing_end(choices) : "Easing End" : "linear" : "Controls how the animation ends." =
[
"linear": "None"
"quad": "Quadratic (x²)"
"cubic": "Cubic (x³)"
"quartic": "Quartic (x^4)"
"sine": "Sinusoidal"
]
// Outputs
output OnFinished(void) : "Fired once the transition has completed."
@resources
[
]
]
@PointClass base(ControlEnables)
iconsprite("editor/comp_pack")
appliesto(SRCTOOLS)
= comp_pack: "Explicitly identify resources to pack into the map. If more are needed, add additional keyvalues with SmartEdit off."
[
generic1(string) : "Generic" : : "Pack a file, starting in any of the content folders."
generic2(string) : "Generic" : : "Pack a file, starting in any of the content folders."
generic3(string) : "Generic" : : "Pack a file, starting in any of the content folders."
generic4(string) : "Generic" : : "Pack a file, starting in any of the content folders."
generic5(string) : "Generic" : : "Pack a file, starting in any of the content folders."
sound1(sound) : "Sound" : : "Pack a raw sound file or a soundscript."
sound2(sound) : "Sound" : : "Pack a raw sound file or a soundscript."
sound3(sound) : "Sound" : : "Pack a raw sound file or a soundscript."
sound4(sound) : "Sound" : : "Pack a raw sound file or a soundscript."
sound5(sound) : "Sound" : : "Pack a raw sound file or a soundscript."
model1(studio) : "Model" : : "Pack a model."
model2(studio) : "Model" : : "Pack a model."
model3(studio) : "Model" : : "Pack a model."
model4(studio) : "Model" : : "Pack a model."
model5(studio) : "Model" : : "Pack a model."
material1(material) : "Material" : : "Pack a material."
material2(material) : "Material" : : "Pack a material."
material3(material) : "Material" : : "Pack a material."
material4(material) : "Material" : : "Pack a material."
material5(material) : "Material" : : "Pack a material."
particle1(particlesystem) : "Particle" : : "Pack a particle system, and include in the manifest."
particle2(particlesystem) : "Particle" : : "Pack a particle system, and include in the manifest."
particle3(particlesystem) : "Particle" : : "Pack a particle system, and include in the manifest."
particle4(particlesystem) : "Particle" : : "Pack a particle system, and include in the manifest."
particle5(particlesystem) : "Particle" : : "Pack a particle system, and include in the manifest."
soundscript1(string) : "SoundScript" : : "Pack a soundscript file, and include in the manifest."
soundscript2(string) : "SoundScript" : : "Pack a soundscript file, and include in the manifest."
soundscript3(string) : "SoundScript" : : "Pack a soundscript file, and include in the manifest."
soundscript4(string) : "SoundScript" : : "Pack a soundscript file, and include in the manifest."
soundscript5(string) : "SoundScript" : : "Pack a soundscript file, and include in the manifest."
@resources
[
]
]
@PointClass base(ControlEnables)
iconsprite("editor/comp_pack_rename")
appliesto(SRCTOOLS)
= comp_pack_rename: "Pack a file into the BSP, under a different name than it starts with."
[
filesrc(string) : "Source Filename" : : "Filename to read data from."
filedest(string) : "Destination Filename" : : "Filename to pack under."
filetype[ENGINE](string) : "File Type" : "GENERIC" : "File type to record it as."
filetype(choices) : "File Type" : "GENERIC" : "File type to record it as. For Model files, the .vtx/vtx/phy etc files are also packed automatically." =
[
"GENERIC": "Generic"
"SOUNDSCRIPT": "SoundScript file (add to manifest)"
"PARTICLE_FILE": "Particle System (add to manifest)"
"VSCRIPT_SQUIRREL": "VScript (Squirrel)"
"MATERIAL": "Material"
"TEXTURE": "Texture"
"MODEL": "Model"
]
@resources
[
]
]
@PointClass base(ControlEnables)
iconsprite("editor/comp_pack_replace_soundscript")
appliesto(SRCTOOLS)
= comp_pack_replace_soundscript: "Replace a soundscript with a different one."
[
original(string) : "Original SoundScript" : : "Prevent this soundscript from being included."
replacement(string) : "New SoundScript" : : "Force this soundscript to be included."
@resources
[
]
]
@PointClass
iconsprite("editor/comp_player_input_helper.vmt")
appliesto(SRCTOOLS)
= comp_player_input_helper: "Place this entity to trick Hammer into autocompleting inputs fired at !player and similar names. This is deleted during compile."
[
targetname[ENGINE](string) : "Targetname"
targetname(choices) : "Player Name" : "!player" : "The targetname to show for suggestions." =
[
"!player": "!player (SP / 1st Player)"
"player": "player (All Players)"
"!player_blue": "!player_blue (ATLAS)" [P2]
"!player_orange": "!player_orange (P-Body)" [P2]
"!pvsplayer": "!pvsplayer (Player in nearby visleafs)"
]
@resources
[
]
]
@PointClass base(Angles, ControlEnables)
iconsprite("editor/comp_precache_model")
studioprop()
appliesto(SRCTOOLS)
line(255 255 255, targetname, lineent)
= comp_precache_model: "Force a specific model to load, for runtime switching. Duplicates will be removed."
[
model(studio) : "Model" : : "The model to load."
skin(integer) : "Skin" : : "Skin to show."
skinset(string) : "Used Skins" : : "Set this to a space seperated list of all the skin numbers which will be used. This allows auto-packing to skip unused ones. If blank all skins are assumed to be used."
lineent(target_destination) : "Line Entity" : : "Draws a line to the specified entity. Use this to indicate in Hammer if the model is meant for a specific entity."
@resources
[
]
]
@PointClass base(ControlEnables)
appliesto(+SRCTOOLS, +VSCRIPT)
iconsprite("editor/comp_precache_sound")
= comp_precache_sound: "Force a specific sound to load, for runtime switching. Duplicates will be removed. More keyvalues can be added."
[
sound1(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound2(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound3(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound4(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound5(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound6(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound7(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound8(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound9(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
sound10(sound) : "Sound" : : "Pack and precache a raw sound file or a soundscript."
@resources
[
]
]
@MoveClass base(StaticTargetName)
sphere(radius)
animator()
keyframe()
iconsprite("editor/comp_prop_cable")
line(128 128 128, targetname, bunting)
appliesto(SRCTOOLS)
= comp_prop_cable: "Generates cables using a static prop. comp_prop_rope is an alternate name, they can be interchanged."
[
group(target_source) : "Group" : : "If set, all cables with the same group will be compiled to one model."
nextkey(target_destination) : "Next Cable" : : "Name of the next cable along this path."
slack(integer) : "Slack" : 25 : "How much extra length the cable has, for \'catenary\' mode (by default it has the length between its two endpoints in the editor)."
positioninterpolator[ENGINE](integer) : "Type" : 2
positioninterpolator(choices) : "Type" : 2 : "How to interpolate the cable. Straight makes it straight. Spline uses a spline curve, which smoothly blends between points. Catenary makes it hang down, like the original move_rope. Bezier is an alternate smooth curve, but the visual in Hammer will be incorrect." =
[
0: "Straight"
1: "Spline Curve"
2: "Catenary"
3: "Bezier"
]
segments(integer) : "Segments" : 2 : "Number of nodes to generate between each cable. Higher values make smoother cables, but produce more faces."
sides(integer) : "Sides" : 8 : "Number of faces for each cylindrical section. Only the value at the start of the cable is used."
radius(float) : "Radius" : "1.0" : "Radius of this cable section."
coll_segments[ENGINE](integer) : "Collision Segments" : 0
coll_segments(choices) : "Collision Segments" : -1 : "Type in the number of convex segments to generate between each cable. Higher values make smoother collision, but produce more convex segments." =
[
-1: "[-1] Same as visual geometry"
]
coll_sides[ENGINE](integer) : "Collision Sides" : 0
coll_sides(choices) : "Collision Sides" : 0 : "Type in the number of faces for each cylindrical collision section. If set to less than 3 sides, collision will not be generated." =
[
0: "[0] No collisions"
1: "[1] No collisions"
2: "[2] No collisions"
]
material(material) : "Cable Material" : "models/cables/generic_black" : "The material to use for the cable. Must be a model material."
mat_scale(float) : "Lengthwise Material Scale" : 1 : "This changes the texture resolution along the cable, relative to the amount of width used. Larger values stretch the texture and smaller values scrunch it up."
mat_rotate[ENGINE](boolean) : "Rotate Material" : 0
mat_rotate(choices) : "Material Orientation" : 0 : "Controls which direction the cable runs in the material, if your texture is rotated." =
[
0: "Vertical"
1: "Horizontal"
]
u_min(float) : "Width Start" : "0.0" : "The distance along the texture to start. 0 is the left/bottom side, 1 is the right/top side. This allows using only part of the texture, if it contains multiple different cable styles."
u_max(float) : "Width End" : "1.0" : "The distance along the texture to end. 0 is the left/bottom side, 1 is the right/top side. This allows using only part of the texture, if it contains multiple different cable styles."
bunting(target_destination) : "Bunting Definition" : : "Set to the name of a comp_prop_rope_bunting, to define models which will be placed at each segment across the rope."
linedivider_staticprop[!ENGINE](string) readonly : "----------------------------------------------------------------------------------------------------------"
renderamt[SINCE_L4D](integer) : "Alpha" : 255 : "Alpha of the fade, where 0 = fully transparent and 255 = fully opaque."
rendercolor[SINCE_L4D](color255) : "Color (R G B)" : "255 255 255"
screenspacefade[UNTIL_ASW](boolean) : "Screen Space Fade" : 0 : "The method by which the fading distance should be determined. If \'No\', the fade distances is the distance from the player\'s view to the object, in inches. If \'Yes\', the fade distance is the size of the object onscreen, in pixels."
fademindist(float) : "Start Fade Dist/Pixels" : -1 : "Distance at which the prop starts to fade (<0 = use fademaxdist). If \'Screen Space Fade\' is selected, this represents the number of pixels wide covered by the prop when it starts to fade."
fademaxdist(float) : "End Fade Dist/Pixels" : 0 : "Maximum distance at which the prop is visible (0 = don\'t fade out). If \'Screen Space Fade\' is selected, this represents the *minimum* number of pixels wide covered by the prop when it fades."
fadescale(float) : "Fade Scale" : 1 : "If you specify a fade in the worldspawn, or if the engine is running under dx7 [hl2/ep1/portal] or dx8 [ep2/tf], then the engine will forcibly fade out props even if fademindist/fademaxdist isn\'t specified. This scale factor gives you some control over the fade. Using 0 here turns off the forcible fades. Numbers smaller than 1 cause the prop to fade out at further distances, and greater than 1 cause it to fade out at closer distances."
disableshadows(boolean) : "Disable Shadows" : 0
disableselfshadowing(boolean) : "Disable Self-Shadowing" : 0
disablevertexlighting(boolean) : "Disable Vertex lighting" : 0 : "Disable per-vertex lighting on this prop."
drawinfastreflection[SINCE_L4D](boolean) : "Render in Fast Reflections" : 0 : "If enabled, causes this entity/prop to to render in fast water reflections (i.e. when a water material specifies $reflectonlymarkedentities) and in the world impostor pass."
enablelightbounce[SINCE_CSGO](boolean) : "Enable Bounced Lighting" : 0 : "Whether VRAD should create indirect lighting from this prop."
movespeed(integer) readonly : "Speed (unused)" : 1 : "This key needs to be greater than zero to show the preview in Hammer, ignore it."
@resources
[
]
]
@PointClass base(BaseEntityAnimating, BreakableProp)
sphere(fademindist)
sphere(fademaxdist)
studio("models/editor/comp_prop_cable_dynamic.mdl")
appliesto(SRCTOOLS)
= comp_prop_cable_dynamic: "Allows using comp_prop_rope/comp_prop_cable as a dynamic prop."
[
spawnflags(flags) =
[
256: "Start with collision disabled" : 0
]
angles(angle) readonly : "Orientation" : "0 0 0" : "The starting orientation can\'t be changed, simply move the nodes."
group(target_source) : "Cable Group" : : "Specify the name of the group that will be compiled into this entity."
skin1(material) : "Alt Skin 1" : : "If set, an alternate material to use for Skin 1. Must be a model material, and the rope must use the same material for the entire prop."
skin2(material) : "Alt Skin 2" : : "If set, an alternate material to use for Skin 2."
skin3(material) : "Alt Skin 3" : : "If set, an alternate material to use for Skin 3."
skin4(material) : "Alt Skin 4" : : "If set, an alternate material to use for Skin 4."
skin5(material) : "Alt Skin 5" : : "If set, an alternate material to use for Skin 5. If you need more, add the keyvalue with SmartEdit off."
glowbackfacemult[L4D2](float) : "Glow backface Multiplier" : "1.0" : "What to multiply glow by on backfaces."
// Inputs
input TurnOn(void) : "Make the cable set visible."
input TurnOff(void) : "Make the cable set invisible."
input Skin(integer) : "Change to an alternate skin for the cable set."
input EnableCollision(void) : "Enable collision on the cable set."
input DisableCollision(void) : "Disable collision on the cable set."
input BecomeRagdoll[SINCE_P2](void) : "Change into a ragdoll immediately."
input FadeAndKill[SINCE_P2](void) : "Fade out then remove this cable set."
@resources
[
]
]
@MoveClass base(StaticTargetName)
sphere(radius)
animator()
keyframe()
iconsprite("editor/comp_prop_rope")
line(128 128 128, targetname, bunting)
appliesto(SRCTOOLS)
= comp_prop_rope: "Generates ropes using a static prop. comp_prop_cable is an alternate name, they can be interchanged."
[
group(target_source) : "Group" : : "If set, all ropes with the same group will be compiled to one model."
nextkey(target_destination) : "Next Rope" : : "Name of the next rope along this path."
slack(integer) : "Slack" : 25 : "How much extra length the rope has, for \'catenary\' mode (by default it has the length between its two endpoints in the editor)."
positioninterpolator[ENGINE](integer) : "Type" : 2
positioninterpolator(choices) : "Type" : 2 : "How to interpolate the rope. Straight makes it straight. Spline uses a spline curve, which smoothly blends between points. Catenary makes it hang down, like the original move_rope. Bezier is an alternate smooth curve, but the visual in Hammer will be incorrect." =
[
0: "Straight"
1: "Spline Curve"
2: "Catenary"
3: "Bezier"
]
segments(integer) : "Segments" : 2 : "Number of nodes to generate between each rope. Higher values make smoother ropes, but produce more faces."
sides(integer) : "Sides" : 8 : "Number of faces for each cylindrical section. Only the value at the start of the rope is used."
radius(float) : "Radius" : "1.0" : "Radius of this rope section."
coll_segments[ENGINE](integer) : "Collision Segments" : 0
coll_segments(choices) : "Collision Segments" : -1 : "Type in the number of convex segments to generate between each rope. Higher values make smoother collision, but produce more convex segments." =
[
-1: "[-1] Same as visual geometry"
]
coll_sides[ENGINE](integer) : "Collision Sides" : 0
coll_sides(choices) : "Collision Sides" : 0 : "Type in the number of faces for each cylindrical collision section. If set to less than 3 sides, collision will not be generated." =
[
0: "[0] No collisions"
1: "[1] No collisions"
2: "[2] No collisions"
]
material(material) : "Rope Material" : "models/cables/generic_black" : "The material to use for the rope. Must be a model material."
mat_scale(float) : "Lengthwise Material Scale" : 1 : "This changes the texture resolution along the rope, relative to the amount of width used. Larger values stretch the texture and smaller values scrunch it up."
mat_rotate[ENGINE](boolean) : "Rotate Material" : 0
mat_rotate(choices) : "Material Orientation" : 0 : "Controls which direction the rope runs in the material, if your texture is rotated." =
[
0: "Vertical"
1: "Horizontal"
]
u_min(float) : "Width Start" : "0.0" : "The distance along the texture to start. 0 is the left/bottom side, 1 is the right/top side. This allows using only part of the texture, if it contains multiple different rope styles."
u_max(float) : "Width End" : "1.0" : "The distance along the texture to end. 0 is the left/bottom side, 1 is the right/top side. This allows using only part of the texture, if it contains multiple different rope styles."
bunting(target_destination) : "Bunting Definition" : : "Set to the name of a comp_prop_rope_bunting, to define models which will be placed at each segment across the rope."
linedivider_staticprop[!ENGINE](string) readonly : "----------------------------------------------------------------------------------------------------------"
renderamt[SINCE_L4D](integer) : "Alpha" : 255 : "Alpha of the fade, where 0 = fully transparent and 255 = fully opaque."
rendercolor[SINCE_L4D](color255) : "Color (R G B)" : "255 255 255"
screenspacefade[UNTIL_ASW](boolean) : "Screen Space Fade" : 0 : "The method by which the fading distance should be determined. If \'No\', the fade distances is the distance from the player\'s view to the object, in inches. If \'Yes\', the fade distance is the size of the object onscreen, in pixels."
fademindist(float) : "Start Fade Dist/Pixels" : -1 : "Distance at which the prop starts to fade (<0 = use fademaxdist). If \'Screen Space Fade\' is selected, this represents the number of pixels wide covered by the prop when it starts to fade."
fademaxdist(float) : "End Fade Dist/Pixels" : 0 : "Maximum distance at which the prop is visible (0 = don\'t fade out). If \'Screen Space Fade\' is selected, this represents the *minimum* number of pixels wide covered by the prop when it fades."
fadescale(float) : "Fade Scale" : 1 : "If you specify a fade in the worldspawn, or if the engine is running under dx7 [hl2/ep1/portal] or dx8 [ep2/tf], then the engine will forcibly fade out props even if fademindist/fademaxdist isn\'t specified. This scale factor gives you some control over the fade. Using 0 here turns off the forcible fades. Numbers smaller than 1 cause the prop to fade out at further distances, and greater than 1 cause it to fade out at closer distances."
disableshadows(boolean) : "Disable Shadows" : 0
disableselfshadowing(boolean) : "Disable Self-Shadowing" : 0
disablevertexlighting(boolean) : "Disable Vertex lighting" : 0 : "Disable per-vertex lighting on this prop."
drawinfastreflection[SINCE_L4D](boolean) : "Render in Fast Reflections" : 0 : "If enabled, causes this entity/prop to to render in fast water reflections (i.e. when a water material specifies $reflectonlymarkedentities) and in the world impostor pass."
enablelightbounce[SINCE_CSGO](boolean) : "Enable Bounced Lighting" : 0 : "Whether VRAD should create indirect lighting from this prop."
movespeed(integer) readonly : "Speed (unused)" : 1 : "This key needs to be greater than zero to show the preview in Hammer, ignore it."
@resources
[
]
]
@MoveClass base(StaticTargetName)
iconsprite("editor/comp_prop_rope_bunting")
appliesto(SRCTOOLS)
= comp_prop_rope_bunting: "Specifies small props which will be placed at regular intervals across the compiled rope."
[
weight(integer) : "Weight" : 1 : "If multiple are defined with the same weighting, this specifies the relative probabilities.This works like a lottery - each model has this many \'tickets\', and then one is chosen randomly each time. If you have two choices with a weight of 9 and 1, the first will be chosen 90% of the time."
placement_interval(integer) : "Placement Interval" : 1 : "Place this prop every X segments, not including the start/end of the rope."
distance(float) : "Placement Distance" : 0 : "If greater than zero, override Placement Interval, and instead place every this many units."
model(studio) : "Model" : : "Specifies the model to place. This can either be an MDL which is placed as invidual prop_statics, or a SMD (relative to a game folder) which is merged into the rope model. Alternatively make it entirely blank to have a chance to randomly skip placing ropes."
angles(angle) : "Rotation" : "0 0 0" : "Rotate the model by this much, before applying the orientation of the rope. After this is applied, the X axis should be aligned with the rope direction."
orient[ENGINE](string) : "Orientation Mode" : "follow"
orient(choices) : "Orientation Mode" : "follow" : "Controls how the rope orientation affects the model." =
[
"follow": "Follow Rope"
"yaw": "Yaw Only"
"pitch_yaw": "Pitch and Yaw"
"none": "No Rotation"
"rand_yaw": "Random Yaw"
"rand": "Random"
]
@resources
[
]
]
@PointClass base(BaseEntityAnimating, BreakableProp)
sphere(fademindist)
sphere(fademaxdist)
studio("models/editor/comp_prop_rope_dynamic.mdl")
appliesto(SRCTOOLS)
= comp_prop_rope_dynamic: "Allows using comp_prop_rope/comp_prop_cable as a prop_dynamic."
[
spawnflags(flags) =
[
256: "Start with collision disabled" : 0
]
angles(angle) readonly : "Orientation" : "0 0 0" : "The starting orientation can\'t be changed, simply move the nodes."
group(target_source) : "Rope Group" : : "Specify the same group name as in a comp_prop_rope/comp_prop_cable. The ropes will be compiled with this entity as their origin."
glowbackfacemult[L4D2](float) : "Glow backface Multiplier" : "1.0" : "What to multiply glow by on backfaces."
// Inputs
input TurnOn(void) : "Make the rope set visible."
input TurnOff(void) : "Make the rope set invisible."
input EnableCollision(void) : "Enable collision on the rope set."
input DisableCollision(void) : "Disable collision on the rope set."
input BecomeRagdoll[SINCE_P2](void) : "Change into a ragdoll immediately."
input FadeAndKill[SINCE_P2](void) : "Fade out then remove this rope set."
@resources
[
]
]
@PointClass base(Angles)
appliesto(SRCTOOLS)
iconsprite("editor/comp_propcombine_set")
wirebox(mins, maxs)
= comp_propcombine_set: "Specifies a group of props that will be combined together."
[
mins(vector) : "BBox Mins" : "-32 -32 -32" : "Minimum offset from the entity, defining the shape."
maxs(vector) : "BBox Maxes" : "32 32 32" : "Maximum offset from the entity, defining the shape."
name(string) : "Name" : : "Two sets with the same name will be treated as one."
prop(studio) : "Model Filter" : : "If set, a combinable model used to filter which others will be combined. The propcombine set will only apply to models which could be combined with this one."
skin(integer) : "Skin Filter" : 0 : "The skin for the Model Filter."
@resources
[
]
]
@SolidClass
appliesto(SRCTOOLS)
= comp_propcombine_volume: "Specifies a group of props that will be combined together. Note that unlike the propcombine_set point-entity version, this does impact some brush limits, so it is suggested to use the point version in instances and prefabs."
[
name(string) : "Name" : : "Two sets with the same name will be treated as one."
prop(studio) : "Model Filter" : : "If set, a combinable model used to filter which others will be combined. The propcombine set will only apply to models which could be combined with this one."
skin(integer) : "Skin Filter" : 0 : "The skin for the Model Filter."
]
@PointClass base(StaticTargetName, ControlEnables)
iconsprite("editor/comp_relay")
appliesto(SRCTOOLS)
= comp_relay: "Simplified version of logic_relay which is able to be optimised away by the compiler.The various inputs and outputs are useful for bundling commands together, or using more appopriate verbs.Inputs only work if given directly from entities (or via instance redirection), not ingame or dynamically.All inputs/outputs may pass through any parameter, if no override is specified."
[
delay(float) : "Delay Min" : "0.0" : "Add this delay to all outputs. This allows you to control this via $fixup values, for instance."
delay_max(float) : "Delay Max" : : "If this is also set, the delay will be randomised. This is seeded from the location of this relay."
// Inputs
input Trigger(string) : "Trigger the relay and fire the output."
input TurnOn(string) : "Fire the OnTurnedOn output."
input TurnOff(string) : "Fire the OnTurnedOff output."
input FireUser1(string) : "Causes this relay\'s OnUser1 output to be fired."
input FireUser2(string) : "Causes this relay\'s OnUser2 output to be fired."
input FireUser3(string) : "Causes this relay\'s OnUser3 output to be fired."
input FireUser4(string) : "Causes this relay\'s OnUser4 output to be fired."
input FireUser5(string) : "Causes this relay\'s OnUser5 output to be fired."
input FireUser6(string) : "Causes this relay\'s OnUser6 output to be fired."
input FireUser7(string) : "Causes this relay\'s OnUser7 output to be fired."
input FireUser8(string) : "Causes this relay\'s OnUser8 output to be fired."
// Outputs
output OnTrigger(string) : "Fired when the relay is triggered."
output OnTurnedOn(string) : "Fired when the relay is turned on."
output OnTurnedOff(string) : "Fired when the relay is turned off."
output OnUser1(string) : "Fired in response to a FireUser1 input."
output OnUser2(string) : "Fired in response to a FireUser2 input."
output OnUser3(string) : "Fired in response to a FireUser3 input."
output OnUser4(string) : "Fired in response to a FireUser4 input."
output OnUser5(string) : "Fired in response to a FireUser5 input."
output OnUser6(string) : "Fired in response to a FireUser6 input."
output OnUser7(string) : "Fired in response to a FireUser7 input."
output OnUser8(string) : "Fired in response to a FireUser8 input."
@resources
[
]
]