Garry's Mod Logo
add_circle

Features

  • Added screenspace_general_8tex shader
  • Added SurfaceName to trace concommand
  • Added a few new features to prop_vehicle_jeep - DisableRadarDetectEnemies, EnableHazardLights, DisableHazardLights, ReleaseBusterFromCargo Hammer inputs, NoHazardLights key value (Hammer support included)
  • Added new spawnflag for func_tracktrain - GoldSrc rotation
  • Build and ship mksheet.exe (for particle sprite sheets)
  • Added EnableSpotlight Input to npc_cscanner
  • Restored sv_showhitboxes convar
  • Added "damage" keyvalue to crossbow_bolt entity
  • Implemented STUDIOHDR_FLAGS_VERT_ANIM_FIXED_POINT_SCALE flag support for model flexes
  • Implemented $pointsamplemagfilter shader parameter for LightmappedGeneric shader
  • Implemented CHAR_DIRSTEREO for sounds
  • Added a toggle for r_DrawModelLightOrigin convar to console quick actions (extras button)
  • Added "Allow Roll" spawnflag to func_tracktrain
  • Network m_bLocked state for prop doors to clients
  • Network m_bLocked state for vehicles and prisoner pod to clients
  • Network prop door m_eDoorState to clients
arrow_circle_up

Improvements

  • Improved maximum possible network speed
  • Improved game smoothness at high uptime by switching timing logic to double precision
  • Increased FOV networking bits from 8 to 16 to maintain precision
  • Network SWEP:CallOnClient and GM:HUDWeaponPickedUp using EHANDLEs for reliability
  • Reduced network bit counts of various networked properties from 32bit to as little as needed
  • Switched BroadcastLua/SendLua features to the net message system allow longer than 256 characters inputs
  • Potential Sandbox gamemode memory usage improvements (especially for dedicated servers)
  • Made "ProcessServerInfo failed" kick show a popup instead of just booting to menu
  • Ported CS:GO's TexturePacker and FontTextureCache - Fixes a weird font corruption issue
  • Updated FastLZ library
  • Updated BASS.DLL to 2.4.18.3
  • Updated vphysics.dll to TF2-double precision version (Windows & Linux only)
  • Fixed PhysGun/GravityGun resetting buoyancy on picked up props (Windows & Linux only)
  • Bumped mp_decals default to 1024 (from 200), added description
  • Minor optimizations for new game and server list menu screens (Community Contribution)
  • Try to occasionally compact pending sounds vector after they are sent out, to reduce runtime memory usage, instead of waiting for player to disconnect
  • Clear m_CompensatedEntities of invalid entities every 60 seconds to prevent server crash in highly unlikely scenario of nobody shooting a gun for a very long while in the server
  • Applied proposed SV_PackEntity optimization (Community Contribution)
  • Clicking disabled DMenuOption no longer closes all menus
  • Disabled DMenuOption no longer react to hover events (visually)
  • Loading screen data now respects sv_visiblemaxplayers
  • Send local player exclusive data of weapons to spectators as well, such as current bullet count
  • Do not forcibly crash the server if player_connect event failed to create - now prints a warning and continues on
  • Added texture name to ShaderAPIDX8::CreateD3DTexture warning, and add the likely fail reason to help modders fix the issue
  • Changed "gamemode is nil" crashes into Lua errors
  • Made env_embers compile with parenting support, so its particles follow the parent
  • Switched Dynamite entity to not use timer.Simple (exploit fix) and clamp delay to 3600
  • Make particle COLLISION_MODE_INITIAL_TRACE_DOWN actually trace down (Z axis) instead of tracing on the X axis
  • sv_showimpacts convar now draws server hitboxes in blue color
  • Added description and min/max to engine_no_focus_sleep convar
  • Alias prop_portal_stats_display to prop_dynamic - fixes some Portal 1 maps missing elevators
  • Alias func_simpleladder to use func_brush - fixes Left 4 Dead ladders not working
  • Made light entities non-networked to make room for more of other networked entities. No functionality loss.
  • Potential server memory usage optimization when many players are present on the server
  • Reload soundscripts when games are mounted - fixes no voice lines playing in Half-Life 2 episodic maps when the game was started without HL2 mounted, and then HL2 is mounted.
  • Clamp bot player count in the server browser, and apply all clamping to serverlist.Query
  • Force lowercase filenames for CUtlFilenameSymbolTable on non windows platforms as well, should help maps on Linux (TF2 SDK Community Contribution)
  • Made cl_showhitboxes 2 show ONLY player hitboxes
  • Removed 12 character cap for address of outgoing packets via net_showudp convar
  • Clear _rt_Camera texture to black on disconnect
  • Clear water reflection/refraction textures when unused (such as when out of map bounds, or when disabling either one live)
  • Added some invalid handle checks to shadow rendering to prevent crashes
  • Added some sanity checks to map loading to prevent crashing
  • Replaced the while loop from DModelPanel render with surface.GetScissorRect
  • Allow solid triggers to touch non-solid triggers, allowing loose weapons and ammo entities to touch remove/teleport triggers, etc.
  • Unhide r_particle_timescale convar
  • r_radiosity now defaults to 4 again, to hopefully improve prop lighting on all maps
  • weapon_fists now sets damage position (Community Contribution)
  • Made closedcaption fonts anti-aliased (Community Contribution)
  • Stop CSoundPatches on entity removal to stop looping sounds never stopping for removed entities
  • Prevent CSoundPatches from playing when they have invalid/removed entities associated with them
  • Applied some clientleafsystem invalid index checks from TF2 SDK
  • Applied some bounds validations in shader API
  • Use actual model scale for jiggle bone scaling - It was calculating the scale from bone orientation before (??) which was causing oscillations on some models when unscaled
  • NPC spawning entities (npc_template_maker) will now cleanup half-spawned non NPC entities
  • Slightly improved error handling for saving JPG/PNG files (spawnicons)
  • Simplify how we get Steam APIs to hopefully prevent crashes
  • Added virtual destructor to ILuaThreadedCall for binary modules
  • Updated UnlitTwoTexture shader to CS:GO version - Includes support for TRANSLUCENT shader combo and BEACHFOAM material parameter from CS:GO
  • Reject more invalid Water shader combos (with console messges)
  • Fixed fallback skybox texture trying to use a non-existent texture
  • Improved performance of scaling physics objects (Community Contribution)
  • Paths starting with slashes are now considered invalid
  • Implemented batched overlay rendering support for better map decal performance
  • r_staticpropinfo 5 now shows static prop bounds
  • Bumped maximum RenderData size to 16MB (from 4.4 MB). This is a bandaid fix for many skinned meshes existing on screen at once causing crashes (on x86-64)
  • Make "Unable to load module X" crash popup give a reason on Windows
  • Added VPROF scope to IsPhysicsObjectValid
  • Removed VPROF scope from LuaInterface::GetType
  • Show end of the URL in HTML panel console messages
  • Added some self checks in game client launcher
  • Do not precache AR2 ball materials until used, they can now also unload on map change
  • Do not forcibly precache muzzleflash materials that are not even used
  • Do not precache some Half-Life Source weapon assets
  • Many, many smaller internal cleanups and fixes
handyman

Fixed

  • Dedicated server workshop system now loads the cache (overwriting) if ANY of the server collections fail to be retrieved.
  • Fixed retry logic for dedicated server workshop collection info polling
  • Fixed multi-bone static prop models flashing across the map randomly
  • Fixed health/maxhealth not networking in singleplayer for Nextbots and NPCs
  • Fixed env_wind and shooting causing infinite looping at high CurTime
  • Fixed crashes (on game exit?) to do with HTML panels (CEF)
  • Improve TWOPASS model detection & make alpha-tested materials be considered opaque
  • (Sub)Material overrides now affect depth passes
  • Fixed rapidly loading models (like from dupes) affecting model's translucency flags for the rest of the session
  • Prop Spawn effect no longer breaks depth pass
  • Do not draw effect rings in the Depth Pass (Community Contribution)
  • "Fixed" certain built-in weapons rendering effects in opaque pass
  • Remove forced RENDERMODE_TRANSCOLOR from Balloon entity, so it gets correct render group and renders in the depth pass
  • Fixed entities with material overrides being in the wrong render group if the previous frame changed the material's opacity
  • Fixed an infinite loop crash with Inverse Kinematics on certain models
  • Fixed potential crashes with malformed models
  • Fixed net_graph lerp value precision (TF2 SDK Community Contribution)
  • Internal fixes for VGUI build mode and TextImage::GetText potential crashes (TF2 SDK Community Contribution)
  • Scaled physics props now properly work with Source Engine saves (TF2 SDK Community Contribution)
  • Fixed dynamic shadows poking through thin surfaces (walls) (TF2 SDK Community Contribution)
  • Fixed potential crashes with some map loading functions
  • Fixed a crash in the particle system when querying hitboxes of brush models
  • Fixed VOX system's map id replacing not working at all, causing certain NPC speech sounds to never play
  • Fixed severe performance loss when many team no-collided players stand in the same spot (Make use of NOTEAMCOLLIDE in serverside ShouldCollide)
  • Fixed Player:ScreenFade fade times being truncated unexpectedly when set to higher values
  • Fixed networking of ammo types for weapons
  • Prevent infinite loops in map logic system - when encountering over 100 inputs per tick, delay inputs until next tick
  • Fixed status console command trying to use non existent convars
  • Fixed spawnicons not rendering when always returning true in GM:RenderScene
  • Fixed crashes to do with flexes on NPC models
  • Fixed a crash with CrossbowLoad effect
  • Fixed a typo in nags_alyx.txt, which caused invalid scene files attempting to be precached
  • Handle potential mesh related crash issues (Out of bounds array access)
  • Fixed a crash when running "+showbudget" on SRCDS
  • Jalopy no longer spawns a trigger_vehicle_cargo entity at all times. Instead, spawn the entity only when asked to, i.e. CargoVisible key value is set before Entity.Spawn is called (maps), or SetCargoHopperVisibility input is used on the car. This input can now also be used to properly disable the functionality by doing SetCargoHopperVisibility 0. This means that Sandbox Jalopy no longer uses 2 edicts, and will not be able to hold a magnusson device in the invisible holder (unless explicitly enabled beforehand)
  • Fixed numerous potential crash issues
  • Don't reset per-player Sandbox item counts on serverside Lua Refresh of Sandbox-derived gamemodes (Community Contribution)
  • Added fallback material sprites/flare6 for the env_funnel entity, so its not missing material with no games mounted
  • Fixed an exploit that allowed spamming player_pickup entities on the server that would be never normally cleaned up
  • Fixed crashes with certain material proxies when used on static props
  • Fixed static props with material proxies flip flopping render groups, causing visual flickering
  • func_movelinear now properly supports changing parents via SetParent input - Fixes a bug on ep1_c17_01 with one of the doors
  • Fixed serverside player hitboxes in vehicles when the player is at odd angles
  • Fixed some player animation/hitbox client/server desync for vehicle animations (steering, rollercoaster) and the "Ear grab" animation
  • Fixed a Lua error due to ErrorNoHaltWithStack not being declared in saverestore library, and make the library only use that function to help pinpoint erroring addons
  • Fixed Lua errors when manually running internal concommands dupe/save_publish, and an accidental Lua global variable in DModelPanel (Community Contributions)
  • Fixed potential crash issues with the dropship NPC, headcrab canisters entity and the detail object system
  • Fixed Half-Life: Source Gauss Gun complaining about out of bounds values on the effects it creates
  • Fixed a crash in CVoiceGameMgr::ClientConnected due to binary module usage
  • Fixed file list concommand autocomplete (such as for load concommand) searching mounted game content
  • Send replicated convars in batches of 128 on server join - fixes an overflow/network channel corruption issue on server join when the server tries to send over 255 replicated convars to the client.
  • Fixed leaks with CProceduralTexturePanel - fixes color picker preview in particle editor breaking after a few uses
  • Fixed initial angle snap for thirdperson camera (Community Contribution, TF2 SDK)
  • Make flDeadtime in prediction code use correct data type, so old prediction entries are not prematurely removed when close to max sv_unlag time (Community Contribution)
  • Fixed color mismatch between cl_showhitboxes and sv_showhitboxes
  • Fixed multiple crashes with HLTV
  • Fixed a crash when trying to load weird/invalid VTX model files (From Back Mesa Blue Shift mod?)
  • Fixed crashes where Alyx is trying to enter a removed Jalopy vehicle (Also makes Alyx cancel trying to enter the vehicle if it is removed while she is running to it)
  • Restored Steam Peer-to-Peer functionality on Linux dedicated servers
  • Fixed a crash when context menu driving func_button entities in multiplayer
  • Fixed potential crash issue with rope rendering
  • Fixed missing CloseCaption_Small font
  • Implemented vendor specific shadow depth format test for Intel GPUs (fixes flashlight not working)
  • Fixed crashes with weird .phy model files
  • Do not check toolmode_allow_* convars for options in the Utilities spawnmenu section
  • Fixed a number of crashes with some specific entities on spawn (when misusing them)
  • Implemented more model data validations to prevent crashes
  • Move where model scale limits are enforced to prevent model scale related crashes from map logic
  • Fixed prop_vehicle_jeep's CreateLinkController input leaking entities if misused (called 2 or more times)
  • Fixed a number of console commands crashing due to missing player when used on dedicated servers (For example prop_physics_create)
  • Fixed a NPE crash with network transmission check
  • Fixed decal related crashes with static props
  • Fixed Physgun glow rendering in buildcubemaps and when the player is invisible in 3rd person
  • Optimise menu digest scheduling (Community Contribution)
  • vgui_slideshow_display refuses to scan invalid folders for slides, improving performance when misused
  • Rebuild ambient cube indexes for when there are >65536 of them in a map - fixes large maps having bad prop lighting
  • Do not assign client-only color_correction entities serverside - this fixes map cleanups applying color correction that is not present when just starting the map
  • Changed console messages from the buddha command to be sent to client console like expected, instead of the server console previously
  • Fixed a NPE crash with trigger_tonemap on map cleanup while a player is inside the trigger
  • Fixed trigger_weapon_strip preventing weapon pickup indefinitely if removed while player is inside the trigger
  • Fixed effects of trigger_playermovement sticking when removed with a player inside the trigger
  • Static prop scale now applies to static prop lighting origin
  • Added models/*.ani to server download whitelist
  • Fixed drone clips being considered water on CS:GO dangerzone maps
  • Fixed bugbait effects crashing in a certain scenario
  • Fixed rare crashes with Entity:FireBullets in a specific scenario and hitting nothing
  • Fixed $treeswaystatic parameter not being copied to DepthWrite shader instances
  • Fixed multiple crashes with certain entities when server is at entity limit, such as dropships carrying striders
  • Applied mitigation for server DoS exploit with memory allocating in networking
  • Fixed crashes when trying to create physics objects too soon
  • Fixed infinite loops in model animation code with malformed models
  • Fixed some models with jigglebones becoming invisible randomly (Community Contribution, TF2 SDK)
  • Potentially fixed rarely getting notifications in chat for already unlocked achievements
  • Fixed Player:Lock and server spawns causing drowning noise
  • Fixed alpha-tested brushes not rendering in SSAO pass
  • Fixed warnings about "two path IDs" during loading engine saves
remove_circle

Removed

  • Removed r_norefresh, CRender::m_frameStartTime, duplicate definition for mat_depthbias_normal
  • Removed clientside part of prop_vehicle_cannon from builds (Serverside part was never in GMod)
  • Disabled all unused FreeImage plugins
  • Removed "scripts/game.txt" (doesn't seem to be used by the game)
  • Removed unused showhitlocation convar
  • Removed r_maxdlights convar as it is already set to its max value anyway
  • Removed ZLib and XZip libraries from GMod, since they are unused by the game
  • Removed unused HUD/GUI elements from client builds
  • Removed CRC calculation for game_sounds_manifest.txt loading, since the CRC is never used
  • Removed the entire GameStats(Uploader) system - It's never used by anything
  • Removed Language system from dedicated server builds (since it is unused there)
  • Removed particle_test* convars/concommands
  • Removed simple_bot entity (and simple_bot_add concommand)
  • Removed hunter_shoot_flechette concommand
  • Removed fadein and fadeout console commands
  • Removed most impulse commands - all of these are either useless or do nothing, or are replaced by Sandbox features. (impulse 101 continues to work)
  • Removed collision_test, kdtree_test, voxeltree_view, voxeltree_playerview, voxeltree_box, voxeltree_sphere console commands
  • Removed drawcross, drawline, cast_ray, cast_hull, test_dispatcheffect console commands
  • Removed hidden "killtarget" concommand
  • Removed a lot of unused internal fields, potentially improving memory usage
  • Removed various unused networked fields, saving on network bandwidth
  • Logic_playerproxy - removed defunct SetLocatorTargetEntity input
  • Removed remaining CSteamAPIContext references to enable updating Steamworks SDK to latest versions in the future
  • Removed lua_matproxy_nobindmat convar, Lua matproxies no longer push thousands of material objects to Lua
  • Removed now unused autoaim_max_deflect convar
  • Removed ent_autoaim concommand
  • Removed the unused, never working player Hint system