Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • -allowlocalhttp launch option for servers
  • Extra messages when failing to write map.pack to disk and more verbose warnings when failing to create fonts
arrow_circle_up

Improvements

  • Disable "EmitSound: Whatever out of bounds" and just clamp the values instead of not playing the sound
  • Try to reduce amount of "failed to create font" warnings from badly made addons
  • Switched Steam Workshop support completely to ISteamUGC
handyman

Fixed

  • Non halting Lua errors no longer crash the game in menu state
  • Fixed first font ranges (starting with 0) never working for Lua created fonts
  • Fixed gmad.exe not being able to create files over 500MB
  • Further improved performance with clientside DTVar callbacks
remove_circle

Removed

  • Get rid of menu_reload altogether, since it was disabled ages ago
add_circle

Features

  • Added Entity.GetBrushSurfaces for simple brushes
  • DListView.GetSelectedLine now also returns the actual line panel, not just an index
  • Added steamworks.DownloadUGC( workshopID, fCallback ) - replaces steamworks.Download for game.MountGMA needs (also is also used for dupes/saves/demos)
  • Added cam.GetModelMatrix
  • Added second argument (optional, defaults to false) to cam.PushModelMatrix which multiplies given matrix with the currently active matrix
  • Added Entity.GetNWVarTable()
arrow_circle_up

Improvements

  • Entity arguments now properly error on type mismatch
  • Change DImageButton default preview image to be different from DImage
  • Get rid of steamworks.VoteInfo usage in base game and make it alias of steamworks.FileInfo
  • steamworks.FileInfo now returns the vote info as well (same key names as VoteInfo)
  • Increased Entity.GetMaterials limit to 256 (from 127) for certain maps have a lot of materials and 128 is not enough
  • Added "visibility" key to steamworks.FileInfo, and replaced title and description with "Hidden addon" if they are empty
  • Added stack trace to the rest of non-halting errors produced by Lua functions
  • Upgraded steamworks.Publish to support ISteamUGC and Workshop item updating
  • Apply special TextEntry hack for Panel.GetValue from Panel.GetText to get rid of the 8k char limit
  • steamworks.FileInfo's "children" key uses numbers as keys, not strings
handyman

Fixed

  • util.TableToJSON now properly writes boolean keys
  • Bootil's JSON functions support writing NaNs and Infinity (as nulls), as well as reading nulls (as empty strings) which all now also applies to GMod's JSON functions
add_circle

Features

  • Added Left 4 Dead 2 & other missing map icons
  • Added ability to remove favorite servers from the Favorites list
  • Restored HEV Suit oxygen, sprint and flashlight systems from Half-Life 2 (Disabled by default via gmod_suit console variable)
  • You can now ignite "simple_physics_prop" entity via Ignite property
  • The initial addon mounting in main menu now displays a message that we are doing something
  • Spawnmenu will automatically open UI of currently selected toolmode on when joining a server or starting a new game
  • Added cl_enable_loadingurl, which allows players to disable custom loading screens in the Options menu (#1265) (Community Contribution)
  • Readded point_flesh_effect_target entity, fixing the Half-Life 2 Episode 2 flesh effect on Alyx in "This Vortal Coil" chapter
arrow_circle_up

Improvements

  • Changed default binding for Alt from "Last Weapon" to "Slow walk" (#1559) (Community Contribution)
  • Restored non HDR depth buffer range to 192 from 8192, which fixes particle systems looking weird, clipping through ground
  • Adjusted contrast on disabled checkboxes and combo boxes
  • Updated Ammo HUD to allow secondary ammo to fit at least 3 digits as opposed to the original 1.5
  • Garry's Mod no longer automatically unsubscribes from banned Steam Workshop addons
  • The game now automatically enables the Workshop addon the player unsubscribed from or subscribed to, to reduce cases of addons not working after installing them
  • Improvements to NPCs using the Half-Life 2 crossbow
  • Floating .gma addons do not show rate and install buttons and cannot be disabled
  • Changes to allow larger maps to not crash with "Engine Hunk Overflow" error
  • Fixed non English player nicknames being cutoff
  • Increased map displacement limit to 16384, from 5500, allowing certain CS:GO maps to be loaded
handyman

Fixed

  • Spawnicon editor loads bodygroups from picked models
  • Fixed Lua errors with certain symbol inputs in Sandbox search fields
  • Fixed some weapons (RPG, AR2, HL1 357, Glock, Shotgun) spamming sounds underwater while holding Right Mouse Button
  • Fixed brush ladders and Physics Gun's +use allowing you to fly into air indefinitely
  • Restored func_traintrain's control HUD (Can be disabled by gamemodes via HUDShouldDraw)
  • Fixed some CS:GO maps having terrible looking water and black skyboxes
  • Fixed static props and func_lod's having broken fade distances on CS:GO and Left 4 Dead 1 maps
  • Fixed an issue which caused weapons to go invisible under very specific circumstances
  • Fixed certain decals not receiving shadows from projected textures (lamp tool, flashlights)
  • Player's health and armor are no longer reset on level transition
  • Fixed sun glow sprite disappearing when looking at it
  • Fixed undoing specific history element breaking Undo logic for newly spawned entities
  • Fixed duplicator tool save icons not showing skins and bodygroups
  • Fixed Lamp and Light Tool's glow as well as other mod functionality (util.PixelVisible) not drawing when viewed through a reflective/refractive glass (such as the mirror on gm_construct)
  • Fixed CS:S shells not playing sounds
  • Fixed script_intro entity not working properly in multiplayer after playing for a while
  • Fixed weapon's primary and secondary clips only networking first 8 bits, "limiting" the value in multiplayer to 255
remove_circle

Removed

  • Disabled hull trace surface property (Shotguns applying wrong decals on glass) fix as it caused crashes in certain cases
add_circle

Features

  • Added support for dynamic Render To Texture shadow angles
  • Added support for _castentityshadow in Hammer
  • Added SetShadowsFromLocalLightsEnabled and enableshadowsfromlocallights for shadowcontrol entity
  • Added $treesway support for UnlitGeneric shader
  • You can now drag'n'drop .vmf files onto Hammer to open them
arrow_circle_up

Improvements

  • Some minor code cleanups (Pull Requests #1606 #1603 #1602 #1504) (Community Contribution)
  • Console variables will try to be set to "3" instead of "3.000000"
  • Changed the toolgun RenderTarget to use render.Push/PopRenderTarget() to show the proper way of doing Render To Texture
  • The game no longer tries to delete Steam Workshop files outside of Garry's Mod's directory (ISteamUGC item files)
  • Moved Server Workshop Addons to the ISteamUGC system
  • Dedicated servers now actually mount ISteamUGC addons
handyman

Fixed

  • Clientside only physics scrape sounds (for example from prop gibs) play properly at the entity location, not at world origin
  • Fixed CTransitionTable::OverrideBlendSeparateAlpha and mat_fillrate
  • debug_dump now handles FCVAR_NEVER_AS_STRING convars properly
  • EFL_NO_DAMAGE_FORCES flag now also works on players
  • Taunt cam hides quick info HUD as expected
  • env_explosion's sparks now work as intended
  • Fixed reflections on brushes in Hammer having the checkerboard pattern
  • Fixed a few crashes with NULL physics objects in multi-physics object entities
remove_circle

Removed

  • Got rid of the "Can't init {classname}" console message as it is a duplicate warning of "Attempted to create an unknown entity {classname}"
  • Cleaned up unused argument of Player.PhysgunUnfreeze() (#1604) (Community Contribution)
add_circle

Features

  • Default SWEP:ShootBullet now has 3 optional arguments - ammo_type, force, tracer (#1502) (Community Contribution)
  • Added ITexture.IsErrorTexture
  • Added support for DTVars change callbacks on client
  • Added LuaLocomotion:Set/GetGravity()
  • Added COLOR.Unpack COLOR.SetUnpacked and COLOR.ToTable (#996) (Community Contribution)
  • Added Vector.Unpack, Vector.SetUnpacked and Vector.ToTable
  • Added Angle.Unpack, Angle.SetUnpacked and Angle.ToTable
  • Added VMatrix.Unpack and VMatrix.SetUnpacked
  • Added Entity.Get/SetLightingOriginEntity
  • Added VMatrix.Zero and IsZero
  • Added HSL color functions - HSLToColor, ColorToHSL and COLOR:ToHSL()
  • All DProperties default data type rows, DNumberScratch, DNumSlider and DSlider now support Set/IsEnabled
  • Added optional min and max arguments to Create(Client)ConVar
  • Added ConVar.GetFlags, IsFlagSet, GetMin and GetMax
  • Added Convar.Revert, works only on Lua created ConVars
  • Added Player.GetPreviousWeapon()
  • Added 'ignorez' to Material() function
  • Added sql.IndexExists() (#1105) (Community Contribution)
  • Added Entity.UpdateShadow()
  • Added ENT_ANIM.GetShadowCastDirection() hook
  • Added Player.Set/GetSuitPower
arrow_circle_up

Improvements

  • Moved GM:PlayerShouldTakeDamage definition to init.lua from shared.lua (#1600) (Community Contribution)
  • GM:GravGunPunt is no longer called for NULL entities on client
  • DTooltip will now remove its contents (if appropriate) when its target panel is removed
  • Entity.SetPreventTransmit can now override transmit state of TRANSMIT_ALWAYS
  • Updated Stack (Lua object) implementation (#1566) (Community Contribution)
  • SWEP.TranslateFOV is now shared
  • string.NiceSize calculates MBs not MiBs, etc like the suffix suggests (#1615) (Community Contribution)
  • Second argument of Player.SetFOV is now optional
  • Tightened IsEntityPositionReasonable bounds to avoid crashes
  • Prevented usage of PhysicsInit* and PhysicsDestroy functions on the world entity and ragdolls to avoid crashes
handyman

Fixed

  • DListView_Column.SetFixedWidth with negative values no longer freezes the game
  • Fixed Entity.MapCreatedID() and Entity.CreatedByMap() being set a bit too late for GM:EntityKeyValue
  • Some Derma functions no longer pollute global table (#1598) (Community Contribution)
  • Weapon inheritance doesn't error when baseclass weapon has non table values (#1586) (Community Contribution)
  • Fixed Player.Give's second argument soft-breaking non clip using weapons such as built in frag grenades
  • Fixed Entity.Activate on a SetModelScaled ragdolls causing a crash (It still won't scale ragdolls)
  • Entity.PhysicsDestroy on ragdolls no longer crashes the game
  • Fixed ConVars with FCVAR_NEVER_AS_STRING not firing ConVar change callbacks
  • Fixed SWEP.TranslateFOV not opening area portals
  • Player.GetFOV now returns a float on server to match clientside behavior
  • Managed Lua ConVars save properly with FCVAR_NEVER_AS_STRING flag