Garry's Mod Logo
schedule 14 June 2020
Update

June 2020 Update

Multiplayer related improvements, new backgrounds, and more.

This update fixes a few multiplayer related issues. Performance issues and crashes due to missing textures/materials were resolved, Networking related issues were resolved which should help addons work better when players (re)join busy servers. Certain sound related issues were also fixed, such as sounds not playing immediately after joining a server, underwater and Leech sounds playing when they are not supposed to, most notably when the player is dead. DSP effects (echo, etc) now also properly reset on map change, so playing on a map with echo should no longer carry the echo onto other maps. The update is optional for server owners, however it is always a good idea to keep your server updated to receive all the latest fixes and features. You will find a complete list of changes below.
add_circle

Features

  • Added client console de-duplication, can be toggled with con_filter_dupe
  • Added Mass icon resize and re-render feature to the spawnmenu, by selecting many icons and right clicking on them
  • Added Freeze/Unfreeze effects check boxes to Physics Gun Settings
  • Added "Sandbox Settings" in User category in Utilities which contains the search max results slider + some sandbox related toggles from the menubar
  • Weapons in the weapons tab now have an "NPC" icon if they can be used as NPC weapons, with a right click option to set that weapon as the current NPC weapon override
  • Added kill icons for prop_ragdoll, prop_physics_respawnable, func_pushable and func_physbox (same as prop_physics)
  • Added 51 new main menu backgrounds from the contest, replacing old ones
arrow_circle_up

Improvements

  • Changed "persistence mode" to "persistence file" and added a bit more info about persistence itself to Spawnmenu's Sandbox Settings menu
  • Garry's Mod Terms Of Service and Privacy Policy now open in Steam overlay if possible
  • Links that open in Steam Overlay fallback to built-in HTML renderer if Steam Overlay is disabled
  • Servers with ping under 60 now have identical ranking impact from ping in the server browser (Community Contribution)
  • Bot players are also subtracted from maxplayers, so there are no cases of server appearing with open slots while it has none
  • NPC weapon selection is now sorted alphabetically
  • Added sk_npc/plr_dmg_crowbar/stunstick convars that control Crowbar and Stunstick damage, as a result default crowbar and stunstick damage was reduced to its Half-Life 2 values, matching all other built-in weapons
  • Improved performance of projected textures (Lamp tool, flashlight, etc) when looking away from them (Community Contribution)
  • Reduced minimum width for rope based constraints to 0.2, from 1 (Community Contribution)
  • weapon_fists now obeys the phys_pushscale convar (Community Contribution)
  • Updated language files
  • Main menu backgrounds never switch to the same image unless there's only 1 image
  • Exiting the server browser will now immediately stop searching for servers
  • Resizing the spawnmenu tabs will affect all tabs on the same side at the same time
handyman

Fixed

  • Fixed extreme lag when entering PVS with props that have material override pointing to a non existent material, most noticeable on multiplayer Sandbox servers
  • Fixed extreme performance loss when trying to render unmounted materials (unmounting CSS while on a map that uses CSS content and re-joining that map)
  • Fixed certain props disappearing and spamming the console on map change
  • Underwater sounds no longer play when dead and player's camera is not underwater
  • Dying to Half-Life 2 leeches no longer keeps playing the leech sounds until you respawn
  • Dying above water with leeches also no longer plays the leech sounds when your player entity falls underwater while you are dead
  • Addons that use too many decals will no longer boot players to main menu when trying to start singleplayer game
  • Fixed Undo & Cleanup panels in Utilities becoming blank after spawnmenu_reload
  • Fixed Motion Blur and Overlay Post Processing effects not working well with poster command
  • Fixed Toy Town post processing effect having 1px tall gap at the bottom of the screen with certain settings
  • SuperDOF UI window now repositions itself when player's screen resolution changes so it will not be left off-screen
  • Fixed a large memory leak when decompressing files embedded in the BSP map file
  • Physics Gun glow/beam will no longer render in 3rd person if the weapon itself is not visible
  • Fixed echo and other DSP effects not resetting on map change
  • "retry" console command in singleplayer now acts like "map currentmap.bsp", instead of locking up the game
  • Reduced/removed high frequency noise on wood, concrete, tile and metal footsteps
  • Reduced hard cutoff on rubber footstep sounds (loud clicking noises) when sprinting
  • Player's footsteps no longer play mid-air if the prop they were walking on got deleted
  • Reduced volume of chain link footsteps to match the other footstep sounds
  • Fixed missing Stalker NPC sounds
  • Right click removing stuff with the Remover tool now properly progresses the Remover achievement on Steam (Community Contribution)
  • Fixed missing sounds for Narrator from The Stanley Parable
  • Self-controlled func_tank turrets obey "Ignore Players" option
  • Fixed props on certain maps (Half-Life 2 Episode 2 for example) going invisible or becoming transparent unexpectedly
  • Fixed Star Scale, Fade and Speed fields of Sky Editor not saving/restoring properly with the duplicator/save tab
  • Fixed certain (looping) sounds not restarting when reconnecting to a server
  • Fixed certain (looping) sounds not updating properly sometimes (such as Thruster sounds keep playing when the thruster is turned off)
  • Fixed addon titles in the Spawnmenu not properly reflecting the addons' Workshop title
  • Picking up an Effect with the Physics Gun now applies the glow effect to the model itself, not the green ring
  • Fixed spawnlist divider not restoring its width properly (Community Contribution)
  • Fixed pressing Enter in Tool tab search/filter collapsing all categories unexpectedly
remove_circle

Removed

  • Removed cheat flag from "viewmodel_fov" console variable
  • "Drive" property no longer appears for Jeeps as it simply cannot move them
handyman

Fixed

  • TTT: Fixed an incorrect comment (Community Contribution)
  • TTT: Added French translation (Community Contribution)
  • TTT: Optimized streaming of end-of-round report (Community Contribution)
  • TTT: Avoid clipping victory text in round report and other fixes (Community Contribution)
add_circle

Features

  • Added current material count to mat_texture_list when expanded
  • point_teleport - Added the episodic "Teleport into crouch" spawnflag, Added TeleportEntity & TeleportToCurrentPos inputs (Hammer Editor included)
  • Added mat_dumptextures console command - dumps all used textures by the engine, for debugging
arrow_circle_up

Improvements

  • Sandbox persistence now trims whitespace on input so you don't end up with files that the game refuses to write to/read from
  • Minor improvement for addonsystem from x64
  • Delete physics object of Toolgun ghost as it doesn't need physics at all
  • Added filename to "steamworks.DownloadUGC: Failed to read addon file" console message
  • Increased MAXSTUDIOFLEXVERTS to 65536
  • Switched GM:GetFallDamage to use GetConVar() over GetConVarNumber() in base gamemode (Community Contribution)
  • Broken Patch materials fallback to LightmappedGeneric, instead of Wireframe, reducing invisible walls, floors, etc
  • Increased MAX_MAP_MODELS to 4096
  • Quadrupled console history log if game is started with "developer 1" or higher
  • "Something is creating script errors" message now also shows the folder addon names, instead of falling back to the default "Something is creating script errors"
handyman

Fixed

  • Fixed a rare Javascript error with the server browser
  • Fixed materials without a valid shader becoming completely inivisible, now appear as wireframe
  • Fixed a typo in a certain gm_save console message (Community Contribution)
  • Fixed prop_physics_respawnable not respawning as expected
  • Fixed loading of .png textures after a map change trying to load non existent .vtf versions of the textures
  • Fixed mounting Portal 2 making models/player.mdl spawn as an unmovable, uninteractable object
  • Fixed servers trying to send a random Lua file to clients if there is no files needed to be sent
  • Fixed some procedural textures allocating a material slot every time they are reloaded, for example spawnmenu icons on spawnmenu_reload/map reload and Material() calls with backslashes
  • npc_barnacle clears the entities it spawns when removed
  • trigger_weapon_dissolve no longer crashes the game if one of the weapons it is meant to delete got removed prematurely by something else
  • npc_barnacle no longer crashes the game if it is missing its "tongue" entities
  • Shadow rendering doesn't crash when it encounters a null renderable
  • Potential fix for crashing with Inverse Kinematics on certain models
  • Fixed decal related crashes on world geometry (brushes/displacements) when the material they are applied to/rendering with is unmounted
  • More crash safeguards when loading localization files
  • Fixed gamemode ConVars being recreated multiple times during map loading, possibly leaking memory
remove_circle

Removed

  • Hide mat_texture_limit console variable
add_circle

Features

  • Added GM:PlayerAmmoChanged
  • Added GM:PreDrawViewModels
  • Added SANDBOX:CanArmDupe
  • Added Player.GetUseEntity
  • Added Player.PickupWeapon
  • Added NPC.PickupWeapon
  • Added NPC.GetWeapons
  • Added NPC.GetWeapon
  • Added NPC.SelectWeapon
  • Added NPC.RememberUnreachable, to give NPC.IsUnreachable a reason to exist
  • Added NPC.HasEnemyEluded
  • Added NPC.HasEnemyMemory
  • Added NPC.GetEnemyLastKnownPos
  • Added NPC.GetEnemyLastSeenPos
  • Added NPC.GetEnemyLastTimeSeen
  • Added NPC.GetEnemyFirstTimeSeen
  • Added NPC.SetIdealYawAndUpdate
  • Added ENT:OnChangeActivity for base_ai entities
  • Added Entity.SetLayerSequence
  • Added Entity.GetLayerSequence
  • Added utf8.sub and utf8.GetChar (Community Contribution)
  • Added GM:PlayerCheckLimit (Community Contribution)
  • Added GM:CanUndo (Community Contribution)
  • Added PLAYER:Death (Community Contribution)
  • Added optional argument to render.DrawScreenQuad() - Apply poster corrections
  • Added optional argument to NPC.MarkEnemyAsEluded and NPC.ClearEnemyMemory - Enemy entity override
  • Added .vmt to file.Write whitelist
  • Current value is passed to DTextEntry's OnEnter callback (Community Contribution)
arrow_circle_up

Improvements

  • controlpanel.Get will no longer return panels that are about to be deleted (in the next frame)
  • Vector.__div now type checks its second argument
  • Angle/Vector.__newindex now type checks its 3rd argument
  • Added a non-halting error message when mods are trying to send an overflowed net message
  • Entity.Set/GetLayerDuration, Entity.Set/GetLayerCycle, Entity.SetLayerBlendIn, Entity.SetLayerBlendOut, Entity.IsValidLayer are now shared
  • render.Capture now accepts "jpg" as an alias of "jpeg" format
handyman

Fixed

  • ENT:StoreOutput() works for newer Source Engine map IO format
  • Fixed OBS_MODE_FIXED/CHASE/IN_EYE having bad spectator behavior due to the player's movetype being set to NONE
  • Fixed SWEP:OwnerChanged being very unreliable and inconsistent
  • Fixed ents.CreateClientside entities not receiving projected textures
  • Fixed returning true in GM:EntityEmitSound hook when the Entity is a clientside only entity causing the ent index to be read incorrectly, which in turn caused infinite scrape sounds for gibs
  • Fixed effects.BeamRingPoint having its blue and green color channels swapped
  • Fixed NPC.Give() being able to give an NPC multiple copies of the same weapon, now returns the existing copy
  • Fixed double "expected" in VMatrix.__mul type error message
  • Fixed PANEL:OnMouse* and PANEL:OnCursor* hooks not working on panels derived from RichText
  • Fixed cvars.AddChangeCallback's identifier not working as intended (Community Contribution)
  • base_gmodentity.GetPlayer() now properly returns the player object after player reconnected to the server for base_gmodentity derived entities (Community Contribution)
  • Fixed loading of .png materials with different material parameters not working properly
  • Fixed Entity.AdvanceFrame crashing the game with invalid sequences
  • Fixed Lua errors from PositionSpawnIcon() with bad entities
  • Fixed Entity.NetworkVarElement not saving/restoring properly
  • Fixed NWVars not updating properly on clients when joining a server/reconnecting
  • Fixed an exploit with presets.Add (Thanks to Deyvan)