Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • •
    Added an option to show unuseful materials in Hammer's texture browser, which includes: player logo decals, vertexlitgeneric materials, hud/vgui/particle folders. These materials are now hidden by default.
  • •
    Added trigger_catapult entity from Team Fortress 2
arrow_circle_up

Improvements

  • •
    ErrorNoHalt/Error will now display a stack trace in Problems panel
  • •
    include errors now have a stack trace and appear in Problems menu
  • •
    Disallow "Shadow" shader to be used as rope material to prevent crashes/graphical glitches
  • •
    Bump MAX_LUA_FILES to 32k for single player only
  • •
    Add probable cause to the "Failed to lock vertex buffer" message so users can more easily self diagnose
  • •
    Bump MAXSTUDIOANIMS to 3k, MAXSTUDIOSEQUENCES to 2k (from 2k, and 1.5k respectively)
  • •
    Added model name & position to VRAD's "unexpected strips found" error to help debug which static props cause the issue
  • •
    Fixed material name not appearing in "Warning in .VMT file .. " and "Error in .VMT file: error parsing vector element..." warnings
  • •
    Improved loading process to do with Lua files so they are not sometimes redownloaded every time, also makes accessing files from Lua cache potentially faster
  • •
    Bumped MAX(_TOOL)_THREADS to 64 (4x previous limit)
  • •
    Replace some possibly incorrect usage of FLT_MIN with -FLT_MAX, affects IKRules and displacements
  • •
    Updated Steamworks SDK to v1.53a
  • •
    m_flCycle is now networked in range of -1 to 1, from 0 to 1, fixing airboat spamming errors when going backwards in multiplayer
handyman

Fixed

  • •
    Fixed C_FireSmoke particle crash for good
  • •
    Fixed potential security issue with gmad.exe and specially crafted .gma files when extracting
  • •
    Potential fix for a crash with C_OP_RenderRope particle render operation
  • •
    Fixed a potential bug in materialsystem to do with Power of 2 rejection on texture load
  • •
    Fixed a bug in the materialsystem where NoMip textures were trying to read past EOF looking for mipmaps, resulting in "Error unserializing VTF file... is the file empty?" errors
  • •
    Display warnings and try to prevent a crash when an NPC's memory is about to overflow
  • •
    Fixed a crash due to out of bounds sequences with IK Rules and AccumulatePose
  • •
    Fixed some addons that extract/load correctly on client not loading/extracting correctly on server. Both cases now simply display a warning before trying to extract
  • •
    Fixed crashes when the File object in steamworks.DownloadUGC's callback is closed prematurely
  • •
    Fixed a crash in CSoundPatch.__tostring when used on invalid sounds
  • •
    Fixed func_movelinear spamming sounds when used with momentary_rot_button
  • •
    Fixed remaining potential crashes with npc_barnacle when its tongue entity is removed
remove_circle

Removed

  • •
    Removed 'heartbeat' console command
  • •
    Removed env_hudhint entity
add_circle

Features

  • •
    Added second argument to util.Base64Encode - skipNewLines, defaults to false
  • •
    Added spawnmenu.SwitchCreationTab
  • •
    Added VMatrix.Add, VMatrix.Sub and VMatrix.Mul (matrix*matrix only)
  • •
    Added VMatrix.GetTransposed
  • •
    Added Angle.Random
  • •
    Added Vector.Random, Vector.Negate, Vector.GetNegated
  • •
    HTTP() function now has a timeout field, which dictates the network activity timeout, and will fail with reason "timeout" if it is hit
  • •
    Added render.GetViewSetup() - returns the CViewSetup stuff including both real FOVs and the de-corrected for aspect ratio FOV
  • •
    Filesystem search now works with map's PAK lump (file.Find included)
  • •
    Added CUserCmd.AddKey
  • •
    Added table.Shuffle (Community Contribution)
  • •
    Added a new library: math.ease (Community Contribution)
  • •
    Added DComboBox:OnMenuOpened( menu ) (Community Contribution)
  • •
    Added table.MemberValuesFromKey (Community Contribution)
  • •
    Added ENTITY:AddOutputFromKeyValue and ENTITY:AddOutputFromAcceptInput (Community Contribution)
  • •
    Added SlowWalkSpeed to player_manager (Community Contribution)
  • •
    Added DForm.PropSelect, ControlPanel.ToolPresets, ControlPanel.ColorPicker and ControlPanel.KeyBinder (Community Contribution)
  • •
    Added math.DistanceSqr (Community Contribution)
  • •
    Added support for 3 new types in AccessorFunc() - Vector, Angle and Color (Community Contribution)
  • •
    markup library improvements - Adds markup.Escape, markup.Color, MarkupObject:GetMaxWidth, new argument to MarkupObject:Draw (Community Contribution)
  • •
    Added permissions.EnableVoiceChat( bool )
  • •
    Added CLuaLocomotion.Get/SetClimbAllowed
  • •
    Added CLuaLocomotion.Get/SetJumpGapsAllowed
  • •
    Added CLuaLocomotion.Get/SetAvoidAllowed
  • •
    Added new argument to net.WriteColor - alpha (Community Contribution)
  • •
    Added new argument to net.ReadColor - alpha (Community Contribution)
arrow_circle_up

Improvements

  • •
    Better implementation of Player.IsUserGroup (Community Contribution)
  • •
    util.GetModelMeshes is now also available serverside
  • •
    Entity:SetBodyGroups now accepts a-z as 10-35
  • •
    Disallowed include()ing non .lua files
  • •
    Made Entity.GetBloodColor shared
  • •
    stopsound also shuts down all CSoundPatches (So their IsPlaying status resets to false)
  • •
    Made hook.Add/Remove not silently fail on arg type mismatch (Community Contribution)
  • •
    Micro optimization in draw.SimpleText (Community Contribution)
  • •
    Minor optimizations to string.Comma (Community Contribution)
  • •
    Added +voicerecord to blocked console command list - use permissions.EnableVoiceChat instead
  • •
    GM:PlayerAmmoChanged now runs AFTER the ammo count has been changed
  • •
    Made File:Read() size argument optional, defaulting to File:Size()
handyman

Fixed

  • •
    file.Exists now works with addon title pathIDs like file.Find
  • •
    Fixed spawnmenu.SwitchToolTab doing nothing
  • •
    Fixed constraint.GetAllConstrainedEntities returning all entities constrained to world if the given entity is constrained to world
  • •
    Fixed Entity.StopLoopingSound() not working as expected when multiple sounds are involved
  • •
    Fixed table.RemoveByValue throwing an error when key is not a number (Community Contribution)
  • •
    Fixed invalid argument being given to TextEntry.AllowInput with non ASCII characters (Windows and OSX)
  • •
    Fixed potential Lua errors in scripted_ents library (Community Contribution)
  • •
    Fixed a linux crash with file.AsyncRead
add_circle

Features

  • •
    Added ability to clear Lua errors per category/group in the Problems menu
  • •
    Added "menu_cleanupgmas", "mat_specular 0" and "Addon missing file, nothing to mount" issues to Problems panel
  • •
    Added file size of the current file and total file count to non-Workshop server downloads
  • •
    Added addon count and selected count to the addon menu (in the popup menu with filters/etc)
  • •
    Added a visual bounding box of the current dupe to the duplicator tool
  • •
    Rope related tools now can now color the ropes (will depend on whether the selected material supports this or not)
arrow_circle_up

Improvements

  • •
    DNumSlider now colors the notches and the DTextEntry text to match the slider label
  • •
    Improved slider notch rendering
  • •
    Ensure all notches have at least 1 pixel between each other
  • •
    Fixed the last notch not rendering for sliders with a range that isn't a whole number
  • •
    Made the selected flag filters be per gamemode, not global per server browser tab
  • •
    Made the addon selection checkboxes bigger and updated their style to match modern Chromium visuals
  • •
    Also added a bit of space between the clickable addon name and the checkbox to prevent misclicks
  • •
    Minor visual tweaks to the addons and server browser menus
  • •
    Made the "Future version" tag in the server browser less visually prominent
  • •
    Added default values to the Super DOF UI sliders (Middle mouse click resets to default)
  • •
    Problems menu no longer complains about DirectX Level 90
  • •
    Server browser no longer lists servers that are not empty first and then only empty servers (to bypass Steam limitations), now lists whatever Steam gives first
  • •
    Undone server browser minimum ping penalty where servers < 60 ping would all be considered as having 40 ping for server ranking
  • •
    Added description to local saves/dupes/demos telling the player where they can delete them
  • •
    "Select All" button now selects all addons within current search/filter, not all subscriptions
  • •
    Removed selection checkboxes for floating .gma addons
  • •
    Made the background of a disabled addon darker so its more obvious when an addon is disabled
  • •
    More responsive controls for drive_noclip for "Drive" property
  • •
    Unmount addons mounted by server on map shutdown
  • •
    Confirmation window for “Do you want to connect to this server” now also has a “remember my choice” option
  • •
    Added map icons for new CS: GO maps
  • •
    Increased forced defaults of "rate", "cl_cmd/updaterate" console variables to 100k and 66, from 30k and 30 respectively. This only affects clientside settings, which are overridden by server's settings (sv_maxrate, etc). This should result in better ping/performance when playing on busy servers
  • •
    Updated language files
handyman

Fixed

  • •
    Fixed env_sun glow overlay not working properly with the poster command
  • •
    Fixed the first preset group not loading correctly on first map load
  • •
    Loading a save from main menu now properly sets the player position
  • •
    Fixed Lua errors in menu state when searching through addons with special symbols
  • •
    Fixed Hoverball tool creating Lua errors when looking at an invalid entity with the tool selected
  • •
    Fixed the option to re-render all spawnmenu icons not working properly
  • •
    Adjusted the cl_weaponcolor safeguard against invisible colors to catch more cases
  • •
    Fixed a regression with gamemode search bar changes from previous update where it expected the input to be lowercase at all times
  • •
    Changed 'slam' ammo type's default maximum to 5 from 9999 (gmod_maxammo still overrides this if above 0)
  • •
    Fixed certain language files not being loaded on Linux operating system
  • •
    Fixed shooting weapons while in a vehicle not shooting directly at the player’s crosshair
  • •
    Fixed default spawncions not being editable
  • •
    cl_downloadfilter "mapsonly" also works with workshop addons now (checks for the “map” tag on addons)
  • •
    Fixed Winch/Rope texture scaling wrapping around at length of 100
  • •
    Fixed clientside player velocity for non local players being jittery and incorrect when standing on something moving
  • •
    Fixed crash issues with npc_barnacle when its tongue entity gets deleted
  • •
    Fixed crash issue when damaging Antlion Guard NPC
  • •
    Fixed a potential crash issue with ragdoll physics
  • •
    Fixed prop_vehicle_crane crashing the game when it is missing its magnet entity
  • •
    Fixed Lua errors when trying to load a save with phys_magnets that were created by the map when saving
  • •
    You can freeze Jeeps/Custom Vehicles with the Physics Gun once again
handyman

Fixed

  • •
    TTT: Fixed "select language" strings in translations (Community Contribution)
  • •
    TTT: Tuned shotgun headshot damage and gave shotgun very small accuracy boost to compensate for shotgun changes in base game (Community Contribution)
  • •
    TTT: Show language names correctly in menu (Community Contribution)
  • •
    TTT: Updated language files (Community Contribution)
  • •
    TTT: Fix low-karma autokick evasion (Community Contribution)
arrow_circle_up

Improvements

  • •
    Limited sv_loadingurl to http(s) only
  • •
    Added nullptr safeguard to CFontTextureRegen (out of memory)
  • •
    More potential crash prevention when loading textures and in Lua bindings
  • •
    Safeguards for potential crashes in CShadowMgr relating to projected textures
  • •
    Switched the "gain manager" for voice chat to the CS:GO one. (voice_avggain, voice_maxgain replaced by voice_gain_* cvars)
  • •
    Increased internal buffers for map names to 128 characters, from 40, servers can now use maps with longer names
  • •
    Slightly improved SSAO depth pass (NeedsDepthPass hook, render.GetResolvedFullFrameDepth), so it works correctly with props/NPCs and viewmodels (Bokeh DOF now works better)
  • •
    Nicer error messages for FastDL download errors in console
  • •
    Let mat_envmaptgasize override the default cubemap size if it is set to a value higher than the map's cubemap size
  • •
    cfg/network.cfg is no longer considered userconfig, and is ran before autoexec.cfg
  • •
    mat_dumpmaterials now has an optional argument to hide refcount 0 materials
  • •
    Increased networked string limit (Doubled, to 4096)
handyman

Fixed

  • •
    Deleting point_viewcontrol now also disables it instead of putting the player in an invalid state
  • •
    Disable all active point_viewcontrol entities when loading a save to prevent softlocking the player
  • •
    Added out of bounds checks for boneIDs in CIKContext::AddDependencies to avoid crashes
  • •
    Added some nullptr safeguards to CMDLCache functions
  • •
    Fixed potential crash with playing MP3 files
  • •
    Made sure the "entityflame" entity also stops its own burning sound clientside in case it couldn't be stopped from the server due to PVS
  • •
    Fixed crash issue when trying to pickup prop_vehicle_jeep with invalid physics
  • •
    Fixed a potential crash when converting MATERIAL_VAR_TYPE_MATERIAL to a string
  • •
    Fixed material shader parameters not loading correctly on Linux dedicated servers
  • •
    Fixed for Linux file system find not properly handling partial wildcards (i.e. folder/*_suffix.txt where the filename folder/test_file_suffix.txt would not be found)
  • •
    Fixed mat_showlightmappage using a DirectX8 material
  • •
    func_breakable_surf plays its initial broken sound at the correct position even if it is moved by the physics gun
  • •
    Fixed some console commands crashing when used without a player on the server
  • •
    Fixed ent_remove being able to delete players
  • •
    Added support for $boneflexdriver in models into the game
  • •
    Fixed some cl_show_* cvar debug text overlapping itself or going offscreen
  • •
    Potential fix for crashes due to removing fire particles when removing an entity on fire
  • •
    Fixed crashing issues with trying to set/get flags on invalid physics objects
  • •
    Do not disable collisions when parenting brushes to one another
  • •
    Fixed parenting issues with func_movelinear, and a an issue with startSound possibly not restarting
  • •
    Fixed the half life 2 shotgun hack affecting SWEPs
  • •
    Fixed models not being flushed on level changes/disconnects when not hosting a local game (i.e. in multiplayer in general)
  • •
    Fixed Super DoF creating errors when used outside of sandbox gamemode (Community Contribution)