forked from Tsuey/L4D2-Community-Update
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Map Fix and PvP Changelog.txt
8576 lines (4355 loc) · 321 KB
/
Map Fix and PvP Changelog.txt
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
MAP FIX CHANGELOG :: VSCRIPT, LUMP FILES & MORE
Left 4 Dead 2 maps have been updated with bug and exploit fixes in addition to quality of life enhancements.
Survivor and Infected clips have been extensively re-worked to patch all out of bounds exploits.
Versus map fixes are aggressive (but fair) and Coop is extremely lax.
Credits and documentation resources can be found later in this changelog or in thread:
Dev Thread: Map fixes for Valve
https://steamcommunity.com/app/550/discussions/1/1651043320659915818/
Community (non-Valve) maps remain 100% un-changed, but do have access to new entity creation functions for patching.
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
IF YOU DON'T WANT TO READ 8000+ LINES...
You can visually render all the VScript map changes by following these steps:
1. Right-click L4D2 in Steam Library > Properties > "SET LAUNCH OPTIONS..."
2. Enter "-dev" (without the quotes) into the textbox
3. Load any map via console, like "map c8m1_apartment versus"
4. In console type "script ShowUpdate()"
5. In console type "sb_all_bot_game 1" to prevent server shutdown
Using "versus" the above will render everything, but note that "coop" won't have new Infected ladders and will also
have far less shortcut/exploit fixes -- "survival" has a small amount of exclusive clips for specific maps.
MrFailzz made a Coop/speedrunner-focused changelog with navmesh changes here:
https://hackmd.io/@MrFailzz/rJ5S7EZHw
If you only play Coop, please read MrFailzz' changelog instead!
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
FREQUENTLY ASKED QUESTIONS
Q Is Coop exploit X patched?
A Most likely yes if it allowed you to go out of bounds. Otherwise no, so most shortcuts are still possible.
Q Is Versus exploit X patched?
A Most likely yes... extreme diligence was placed on unearthing every method of Infected attaacking from
underneath the map, or Survivors reaching unattackable space.
Q Why was X fixed?
A Fixes are only spawned in for the modes they're relevant. Relevancy was determined through playtesting by
both casual and competitive Versus players and speedrunners. In rare cases old exploits were restored
like deleting Dark Carnival 3's swan room shelf blocker, because navmesh edits fixed the problem better.
Q Will the VScript fixes break any addons?
A The update will be incompatible with these addons:
Survivor Ragdolls (Global) https://steamcommunity.com/sharedfiles/filedetails/?id=1932686022
Survivor Shoving Script https://steamcommunity.com/sharedfiles/filedetails/?id=1975951464
But I've already notified the authors they'll have to update to using mapspawn_addon.nut instead of
mapspawn.nut. Preserved entities have also been changed, so round-persistence needs to run on "worldspawn"
instead of say an "info_target".
Q Can the new VScript exploit fixes be opted out of?
A Yes, just create an empty mapspawn.nut file. This is intended to give server admins a grace period for
reconciling redundancies within their Stripper:Source configs which will now have a lot of overlap.
Q Can I offer map change suggestions?
A Soon you'll be able to Subscribe to the Community Update Team's Workshop item at
https://steamcommunity.com/sharedfiles/filedetails/?id=1959405608
to prototype potential new exploit/bug and QoL additions to the game -- this isn't new content, just fixes,
and Kerry Davis himself is a contributor!
Q Haven't community configs already fixed all exploits?
A Lots of fixes are converted from ZoneMod and other Stripper:Source community configs, but not all.
This update includes a general clipping rework to patch even hypothetical future exploits, and
recently-emerging exploits like crouching through displacements of which existing configs do not
comprehensively cover. Also, solutions which work for competitive configs rarely translate well into
vanilla -- Dark Carnival 2's hedge LOS blockers and Parish 3's fence covers are great examples which
transitioned from ZoneMod to vanilla seamlessly, but the Midnight Riders bus did not.
Q Was any campaign singled out for favoritism?
A No, even Crash Course has a lot of great new ladders and a couple of unique attacks, in addition to
completely overhauled breakwall textures which were originally missing.
Q Was the setpause/unpause DoS spam fixed?
A Yes, and the reason it took a while is because of doors -- when rate limiting was turned on, spamming
doors would trip the command counter and L4D2 doesn't allow reversing the direction of a door in motion
but open/close commands were still being spammed... requiring doors to be fixed.
Q How do you edit pre-existing maps?
A You can modify them from decompiled sources such as the ones at
https://github.com/spumer/left_4_dead_2__decompiled_maps
or by using in-game editors. SourceMod with Stripper:Source installed is what most are familiar with,
but this update uses new VScript files anv_mapfixes.nut and anv_versus.nut for that instead.
Q How do the new VScript files work together?
A L4D2 now uses mapspawn.nut. Every time any map loads anv_mapfixes.nut is run in worldspawn scope to
maintain round-persistence and avoid Mutation Game Event conflicts. Director.GetMapName() checks if it's
a Valve map then Director.GetGameModeBase() spawns in mode-specific fixes. If it's not a Valve map, it
does nothing. When HasPlayerControlledZombies() is true, anv_versus.nut is also run to spawn in
Versus-specific entities, like ladders, and deletes only specific func_playerinfected_clip as needed
to minimize the introduction of exploits that need further fixing.
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
VSCRIPT ENTITY CONTRIBUTIIONS
Tsuey:
Framework and functions, pre-QA Infected ladders, Clipping rework, exploit and logic fixes
Jacob:
R&D, Versus balance tweaks and extensive QA work and polish, LOS fix brushes, Tank warp fixes
With further entity contributions from NF, ReneTM, JAiZ, CircleSquared, and Tabbernaut
And script contributions from Rayman1103 and Daroot Leafstorm
Special thanks to Sir and Wicket for the sourced ZoneMod 1.9.8 ladders
New Propper models in active use:
"models/props/effects/tankwall_128_2_128.mdl" -- Syberian Husky
"models/props/effects/tankwall_48_1_48.mdl" -- Syberian Husky
"models/props_update/plywood_128.mdl" -- Jacob
"models/props_update/c1m2_wrongway_rooftop1.mdl" -- Jacob
"models/props_update/c1m2_wrongway_rooftop2.mdl" -- Jacob
"models/props_update/c1m2_wrongway_wall.mdl" -- Jacob
"models/props_update/c2m2_fairgroundwall.mdl" -- Jacob
"models/props_update/c2m4_barn_overhang.mdl" -- NF
"models/props_update/c2m5_infectedroom.mdl" -- Syberian Husky
"models/props_update/c2m5_infectedroom_doorway.mdl" -- Jacob
"models/props_update/c3m3_nodrawfence.mdl" -- Syberian Husky
"models/props_update/c5m2_billboard_nodraw.mdl" -- Syberian Husky
"models/props_update/c8m1_rooftop_1.mdl" -- Syberian Husky
"models/props_update/c8m1_rooftop_2.mdl" -- Syberian Husky
"models/props_update/c8m1_rooftop_3.mdl" -- Syberian Husky
"models/props_update/c8m1_rooftop_4.mdl" -- Jacob
"models/props_update/c8m2_generatorroom.mdl" -- NF
"models/props_update/c8m4_skylight_rooftop.mdl" -- Jacob
"models/props_update/c9m1_nodraw_window.mdl" -- Jacob
"models/props_update/c10m4_hellcade_nodraw.mdl" -- Tsuey
"models/props_update/c11m1_greenhouse_nodraw.mdl" -- Tsuey
"models/props_update/c11m1_greenhouse_plywood.mdl" -- NF
"models/props_update/c11m3_nodraw_cinderwall.mdl" -- Jacob
"models/props_update/c11m3_wrongway_curb.mdl" -- Jacob
"models/props_update/c11m3_wrongway_fence.mdl" -- Jacob
Thanks to all playtesters and everyone on the L4D2 Community Update Team!
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
Functions called by mapspawn.nut have extended L4D2 VScript with a powerful suite of one-line tools for entity handling.
+ BSP recompiles are no longer necessary when problems can be solved by cloning existing brushes.
+ Maps now patched with "anv_mapfixes.nut" instead of _commentary.txt files -- speedy code goes in, speedy fix comes out.
+ New global variables powered by "mapspawn.nut":
g_MapName Identical to "Director.GetMapName().tolower()"
g_MutaMode Identical to "Director.GetGameMode()"
g_BaseMode Identical to "Director.GetGameModeBase()"
g_Chapter Stores each "friendly name" (only for Valve campaigns)
g_UpdateName Prefixes "anv_mapfixes" to new entities
g_UpdateRanOnce Run code only once outside of "mapspawn.nut"
+ Added new feature-full entity maker and edit functions in "anv_functions.nut":
Almost everything is a String:
* Denotes optional parameters (wherever possible i.e. often Angles)
^ Denotes non-String parameters (floats or integers i.e. "Init state")
? Denotes user-friendly String options
"Clips who?" = Everyone | Survivors | SI Players | SI Players and AI | All and Physics
"Team blocked?" = Everyone | Survivors | Infected
"Start state?" = Apply | Remove
"Push what?" = Everything | Survivor | Infected | Physics
"Hurt who?" = Everyone | Survivor | Infected | Ghost
"Option?" = Duck | Walk | Jump
"Prop type?" = dynamic | dynamic_ovr | physics | physics_ovr
"Shadows?" = shadow_yes | shadow_no
"Solidity?" = solid_yes | solid_no
"Team climb?" = 0 (Both) | 1 (Survivor) | 2 (Infected)
"Axis?" = x+ | x- | y+ | y-
make_clip Targetname Clips who? ^Init state Box mins Box maxs Origin *Angles
make_brush Targetname Box mins Box maxs Origin ! Blocks stuff clips don't i.e. bullet hitreg
make_navblock Targetname Team blocked? Start state? Box mins Box maxs Origin
make_trigpush Targetname Push what? ^Speed Push Direction Box mins Box maxs Origin
*Angles *Filter Override ! Angles have unknown mild influence but mostly don't work
make_trighurt Targetname Hurt who? Box mins Box maxs Origin ! Creates an insta-kill volume
make_trigduck Targetname Box mins Box maxs Origin ! Auto-crouch into small passages
make_trigmove Targetname Option? Box mins Box maxs Origin ! Enforces movement Option
make_prop Prop type? Targetname Model path Origin *Angles *Shadows? *Solidity?
*Render color *^FadeMinDist *^FadeMaxDist *^Mass scale
! Targetname with "_solidify" prefix only for 1:1 copied prop_statics; prop_dynamics with prefix will not render!
make_decal Texture path Origin
SafelyExists Entity handle ! Ensures no crashes or red console errors when deleting or modifying entities
kill_entity Entity handle ! Used for removing Versus defibrillators or func_breakable skylights to add Ladders
clone_model Entity handle ! Returns guaranteed-precached "*#" model of any entity that SafelyExists ("null" if not found)
kill_funcinfclip Desired radius ! Checksum uniquely referring to them to VERY selectively delete bothersome Versus clips
find_ladder Desired VSSM *^Radius ! See code documentation on VSSM, bad input will produce nothing
patch_ladder Desired VSSM Offset origin *New normal ! 0 1 0 North | 0 -1 0 South | 1 0 0 West | -1 0 0 East
make_ladder Ladder name Desired VSSM Offset origin *Offset angles *New normal *^Team climb? *^Radius
! Only modify Normal if the clone was rotated -- if none, the original's is ported over
InfectedLadders_Spawn ! No parameters: Relies on InfectedLadders() being declared then delay-loads them for ALL gamemodes
! Infected ladders are relevant to ALL gamemodes since they can be connected to NAV mesh and used by bots!
DEPRECATED
InfectedHumEnts_Spawn ! No parameters: Relies on InfectedHumEnts() being declared and produces them on Versus / VS Survival / Scavenge
! Reserved for exception handling; make_prop() already handles the "_solidify" prefixes!
DEPRECATED
patch_nav_obscured Origin nav area ! Runs once b/c "OBSCURED" permanently applied
patch_nav_checkpoint Origin nav area ! Runs once b/c "CHECKPOINT" permanently applied
patch_spawninfront Origin Box mins Box maxs ! Stop Commons spawning inside Survivors in end safe rooms
make_atomizer Targetname Origin Model path ^Delete timer ! Disintegrates Tank/Charger chokepoint blockades
make_axiswarp Targetname Axis? ^Offset Box mins Box maxs Origin ! Bandaid fixes
modify_trigfilter Origin *Filter name *Class name
unsolidify_prop Entity handle ! Un-solidifies a specific dynamic/physics prop
unsolidify_model Model path ! Un-solidifies all props with this model
SpawnGlobalFilters ! No parameters: Creates a "filter_activator_team" for Survivor & Infected
! Named "anv_globalfixes_filter_survivor" & "anv_globalfixes_filter_infected"
StringToVector_Valve String Delimiter
VectorToString_Valve ^Vector
con_comment Comment ! Does printl() with \newline after only if "developer() > 0"
devchap Mode ! Developer indication of if "TUTORIAL", "ALL MODES", "BASE VERSUS", etc.
! Always notifies of Anniversary Map Fixes update w/ more details if "developer 1"
+ Valve maps only: Survivor and Infected given new activator filters with names consistent across all maps!
+ VS Survival includes everything from Versus except new hittabes on c2m5, c3m3, and c10m5 are deleted.
+ Launch Option -dev for verbose entity dumps or render: "script_execute z_developer_showupdate" >> "script ShowUpdate()"
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
Versus-related Kerry C++ changes:
+ Fixed chargers bumping off survivors if they started charging from too close.
+ Fixed a longstanding bug that affected boss spawn rates on several maps.
------------------------------------------------------------------------------------------------------------------------
Versus global CVAR changes:
+ Infected ghost timers are now always 20 seconds. (Previously ranged from 20-30)
+ Jockey leap recharge after incapping a survivor reduced from 30 to 25 seconds.
+ Jockey ride damage reworked from 4 every 1 second, to 2 every 0.5 seconds. (Same damage per second)
+ Reduced duration of bile jar effect on player controlled infected from 20 to 15 seconds.
+ Reduced fire damage vs tank from 80 damage / second to 66 damage / second.
+ Tank initial frustration "grace period" increased from 10 to 15 seconds.
+ Removed tank spawn variation between teams.
------------------------------------------------------------------------------------------------------------------------
Versus map Tank/Witch spawns:
+ Set tank chance to 100% on Hard Rain 4.
+ Added a chance for tank to spawn on No Mercy 4.
+ Added a chance for witches to spawn on No Mercy and Death Toll finales.
------------------------------------------------------------------------------------------------------------------------
Versus "anv_tankwarps.nut" exposed spawns warped to safety (excludes Taaannnk!! Mutation):
+ c1m2_streets
Move tank spawn at ceda truck drop to the top of the stairs (~44% boss flow)
+ c2m2_fairgrounds
Move tank spawn inside carousel fence to behind the carousel (~80% boss flow)
+ c2m3_coaster
Move tank spawn in the swan room to the next room forward (~25% boss flow)
Move tank spawn after the coaster one way drop to the button area (76-79% boss flow)
Additional warp for the coaster one way drop area (80-83% boss flow)
+ c5m5_bridge
Move all bridge tank spawns a bit further down the bridge to discourage rushing
+ c12m4_barn
Move tank spawn from hillside before event area to top of trains (~60% boss flow)
+ c13m4_cutthroatcreek
Move tank spawns back a bit to discourage rushing
------------------------------------------------------------------------------------------------------------------------
File "anv_maptrigs.nut" exploit/bug fixes:
+ c1m1_hotel (Versus):
Prevent the earliest press-forward balcony window shortcut with a particle deterrent.
+ c2m4_barns (Versus):
Prevent various common hops straight to barns roof with a large clip.
+ c2m5_concert (All Modes):
Prevent interior stadium trigger from deleting players by re-creating it.
+ c12m4_barn (All Modes):
Prevent skipping bridge horde by forcing it even if fence is jumped.
+ c13m3_memorialbridge (Versus/Coop):
Prevent using water (or ladder) as a cushion to shortcut jump off bridge.
------------------------------------------------------------------------------------------------------------------------
Map-specific VScript files:
+ c8m4_elevatorfix.nut
Re-enables jumping in elevator. Injects a lot of I/O to juggle clips and teleport triggers that
prevent Survivors from falling through elevator, warping through skybox, and other hazards.
+ c11m5_versus_planecrash.nut
Injects logic_relay "planecrash_trigger" to spawn ladders, LOS fixes and collision for plane debris.
Triggers push Infected away and navblockers ensure Commons can path through it all.
+ anv_standards.nut
Comment tutorial for "map tutorial_standards_vs versus" on vanilla Versus entity rework standards.
------------------------------------------------------------------------------------------------------------------------
Combined entity overview (Various Modes):
+ 820 infected ladders
+ Added access to several new areas for infected
+ 141 spots you can permanently fall into
+ 40 displacement areas you can crouch through to unattackably leave map
+ 64 edges/steps smoothened to improve player (and AI) movement
+ 70 navmesh-related exploits
+ 260 general improvements to Valve's clipping
+ Insta-kill triggers in the places you'd expect, i.e. c10m4 Death Charge
+ 20 shortcuts (yes like half of these are Coaster)
+ 10 stuck-warps (i.e. Tanks)... some await future solutions like c1m1
+ 50 non-shortcut common hops to unattackably leave map
+ 30 bad or unusable Infected ladders corrected
+ 200 LOS fixes for when you should be able to spawn but can't
+ 7 safe room griefing exploits to camp door / avoid auto-open
+ Tank rock / Charger props blocking chokes will be deleted after 60 secs
Statistics:
10 files
11,173 lines of code/comments
3,606 new entities
110 func_playerinfected_clip deleted
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
LUMP FILE FIXES
Lump file patching https://developer.valvesoftware.com/wiki/Patching_levels_with_lump_files was used instead
of VScript for more laborious fixes like adding more Versus breakwall textures. Most are outlined here.
General:
+ Lots and lots of adjustments to floating items/weapons.
+ Lots and lots of Survival-only clipping (some ported to VScript where relevant, i.e. events/finales).
+ Several Scavenge-only fixes for accessing start/end safe rooms or cans going inaccessibly out of bounds.
+ All func_illusionary breakwalls were converted to func_brush so second Versus round sees them, too.
c1m2_streets:
+ All Whitaker stuff
+ Breakwall textures at event area
c1m3_mall:
+ Extra func_orator deleted (which was also solid in front of alarm button)
c1m4_atrium:
+ Can no longer incap a teammate in the safe room and start elevator to avoid finale start.
c2m2_fairgrounds:
+ Un-solidified func_orator at start
+ Breakwall textures at event area and clip kill I/O added
c2m3_coaster:
+ Breakwall texture for one-way drop wall
+ One-way drop wall can now be destroyed by any Infected
c2m5_concert:
+ Integrated _commentary.txt logic into lump file to prevent Survivor bots going to wrong chopper.
+ Integrated _commentary.txt logic into lump file to eliminate one-second early escape window.
+ Both Versus teams will now have the chopper arrive on the same side.
c4m1_milltown_a:
+ Resolved issue where two separate doors open as if they were one.
c5m2_park:
+ Starting safe room will stop offering a selection between identical guns.
c5m3_cemetery:
+ End safe room ammo pile will no longer hover into the air for second Versus round.
c5m4_quarter:
+ Breakwall textures at event area
+ Breakwalls are always destructible (Ghosts being unable to enter is intentional for balance)
c5m5_bridge:
+ Added a new func_orator "papa_gator"
+ Infected ladders on the bridge now exist for second Versus round.
c6m1_riverbank:
+ Deleted footlockers from Scavenge and Survival to resolve edict limit crash.
c6m3_port:
+ Finale will now start even if a teammate is incapped inside the elevator.
c7m1_docks:
+ Breakwall textures on all windows in final room
c8m2_subway:
+ Breakwall textures on two breakable windows in generator room with I/O to delete light beams
c8m5_rooftop:
+ Resolved the point_template that kept spawning in 100's of duplicate exploit fix brushes.
+ Scavenge gascans will now respawn if lost by falling.
+ Spitter acid balls will no longer linger on the bottom of the map.
c9m1_alleys:
+ Breakwall textures at event area
c9m2_lots:
+ Breakwall textures added to outsides of all garage doors
+ Breakwall textures added and I/O fixed on two wooden doors
c10m3_ranchhouse:
+ Scavenge players can no longer start the church event by pressing the invisible safe door.
c10m4_mainstreet:
+ Breakwall textures at event area storefront
c11m4_terminal:
+ Breakwall texture added to classroom wall (Kerry himself was aggravated he couldn't find it)
c11m5_runway:
+ Infected ladders are moved out of view when the C130 takeoff outro starts.
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
VSCRIPT FIXES
This work is dedicated to two lost brothers and all those tragically lost in these horrific times of COVID-19.
Somehow we'll survive together.
Keep in mind:
1. It's recommended to use "script ShowUpdate()" instead of reading this changelog
2. Where "All" refers to all modes and "PvP" refers to any mode with Human-controlled Infected
3. Provided "setpos_exact" values can be pasted into console in-game to teleport straight to the fix
4. All clips are initially enabled except those which explicitly state "initially disabled"
5. Every new entity is logged below, even though sometimes several are for the same fix
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
DEAD CENTER - HOTEL || c1m1_hotel
All:
Clip "_cliphang_window" blocks Survivors @ setpos_exact 2335 6420 2804
Clip "_cliphang_ledge" blocks Survivors @ setpos_exact 1222 6232 2912
Clip "_barricadefire_bypass" blocks Survivors @ setpos_exact 1326 5624 2528
PvP:
TRIG: Anti-shortcut "_shortcut_balcrail_trigonce" deletes trighurt at lower floor.
INFO: Fire particle "_shortcut_balcrail_particle" acts as visual deterrent.
Insta-kill "_shortcut_balcrail_trighurt" Everyone @ setpos_exact 1641 6432 2576
Clip "_shortcut_balcrail_survivorclip" blocks Survivors @ setpos_exact 1646 6560 2481
LOGIC: Anti-doorbreak trighurt will be deleted 4 seconds after elevator starts.
Insta-kill "_elevator_exploit_bean" Ghost @ setpos_exact 2169 5713 2352
QOL: The 2nd fire door is open immediately for Versus-only QoL.
------------------------------------------------------------------------------------------------------------------------
DEAD CENTER - STREETS || c1m2_streets
All:
Clip "_mindthegap_lolvalve" blocks Infected @ setpos_exact -2472 137 64
Clip "_stuckwarpassist_walltovoid" blocks Infected @ setpos_exact -5056 1500 1344
Clip "_booster_mallroof" blocks Survivors @ setpos_exact -9218 -4415 1024
Clip "_nav_cedaramp_in" blocks Infected + AI @ setpos_exact -4268 2566 75
Clip "_nav_cedaramp_out" blocks Infected + AI @ setpos_exact -4322 2567 102
Clip "_colastore_clipgap" blocks Survivors @ setpos_exact -6792 -3215 616
Clip "_colastore_clipawn" blocks Survivors @ setpos_exact -7017 -1699 599
Clip "_ladderqol_railing" blocks Infected @ setpos_exact -2614 2319 300
Clip "_save4lesscurb_smoother1" blocks Everyone @ setpos_exact -6515 -2681 384
Clip "_save4lesscurb_smoother2" blocks Everyone @ setpos_exact -6515 -2302 384
Clip "_save4lesscurb_smoother3" blocks Everyone @ setpos_exact -6899 -1601 384
Clip "_ladderqol_smootherl" blocks Everyone @ setpos_exact -6059 -2238 430
Clip "_ladderqol_smootherm" blocks Everyone @ setpos_exact -6060 -2586 427
Clip "_ladderqol_smootherr" blocks Everyone @ setpos_exact -6056 -2960 412
Clip "_whitakercurb_smoother1" blocks Everyone @ setpos_exact -5525 -2349 448
Clip "_whitakercurb_smoother2" blocks Everyone @ setpos_exact -5525 -1719 448
Clip "_booster_bridgestairsa" blocks Survivors @ setpos_exact -5572 932 768
Clip "_booster_bridgestairsb" blocks Survivors @ setpos_exact -5512 1016 832
Clip "_booster_building" blocks Survivors @ setpos_exact -5064 1408 1344
PvP:
Deleted func_playerinfected_clip @ setpos_exact 2047 2287 703
Deleted func_playerinfected_clip @ setpos_exact 2047 1791 703
Deleted func_playerinfected_clip @ setpos_exact -3409 1791 511
Deleted func_playerinfected_clip @ setpos_exact -3889 2287 511
Deleted func_playerinfected_clip @ setpos_exact -3905 2015 511
Deleted func_playerinfected_clip @ setpos_exact -1049 1023 447
Deleted func_playerinfected_clip @ setpos_exact -1537 -1 383
Tank/Charger chokepoint atomizer created @ setpos_exact -7475 -4582 384
Brush "_losfix_backstreet_van" created @ setpos_exact -2182 687 9
Brush "_losfix_endstreet_bus" created @ setpos_exact -8352 -2283 395
Brush "_losfix_endstreet_fence" created @ setpos_exact -7071 -3944 389
Brush "_losfix_endstreet_gen1" created @ setpos_exact -7143 -4150 393
Brush "_losfix_endstreet_gen2" created @ setpos_exact -8699 -4013 393
Brush "_losfix_endstreet_van" created @ setpos_exact -7893 -2305 394
Brush "_losfix_sidestreet_van1" created @ setpos_exact -1209 3992 131
Brush "_losfix_sidestreet_van2" created @ setpos_exact -1180 4061 132
Brush "_losfix_sidestreet_van3" created @ setpos_exact -1162 4126 138
Brush "_losfix_skybridge_bus" created @ setpos_exact -5310 -609 460
Brush "_losfix_stairs_gen1" created @ setpos_exact -4974 1669 392
Brush "_losfix_stairs_gen2" created @ setpos_exact -4994 1651 392
Brush "_losfix_starting_truck" created @ setpos_exact 1165 2493 571.5
Brush "_losfix_tanker1" created @ setpos_exact -6939 -1040 444
Brush "_losfix_tanker2" created @ setpos_exact -6894 -964 444
Brush "_losfix_tanker3" created @ setpos_exact -6844 -888 444
Brush "_losfix_tanker4" created @ setpos_exact -6797 -820 444
Brush "_losfix_tanker5" created @ setpos_exact -6753 -801 444
Brush "_losfix_tanker6" created @ setpos_exact -6753 -736 444
Brush "_losfix_tanker7" created @ setpos_exact -6675 -619 444
Brush "_losfix_tanker8" created @ setpos_exact -6631 -579 444
Brush "_losfix_tanker9" created @ setpos_exact -6623 -505 426
Clip "_clipgap_deadendfence" blocks Infected @ setpos_exact -1168 5160 383
Clip "_ladder_copvines_clip" blocks Infected @ setpos_exact -284 3211 719
Clip "_ladder_endbillboard_clipB" blocks Infected @ setpos_exact -7470 -150 696
Clip "_ladder_endbillboard_clipT" blocks Infected @ setpos_exact -7471 -150 714
Clip "_ladder_saferoomperch_clip" blocks Everyone @ setpos_exact -8190 -4353 384
Clip "_ladder_tankhedge_jumpclip" blocks Infected @ setpos_exact 2644 3327 640
Clip "_ladderqol_railingtop" blocks Infected @ setpos_exact -2614 2318 348
Clip "_ladderqol_railleftbot" blocks Infected @ setpos_exact -1154 2322 320
Clip "_ladderqol_raillefttop" blocks Infected @ setpos_exact -1154 2321 368
Clip "_skybridgebus_clip" blocks Infected @ setpos_exact -5164 -485 595
Clip "_sneaky_hunter" blocks Infected @ setpos_exact -9207 -4402 1024
Clip "_yeswaychoke_clip" blocks Infected @ setpos_exact -3636 1800 523
Clip "_yeswaycorner_clip" blocks Infected @ setpos_exact 3703 2048 704
Clip "_yeswayturnpike_clipa" blocks Infected @ setpos_exact -384 512 704
Clip "_yeswayturnpike_clipb" blocks Infected @ setpos_exact -876 48 456
LADDER: _ladder_acbuildfront_cloned_acbuildside
LADDER: _ladder_copfenceright_cloned_copfenceleft
LADDER: _ladder_copvines_cloned_startvines
LADDER: _ladder_dumpsterfront_cloned_dumpsterback
LADDER: _ladder_dynamictanker_cloned_roundthehedge
LADDER: _ladder_endbillboardB_cloned_save4lessleft
LADDER: _ladder_endbillboardT_cloned_save4lessright
LADDER: _ladder_endfence_cloned_carthedge
LADDER: _ladder_endfenceconcrete_cloned_endvanconcrete
LADDER: _ladder_fencedinplatform_cloned_longfencefarleft
LADDER: _ladder_hedgesreturn_cloned_skystairsback
LADDER: _ladder_longfencefarright_cloned_longfencefarleft
LADDER: _ladder_oneway_cloned_stairsbus
LADDER: _ladder_overpassleft_cloned_overpassright
LADDER: _ladder_postdropcut_cloned_turnpikemid
LADDER: _ladder_saferoomperch_cloned_save4less
LADDER: _ladder_saferoomperchoob_cloned_save4less
LADDER: _ladder_skybridgebus_cloned_endbusright
LADDER: _ladder_skybridgechance_cloned_yellowbrickcones
LADDER: _ladder_skybridgedodge_cloned_yellowbrickcones
LADDER: _ladder_skybridgestains_cloned_endslopeleft
LADDER: _ladder_skystairsfront_cloned_skystairsback
LADDER: _ladder_slopeleftvine_cloned_save4lessright
LADDER: _ladder_stairvines_cloned_dumpstervines
LADDER: _ladder_startareavines_cloned_dumpsterright
LADDER: _ladder_startfencefar_cloned_startfenceback
LADDER: _ladder_startfencefront_cloned_startfenceback
LADDER: _ladder_starthedgesfront_cloned_starthedgesback
LADDER: _ladder_tankerfrontleft_cloned_tankerfenceleft
LADDER: _ladder_tankerfrontmid_cloned_tankerfencemid
LADDER: _ladder_tankerfrontright_cloned_tankerfenceright
LADDER: _ladder_tankhedge_cloned_stairsbus
LADDER: _ladder_tentbus_cloned_stairsbus
LADDER: _ladder_truckandtent_cloned_carthedge
LADDER: _ladder_turnpikeleft_cloned_turnpikemid
LADDER: _ladder_turnpikeright_cloned_turnpikemid
LADDER: _ladder_whitakerback_cloned_tinyendladder
LADDER: _ladder_whitakergunshop_cloned_eventicemachine
LADDER: _ladder_whitakerquick_cloned_hedgeparklot
LADDER: _ladder_yeswaychokefence_cloned_yellowbrickcones
LADDER: _ladder_yeswaychokeroof_cloned_tankerfencemid
LADDER: _ladder_yeswaycornerinner_cloned_roundthehedge
LADDER: _ladder_yeswaycornerouter_cloned_save4lessright
LADDER: _ladder_yeswayturnpikesign_cloned_turnpikemid
Static prop "_propladder_blocka" W/ "models/props_fortifications/concrete_block001_128_reference.mdl" @ setpos_exact -2296 2341 288
Static prop "_propladder_blockb" W/ "models/props_fortifications/concrete_block001_128_reference.mdl" @ setpos_exact -2426 2341 287
Static prop "_propladder_blockc" W/ "models/props_fortifications/concrete_block001_128_reference.mdl" @ setpos_exact -2816 2340 288
Static prop "_propladder_blockd" W/ "models/props_fortifications/concrete_block001_128_reference.mdl" @ setpos_exact -2946 2339 289
Static prop "_propladder_blocke" W/ "models/props_fortifications/concrete_block001_128_reference.mdl" @ setpos_exact -3076 2339 295
Static prop "_propladder_blockf" W/ "models/props_fortifications/concrete_block001_128_reference.mdl" @ setpos_exact -3203 2339 302
Static prop "_endbillboard_crashedvan" W/ "models/props_vehicles/van_interior.mdl" @ setpos_exact -7350 0 400
Static prop "_endbillboard_streetlight" W/ "models/props_urban/streetlight001.mdl" @ setpos_exact -7434 -95 370
Static prop "_endbillboard_wrongway" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact -7622 -143 824
Static prop "_losblocker_skybridgebus" W/ "models/props_vehicles/bus01_2.mdl" @ setpos_exact -5180 -508 447
Static prop "_propladder_endplywood1" W/ "models/props_highway/plywood_01.mdl" @ setpos_exact -7018.5 -3914 471.5
Static prop "_propladder_endplywood2" W/ "models/props_highway/plywood_01.mdl" @ setpos_exact -7069.5 -3818 522.5
Static prop "_propladder_endvan" W/ "models/props_vehicles/van.mdl" @ setpos_exact -7003 -3900 383
Static prop "_propladder_endvanglass" W/ "models/props_vehicles/van_glass.mdl" @ setpos_exact -7003 -3900 383
Static prop "_propladder_whitakergunshop_plywood" W/ "models/props_highway/plywood_03.mdl" @ setpos_exact -4798 -1600 623
Static prop "_yesdraw_disproof_hunt1" W/ "models/props_update/c8m1_rooftop_1.mdl" @ setpos_exact -6032 1264 1344
Static prop "_yesdraw_disproof_hunt2" W/ "models/props_update/c8m1_rooftop_1.mdl" @ setpos_exact -6032 1744 1344
Static prop "_yesdraw_disproof_hunt3" W/ "models/props_update/c8m1_rooftop_3.mdl" @ setpos_exact -5280 1264 1344
Static prop "_yesdraw_disproof_hunt4" W/ "models/props_update/c8m1_rooftop_3.mdl" @ setpos_exact -5280 1744 1344
Static prop "_yesdraw_skybroof_hunt1" W/ "models/props_update/c8m1_rooftop_1.mdl" @ setpos_exact -4368 3312 1728
Static prop "_yesdraw_skybroof_hunt2" W/ "models/props_update/c8m1_rooftop_3.mdl" @ setpos_exact -3616 3312 1728
Static prop "_yeswaychoke_fence1" W/ "models/props_urban/fence_cover001_128.mdl" @ setpos_exact -3870 1887 512
Static prop "_yeswaychoke_fence2" W/ "models/props_urban/fence_cover001_64.mdl" @ setpos_exact -3870 1983 512
Static prop "_yeswaychoke_roof1" W/ "models/props_update/c1m2_wrongway_rooftop1.mdl" @ setpos_exact -3900 2044 532
Static prop "_yeswaychoke_roof2" W/ "models/props_update/c1m2_wrongway_rooftop2.mdl" @ setpos_exact -3652 2052 532
Static prop "_yeswaychoke_wrongwaya" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact -3538 2042 574
Static prop "_yeswaychoke_wrongwayb" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact -3648 2042 574
Static prop "_yeswaychoke_wrongwayc" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact -3758 2042 574
Static prop "_yeswaycorner_wall" W/ "models/props_update/c1m2_wrongway_wall.mdl" @ setpos_exact 3072 2048 608
Static prop "_yeswaycorner_wrongway" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact 3703 2048 768
Static prop "_yeswayturnpike_hedgea" W/ "models/props_foliage/urban_hedge_256_128_high.mdl" @ setpos_exact -599 1037 502
Static prop "_yeswayturnpike_hedgeb" W/ "models/props_foliage/urban_hedge_256_128_high.mdl" @ setpos_exact -860 1037 426
Static prop "_yeswayturnpike_wrongwaya" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact -816 32 496
Static prop "_yeswayturnpike_wrongwayb" W/ "models/props_misc/wrongway_sign01_optimized.mdl" @ setpos_exact -1200 32 496
Ladder found @ "-5168 162.0004 448" and shifted w/ offset @ "0 -4 0"
Ladder found @ "-7200 -126 506" and shifted w/ offset @ "0 0 -1000"
Ladder found @ "-7440 -126 510" and shifted w/ offset @ "0 0 -1000"
Ladder found @ "-7968 -126 510" and shifted w/ offset @ "0 0 -1000"
Ladder found @ "-8224 -126 510" and shifted w/ offset @ "0 0 -1000"
LOGIC: LOS tanker fixes will be deleted upon its destruction.
FIX/ANTI-GRIEF: Removed trigger which disables common infected spawns in Save 4 Less area for Versus only.
Deleted ([123] trigger_once) @ setpos_exact -5128 -992 548
Survival:
Clip "_tanker_blowfish" blocks Survivors @ setpos_exact -6740 -758 681
------------------------------------------------------------------------------------------------------------------------
DEAD CENTER - MALL || c1m3_mall
All:
Decal "decals/vent01" painted @ setpos_exact 1279 -2411 280
Clip "_commonhop_maproom" blocks Survivors @ setpos_exact 3673 -2517 424
Clip "_cliprework_skylighta" blocks Survivors @ setpos_exact 6464 -2591 559
Clip "_cliprework_skylightb" blocks Survivors @ setpos_exact 4173 -2627 793
Clip "_cliprework_skylightc" blocks Survivors @ setpos_exact 2274 -672 793
Clip "_cliprework_skylightd" blocks Survivors @ setpos_exact 1465 -3418 794
PvP:
Deleted ([323] func_breakable) @ setpos_exact -1016.5 -4510.5 561
Deleted ([322] func_breakable) @ setpos_exact -1155.47 -4510.5 561
Deleted ([320] func_breakable) @ setpos_exact -1400.5 -4510.5 561
Deleted ([280] func_breakable) @ setpos_exact 2558.5 -408.5 561
Deleted ([237] func_breakable) @ setpos_exact 3964.5 -2910.5 561
Deleted ([252] func_breakable) @ setpos_exact 4099.47 -2337.5 561
Deleted ([238] func_breakable) @ setpos_exact 4103.5 -2910.5 561
Deleted ([250] func_breakable) @ setpos_exact 4344.5 -2337.5 561
Deleted ([240] func_breakable) @ setpos_exact 4348.54 -2910.5 561
Deleted ([249] func_breakable) @ setpos_exact 4483.47 -2337.5 561
Deleted ([340] func_breakable) @ setpos_exact 4487.5 -2910.5 561
Brush "_losfix_end_gen" created @ setpos_exact -1940 -4434 544
Clip "_ladderqol_lastroom_left" blocks Infected @ setpos_exact -1280 -4503 509
Clip "_ladderqol_lastroom_right" blocks Infected @ setpos_exact -1280 -3945 509
Clip "_ladderqol_maproom_left" blocks Infected @ setpos_exact 4224 -2903 509
Clip "_ladderqol_maproom_right" blocks Infected @ setpos_exact 4224 -2345 509
Clip "_ladderqol_oneway_left" blocks Infected @ setpos_exact 1993 -672 509
Clip "_ladderqol_oneway_right" blocks Infected @ setpos_exact 2551 -672 509
Clip "_skylighta_blocker1" blocks Infected @ setpos_exact 6463 -2592 586
Clip "_skylighta_blocker2" blocks Infected @ setpos_exact 6463 -2592 586
Clip "_skylighta_blocker3" blocks Infected @ setpos_exact 6463 -2592 586
Clip "_skylighta_blocker4" blocks Infected @ setpos_exact 6463 -2592 586
LADDER: _ladder_kappels_cloned_headroomvent
LADDER: _ladder_lastroomSE_cloned_lastroomNE
LADDER: _ladder_lastroomSW_cloned_lastroomNW
LADDER: _ladder_maproomNE_cloned_onewayNW
LADDER: _ladder_maproomNW_cloned_onewaySW
LADDER: _ladder_maproomSE_cloned_onewayNE
LADDER: _ladder_maproomSW_cloned_onewaySE
LADDER: _ladder_scaffold_cloned_sodavent
LADDER: _ladder_toystoreceiling_cloned_ventexcessheight
Static prop "_cosmetic_breakwall1" W/ "models/props_interiors/breakwall_interior_noboards.mdl" @ setpos_exact 238.1 -2505.6 344
Static prop "_cosmetic_breakwall2" W/ "models/props_interiors/breakwall_interior_noboards.mdl" @ setpos_exact 236.9 -2504.9 348
Static prop "_ladder_toyvent1" W/ "models/props_exteriors/guardshack_break07.mdl" @ setpos_exact 1271 -2310 431
Static prop "_ladder_toyvent2" W/ "models/props_exteriors/guardshack_break07.mdl" @ setpos_exact 1279 -2304 518
Static prop "_ladder_toyvent3" W/ "models/props_exteriors/guardshack_break02.mdl" @ setpos_exact 1158 -2421 554
Static prop "_ladder_toyvent4" W/ "models/props_vents/vent_cluster006.mdl" @ setpos_exact 1412 -2172 560.35
Static prop "_ladder_toyvent5" W/ "models/props_vents/vent_cluster006.mdl" @ setpos_exact 1043 -2538 561