Garry's Mod Logo
Changes Header

Changes

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

arrow_circle_up

Improvements

  • Minor changes to Workshop subscriptions
  • Workshop server downloads: Also try to mount the old steamworks.Download files if they exist
  • Include Workshop file ID for the "There is no file to mount" console error message
  • Improved Offline Mode for workshop addons - now uses the cached subscribed list from Steam
  • Do not mount already mounted Workshop files when joining servers
handyman

Fixed

  • Do not try to mount Workshop files we failed to rename when joining a server and mount the old file instead
  • Fonts are now properly extracted from Workshop addons when joining severs
  • Resolved some issues with stuck download prevention for server Workshop downloads
  • Subscribing to addons with missing Type tags while in-game no longer fails
add_circle

Features

  • Loading Screens are now passed game volume via GameDetails() (Community Contribution)
  • Added new CLIP tool textures with custom step sounds to mimic Counter-Strike: Global Offensive
  • Allowed usage of multiple unique clip brush textures in vbsp.exe to enable custom footsteps on them
  • Added -nocrc option to gmad.exe which will skip CRC calculations when creating addons to help with very big addons
arrow_circle_up

Improvements

  • Force lowercase map names on changelevel/map
  • Updated "DefaultUnderline" font to match "Default" font's weight so that RichText URLs and text look consistent
  • Made Menu Lua errors appear mostly like Client/Server errors appear (formatting)
  • Made ErrorNoHalt w/ trace and menu errors trigger the "Something is creating script errors" message
  • Minor changes to config_default.cfg - mp_decals & r_decals set to 2048 (from 5000), sensitivity set to 6 (from 8) and removed spawnmenu_icon_precache since it doesnt exist (Community Contribution)
  • WaterLevel() for non player entities will report WL_Eyes(3) if touching water, rather than WL_Feet(1) when fully submerged
  • Do not add models/*.sw.vtx files to the server download list automatically
  • Fixed Dedicated servers not being able to read unlisted collections
  • "Connection to Steam servers lost" message now also displays user friendly error messages
  • Fixed Lua autorefresh on Linux causing Lua errors with big files and SFTP
  • Added position printout to vrad.exe's "Zero area child patch" message
  • Added Toggle input for func_brush in base.fgd
  • gmad.exe will complain and bail if it fails to get file's size instead of writing 0 causing malformed addon files being created
  • Reduced amount of "Failed to grow buffer" errors with gmad.exe
  • Skip newline as first character when copying text from RichText
handyman

Fixed

  • Do not reset angles/position/speed when unparenting entities since it causes unexpected results
  • $decalfadeduration now works on world brushes & displacements (Jeep gauss gun hit marks now fade away like intended)
  • Changing RT no longer sometimes clamps viewport bounds to backbuffer bounds
  • Fixed a crash issue with prop_combine_ball when it's missing its physics object
  • Clientside crazy physics: Delete the entity AFTER simulating all of its physics objects to avoid crashing
  • Fixed an infinite loop with decal cleanup
  • Striders no longer leave entities they created behind slowly filling up server entity limit
  • buildcubemaps no longer crashes the game in main menu
  • Fixed RichText selection being offset from cursor with clickable text using a different font to the rest of the text
  • Fixed RichText clickable text becoming unclickable if the currently rendering text ranges start with a clickable text
  • RichText now uses clickable text font height for clickable text overlay panels
  • RichText's default color is now black, not fully transparent
  • Fixed RichText clickable panels never being clickable if the first character is a new line
  • Fixed RichText crashing when containing a lot of text without a newline and with the same color
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"