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