Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • Added Entity.GetHitBoxHitGroup( hitbox, set )
  • Added Player.SetLastHitGroup( group )
  • Added NPC.GetCurWaypointPos()
  • Added NPC.GetNextWaypointPos()
  • Added Entity.LookupPoseParameter( name ) = id
  • Added 3rd argument to Player.SetFOV - requester entity
  • Added GM.PostEntityTakeDamage( ent, dmginfo, tookDamage )
  • Added Entity.GetLayerPlaybackRate (shared)
  • Added Panel.SetUnderlineFont( font ), sets the clickable text font for RichText panels
  • Added Panel.GetFG/BGColor()
  • Added Panel.GetSelectedTextRange() = start,end pos, works for both RichText and TextArea
  • Added Panel.Set/GetMaximumCharCount, both of which work on TextEntry and RichText
  • Added CLuaParticle.Set/GetMaterial
  • Added File.EndOfFile
  • Added Entity.RemoveInternalConstraint( num = -1 )
  • Added GM:OnEntityWaterLevelChanged( ent, old, new ) hook
  • Added BLENDFUNC_MIN and BLENDFUNC_MAX enums
  • Added GM:PlayerChangedTeam( ply, old, new ) - serverside
  • Added PhysObj.GetFrictionSnapshot()
  • steamworks.DownloadUGC's callback now has a second argument - a File object pointing to the .gma file
  • DisableClipping global now returns the previous state of Clipping
  • Added Player.SetSlowWalkSpeed( new speed )
  • Added Player.GetSlowWalkSpeed() = speed
  • Added Player.SetLadderClimbSpeed( new speed )
  • Added Player.GetLadderClimbSpeed() = speed
arrow_circle_up

Improvements

  • Allow using "Model" keyvalue from Spawnmenu on Zombie NPCs
  • Automatically remove FCVAR_ARCHIVE from replicated convars clientside
  • Made Entity.SetLayerPlaybackRate and Entity.Set/GetLayerWeight shared (currently only intended to be used on players as a trial)
  • Made Vehicle.GetDriver, Vehicle.GetPassenger, Vehicle.GetVehicleViewPosition shared
  • Added DevWarnings for trying to base surface.CreateFont fonts off of game/existing fonts
  • CTakeDamageInfo.__tostring now includes the damage value
  • Entity.StopSound now also sort of works with direct paths
  • Move certain S_RegisterSound messages to developer 1 (sound.Register)
  • Stack trace for "[ParticleEmitter:Add] Material Handle is invalid!"
  • Converted umsg.Start error messages into ErrorNoHalts
  • Not providing the first argument to umsg.Start won't create a new message and then just fail and do nothing with it
  • surface.DrawPoly with no arguments causes an expected Lua error, rather than printing a warning into console.
  • Minor optimizations to player.GetBy* functions (Community Contribution)
  • util.TypeToString now works nicer for angles (Community Contribution)
  • Better error handling for Entity.SetBonePosition, Entity.GetBonePosition, Entity.SetBoneMatrix, Entity.GetBoneMatrix
handyman

Fixed

  • Fixed SendUserMessage erroring on client (Community Contribution)
  • Fixed HSVToColor and HSLToColor freezing the game with large Hue values
  • Fixed CNavArea.ConnectTo crashing the game when we could not compute a direction between the 2 nav areas
  • Fixed DListView's non sortable columns creating duplicate panels
  • Fixed Entity.TranslatePhysBoneToBone not working on ai_serverragdolls 1 ragdolls
  • Fixed DFrame causing issues with 3D2D
  • Fixed underline not working for custom fonts
  • steamworks.DownloadUGC doesn't fail with 2 or more files downloading concurrently
  • Vehicle.SetVehicleParams doesn't unexpectedly change maxSpeed, boostMaxSpeed and maxRevSpeed when not given new values for those fields
  • Entity.SetMaterial works on Brush entities (You can now also use LightmappedGeneric materials on brush entities with SetMaterial)
  • Disabling suit zoom (Player:SetCanZoom(false)) no longer prevents firing weapons when trying to use suit zoom
add_circle

Features

  • Added CSGO map icons from the new operation
  • Added Dupes section to main menu to allow deletion of dupes in-game
  • You can now subscribe to Demos, Saves and Dupes in the main menu
  • New "Publish Creation" UI that also allows updating of Dupes/Saves/Demos
  • Added -language launch option to override Source Engine language
  • Player Model Selector now has a filter/search bar
arrow_circle_up

Improvements

  • Limited Light tool brightness to 20 (from 255)
  • Reset runspeed every frame like we used to, even if we are sprinting/walking
  • Make the map name more noticeable in the missing map error when loading saves
  • Display a message when a save or demo fails to download from Workshop
  • Delete map.pack on game start to hopefully reduce cases of BSP embedded content not loading when the map is loaded from Steam Workshop (Missing textures fix)
  • Certain Steam related errors now display a user friendly error message rather than an error code that you have to google
  • Improved handling of hidden addons on Steam Workshop, so they are displayed as such in the addons menu
  • Certain gm_load errors are now displayed nicely to client instead of printing to console
  • Don't draw the Suit Power HUD at all with gmod_suit 0
  • Translate "Character" shader into "VertexLitGeneric" (Support for new CSGO models)
  • Translate "SolidEnergy" shader into "UnlitGeneric" (Black Mesa Source Xen support)
  • Updated language files
  • Limited chat history to 64k characters to avoid lag/freezes with long chat logs
  • Translated more parts of the game, such as: Spawnicon Editor (partial), Player Model Selector, script error UI, spawnicon and spawnlist right click menus, workshop mounting and fetching subscriptions messages
  • Source Engine language system is no longer forced to English and uses Steam's UI language.
  • Subscribe/Install buttons in main menu are now hidden with -noworkshop active
handyman

Fixed

  • Reenabled monster_flyer sounds
  • Added Default preset value for gmod_suit in server settings
  • Fixed Sandbox control panel sliders with invalid convars making errors
  • Apply FCVAR_SERVER_CAN_EXECUTE to stopsound, not stopsounds
  • Changes towards fixing errors from opening the context panels too soon
  • The ladder mount sounds now match the footstep sounds for custom footstep sounds
  • Fixed deleting Saves not deleting the associated image file
  • Fixed server downloads trying to download compressed files from FastDL when we just got them from Workshop
  • Yet another ragdoll crash fix (trigger_remove)
  • Failed server downloads (0 byte files in download/ folder) will no longer prevent server downloads from working for that file
  • Fixed copying text from TextEntry with new lines cutting off copied text by the amount of new lines
  • Fixed Black Mesa Source's maps having missing props all over the place
  • -noworkshop launch option properly affects and is displayed in Dupe/Save/Demo sections of the main menu
  • Fixed func_tankrocket on Half-Life 1 maps firing stationary rockets that do no damage
  • Fixed a console warning when turning off func_tracktrain controls
  • Fixed being able to control any func_tracktrain (even uncontrollable ones) using Physgun
arrow_circle_up

Improvements

  • TTT: Added sphere option to .fgd to display radius of ttt_traitor_button in Hammer (Community Contribution)
handyman

Fixed

  • TTT: Fixed infinite traitor selection loop in case of bad console variable value
remove_circle

Removed

  • TTT: Removed unused exploitable console command "wepswitch"
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