Garry's Mod Logo
schedule 10 July 2017
Devblog

July 2017 Update

Bug fixes, performance, UI and developer tool improvements, internal library updates.

This update, like usual, is mostly bug fixes. We've also got some large internal changes that will help in the creation of future improvements. Players will still be able to join servers that have not yet been updated.
Ragdolls used to be treated as if they had no physics on the client whilst connected to a server. This meant that player movement between clients and the server would be completely out of synch, which felt pretty bad and would cause hideous rubber-banding. This is now fixed. You'll still run in to issues when trying to walk on non-frozen objects, but it is far better than before.
The addons menu has had a couple of additions. Firstly, there's now a search bar which can be used to search through addons that you are subscribed to. Addons can now also be operated on in bulk. This means you can easily select and enable, disable, or uninstall multiple addons at the same time.
We've added preset support to some of the options listed in the spawnmenu's utilities tab. This means that you can save different groups of settings for later use. Presets now also have a 'Quick Preset' button. This allows you to save the current menu's settings without having to navigate the preset editor. To use it, just click the little green button:
You can find these in most of the game's default tools.
Windows builds of the game now use the Visual Studio 2017 C++ Runtime. This should hopefully not affect anybody, but could perhaps break some third-party binary modules. Linux builds of the game now depend on GLIBCXX 3.4.19. You may run in to some issues if your server's C++ runtime is a decade out of date. Steam should handle this for you if you're just playing the game. OSX builds are using the same runtime as before. This will probably change in the next update.
add_circle

Features

  • Entity:PhysicsInitStatic( ... )
  • Entity:RemoveCallback( ... )
  • Entity:GetCallbacks( ... )
  • CLuaEmitter:IsValid( ... )
arrow_circle_up

Improvements

  • Entity:PhysicsInit* methods now return either true or false based on success
  • Entity:Remove() can no longer remove the world
  • Weapon:IsScripted() will now return false instead of no value when ran on non-scripted weapons
  • Player:Give( ... ) no longer fills a player's gun with ammo when asked to not give ammo to players
  • Entity:GetBoneCount() and Entity:GetBoneParent( ... ) will now return -1 on failure
  • Entity:TranslateBoneToPhysBone( ... ) will now return -1 on failure
  • Entity:SetSaveValue( ... ) now returns false on failure
  • Entity:DispatchTraceAttack( ... ) will now trigger an error when passed invalid parameters
  • Entity:HasBoneManipulations() and Entity:HasFlexManipulatior() return false on failure
  • Entity:GetBrushPlaneCount() will now return false on failure
  • Entity:GetFlexScale( ... ) now always returns 1 on failure, rather than just sometimes
handyman

Fixed

  • Entity:GetBrushPlaneCount() and Entity:GetBrushPlane( ... ) now work on brush entities
  • PathFollower:Compute() no longer leaks Lua references
add_circle

Features

  • Preset support for Utilities menus
  • 'Quick Preset' button - allows for easier access to the preset system
  • Addons menu can now manage multiple addons at once (e.g. bulk unsubscribing)
  • Demos, saves, and duplications menus now list items that the user is subscribed to
  • Addons menu now has a search bar to quickly search through subscriptions
  • The '-notty' startup parameter on Linux servers will send console output directly to stdout
arrow_circle_up

Improvements

  • Weapons no longer turn upside-down when zooming in too far
  • Improved support for CS:GO/Portal 2/TF2 maps
  • Game returns to DirectX 9 mode if '-dxlevel' is not specified in the command-line
  • Improved relationships between Half-Life and Half-Life 2 NPCs
  • Improved behaviour of collisions between players and 'no collided' entities created by tools
  • Added more information to crash dumps (.mdmp files)
  • r_eyes_* console variables are no longer saved
  • The emitter tool's explosion effect no longer creates sounds
  • Bots can no longer be created before the InitPostEntity hook has fired
  • Improved how serverside ragdolls are handled on the client - hull traces can hit them now
  • Updated the Half-Life Model Viewer to have newest features from Team Fortress 2 version
handyman

Fixed

  • Odessa no longer has female voices
  • Fixed errors caused by the spawn menu's search feature not having access to certain directories
  • Fixed many crashes related to NPCs trying to use non-existent entities
  • Checkboxes and radio buttons in HTML panels are now displayed properly on Linux/macOS
  • Half-Life Ichthyosaur can now cause damage
  • Half-Life Tentacle NPC no longer continues playing sounds after being removed
  • Fixed massive FPS drops when missing sounds are playing on servers
  • Fixed crash that occurs when console variables created by Lua are removed too early on level change
  • Fixed late loading of memory allocator on Linux causing the game to crash for some people
  • Impulse 200 command no longer crashes when the player has no active weapon
  • Fixed prediction errors when firing weapon_357
  • weapon_357 now has the 'revolver' holdtype
arrow_circle_up

Improvements

  • Improved performance of 2D/3D views
  • 2D views are now rendered during scroll operations, rather than after
  • Increased max render distance from 10,000 to 32,000
  • Vertices no longer need to be in the exact same location to be merged
handyman

Fixed

  • Blended textures are now rendered correctly - it should be identical to in-game
  • Model browser no longer freezes after being opened multiple times
  • Overlays no longer flicker when rendered in 3D shaded mode
  • Scrollbars on 2D views are now correctly sized when zoomed in
add_circle

Features

  • Trouble in Terrorist Town: Enabled scoreboard to be sorted by different criteria
arrow_circle_up

Improvements

  • Removed CAP_INNATE_RANGE_ATTACK1 from weapon_base
  • Removed unused function parameters
  • Trouble in Terrorist Town: Corpses get skin/bodygroups of dead players
handyman

Fixed

  • Result of COLLISION_GROUP_DEBRIS trace in properties.Gethovered is no longer ignored
  • Fixed use of non-existent enum in DModelPanel
  • Fixed 'Cannot set property' JavaScript error in main-menu
  • Trouble in Terrorist Town: Fixed incorrect fall damage
  • Trouble in Terrorist Town: Fixed 2 DoS exploits