Garry's Mod Logo
Changes Header

Changes

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

handyman

Fixed

  • Fixed Hammer Editor crashing when browsing for models (Regression)
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