Patch Name March 2025 Update
Changelist Title Technical Changes (2025.03.26)
date_range Wednesday, March 26, 2025
add_circle
Features
- •
Added some generic logic entities from Portal 2 - logic_register_activator, logic_coop_manager, point_viewcontrol_multiplayer, point_viewproxy
- •
Added new inputs/keyvalues to prop_vehicle_choreo_generic from Portal 2
- •
* Inputs: SetCanShoot, UseAttachmentEyes, SetMaxPitch, SetMinPitch, SetMaxYaw, SetMinYaw
- •
* Key-values: PlayerCanShoot, UseAttachmentEyes
- •
Enable DMX versions 3, 4 and 5 loading for particles from newer Source Engine games
- •
Ported most particle related features from CS:GO
- •
Added 2 new spawnflags to env_player_surface_trigger - Trigger on player(s) leaving ground & Set output activator to the player
- •
Added new inputs to game_text - SetText, SetPosX, SetPosY, SetTextColor, SetTextColor2
- •
Added new inputs for game_player_equip - TriggerForAllPlayers and TriggerForActivatedPlayer, as well as "Strip All Weapons First" spawnflag
- •
Added skybox_swapper entity
- •
Added logic_eventlistener and logic_eventlistener_itemequip from Team Fortress 2
- •
Added point_worldtext entity (CS:GO version) and added most Team Fortress 2-exclusive features into it
- •
Added logic_random_outputs entity
- •
Added fog_volume entity
- •
Added trigger_tonemap entity
- •
Added env_ambient_light entity
- •
Added point_entity_finder entity
- •
Added particle-based func_precipitation types from CS:GO
- •
Added ability to override func_precipitation particle systems by name
- •
Added func_precipitation_blocker entity
- •
Implemented origin for playlooping/playrandom and ambientOriginOverride for "playSoundscape" in soundscapes
- •
Added new options to Run Map dialog in Hammer
- •
Restored "JellyFish" shader (Partially Community Contribution)
- •
Added hostile keyvalue to npc_citizen - Will be treated as a combine. Useful for NPC reskins to not have combine noises. Or just for fun.
- •
Implemented experimental 24-bit color support for Windows Dedicated Server console, and proper color support on Linux SRCDS
- •
Implemented HDR override for fog colors for 20th anniversary Half-Life 2 maps (Also available in Hammer for mappers)
- •
Added Master spawnflag to env_tonemap_controller
- •
Added SetMaxDensityLerpTo input & HDRColorScale key-value to env_fog_controller
- •
Implemented AttachToVehicle input for npc_fastzombie
- •
Added sv_maxvoicepacketsperframe console variable
- •
Enable "flammable" "no" prop interaction, to prevent props from igniting on explosion damage (for modellers at compile time)
- •
Added min_use_angle for func_button from CS:GO
- •
Added DisappearMinDist & DisappearMaxDist key values to func_lod (DisappearDist being deprecated and hidden, but still working)
- •
Added GetSpeed and SnapToStartPos to func_rotating entity
- •
Added AffectedByWind keyvalue to func_dustmotes entity
- •
Added trigger_playermovement auto walk and no jump spawnflags
- •
New localisation phrases in community.properties (Community Contribution)
- •
Added ip_steam console variable
- •
Added sv_usercmd_custom_random_seed console variable
- •
Added sv_showimpacts console variable
- •
Added radius support to env_wind
- •
color_correction entities now work correctly with fog_volume - Adds Master and Simulate clientside spawnflags
- •
Upgraded ColorCorrectionUI to CS:GO's version with ability to load saved presets
- •
Added Quick Switches to the console dialog, allowing easy usage of common console commands and variables for debugging purposes
- •
Added inputs to env_skypaint in Hammer for mapping
arrow_circle_up
Improvements
- •
Do not estimate velocity clientside since we network it for every entity anyway
- •
* Use networked velocity for entities that set it serverside
- •
* Physics entities such as props, vehicles, SENTS do not set their velocity, since its all handled by the physics engine, so it ends up not actually being networked
- •
Moved "SOLID_VPHYSICS static prop with no vphysics" warning to developer 1
- •
Made particle preview background slightly lighter (32,32,32)
- •
Set the default particle orientation in Particle Editor on creation
- •
Added particle material name to "unimplemented sprite renderer" warning (.pcf particles)
- •
Force Sandbox tool classnames to lowercase at all times to fix a bug in multiplayer where the client and server classname could have mismatching capitalization
- •
Applied potential filesystem optimization suggested by the community
- •
Micro optimization for SWEP think
- •
Optimize DListView_Line - Remove DListViewLabel's Think function since it does nothing in DListView_Line anyway
- •
Minor code quality & performance improvements to Toolgun Help, RenderTarget related Lua code, skypaint matproxy, ToolGun and Post Processing control panels, ents.FindByClassAndParent, removed deprecated calls to ControlPanel:AddControl, Workshop Mount VGUI, Sandbox hints, Removed unused JS dependencies in main menu - angular-ui, jquery-ui, jquery-color, AngularJS from 1.1.2 to 1.8.2, cleaner server list layout code & Better display on small screens (Community Contributions)
- •
Micro optimization for Entity.__index (Community Contribution)
- •
Micro optimizations for team library (Community Contribution)
- •
Potential micro optimizations in localization loading/parsing
- •
Store disabled workshop addon IDs as Uint64 instead of IDs turned to strings - should save some memory
- •
Clear CShadowDepthView to black instead of white - fixes reflective glass on certain maps having while glow with flashlight turned on
- •
Do not throttle loopback (local servers) connections when sending data from server to client
- •
Check allocated edict count before allocating more - this should prevent "ED_Alloc: no free edicts" crashes when spam spawning hundreds of entities per second
- •
Improved X-axis text inset handling with center alignment (for DButton when an icon is use)
- •
Change Hitbox 7 color from white to orange for the debugging console variable and HMLV
- •
Search for shaders in map file if none were found in the game folder
- •
Added "shaders/*.vcs" to BSP whitelist
- •
Updated screenspace_general shader with some CS:GO features
- •
* Removes $X360APPCHOOSER (Use $VertexColor)
- •
* Adds $VERTEXSHADER
- •
* Added most CS:GO parameters except for C4* and C5* parameters
- •
Enable sv_parallel_sendsnapshot by default
- •
Display a warning when async file read operation tries to read more bytes than there are in the file
- •
Display HTTP error when FastDL fails to download a file and if it's not a 404 error
- •
Made lua_run entity keyvalues case insensitive
- •
Call Entity:SetCreator on all Sandbox spawned entities, not just SENTs (Community Contribution)
- •
Filled in some GMod specific console variable descriptions that are defined in C++
- •
Added shader name to "failed to create shader" console error message
- •
Rework how LZMA decompression works for BSP files to be more reliable and less wasteful
- •
Added more useful info to Client=>Server and Server=>Client GMod specific net message ToStrings for debugging purposes (net_showmsg)
- •
Unhide sv_maxspeed console variable
- •
Do not read mapcycle.txt file from addons or mountable games
- •
Added weapon class name & entity index to "Weapon spawning in solid" console warning
- •
Exit SRCDS (with a message) if GSLT is invalid or expired (can still not provide one), instead of never connecting to Steam. This behavior is consistent with CS:GO. hide_server 1 can be used to hide your server from the server list.
- •
Added description for debug_dump console command and print more info about what it did when ran
- •
Rollermine uses two-pass render group when open instead of translucent, this makes it render better with SSAO pass (such as with Bokeh DOF)
- •
Allow Map I/O to convert integer/float parameters to strings automatically
- •
Unhide sv_hl2mp_weapon_respawn_time/sv_hl2mp_item_respawn_time
- •
Also made mp_weaponstay work for map spawned entities, by respawning them
- •
Update verbosity of "Out-of-range value" warnings
handyman
Fixed
- •
Fixed some minor memory leaks - These are mostly in developer features to do with KeyValues, not normal gameplay
- •
Initialize m_rgflCoordinateFrame on creation clientside - This fixes certain matrices being nulled out when they are not supposed to, such as when calculating prop_vehicle_choreo_generic look angles
- •
Allow loading PCF version 2 in -tools Particle Editor
- •
Fixed many, many potential crashes with the particle system
- •
Fixed missing materials with legacy Ash precipitation type
- •
Fixed 2 "Parent cvar in server.dll not allowed" warnings on client start up
- •
Do not print cc_lang = with developer 1
- •
Fixed "Not playing a local game" being printed on game start up
- •
Fixed some warnings on map load when Portal 1 or Half-Life Source are not mounted
- •
Fixed crashes with func_tank
- •
Fixed crash when ents.CreateClientProp is given an empty string
- •
Fixed logic_collision_pair and some other obscure entities not calling GM:EntityRemoved
- •
Remove NULL entities from Entity.Constraints table when associated constraints are removed
- •
* Fixes for tanktrain_ai
- •
* Fixed sound playback and updated default sounds to existing files
- •
* Added "Chase Target" key value
- •
* Added missing "Target Entity" input to the FGD
- •
* Fixed movement direction selection & movement speed
- •
* !player target will update to the closest player before every move
- •
* Change update rate while moving to 0.1s (from 0.5)
- •
Updated RPG viewmodel to use correct muzzle flash event and prevent console warning when firing
- •
Fixed a server crash exploit to do with malicious packets
- •
Fixed bone manipulations (scale, position) being transformed by how much the player moved on level transition
- •
Fixed which entity is the inflictor/weapon in CTakeDamageInfo when firing built-in C++ weapons, including when NPCs fire them, as well as trigger_WateryDeath.
- •
Fixed small potential memory leak with creating Lua bone followers
- •
Fixed a small memory leak in gamemode .txt file parsing
- •
Fixed a small memory leak with saving presets (presets library)
- •
Fixed "Bad SetLocalOrigin on gmod_hands" warnings (Community Contribution)
- •
Prevent .ani files from loading if they would crash the game i.e. if the .ani file is smaller than the model expects it to be
- •
Update jQuery version and reduce reliance on it in main menu, as well as lazy load images (Community Contribution)
- •
Do not crash with "bad inline model number", show a console warning instead
- •
Fixed bone manipulated entities' render bounding box being set to invalid sizes with certain models
- •
Fixed "Toggle" input on some triggers improperly toggling the entity
- •
Fixed console warning about missing material when opening Options menu
- •
Fixed max player speed not being set when trying to slow walk with +walk but slow walk is disabled via Player:SetCanWalk
- •
Do not unexpectedly reduce maximum health on dead entities
- •
Play act console command animations on the server as well (for hitboxes)
- •
Fixed a stack overflow in TextEntry scrolling
- •
Fixed a rare crash when net_showmsg console variable is in use
- •
"Fixed" an infinite loop in memory allocation by exiting the engine/tool with a nice message
- •
Prevent developer only messages about bone access not being allowed with util.DecalEx in multiplayer
- •
Fixed MP3s recaching 2 times in a row sometimes for no reason
- •
Fixed cache size not being able to exceed 65kb per item
- •
Make MP3s skip the ID3 data immediately on cache, not on first playback. This makes loading a bit slower per-file, but makes it so we don't need to cache upwards of 400KB of unused data per MP3 for playback without hanging the game
- •
Increased amount of cached data for MP3s to satiate initial burst of data access by BASS.DLL (from 16K to 96k) This was preventing asynchronous load of the entire file
- •
Fixed SWEP.ViewModelFlip making view model sway backwards
- •
Fixed scrollbar parent resizing not adjusting scrollbar grip position (Lua scrollbar panels)
- •
Fixed CRopeKeyframe having huge serverside bounds when not attached to anything, such as being the last entity in a series
- •
Fixed trigger_remove OnRemove output not working at all
- •
Made cmd console command not kick people (And hide it)
- •
Fixed .gma files being left open in some cases if they failed to load/parse
- •
Prevent potential crashes to do with traces on models
- •
Materials using the SpriteCard shader can now render correctly with render_sprite_trail particle renderer
- •
Mitigate invalid vehicle scripts causing server crashes
- •
Fixed player_squad NPC squad being overflown when spawning too many npc_alyx or npc_citizen entities
- •
Fixed spawnmenu NPC squads being overflown when spawning many NPCs in the same faction at once
- •
Fixed infinite loop with removing world decals
- •
Fixed input parameter type for prop_ragdoll's StartRagdollBoogie input
- •
Fixed out of bounds pose parameters sometimes getting garbage values
- •
Fixed a crash in trace code that could happen after a changelevel
remove_circle
Removed
- •
Removed scratchpad from game builds
- •
Removed bloodspray console command
- •
Removed some perforce VGUI panels from builds
- •
Removed some useless strings from garrysmod_english.txt
- •
Removed mat_surfaceid and vgui_drawtree_panelptr console commands/variables
- •
Removed unused resource/chromium/ folder
- •
Removed non existent commedit.dll from sdkenginetools.txt
- •
Removed cl_threaded_client_leaf_system console variable, which was doing nothing since 2016, except to mislead people
- •
Removed sv_autojump as it also does nothing besides misleading people
- •
Removed hack for Intel GPUs that disabled Shader Model 3 shaders
- •
Removed some clientside weapon stubs for non existent weapons
- •
Removed usage of DOFModeHack from Bokeh DOF
- •
Remove cl_customsounds as it no longer has an effect on anything