Skip to content

Instantly share code, notes, and snippets.

@Tsuey
Created July 2, 2021 06:22
Show Gist options
  • Save Tsuey/146691b02e20e951b1ec7834a0ac0d47 to your computer and use it in GitHub Desktop.
Save Tsuey/146691b02e20e951b1ec7834a0ac0d47 to your computer and use it in GitHub Desktop.
Changelog Flavors for Big L4D2-Community-Update Commit
THE BIG COMMIT
==============
There are 3 "flavors" of changelogs here:
STEAM CHANGELOG
Cliffnotes for Steam News when update goes live
TL;DR CHANGELOGS
Lossless, but excludes the code changes that went in
VERBOSE CHANGELOG
Lossless and includes every single code change made to all files
####################################################################################################
####################################################################################################
#########################
#### STEAM CHANGELOG ####
#########################
+ Polished several mapfix and versus entities from clips to ladders
+ Fixed Survivor/Infected permstuck spots throughout several maps
+ Added auto-crouch QoL for Dead Center and smoothened kiosks
+ New props will no longer randomly vanish on Dark Carnival finale
+ Patched janky Swamp Fever 1 ladder near the event
+ Swamp gator has been given a proper name... and some bite
+ Prevent bots from picking up items map 4's saferoom on Hard Rain 1
+ Lifted an anti-grief trigger on No Mercy 1 off the ground
+ Prevented gascans from falling between buses at Crash Course 2 finale
+ Prevent a Tank spawn flow exploit on Dark Carnival 1
+ Solidifed a prop_static chimney on Parish 2 for LOS blocking QoL
+ Patched a ladder shortcut at start of No Mercy 1
+ Revived Infected ladder next to Blood Harvest 4 lawnmower room
+ Fixed an exploit to get under map on Last Stand finale
+ Countless feature enhancements for "script ShowUpdate()"
####################################################################################################
####################################################################################################
##########################
#### TL;DR CHANGELOGS ####
##########################
TL;DR :: These changes have been in-game for a long time just not on the Github:
anv_functions.nut:
Changed patch_spawninfront from = to <-
anv_mapfixes.nut:
c1m4_atrium:
Gascans fool-proofed from falling through ground
c4m1_milltown_a & c4m5_milltown_escape:
Corrected erroneous values on booster clips
SirPlease is one anv_versus.nut behind, so it was missing several fixes
that were added post-release (i.e. "_hrbillboard_infectedqol") but have
been in the live game all this time. Future-proof with anv_customization.nut.
TL;DR :: Merged Changelog for Kerry for fixes that haven't yet seen live game:
anv_functions.nut:
Added a comment to convert to GetCenter() (medium risk / low priority)
anv_mapfixes.nut:
Removed a redundant true from an if statement
c1m3_mall:
Fixed permstuck spot at alternative path vending machine
QoL auto-crouch for starting gate at shoplift scanners
c1m4_atrium:
QoL clips for multiple kiosks so you don't undesirably crouch when jumping onto them
QoL auto-crouch for the "INFORMATION" booth
c2m5_concert:
Changed bass and anvil cases to use shadows so they don't commonly vanish
c3m1_plankcountry:
Patched janky ladder near the event for all modes
Swamp gator has been given a proper name... and some bite
c4m1_milltown_a:
Prevent Survivor bots from picking up items inside c4m4's saferoom
c5m1_waterfront:
Improved a clip that blocks getting stuck in skybox
c5m2_park (Survival-only):
Eliminated a permstuck spot that a previous ladder patch created
c5m4_quarter:
Fixed mins for a commonhop clip at an electrical box
c8m1_apartment:
Lifted anti-grief kill trigger off the ground to prevent an incap glitch
c9m1_alleys:
Blocked rare permstuck spot between the boxwreck and traffic light
c9m2_lots:
Collision QoL clip added to prevent gascans from falling between finale buses
c11m4_terminal:
Fixed SI permstuck spot inside the end rubble
c13m2_southpinestream:
Solved a permstuck next to military truck leading to barricade
c13m3_memorialbridge:
Enlargened a permstuck clip to fully fix it
anv_versus.nut - Changes:
c1m1_hotel:
Moved Ghost SI exploit killtrigger down a lot to solve a rare issue
c2m1_highway:
Added navblocker at fence/car to prevent Tank spawn flow exploit
c2m4_barns:
Food cart ladder replaced with better clone and smoothed it with a new clip
c2m5_concert:
Changed bass and anvil cases to use shadows so they don't commonly vanish
c5m2_park:
Eliminated a permstuck spot that a previous ladder patch created
Solidified a prop_static chimney for LOS blocking QoL
c8m1_apartment:
Added a clip to patch a ladder shortcut at the start
c12m2_traintunnel:
Fixed prop from slightly hovering above vent
c12m4_barn:
Patched fence Infected ladder next to lawnmower room
c14m2_lighthouse:
Fixed a displacement crouch to get under finale map
TODO (c10m3_ranchhouse):
nav_split area at "setpos_exact -7286.4 -1049.2 -72.9; setang_exact 21.2 57.8 0"
Create new make_navblock() to block Common pathing
Restore previously commented out "_solidify_tree09" for SI QoL
anv_customization_DO_NOT_SHIP.nut:
This file is successful once it can pre-emptively prevent the
spawning of entities competitive configs do not want. Those are,
comprehensively (it's not many):
c2m1_highway:
"_motelskyboxroof_clipinfected"
c2m4_barns:
"_hittable_bumpera"
"_hittable_bumperb"
For modders only: DO NOT SHIP. But do ensure the above work.
mapspawn.nut:
Extended "Community Credits"
z_developer_showupdate.nut:
Countless fixes and enhancements, such as:
- Added arguments and filters for added control
- Rotated ladder DebugDrawText now displays properly
- Added trigger_teleport to potential highlights
- Full support for commentary, lump and other mod blockers regardless of prefix
- No more "Accessed null instance" error if array entities are deleted
Unavoidable / by design:
ShowUpdate() requires DebugDrawClear(), so don't have it
active for other mods that require DebugDraws.
TODO: Testing / update the Tutorial / update external Steam Guides / see script
####################################################################################################
####################################################################################################
###########################
#### VERBOSE CHANGELOG ####
###########################
Post-launch changes to live game (fresh-decrypted files) were synced to advance from Release v1.0.0:
anv_functions.nut:
Changed "patch_spawninfront" to use <- instead of =
anv_mapfixes.nut:
c1m4_atrium: Added "_collision_atrium" clip to fool-proof gascans from accessing parallel universes
c4m1_milltown_a + c4m5_milltown_escape: Corrected erroneous values on "_booster_ginnyjon"
anv_versus.nut note:
This file:
https://github.com/Tsuey/L4D2-Community-Update/blob/be0cf3b251627fe018916c3670cc60eeee81db31/scripts/vscripts/anv_versus.nut
And this commit:
https://github.com/Tsuey/L4D2-Community-Update/commit/be0cf3b251627fe018916c3670cc60eeee81db31#diff-6cec3e2d51143bde6b3779f3579e4bbfd7b01c46d5e55d6af09995423d90feb9
Are both in the live game from freshly decrypted files. Actually, anv_versus.nut
has never changed since v1.0.0 Github upload and the live game -- the first
update is with c8m1's ladder Survivor exploit clip.
NOTE (SirPlease only):
c2m1_highway is missing "_hrbillboard_infectedqol" which may have brought
upon some confusion here? SirPlease will benefit from a "anv_customization.nut"
so they don't need to worry about official updates to this file anymore.
They'd want that fix, but it was added post-release.
Rest of the files 100% identical.
The following changes were then applied manually, all new fixes not yet in the live game:
anv_functions.nut:
Not a fix, just a comment for find_ladder():
// TODO: Replace with GetCenter(). The vecMaxs/vecMaxs approach
// replaced the "VSSM", and now the replacement is obsolete since
// this has been added to get "true origins". Low-priority, isn't
// going to noticeably boost efficiency and I fear rare edge cases
// of broken ladders if before/after spawn counts aren't verified.
anv_mapfixes.nut:
Removed " == true" from "if ( HasPlayerControlledZombies() == true )"
c1m3_mall:
Minimalist permstuck spot fix at vending machine that blocks alternative path:
make_clip( "_permstuck_colddrinks", "Everyone", 1, "-1 -1 -1", "1 1 1", "736 -548 363" );
Added QoL trigger_auto_crouch for starting gate at shoplift scanners:
make_trigduck( "_duckqol_shopliftscanners", "-2 -88 0", "2 64 77", "5247 -2685 280" );
c1m4_atrium:
QoL clips for multiple kiosks so you don't undesirably crouch when jumping onto them:
make_clip( "_kiosk_qol_1", "Everyone", 1, "-44 -44 -1", "44 44 0", "-3208 -3864 94" );
make_clip( "_kiosk_qol_2a", "Everyone", 1, "-44 -44 -1", "44 44 0", "-4080 -4005 94" );
make_clip( "_kiosk_qol_2b", "Everyone", 1, "-100 -1 -1", "100 1 0", "-4081 -3949 94" );
make_clip( "_kiosk_qol_3a", "Everyone", 1, "-44 -44 -1", "44 44 0", "-4848 -3935 94" );
make_clip( "_kiosk_qol_3b", "Everyone", 1, "-1 -100 -1", "1 100 0", "-4796 -3936 94" );
QoL trigger_auto_crouch for the "INFORMATION" booth:
make_trigduck( "_duckqol_informationbooth", "-96 -8 0", "96 8 64", "-4448 -3865 44" );
c2m5_concert:
Changed COOP/REALISM & VERSUS entities from "shadow_no" to
"shadow_yes" to fix the common occurrence of them not rendering
at all, a quirk with prop_dynamics on this map:
if ( g_BaseMode == "coop" || g_BaseMode == "realism" )
{
devchap( "BASE COOP" );
// FIXES
make_prop( "dynamic", "_helistuck_caseunique", "models/props_fairgrounds/bass_case.mdl", "-3466 2899 -106", "-15 1 89.73", "shadow_yes" );
make_prop( "dynamic", "_helistuck_casecaster", "models/props_fairgrounds/anvil_case_casters_64.mdl", "-3488 2870 -128", "0 180 0", "shadow_yes" );
break;
}
if ( g_BaseMode == "versus" )
{
devchap( "BASE VERSUS" );
// FIXES
make_prop( "dynamic", "_helistuck_caseunique", "models/props_fairgrounds/bass_case.mdl", "-3466 2899 -106", "-15 1 89.73", "shadow_yes" );
make_prop( "dynamic", "_helistuck_casecaster", "models/props_fairgrounds/anvil_case_casters_64.mdl", "-3488 2870 -128", "0 180 0", "shadow_yes" );
c3m1_plankcountry:
Patched infamously janky Survivor+Infected ladder near the event (all modes):
patch_ladder( "-6084.5 6272 90", "6 0 0" );
"Swamp gator has been given a proper name... and some bite":
Was:
make_prop( "dynamic", "_keepcalmgator", "models/props_fairgrounds/alligator.mdl", "-5274 7386 -19", "0 150 0", "shadow_no", "solid_no" );
Now:
// Tsuey's note: Special thanks to the person who originally complained
// on the Steam Forums that there weren't any gators -- I'm unable to
// re-find your thread. Special thanks to Rise for naming him Fred; you
// can't spell Friend without it. Left4Facts Discord btw. :fred:
make_prop( "dynamic", "_fred", "models/props_fairgrounds/alligator.mdl", "-5274 7386 -19", "0 150 0", "shadow_no", "solid_no" );
Added:
// Allow only SI Players to stand on it while maintaining its non-solidity
// because it'd be inhumane for Survivors to put bullet holes on him. Also
// prevents Fred from becoming a godspot.
make_clip( "_fred_collision", "SI Players", 1, "-3.6 -17 0", "3.6 16 3", "-5274 7386 -17", "0 150 0" );
// Incrementally "bites" both Spawned and Ghost SI. Also damages Survivor
// even though it's trigger_hurt_ghost. 120 DPS, 60 per hit, or something.
make_trighurt( "_fred_pain_cuddles", "Ghost", "-4 -4 -4", "4 4 4", "-5280 7375 -12" );
EntFire( g_UpdateName + "_fred_pain_cuddles", "SetDamage", 120 );
c4m1_milltown_a: Prevent Survivor bots from picking up items inside c4m4's saferoom.
c5m1_waterfront:
Didn't extend to the other side where you can still get stuck:
make_clip( "_skybox_shielda", "SI Players", 1, "-176 -5.5 22", "-175 6.5 94", "-272 -2055 50" );
Improved, noting Hunter pounces require minimal invasiveness:
make_clip( "_skybox_shielda", "SI Players", 1, "-64 -6 0", "64 6 20", "-384 -2054 124" );
c5m2_park -- SURVIVAL-ONLY (SEE versus.nut FOR VERSUS):
Moved a ladder left 1 unit to remove a permstuck spot added with TLS:
patch_ladder( "-9260 -5130 -152", "1 14 0" );
c5m4_quarter:
Clip "_commonhop_electricalbox" made mins-X negative to prevent Survivors standing next to it:
make_clip( "_commonhop_electricalbox", "Survivors", 1, "-8 -64 0", "8 64 752", "-80 1535 400" );
c8m1_apartment:
Killtrigger lifted off ground, van and barricade debris to
avoid teamswitch glitch where Survivors in spawn get incapped,
see shqke's documentation for a more ideal Kerry fix... do
note this is likely why Valve doesn't use killtriggers in
this setup, it's problematic a few more spots, but this is
prioritized given it's the first map and the most played:
make_trighurt( "_instakill_griefroom", "Survivor", "-512 -1080 0", "384 1080 17", "1152 936 202" );
c9m1_alleys:
Fixed a weird elevated permstuck spot between the boxwreck and traffic light:
* Easy repro: "setpos_exact -2836.68 -7030.04 130.99; setang_exact 17.4 44.54 0"
make_clip( "_permstuck_boxwreck_weird", "Everyone", 1, "-1 -1 0", "1 1 1", "-2836.7 -7030 128" );
c9m2_lots:
Collision QoL clip added to prevent gascans from falling between finale buses:
make_clip( "_collisionqol_finalebuses", "All and Physics", 1, "-236 -32 0", "236 32 108", "6675 6470 65" );
c11m4_terminal:
Fixed permstuck spot inside the end rubble. Note non-fixed stuck-warp
is nearby (if we want all 100's of those fixed we should ask Kerry):
make_clip( "_permstuck_endrubble", "SI Players", 1, "-34 -17 0", "17 17 64", "2742 989 152" );
c13m2_southpinestream:
https://github.com/Tsuey/L4D2-Decompiled-Assets/blob/main/Commentary%20Survivors%20Arcade%20(Largest%20Only)/c13m2_southpinestream_commentary.txt
Taito Commentary copy/paste:
Added a playerblocker to solve a small stuck spot next to the military truck leading to the barricade
make_clip( "_permstuck_taito_ftw", "Everyone", 1, "-8 -8 -8", "28 24 28", "2552 2292 460" );
c13m3_memorialbridge:
Widened and increased height of a stuckspot clip to fully fix it properly:
make_clip( "_permstuck_jaynjer", "Everyone", 1, "-42 -52 -32", "42 42 90", "-4495 -4584 719" );
anv_versus.nut - SirPlease sync:
Script:
https://github.com/SirPlease/L4D2-Competitive-Rework/blob/master/scripts/vscripts/anv_versus.nut
History:
https://github.com/SirPlease/L4D2-Competitive-Rework/commits/master/scripts/vscripts/anv_versus.nut
Methodology:
Minor clip mins/maxs fixes should be made official,
but there are none, SirPlease is one commit behind.
Entity deletions will be supported in the future w/
"anv_customization.nut". Motel c2m1 rooftop clip is
the most notable clip that's not relevant to them.
Takeaway:
Once anv_customization.nut exists, SirPlease can remove
their anv_versus.nut file and we'll all be happier.
Submit objective (i.e. clip mins/maxs) fixes to this
repo so they can be officially added, and/or allow the
anv_customization.nut file to support them, too.
c2m1_highway:
Added "_nav_motelfencejump" navblocker at fence/car (Tank spawn flow exploit)
That's all -- SirPlease lacks the aforementioned commit, so is
otherwise outdated in these ways exactly (nothing more or less):
c2m1:
- Added "_losfix_motel_jeep" to military jeep in motel parking lot
- Added "_losfix_underpass_van1" + "_van2" to underpass van
- Added SI "_hrbillboard_infectedqol" QoL clip to billboard where HR spawns
c10m1:
- Improved (and renamed) LOS blocks on van at the end of the tunnel:
"_losfix_earlyvan"
"_losfix_latevan1"
"_losfix_latevan2"
c10m3:
- Fixed a spot common infected could get stuck
Commented out "_solidify_tree09"
c10m4:
- Improved mins/maxs of hillside clips after exiting the churchyard
"_hellcade_clipb"
"_hellcade_clipc"
anv_versus.nut - Changes:
c1m1_hotel:
Moved Ghost SI exploit killtrigger down 8 units to over-fix rare
case of becoming a Ghost and dying if a Survivor stood above it:
make_trighurt( "_elevator_exploit_bean", "Ghost", "-55 -2 0", "55 2 111", "2169 5713 2344" );
c2m4_barns:
Old ladder had brush clips on its sides (resulting in stuck / climb issues):
make_ladder( "_ladder_startfoodcart_cloned_colddrinkfence", "1710 2272 -124", "741 1088 -13" );
Replacement food cart ladder:
make_ladder( "_ladder_startfoodcart_cloned_bumpsidemid", "1462 2296 -124", "992 1073 -13" );
Also added clip to smooth out the side that needs it:
make_clip( "_ladder_startfoodcart_clip", "Everyone", 1, "-2 -8 0", "2 8 124", "2450 3348 -192", "0 -45 0" );
c2m5_concert:
Changed from "shadow_no" to "shadow_yes" to fix the common
occurrence of this not rendering at all, a quirk with prop_dynamics
on this map:
make_prop( "dynamic", "_missing_staircase", "models/props_interiors/stair_metal_02.mdl", "-840 1792 136", "0 315 0", "shadow_yes" );
c5m2_park -- VERSUS (SEE anv_mapfixes.nut FOR SURVIVAL-ONLY):
Moved a ladder left 1 unit to remove a permstuck spot added with TLS:
patch_ladder( "-9260 -5130 -152", "1 14 0" );
Solidified a prop_static chimney for LOS blocking QoL:
make_prop( "dynamic", "_solidify_chimney007", "models/props_urban/chimney007.mdl", "-9076 -4300 150.405", "0 180 0", "shadow_no" );
c8m1_apartment:
Added "_ladder_crushedescape_clip" to patch start shortcut.
c12m2_traintunnel:
Fixed easter egg Gnome Chompski's slight hover above ground (original/new):
make_prop( "dynamic_ovr", "_easter_yofffej", "models/props_junk/gnome.mdl", "-8695 -7340 211", "0 45 0", "shadow_no" );
make_prop( "dynamic_ovr", "_easter_yofffej", "models/props_junk/gnome.mdl", "-8695.10 -7340.17 210.7719", "0 45 0", "shadow_no" );
c12m4_barn:
Fixed long-standing fence Infected ladder next to lawnmower room:
patch_ladder( "11314.7 -4535 -259.108", "0 -22 9" );
c14m2_lighthouse:
Fixed a displacement crouch to get under finale map bypassing cheater killers:
* Easy repro:
+duck
"setpos_exact 126.95 -837.2 430.4; setang_exact 10.73 41.44 0"
make_clip( "_dispcrouch_cliffside", "SI Players", 1, "-120 -8 -80", "120 8 80", "127 -818 428", "0 8 -10" );
TODO (c10m3_ranchhouse):
nav_split area at "setpos_exact -7286.4 -1049.2 -72.9; setang_exact 21.2 57.8 0"
Create new make_navblock() to block Common pathing
Restore previously commented out "_solidify_tree09" for SI QoL
anv_customization_DO_NOT_SHIP.nut:
SirPlease doesn't need this clip on c2m1_highway.
"_motelskyboxroof_clipinfected" has been added to this file, commented out,
for future reference and a simple test for what needs to be supported.
Also c2m4_barns they delete both "_hittable_bumpera" and "_hittable_bumperb".
For modders only: DO NOT SHIP.
mapspawn.nut:
Added "Community Credits" links:
** Help us shape the potential future of L4D2 vanilla.
** https://github.com/Tsuey/L4D2-Community-Update
**
** Community Update Testing Initiative (Workshop mirror)
** https://steamcommunity.com/sharedfiles/filedetails/?id=1959405608
z_developer_showupdate.nut:
Countless fixes and enhancements, such as:
- Added arguments and filters for added control
- Rotated ladder DebugDrawText now displays properly
- Added trigger_teleport to potential highlights
- Full support for commentary, lump and other mod blockers regardless of prefix
- No more "Accessed null instance" error if array entities are deleted
Unavoidable / by design:
ShowUpdate() requires DebugDrawClear(), so don't have it
active for other mods that require DebugDraws.
TODO: Testing / update the Tutorial / update external Steam Guides / see script
####################################################################################################
####################################################################################################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment