Garry's Mod Logo
Changes Header

Changes

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

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
add_circle

Features

  • Added NextBot.GetLastKnownArea and NextBot.ClearLastKnownArea
  • Added OnHalfEmpty, OnEmpty and OnFull outputs to func_healthcharger, to match func_recharge
arrow_circle_up

Improvements

  • Allowed physgunning persistent props when persistence is disabled
  • Disallowed physics creation/destruction functions from being called on jeeps/airboats to prevent crashes
  • Improved save loading so it sets player ownership of spawned entities to a player in more cases
  • Put motionsensor.GetColourMaterial behind a clientside permission
  • Failing to save jpeg screenshots/posters actually says that it failed in console
  • Added console warnings when npc_apcdriver/npc_vehicledriver is removed due to it not having its vehicle to drive
handyman

Fixed

  • Fixed Half Life 1 sentry ragdolls not cleaning up on map cleanup. Also fixed their collisions and inability to hit the player at certain player angles
  • Fixed a crash in the DSP system
  • Fixed a crash with NPC:SetNPCClass
  • Fixed a typo in hook.Remove error (Community Contribution)
  • Fixed security issues
  • Fixed DIconLayout counting border size 2 times when laying out icons (Community Contribution)
  • Flash the game window when loading screen disappears to let the player know the loading is finished
  • Fixed hook.Add giving a less than useful error when given a nil to second argument
  • Fixed vgui_slideshow_display crashing the game without materials to display
  • Fixed a crash when trying to play bad ADPCM .wav files
  • Fixed file.AsyncRead returning garbage when the target file has no data
  • Fixed an issue with halo library not resetting color of pp/copy, which in some cases makes usage of halo library fill the whole screen with a color
  • Fixed Lua errors when trying to activate non Toggle Camera or Dynamite from a tool Button that was loaded from a save in multiplayer
  • Fixed a regression with string.Comma where it wouldn't format huge numbers properly
  • Fixed func_healthcharger and func_recharge not updating its texture index
  • Fixed crashing with npc_apcdriver when it doesn't have its vehicle
  • TTT: Fix ammo ents blocking +use near other entities (Community contribution)
add_circle

Features

  • Added string = util.FilterText( input, context, player )
  • Added TEXT_FILTER_ enums
  • Added safeguards to DownloadUGC when Steam sends us a null SteamUGCQueryCompleted_t
  • Add OS specific errors to binary module loading errors
  • Implemented Steam chat filter to the default chat box (profanity filter is toggleable in the Filters section of the default chatbox, Steam preferences apply)
arrow_circle_up

Improvements

  • Spawnmenu search now resets its model cache when addons/games are remounted
  • surface.DrawLine now uses floats not integers
  • "Stop Persisting" property will now also be hidden when persistence is disabled
  • Make it more clear that changing sbox_persist while in-game will cleanup the map
  • Do not clean up map when disabling persistence
  • Reduce Faceposer tool's convar count to 96 (from 128) to match the actual limit in the engine
handyman

Fixed

  • Fixed 2 server lag exploits with default properties
  • Fixed "join game" not showing up in Steam for P2P games after a changelevel
  • Fixed a stack overflow with DListView and columns inserted at specific positions
  • Fixes a server crash with no collide constraint.
  • Fixed DTextEntry's automatic line breaks causing an infinite loop hang with specially formatted text containing a lot of whitespace
  • Fixed GM:PlayerAmmoChanged reporting incorrect new ammo count when called from Player:GiveAmmo
  • Prisoner pod and chair vehicles now react to damage physically, driver takes explosion damage, calls GM:EntityTakeDamage hook
  • Potential fix for crash relating to env_microphone's measure target entity
  • Potential fix for a crash within CFontTextureRegen
  • Fixed GMODLUA_GetUserType leaking onto the Lua stack (this only affects binary modules and the type() function, when using custom userdata types)
  • Fixed changing persistence in-game saving to the wrong file if the cvar changed too quickly within the 2 second timer
  • Disabling hoverballs now adjusts their mass so they are not abnormally heavy when disabled, improved duplicator support for the disabled state
remove_circle

Removed

  • Downgrade Steamworks SDK to 1.50 as the newer version was causing issues
add_circle

Features

  • Duplicator tool will now try to figure out what addons are used by the dupe, save that in the dupe file, and display required addons in the duplicator's context menu. This only applies to new dupes
  • Making a map save now stores the Workshop ID of the map file in the save file, and adds the option to subscribe to the map if the map is missing
  • Show severity of problems in the problems menu
  • Failed addon downloads will now show up in the Problems menu with the reason why it failed
  • Added ability to view and revoke granted permissions in the Problems menu
  • Players now have to grant explicit permission for servers to be able to force voice chat on players
arrow_circle_up

Improvements

  • CS:GO lobby is put into correct map category (Community Contribution)
  • Improved addon detection for Lua errors
  • You can now save dupes from the duplicator’s context panel
  • Experiment: Count connecting players as bots until they fully join
  • "Addon is missing its file" problem now shows which addon exactly is broken
  • Updated texture for the painting model
  • Minor optimization to map lighting loading
  • Do not allow npc_barnacle to pick up gibs it itself spits out
  • Force enable episodic behavior when npc_barnacle eats zombies so they are not just spat out as ragdolls
handyman

Fixed

  • Numerous security fixes
  • Improved spawnmenu resilience against addons that do not set Sandbox tool name