Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • Added surface.GetTextureNameByID
  • Added NPC:SetMaxLookDistance
  • Added NPC:GetMaxLookDistance
  • Added Entity:ClearAllOutputs
  • Added Entity:SetSurroundingBounds
  • Added Entity:SetSurroundingBoundsType
  • Added Entity:GetSurroundingBounds
  • Added optional surfaceprop argument to Entity:PhysicsInitMultiConvex, Entity:PhysicsInitConvex, Entity:PhysicsFromMesh, Entity:PhysicsInitBox. All of them now also get correct physical volume set which helps physics behave correctly
  • Added util.IsBinaryModuleInstalled (Community Contribution)
  • Added string.StartsWith (alias of string.StartWith, for consistency with string.EndsWith) (Community Contribution)
  • Added an option to player_manager.AddValidHands to match hands skin to player model selected skin automatically (Community Contribution)
  • Added "readonly" option to DProperties properties, for editable entities editor (Community Contribution)
  • Added Panel:SetTextSelectionColors for RichText panels
  • Added physenv.GetLastSimulationTime
  • Added Player:DisableWorldClicking & Player:IsWorldClickingDisabled (Not currently networked)
  • Added second argument to string.Comma (Community Contribution)
  • Added Tool:RebuildControlPanel
  • Added Tool:GetClientBool
  • Weapons and Entities can now set their own classname via ClassName property (Community Contribution)
  • Added string.Interpolate (Community Contribution)
  • Added DSlider ConVar support
  • Added DSlider:OnValueChanged
arrow_circle_up

Improvements

  • Made player_manager.AddValidHands skin/body arguments optional
  • Added gmod_language to blocked convars (can still read it)
  • Added sv_password to list of convars Lua cannot read
  • WEAPON:HUDShouldDraw is no longer required to return true to not break HUD (Community Contribution)
  • Minor adjustment to DCheckBox:Toggle's internals (Community Contribution)
  • String extension optimizations (Community Contribution)
  • Cache ConVars created by tools (in TOOL.ClientConVars and TOOL.ServerConVars ) and use them in Tool:GetClientInfo/Tool:GetClientNumber/Tool:GetServerInfo in appropriate realms
handyman

Fixed

  • Fixed NPC:AddEntityRelationship priority argument reading from the wrong argument. Also made it optional (defaults to 0)
  • Fixed non halting Lua error when Derma_Install_Convar_Functions panels attempt to set empty console variable
  • Fixed static CLuaParticles not updating their lighting
  • Fixed a crash when setting player's hull size to nothing
  • Potential fix for a crash with steamworks.DownloadUGC
  • Fixed a bug with Panel:SetCaretPos
  • Fixed IRestore:ReadString having a limit on string length, affecting weapons and others on map transition
  • Fixed potential Lua error in Derma drag'n'drop system (Community Contribution)
  • Added color support and fixed a bug with table.Sanitise/table.DeSanitise (Community Contribution)
  • Made ents.FindByModel support wildcards, and work better clientside
  • Fixed VMatrix:GetTransposed implementation
  • Fixed certain old addons failing to extract with steamworks.DownloadUGC
  • Fixed a crash in DListView with fractional column width
  • Fixed markup text alignment inconsistency (Community Contribution)
  • Made sure Panel:GetChildren table is always sequential
  • Fixed TOOL.Information being modified by code that uses it
add_circle

Features

  • You can now search maps by the name of the Workshop Addon they come from in Start New Game screen
  • Moved potentially conflicting addons detection to Problems menu - potentially conflicting means two addons have the same Lua file with different file sizes
arrow_circle_up

Improvements

  • “Unused Addons” problem will now tell you which files it recommends deleting
  • Attempt to prevent Entities and Weapons spawning out of map bounds when spawned through Spawn menu (Community Contribution)
  • Updated server browser recommendation icons (Community Contribution)
handyman

Fixed

  • Fixed Lua error with Super DOF when activating 5 second hide UI and reopening UI before the timer expires (Community Contribution)
  • Fixed toolgun ghost preview not clearing when switching away from the toolgun using the spawnmenu (Community Contribution)
handyman

Fixed

  • TTT: Fixed a bug with weapon respawning and updated language files (Community Contribution)
add_circle

Features

  • Readded missing mapIO outputs to airboat vehicle
  • Implemented CS:GO soundscape features: playlooping.position "random", playlooping.radius, fadetime
arrow_circle_up

Improvements

  • +vgui_drawtree now requires sv_cheats just like vgui_drawtree 1/0 does
  • Force OS Specific binary module load errors to English
  • Sandbox spawning and entity variable editing bypasses IsAdmin checks in singleplayer, so mods cannot accidentally interfere with basic Sandbox functionality
  • Some changes towards fixing/narrowing down the CSoundPatch update crash
handyman

Fixed

  • Fixed "Steam overlay replacement" window opening links externally
  • Added nullptr safeguards to CMaterialVar::SetTextureValue
  • Unspecified security fixes
  • Fixed crashes when setting null model on players
  • Fixed crash when trying to render world model as entity model
  • Fixed a typo in detail.vbsp
  • Fixed gmod_language resetting to empty string on dedicated servers
  • Fixed in-code documentation comment of table.CollapseKeyValue (Community Contribution)
remove_circle

Removed

  • Deleted Windows steam binaries (used by dedicated servers) as they are now shipped automatically by Steam
add_circle

Features

  • Added NPC:GetKnownEnemyCount
  • Added NPC:GetKnownEnemies
  • Added NPC:IgnoreEnemyUntil
  • Added NPC:GetTimeEnemyLastReacquired
  • Added NPC:GetLastTimeTookDamageFromEnemy
  • Added NPC:MarkTookDamageFromEnemy
  • Added Entity:GetAnimCount
  • Added NPC:NavSetGoalPos
  • Changed NPC:NavSetGoalTarget - second argument defaults to 0,0,0, sets correct goal type for the path
  • Added CLuaLocomotion:GetDesiredSpeed
  • Added CLuaLocomotion:GetGroundNormal
  • Added math.SnapTo (Community Contribution)
  • Added icons and select fields for DProperty_Combo (Community Contribution)
  • Added Entity:GetSequenceVelocity
  • Made Entity:GetSequenceMoveDist shared
arrow_circle_up

Improvements

  • ServerLog global now obeys sv_logecho convar
  • Save cookies on Lua state shutdown to prevent data loss when disconnecting
  • Render library underflow warnings are now non halting Lua errors
  • Clamped PhysObj:SetMass to safe values (0-50000] to prevent crazy physics
  • CreateConVar/AddConsoleCommand globals now ErrorNoHalt when command creation fails, instead of silently failing
  • Can no longer create concmmands/convars with blocked names
  • Made Player:GetPlayerInfo shared
  • Added snd_buildcache to blocked command list
  • Entity:DropToFloor now checks if the entity is inside world geometry - if it is, do not drop to floor. Should help with stuff ending up underground in certain places, such as NPCs on displacements.
handyman

Fixed

  • Fixed crashes with certain Vehicle functions when used on unsupported vehicles
  • Fixed PhysObj:SetInertia causing unexpected zero-G behaviour when used on frozen physics objects or with invalid values
  • Fixed cam.End crashing when used without cam.Start first (will throw Lua error)
  • Try to end cam.Start calls that are left unended each frame (will display warnings in console when this happens)
  • Fixed CNavLadder & CNavArea's Lua objects not becoming null after removal, causing crashes
  • Fixed Material() not being able to access gamemodes/ folder