Garry's Mod Logo
Changes Header

Changes

What’s changed in Garry's Mod in each patch.

add_circle

Features

  • Add an option to disable the Karma system via the main menu "New Game" hosting (Community Contribution)
arrow_circle_up

Improvements

  • Updated localization files (Community Contribution)
  • Added FCVAR_NOTIFY to various ConVars (Community Contribution)
  • If voice drain is enabled, it will not be applied to admins anymore by default (Community Contribution)
  • Changed some text used in the main menu "New Game" section (Community Contribution)
  • Allow Innocents to pick-up dropped Detective hats by default (Community Contribution)
handyman

Fixed

  • Fixed inconsistency for default values in terrortown.txt (Community Contribution)
  • Fixed players sometimes being revealed as dead when they chat/voicechat right as they die again (Community Contribution)
add_circle

Features

  • Added trigger_teleport_relative entity
  • Added m_bBreakable to prop_door_rotating data description, so it can be accessed from Lua
  • Added ability to put background behind console notify text (that appears with developer 1) via con_bgalpha & con_border convars
  • Added asset usage counters in Hammer Model Picker
  • Added a bunch of new data to util.GetModelInfo
  • Added "Inflictor" field to Bullet structure
  • Added Panel:GetContentAlignment
arrow_circle_up

Improvements

  • Added gmod_cleanup and gmod_camera commands to keyboard options
  • Replaced "Copy to Clipboard" icon with a button for Problems, hopefully will be more obvious what the button is, so players are more encouraged to copy the errors and send them to workshop addon developers
  • Added icons to Quick Fix button in Problems menu
  • Added "Copy to clipboard" button to gui.OpenURL dialog, and add icons to other buttons in the same dialog
  • Increase max voice chat channels to 16 (from 5), allowing more players to voice chat simultaneously
  • Changed "Toggle" to "Toggle Key" for Muscle and Hoverball key input customization (Community Contribution)
  • Revamped Sandbox scoreboard player volume scroller, so it's more obvious that it exists and that you can scroll
  • Allowed mat_picmip (Texture Quality) below -1 in multiplayer
  • Added Alien Swarm map icons
  • Force load HDR map lighting if there is no SDR lighting shipped in the map file, to avoid map having no lighting at all
  • Group mountable games by install state (Community Contribution)
  • Changed default hostname from "Garry's Mod" to "My Garry's Mod Server"
  • Throw a warning when trying to create non-precached particles
  • Added 2 new options to console quick options - vcollide_wireframe & cl_particle_show_bbox
  • Update Label center alignment with an inset - Basically instead of being a minimum value for the X position of the text, the text is centered using the inset as the 0 position, always taking it into account. This is useful for buttons with icons, so the text always appears centered.
  • Certain Sandbox entity spawning global functions (used for spawnmenu) return the entities they create (Community Contribution)
  • resource.AddFile no longer adds .jpg files when used on .mdl files
  • Cache Dedicated Server Workshop addons and load the cached list when can't connect to Steam
  • Mention that sv_no_ain_files should be set before map load in its description
  • Do not output ANSI control characters into dedicated server console for color_white
  • Do not write variables at default values to config.cfg
  • Gracefully exit when encountering invalid SubRect materials, instead of exiting without a message
  • Updated debug_dump - sorting, vertical alignment, added game version, fixed some convars at default values still being written
  • Micro optimize team.NumPlayers (Community Contribution)
  • DButton.SizeToContents now sets the text inset (when using an icon) before sizing to contents
  • Implemented Panel.SizeToContentsX for DButton (Takes into account the icon)
  • Panel:PaintAt will only set Z-position if there are any 0 values on the sibling panels, to maintain order
handyman

Fixed

  • Fixed tonemap system not getting a new controller on map cleanup, resulting in map cleanups causing bloom to get brighter on some maps
  • Fixed sv_max_usercmd_move_magnitude breaking some mods, such as 3rd person mods
  • Improve player head angle (yaw) when in vehicles, fixes the neck snapping when looking backwards from left to right, fixes 90 degree offset in prisoner pod
  • Fixed white-on-white text color for pressed-in drop down menus, such as when right clicking entities
  • Fixed spawning NPCs with creator tool not randomizing weapons (Now fully respects the "NPC Weapon" setting in spawnmenu)
  • Fixed Crossbow sparks effect only playing for non local clients
  • Fixed Crossbow load glow appearing on view model (therefore in mid air) when using built-in third person mode
  • Fixed Crossbow not setting correct bolt glow skin when using certain addons, such as infinite ammo addons
  • Fixed shooting sand on gm_construct producing green particle effects. Now correctly produces sand-colored particle effects. Applies to all maps.
  • SMG1 ejects rifle shells, not pistol ones
  • Reset wind/sun render parameters on level load, so they are not transferred from one map to another within a play session
  • Fixed jiggle bones not functioning for serverside ragdolls (basically, for the ones spawned from spawn menu)
  • Fixed jiggle bones not scaling with model scaling (Biggify/Smallify options on NPCs for example)
  • Fixed jiggle bones behaving incorrectly when model scale is above or below 1
  • Fixed particle precipitation not precaching the particles when only PCF particle based precipitation types are on the map
  • Make Linux use the same console.log code path as Windows so that ANSI command sequences are not written to console.log on Linux Dedicated Server
  • Fixed Lua errors with weapon_base when NPCs try to use it
  • Fixed not being able to select autocomplete options for DTextEntry
  • Try to prevent infinite loops when firing bullets from GM:EntityTakeDamage
  • Fixed regression where Hammer Model Picker would not scroll to selected item after first opened
  • Fixed a server crash to do with removed NPCs in NPC squads
  • Fixed Bugbait and Gravity Gun reporting 0 as their Clip1/2
  • Make SLAM weapon consistent with Grenade weapon internally - Use primary ammo type instead of secondary ammo type, correctly report Clip1/2 to Lua (as -1 for both instead 3/1)
  • Fixed City Scanners creating console warnings when spawned from spawnmenu
  • Fixed crashes when SubRect materials are used on a map brush
  • Fixed a crash with NPCs doing scripted sequences
  • Fixed crashes to do with material's representative texture used for impact particles
  • Fixed missing model for a specific option for npc_citizen in Hammer
  • Added env_wind's SetWindDir input to FGD
  • Added Alpha input to func_precipitation in Hammer (FGD)
  • Fixed a potential Lua error with constraint library
  • Fixed close button not doing anything for +showvprof window
  • Fixed sound handling of func_movelinear, and fixed its behavior when parented
  • Potential crash fixes to do with map loading
  • Fixed a regression with "Rotation Yaw Flip Random" particle operator
  • Default "randomly_flip_direction" to 0 for "Rotation Random" particle operator
  • Prevent crashes with render.Capture
  • Fixed potential Lua error with Playermodel Selector
  • util.TableToJSON - Throw halting errors at all times (instead of non halting ones)
  • util.TableToJSON - Clear any parsed data before throwing Lua errors, because the Lua errors prevent destructors from running
  • Colors returned from C++ functions now have their metatables
  • Call GM:PlayerLeaveVehicle after the player leaves the vehicle, not during, to prevent stack overflows and players being stuck in no clip when exiting a vehicle.
remove_circle

Removed

  • Removed cl_showpluginmessages console variable and the associated system.
  • Removed test_entity_blocker concommand
  • Remove -usetcp command line option as it is broken anyway and has unknown purpose
add_circle

Features

  • Added `-noconclr` launch parameter to disable dedicated server console colors
  • Added some new entities to Hammer (FGD) that were missed from the main update
arrow_circle_up

Improvements

  • Made zoom_sensitivity_ratio save across sessions
  • Made PLAYER:AddCleanup server only (Community Contribution)
  • Micro optimization for how C++ retrieves entities from Lua
  • ContentIcon.Copy & SpawnIcon.Copy also copies the tooltip
handyman

Fixed

  • Fixed bone manipulations not working clientside if ever set serverside on the same entity (Regression)
  • Fixed regression with TTT team colors while spectating
  • Fixed a regressive server crash to do with keyvalues
  • Fixed some small memory leaks in dedicated server workshop handling
  • Partially implemented missing mat_ambient_light convars used by one of the newly added entities
  • Fixed Half-Life: Source shotgun right click pump sounds desync
  • Fixed ELF_KEEP_ON_RECREATE_ENTITIES sharing value with another flag, resulting in unexpected behavior
add_circle

Features

  • Added PhysObj:GetIndex
  • Added NPC:SetFOV, NPC:GetFOV (in degrees), NPC:IsInViewCone ( vector/entity )
  • Added Entity:AddSpawnFlags, Entity:RemoveSpawnFlags and Entity:SetSpawnFlags (Community Contribution)
  • Added MAX_EDICT_BITS global enum
  • Added NPC:GetLastPosition
  • Added NPC:GetMoveDelay
  • Added NPC:SetMoveDelay
  • Added physenv.GetPhysicsPaused
  • Added physenv.SetPhysicsPaused
  • Added ENTITY:TranslateNavGoal
  • Added sound.SetActorGender
  • Added viewid to render.GetViewSetup, can be used to detect water rendering passes
  • Added ENTITY:DoImpactEffect for ai and nextbot SENTs
  • Added CTakeDamageInfo:GetWeapon and CTakeDamageInfo:SetWeapon
  • Added Entity:Alive
  • Added math.IsNearlyEqual
  • Added HWBToColor (Community Contribution)
  • Added COLOR:ToHWB (Community Contribution)
  • Added COLOR:GetHue, COLOR:SetHue, COLOR:AddHue (Community Contribution)
  • Added COLOR:GetSaturation, COLOR:SetSaturation, COLOR:AddSaturation (Community Contribution)
  • Added COLOR:GetBrightness, COLOR:SetBrightness, COLOR:AddBrightness (Community Contribution)
  • Added COLOR:GetLightness, COLOR:SetLightness, COLOR:AddLightness (Community Contribution)
  • Added COLOR:GetWhiteness, COLOR:SetWhiteness, COLOR:AddWhiteness (Community Contribution)
  • Added COLOR:GetBlackness, COLOR:SetBlackness, COLOR:AddBlackness (Community Contribution)
  • Added 2nd argument to CompileFile - showError
  • Added util.RemoveDecalsAt
  • Added Player:ExitLadder
  • Added "owner" argument to WEAPON:OnDrop
  • Allow NPC list (list.Set) to set Author property (displayed in spawnmenu on hover tooltip)
  • Added drawviewer field to render.RenderView
  • Added ability to ship custom shaders in Workshop addons
  • Added NPC:GetHeadDirection and NPC:GetEyeDirection
  • Added Entity:SetNetworkVarsFromMapInput as a helper and a sister function to Entity:SetNetworkKeyValue
  • Added SANDBOX:SpawnmenuIconMenuOpen
  • ENT.Information support for tooltips in NPC spawn icons
arrow_circle_up

Improvements

  • Display a non halting error when teamID in Player:SetTeam would not network correctly
  • GM:ClientSignOnStateChanged is no longer called for HLTV clients
  • util.IsValidModel uses meshcount to determine useless models, instead of hardcoded path substrings, which is error prone
  • Do not IsValid the ident in hook.Add & hook.Remove - The check was added solely to print an error for invalid input types, but NULL entity is still an entity
  • Make Entity:IsOnFire return false instead of nil for non animated entities
  • Entity:FollowBone doesn't check the boneID argument if given a NULL entity, or no arguments at all
  • Cache gamemode table for gamemode.Call and hook.Run (Community Contribution)
  • engine.CloseServer now returns true if quit command was issued, also fixed it not working immediately on server start up
  • COLOR:SetUnpacked now type checks its inputs
  • Made certain Lua errors thrown from Lua-defined functions produce more useful stack traces
  • game.CleanUpMap deletes C_Hairball
  • Make file.Write and file.Append return success of file.Open used internally (Community Contribution)
  • Added Lua implementations of HSVToColor & HSLToColor for higher performance and ensuring their return value has the Color metatable (Community Contribution)
  • Allow comments and trailing commas in JSON parsing
  • Made util.TableToJSON output whole numbers without decimal point when encountering such whole Lua numbers
  • Made Player:LimitHit serverside only (it would error clientside)
  • Made file.Read return nil on failure instead of no value
  • HTTP calls the fail callback with -disablehttp
handyman

Fixed

  • Fixed not being able to StopSound generated sounds
  • Fixed clientside only entities being considered map created by Entity:CreatedByMap
  • Fixed DAdjustableModelPanel spazzing out when main menu is open (by ignoring mouse input)
  • gmsave.SaveMap now respects Entity.DoNotDuplicate fully
  • Improve JSON function compliance with the JSON specification
  • * util.TableToJSON - math.huge keys now become "Infinity" instead of "inf"
  • * util.JSONToTable - Handle nil in arrays, convert boolean looking keys ("true", "false") to booleans if this behavior is not disabled by the 3rd argument
  • Fixed DButton:SetConsoleCommand not accepting vararg (Community Contribution)
  • Fixed DTextEntry autocomplete menu not inheriting text entry's skin
  • Fixed GM:NeedsDepthPass causing NPCs to not render, and fixed it rendering ropes twice
  • Try to mitigate util.TableToJSON leaving junk behind on failure
  • Fixed ai.GetSquadMemberCount returning nothing if there is no squad with given name. Now returns 0.
  • Fixed team.GetColor retuning non copied default color for invalid team IDs
remove_circle

Removed

  • Removed last 3 parameters of engine.WriteSave which are now handled in-engine automatically
  • Added timedemo and related console variables/console commands to blocked console command list
  • Blocked the "showconsole" console command, and the tv_record console command clientside
add_circle

Features

  • Added Portal 2 Coop player spawn points
  • Added all missing Portal 2 map icons
  • Added visual placeholder entities for Portal 2 excursion funnel, Wheatley boss and npc_personality_core
  • Added Hacked and Harmless Rollermine variants to spawnmenu
  • Added Enemy Rebel NPC to the spawnmenu - This NPC is intended as an example for modders to have humanoid NPC reskins not produce combine noises
  • Added ability to copy Sandbox tool class names via right click context menu (Community Contribution)
  • Added new Bloom preset
  • Added mounting support for Klaus Veen's Treason at the request of its developer
  • Added mp_weaponrespawn
arrow_circle_up

Improvements

  • Bumped default value of sbox_maxconstraints to 2000 to account for larger dupes/saves
  • Made Sniper kills in "Alyx as sniper" sections in Half-Life 2 episodes appear as Alyx in the kill feed
  • Fixed mass-adjusted punt forces being applied to Mega Gravity Gun
  • Fixed Gravity Gun launching things too far due to a previous fix for spin_none physics interaction
  • Removed cheat flag from cl_wpn_sway_scale
  • Added a Player Model Selector button to spawnmenu
  • Added an ever increasing counter to poster file names to avoid name collisions
  • Allowed closecaptions in multiplayer with the closecaption console variable set to 1 (closecaption_mp for dedicated servers)
  • Updated Portal turret relationships to certain NPCs
  • Main menu news panel now has rounded corners to match the rest of the main menu styles (Community Contribution)
  • Do not penalize full servers in the ranking (Community Contribution)
  • Do not display effect rings with Gravity Gun equipped (Community Contribution)
  • Adjusted Sandbox weapon, NPC icons, etc. to scroll text if it is too long, for cases where translations take too much space
  • Replaced "::" buttons with proper icons in Spawnmenu drawers and other places
  • Spawnmenu drawers scale the category list - so that when the drawers are open, the bottom categories are not hidden behind the drawer (NPCs and Spawnlists tabs)
  • Loading screen gets map information faster when hosting a game
  • Update/render loading screen when running stringtable callbacks, which would normally freeze for some period of time (Community Contribution)
  • Port original explosion ear ringing behavior from Half-Life 2 to Lua - produces less ear ringing in general
  • Added icons to drag'n'drop right click menu (i.e. when drag and dropping spawnmenu icons with right click)
  • Added RPG Launcher as default weapon for Rebels in the spawnmenu (Community Contribution)
  • Updated some Half-Life 2 campaign map icons to show more recognizable areas, and be less dark.
  • Fixed water material in the first map of Half-Life 2: Episode 2 appearing different from the original game
handyman

Fixed

  • Fixed some props in Portal 2 appearing rainbow-y
  • Fixed "missing sound common/null.wav" when throwing grenades
  • Fixed Mega Gravity Gun not being able to pick up flesh
  • Fixed base Lua SWEPs not using correct localization strings
  • Fixed unicode addon name display for Workshop Addons when they are downloaded while joining servers
  • Fixed player death ragdoll forces always being applied to center - now applies forces to the body part that was shot
  • Fixed NPC icons in spawnmenu search not having weapon selection on right click
  • Fixed strider stomp attack creating invisible ragdoll with Keep Ragdolls
  • Fixed Portal Rocket Turret not updating its facing angles with no target
  • Fixed right-side padding of the gamemode list items in main menu to be consistent with other padding (Community Contribution)
  • Fixed inconsistent margins on language list and Start Game button (Community Contribution)
  • Fixed camera tool entity losing its key binds on level transition, leaving the player potentially stuck in the camera view
  • Fixed singleplayer toolgun ghost from saving in map saves as a prop
  • Fixed more missing spawnmenu localizations (entity categories and others) (Community Contribution)
  • Implemented localization for built-in undo actions
  • Implemented ammo name localization for built-in ammo types (shown when picked up)
  • Localization support for crosshair customization (Community Contribution)
  • Localized Balloon and Dynamite world tool tips (Community Contribution)
  • Fixed the game not downloading maps from servers if compressed version exists locally, but wasn't extracted/was corrupted
  • Prevent Keyboard options tab contents from being loaded from addons/mountable games
  • Half-Life's Geiger counter only reacts to enabled trigger_hurt entities
  • Fixed Barney missing animations in his Half-Life 2: Episode 1 appearances
  • Fixed crashes when using SuperDOF with multicore rendering
  • Fixed certain languages not working at all on Linux due to filename capitalization issues
  • Fixed a crash when spawning certain vehicles with malformed vehicle scripts
  • Fixed tool sorting not being alphabetical when some tools are missing localization strings (Community Contribution)
  • Fixes towards MP3s hanging the game on first playback
  • Ported some exploit fixes from Team Fortress 2 SDK
  • Fixed .357 Magnum reload missing its shell eject effect
  • Fixed Bugbait not having viewmodel bob when sprinting
  • Fixed missing AR2 reload sound in 3rd person
  • Fixed missing Pistol brass eject effects for players in 3rd person
  • Fixed missing holdtype & player animations for Bugbait in 3rd person
  • Fixed missing holdtype animations for Citizen Suitcase, Citizen Package, Annabelle and Alyxgun weapons
  • Fixed npc_zombie not using sk_zombie_dmg_both_slash console variable at all
  • Fixed inaccessible area on ep2_outland_10 due to model name collision
  • Fixed Half-Life 2: Episode 2 Fast Zombie on car jumpscare sequence
  • Fixed missing animation on hula doll in Half-Life 2: Episode 2's final map
  • Fixed Lua errors when damage is dealt without an attacker
  • Fixed being able to reset Frag Grenade timer after it exploded, prevent it from being removed, and make it explode again while invisible
  • Added missing icons for new Team Fortress 2 maps
  • Fixes a crash exploit with the Balloon tool
  • Fixed missing underwater materials causing massive FPS loss when under water
remove_circle

Removed

  • Do not apply spawnmenu names to map-spawned NPCs in kill feed - it was too error prone
  • Removed player jingles/impulse 202