Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • TTT: Added Japanese translation (Community Contribution)
arrow_circle_up

Improvements

  • TTT: Brazilian Portuguese translation - Changes to the highlights and to the AFK message (Community Contribution)
handyman

Fixed

  • TTT: Fixed an issue with LANG.AddToLanguage to do with missing languages (Community Contribution)
  • TTT: Fixed an instant reload exploit (Community Contribution)
  • TTT: Fixed ragdoll pinning HUD for innocents (Community Contribution)
  • TTT: Fixed karma affecting damage when karma system is disabled (Community Contribution)
add_circle

Features

  • Implemented a basic "Hold key to continue scrolling" feature to all ListPanel vgui elements, such as old server browser and Hammer's model browser
  • Added lua_dumptimers concommands (each realm has its own suffix) for debugging
  • Added lua_dumpfonts(_menu) for debugging
arrow_circle_up

Improvements

  • Try to avoid reloading the language multiple times on startup, and add some safeguards when trying to set the language to an invalid one
  • Other minor error handling improvements for Steam Workshop subscriptions
  • Use the new undo.AddFunction return value for "Make Statue" property
  • Made the message "CTextureAllocator::GetTextureRect has invalid texture handle! Expect crashes!" not as spammy
  • Improved handling of invalid texture handles when shadow rendering
  • Added infinite loop prevention for a rare case in shadow rendering
  • Do not try to load filesystem_steam.dll/so/dylib since we do not ship it or use it, should avoid a certain startup crash
  • Minor optimization in Base gamemode's CalcView hook (Community Contribution)
  • Updated CPackedStoreReadCache to its TF2 version, to hopefully fix an uncommon crash
  • Better error handling for getting subscriptions to hopefully prevent "Fetching subscriptions" rarely getting stuck forever for some people
  • Reduced spaminess of "Couldn't find/load font" warnings
  • Added some debug info to "%s overflowed reliable buffer" disconnect message
  • Added "total" count to mat_dump(textures/materials)
  • Saving tool presets now only resaves the changed preset group, not all of the preset groups
  • The default server browser now uses the connection address to connect, not the query address
  • Minor optimization with the PlayerColor material proxy (Community Contribution)
  • Minor optimization with the PlayerWeaponColor material proxy
handyman

Fixed

  • Fixed the game refreshing gamemode and map lists for menus multiple times while loading onto a map or disconnecting, remounting addons or changing gamemode
  • Fixed subscribing to addons while in game remounting addons more than once
  • Fixed memory sizes being displayed incorrectly in certain places with large values
  • Prevent spawnicons with sizes 33-63 from saving "_64" versions of the spawnicons, now uses the default 64x64 image without any suffix like it should
  • Properly remove unmounted (.gma) addon files from internal map so when something tries to access them we don't crash
  • Fixed models loaded by ClientsideModel() or similar methods losing their modelbounds data on map disconnect due to them being reloaded (for now, we don't reload such models)
  • Fixed gui.EnableScreenClicker()'s internal panel showing up after a screen resolution change while it is active
  • Fixes for potential crash issues when handling Lua entities in C++
  • Fixes for potential crashes with MOVECOLLIDE_FLY_CUSTOM, FLY_BOUNCE, FLY_SLIDE, DEFAULT
  • Fixed server browser blacklist being case sensitive
  • Missing the weapons/scripted_ents.Get function at entity creation no longer exits the game (For example when it's only missing clientside)
  • Let people know that -authkey is no longer needed in the srcds console if it is still in the srcds launch options
  • Fixed GameContentChanged hook running 3 times in a row in menu state
  • Fixed first file embedded in the BSP not being decompressed when needed
  • Fixed the default screen resolution selection so it should now select the desktop resolution
  • Added a nullptr check when generating the error texture to prevent crashes
  • Fixed PlayerWeaponColor material proxy hack for Super Grav Gun for cases where people override the default gravity gun (Community Contribution)
  • SteamAPI errors on non first page of Dupes/Saves/Addons/Demos will not hide the pagination so you can go back to the cached pages
  • Fixed a potential issue with Workshop Subscriptions not properly marking files as downloaded
  • Fixed deleting npc_manhack's sprites causing a crash when its deleted sprites are accessed by the NPC code
  • Fixed ErrorNoHalt not being considered a menu state error when it was called in the menu state
  • Fixed a bug with VPK file searching that would result in garbage data in file.Find
  • Fixed potential clientside crashes with ragdolls
  • Potential workaround for "SV_CreatePacketEntities: GetEntServerClass failed for ent 1." error message and crash when disconnecting from a listen server as a host while it is not empty
remove_circle

Removed

  • Removed files that are automatically sent from lua/send.txt
  • Deleted the Panel.IsModal existence check from DMenu now that the update is released and that check is no longer necessary
  • Removed unnecessary arguments in C++ => Lua workshop download callbacks in menu state
add_circle

Features

  • Enabled "Visual Styles 6.0", so Hammer's UI styles should now match OS
  • Added icons for env_sun, point_template and info_lighting_relative,
  • Added targetname keyvalue to light_environment (with a warning about file size) and updated the key names and help text of other keyvalues to better explain what each key does
  • Added "Sprinkle" tool from CS:GO (with an example sprinkle definition)
  • Added Random XYZ and Offset Z to Sprinkle tool
  • Added the Sprinkle Tool to the left sidebar
  • Added func_pendulum to the .fgd
  • Added info_lighting_relative to the fgd
  • Added (Set)LightingOrigin(Hack) inputs and keyvalues to prop_dynamic and all NPCs and (Set)ModelScale for prop_physics, prop_dynamic and NPCs
  • Added a preventative warning when trying to convert a displacement to an entity (Map with that won't compile)
  • Added fade distance keyvalues for prop_door_rotating
  • Texture Browser => Mark now marks decals/overlays if no solids with given texture were marked
  • Creating a new VMF will now spawn a simple box in front of the camera for orientation and select the "Selection" tool
  • Hammer will now select the nodraw texture on VMF load and when creating a new VMF rather than the first texture which will be random depending on custom content installed
arrow_circle_up

Improvements

  • Added a missing tooltip for ID_TOOLS_DISP_DRAWREMOVEDVERTS (One of the buttons on the top toolbar)
  • Horizontal resizing of Texture Browser now moves the buttons that would cover the current texture text
  • Adjusted the Texture Application Tool UI (Face Edit Sheet window) to fit longer texture names
  • Added extra width to the right side toolbar so Auto Visgroups can fit without a horizontal scrollbar
  • Adjusted icons for env_skypaint, lua_run (To remove the ugly white lines around the image) and info_lighting
  • Adjusted "Run Map [Advanced]" window to fit more parameters and made the newlines work in the Parameters text box
  • Increased textbox size of Texture scale so it fits the longest value it can have
  • Minor visual adjustments to Object Properties window
  • Made "Show Detail Objects" setting save across sessions
  • Moved the "use count" in texture browser above the texture name and fixed the opaque/self-illum/transparency icons to display properly
  • Made the "Entity Report" window a bit wider and stretched the bottom controls to the right edge
  • Changed the default 3D view type to "Textured Shaded" from "Wireframe"
  • Texture Browser's current selection is now a read only editable text box so you can copy from it
  • Replaced "Select Folder" dialogs in Options menu with the more modern ones
  • Increased the text fields width for many things in the first tab of Object Properties window
  • Model Browser now scrolls to the selected model
  • Marked "Hinge Axis" of prop_door_rotating as non functioning so there is no question about it. ("Fixing" it would break all existing maps)
  • "angles" keyvalue will no longer be created with values "0 0 0" when moving objects that have a model in the editor (such as decals)
  • Opening Entity Report for a different VMF when the Entity Report is already open will now properly recreate it for the currently active VMF
  • Added "CTRL+(SHIFT+)V" text to "Paste (Special)" in right click menus to let the user know about the existence of these shortcuts
handyman

Fixed

  • Fixed Auto visgroups UI being rebuilt for each solid face of the brush textures are being applied to, now rebuilds once
  • Fixed major hang when opening Texture Application Tool with many objects selected
  • Fixed multiple crashes due to .fgd BaseClasses being redefined with fewer variables than they had before
  • Applying textures via the "Face Edit Sheet" window or "Apply Current Texture" Tools no longer rebuilds visgroups UI for each object, only after all textures are applied, so it should be much faster now
  • Fixed custom detail.vbsp in map properties not having an effect in the editor itself
  • Fixed map views forcibly taking focus away from LightingPreviewWindow
  • Fixed custom "detailmaterial" not showing in the editor
  • Fixed the Ray-Traced Preview in Hammer being an error texture
  • Fixed a crash when trying to place a non existent Prefab using the Entity tool
  • Fixed a crash in Object Properties => Model
  • Marked certain Hammer config files as userconfig so they do not get wiped on branch change/verification (You can still delete them and verify to reset)
  • Fixed carving brushes with decals/overlays on them creating "Tell a programmer" windows
  • Fixed releasing LMB/RMB outside of the 3D view while painting displacements continuing to paint until you re-click in the 3D view
  • Fixed crashing issues with Object Properties Output/Input column sorting
  • KeyValue copy & paste now properly pastes the spawnflags (and updates the UI)
  • The Entity Report dialog will now close when its associated VMF is closed to prevent crashes
  • VRAD: Fixed 3d skybox being forced on certain leafs where 2d only skybox is expected
add_circle

Features

  • Added ClientSignOnStateChanged
  • Added SIGNONSTATE_* enums
  • Added 4th argument to GM:PlayerBindPress - button code
  • Added a 3rd argument to gmsave.LoadMap - a callback that is called after the save have been successfully loaded
  • Added DProperty_Entity panel that acts as a entity picker row
  • Allow returning false in undo.AddFunction to skip undo if it's no longer valid (Community Contribution)
  • GM:GameContentChanged is now also called for serverside/clientside realms like originally intended
  • Added DTree_Node.GetExpanded
  • Added DTree_Node.OnNodeAdded( newNode )
  • Added Panel.Set/GetX/Y (Uses Lua Panel.Set/GetPos internally) and switched Panel:Center(Horizontal/Vertical) to use them
  • Made PrecacheSentenceFile() shared (was serverside only)
  • Added spacers support to DComboBox (Community Contribution)
  • Added PreUndo and PostUndo hooks (Community Contribution)
  • Added Entity:GetAnimTimeInterval
  • Added Player:Set/GetActivity
  • Added Weapon:SetActivity
  • Added NPC:SetActivity
  • Added NPC:Set/GetMoveVelocity
  • Added NPC:UpdateTurnActivity
  • Added NPC:HasObstacles
  • Added NPC:AutoMovement
  • Added NPC:Get/SetTaskStatus
  • Added TASKSTATUS_* enums
  • Added NPC:Get/SetMoveInterval
  • Added NPC:GetIdealMoveSpeed
  • Added NPC:GetIdealMoveAcceleration
  • Added NPC:GetMinMoveStopDist
  • Added NPC:GetMinMoveCheckDist
  • Added NPC:IsMoveYawLocked
  • Added NPC:SetMoveYawLocked
  • Added NPC:MoveStart
  • Added NPC:MoveStop
  • Added NPC:MovePause
  • Added NPC:ResetMoveCalc
  • Added NPC:MoveClimbStart
  • Added NPC:MoveClimbExec
  • Added NPC:MoveClimbStop
  • Added AIMR_* enums
  • Added NPC:MoveJumpStart
  • Added NPC:MoveJumpExec
  • Added NPC:MoveJumpStop
  • Added NPC:ResetIdealActivity
  • Added NPC:IsGoalActive
  • Added NPC:ClearBlockingEntity
  • Added NPC:GetNavType
  • Added NPC:SetNavType
  • Added NAV_* enums
  • Added file.AsyncRead
  • Added ProjectedTexture.Get/SetShadowSlopeScaleDepthBias
  • Added ProjectedTexture.Get/SetShadowDepthBias
  • Added ProjectedTexture.Get/SetShadowFilter
  • Added ProjectedTexture.Get/SetTargetEntity
arrow_circle_up

Improvements

  • DProperties now accept the same row types (names) as the DTVar (Entity:NetworkVar) types are called
  • util.TableToKeyValues and CreateMaterial now throw a type error when given not a table to arguments that expect a table
  • util.StringToType now works with "entity" type ( EntIndex )
  • Updated the continue statement implementation in LuaJIT
  • SpawnmenuContentPanel:SwitchPanel now accepts nil to switch to no panel
  • Entity.SetTable now throws a type error when given not a table (used to silently fail)
  • SurfaceInfo.__tostring now contains the ID of the surface
  • steamworks.DownloadUGC now has an internal queue and displays download progress just like workshop subscriptions would
  • Steamworks library: More invalid Lua state safeguards, functions now throw type errors when not given a callback where one is expected
  • render.ReadPixel/render.CapturePixels now returns the alpha channel too (naturally uses more memory)
handyman

Fixed

  • Fixed Vehicle.SetVehicleParams taking "steering" parameters from "engine" table, fixed it affecting the speed of some cars due to vphysics shenanigans, fixed it needing boostMaxSpeed, maxRevSpeed and maxSpeed in different units
  • Setting size of a spawnicon AFTER the model should now work correctly (Still not recommend doing so though)
  • SpawnIcon:SetSpawnIcon no longer requires the file to be loaded elsewhere to work
  • Fixed DCheckBoxLabel's vertical alignment of the label (Community Contribution)
  • DTextEntry removes its autocomplete menu if it is open when the text entry itself is removed
  • Fixed an issue with DTree file folders where adding folders to an open node would not populate the added node unless the parent node was collapsed and then expanded again
  • Maintain nicer sorting for numbers in DListView column sorting (Regression fix for previous update)
  • Fixed Panel.LerpPositions not working well with Panel:Center*() functions (or with GetPos() in general)
  • Fixed a self crash with render.DrawSphere when giving the sphere zero/negative segment counts
  • Fixed Entity.GibBreakServer crashing with brush entities
  • Fixed render.SupportsHDR always returning false
  • Fixed Player.GetFriendStatus never showing "blocked" status
  • Fixed cookie library cache having outdated values in certain rare cases (Community Contribution)
arrow_circle_up

Improvements

  • TTT: Changed a bunch of default values for console variables (Community Contribution)
  • TTT: Renamed Portuguese localization (Community Contribution)
  • TTT: Fixed Magneto Stick ragdoll pinning hint never showing for innocents (Community Contribution)