Garry's Mod Logo
schedule 19 August 2020
Update

August 2020 Update

Spawnmenu polish, tool and NPC fixes and other changes

This update brings a whole host of spawnmenu and Sandbox tool related improvements. You can now right click on NPC icons and quickly spawn them with a specific weapon: (This will not affect normal left-click spawning) Wheel tool got a bunch of fixes, for old and more recent problems, such as the wheel direction indicator sometimes appearing at a wrong angle/distorted and the Wheel tool preview floating above ground/walls unexpectedly. Thrusters got some fixes and a visual improvement to their effects, where they will now conform to the thruster model dynamically: There are also a number of improvements to the built-in weapons and NPCs. Smaller issues were fixed with the RPG Launcher and S.L.A.M., and the Gravity Gun can now be upgraded into it's "super" state, (however Super Gravity Gun effects are not ready yet and will come in the next update) which enables players to play through the Citadel levels of the Half-Life 2 campaigns. It is, of course, also available outside of those levels using console commands. There were also fixes towards using weapons in vehicles. A bunch of NPC related fixes were also introduced, such as Combine Soldiers not using Scripted Weapons properly (SWEPs still need to be coded properly to be usable by NPCs), certain NPCs ignoring the "Disable Thinking" setting, and the longstanding issue of Rollermines and Floor Turrets becoming floating with the "Keep corpses" option being turned on. As usual there are also plenty of crashes fixed, as well as new features and fixes for the addon developers. You can find the full change list below.
add_circle

Features

  • Added Filter text field to console UI, direct "bindings" to con_filter_* stuff (only affects new messages)
  • You can now add a spawnmenu label by right clicking empty space in the spawnlist
  • Added "Spawn with weapon" right click option for NPCs that can use weapons
  • Added Preset support for Weld and Camera tools
  • Added right click menu for player model selector icons to copy model path of the player model
arrow_circle_up

Improvements

  • Dissolved entities now have zero G regardless of whether "Keep corpses" is enabled or not
  • Spawning wheels, balloons, lamps, lights, cameras now applies the propspawn effect like other tools
  • Thruster effects now try to conform to the thruster model, so a smaller model produces a smaller effect, a bigger model produces a bigger effect
  • Thruster smoke effect now acts more like smoke (gravity) and acts more like a thruster when not moving
  • Only show the CSS thruster models in the tool's model list if CSS is mounted
  • Spawnmenu editable labels now stretch to fit the text being entered and do now overflow spawnlist panel width
  • Limited Stereoscopy Effect's size to +/-11.5 to prevent "legal wallhack" in Sandbox derived gamemodes
  • Gravity Gun can now successfully complete the upgrade process and is no longer a progression stopper on d3_citadel_03
  • Upgraded Gravity Gun can pick up stuff from further away, has SUPER sounds and can turn NPCs into ragdolls
  • Reworked models/mechanics/solid_steel/type_a_2_16.mdl so it isn't broken anymore
  • item_healthvial dropped by NPCs on death also gets dissolved like the weapon/combine ball ammo drop does if they died from dissolve damage
  • Updated language files, added language strings for Undone_Statue and env_entity_dissolver
  • Spawnmenu handles deletion of all spawnlists upon save better, by first showing hidden ones that require mountable games, and then regenerating default spawnlists if there are no spawnlists left whatsoever
handyman

Fixed

  • Fixed combine soldiers only shooting 1 bullet per burst with SWEPs
  • Fixed combine soldiers not using weapon rest times at all (only uses SWEP rest times now)
  • Fixed default secondary ammo HUD not updating its visibility when secondary ammo type changes
  • Fixed a crash issue with secondary ammo display when switching to a NULL weapon
  • Fixed secondary ammo HUD not showing while in a vehicle with weapons in vehicles enabled
  • Fixed wheel ghost spazzing out when aiming at moving entities
  • Fixed wheel ghost preview floating above certain surfaces unexpectedly
  • Fixed wheel direction indicator size spazzing out with certain wheel models on certain surfaces
  • Fixed updating a Thruster stopping its sound after a short while if its active, instead of updating the sound
  • Fixed Motor tool's Force Limit not functioning
  • Fixed a bunch of render order issues with default tool entities and potentially other addon entities
  • Fixed a "CUtlRBTree overflow!" crash to do with detail models (grass and stuff) on maps
  • Fixed prop fading not fading but instantly hiding props
  • Fixed prop fading breaking/being affected by water/mirror reflections
  • SLAM tripmines now properly clean their laser when they are removed, not exploded
  • SLAM weapon no longer tries to throw/place a tripmine/satchel immediately after switching to the weapon if the player switched away during the placing/throwing animation
  • Fixed RPG Launcher shooting a non guidable missile in some cases
  • Fixed a crash when changing r_flashlightdepthres during runtime while having projected textures around
  • Fixed up/down buttons for alpha on tool color selection not functioning
  • Fixed manually entering alpha value for Spawnmenu color selection not updating the UI
  • Try to avoid unexplained crash to do with overflowing font cache and display a warning instead (Another "CUtlRBTree overflow" crash)
  • Fixed jumping animations playing on players when landing in multiplayer (Fixed extra GM:DoAnimationEvent calls with PLAYERANIMEVENT_JUMP)
  • Tracking Sandbox Camera now properly tracks players instead of tracking somewhere above them
  • Fixed gravity gun (and potentially other weapons) not working properly while sitting in a vehicle
  • Fixed gravity gun spamming its "DryFire" sound in a rare case when the prop is picked up but is too far to be thrown
  • Fixed certain NPCs like Combine Camera/Turrets, Nihilanth, etc ignoring "Disable Thinking" setting
  • Combine Ball projectile no longer makes kill sounds when hitting ragdolls, to prevent insane sound spam when it gets stuck in multiple ragdolls
  • Fixed "Keep Ragdolls" setting causing dead rollermines and floor turrets to create uninteractable "ragdolls" on death
  • Citadel version of Half-Life 2 armor recharger now restores the correct amount of armor
  • "Make Statue" property now properly saves and restores via duplicator (affects only new dupes/saves)
  • "Enable Gravity" checked status now properly saves via duplicator (affects only new dupes/saves)
  • Fixed engine saves sometimes having extremely messed up sounds
  • Fixed domain names starting with a number being counted as IP addresses in the old server browser when adding a new favorite server
  • Fixed respawn_entities command breaking weapon sounds until player respawns
  • Fixed Alyx's Gun sounds not working without Episode 1 being mounted
  • Fixed Metropolice freezing the game for too long on initial spawn
  • Spawnmenu now selects the first VISIBLE spawnlist, used to select hidden spawnlists
  • Do not exit the game on "Couldn't create windows font" error
  • Fixed extreme performance loss with SetMaterial and missing materials with Capitalized materials
  • Server's IP address can now be selected and copied in the server browser (Community Contribution)
remove_circle

Removed

  • Removed "Torque Limit" from ballsocket tool as it did nothing
add_circle

Features

  • TTT: Added Simplified Chinese language (Community Contribution)
handyman

Fixed

  • TTT: Fixed Duck key while spectating in roaming mode teleporting you to last spectated player (Community Contribution)
  • Fixed TTT's fgd crashing Hammer when used with Half-Life 2 fgd at the same time
add_circle

Features

  • Added extra info to "version" console command to help debug issues
arrow_circle_up

Improvements

  • Replaced usage of "Physgun" and "Physcannon" with "Gravity Gun" in the .fgd files used by Hammer to avoid confusion between GMod's Physics Gun and the Gravity Gun
  • Replaced "Bad field in entity!!" console warning with a far more descriptive one
  • Move "CreateFragmentsFromFile: '%s' doesn't exist." to developer 1
  • A less error prone random walk location for the example Nextbot NPC
  • Thruster entity properly frees it's particle emitters
  • Allow all "anim" type SENTs to automagically calculate their default rendergroup (unless overwritten)
  • Replaced usage of WM_ACTIVATEAPP with WM_ACTIVATE due to a possible Windows bug to hopefully fix system.HasFocus returning wrong value when the game was minimized by clicking on it in the taskbar
  • Reload language files for addons just before Lua gets initialized, instead of just after
  • Added MaxHealth to NPCs that did not have it set
  • DMenuOption text offset is now the same whether it has an icon or not
  • prop_ragdoll no longer resets its collision group if it was set before Spawn(), unless SF_RAGDOLLPROP_DEBRIS is set
handyman

Fixed

  • Fixed console de-duplicating empty strings and text less than 10 characters long
  • Fixed IP blacklist sometimes affecting wrong servers
  • Gravity Gun now respects SF_PHYSBOX_NEVER_PUNT, SF_WEAPON_NO_PHYSCANNON_PUNT, SF_PHYSBOX_ALWAYS_PICK_UP, SF_PHYSBOX_NEVER_PICK_UP and SF_PHYSPROP_ALWAYS_PICK_UP spawnflags like expected
  • Fixed self crash with "ent_info worldspawn" console command
  • Fixed bad direct calls to PerformLayout() on built-in panels
  • point_message entity works in multiplayer for the listen server host
  • Added safeguard to CMDLCache::GetStudioHdr from CSGO for an "unknown cause" crash
  • Fixed gestures playing at 2x the speed on Nextbot NPCs
  • Dedicated servers properly go into hibernation once all players have disconnected (Use sv_hibernate_think 1 to avoid)
  • Potentially fixed playing viewmodel animations from the server only not updating them on client properly in multiplayer
  • +use picking up props no longer bails with sv_turbophysics set to 1
  • Fixed Hammer Editor crashing with model heavy maps
  • Fixed potential crashes when hitting entity limit and trying to create flex/bone manipulators
  • Fixed BSP brush models after 999 not working on maps
  • Trying to render out of bounds texture frames no longer crashes the game
  • Restored SF_COMBINE_NO_AR2DROP ep2 spawnflag for npc_combine_s
  • Potentially fixed a crash issue with RichText
  • Fixed a dozen crashes with Half-Life 2 weapons when the server has hit the serverside entity limit
  • Fixed certain ammo items in Hammer Editor having error models
  • Lua Auto-refresh no longer breaks spawnlist saving/reverting
  • Fixed self becoming NULL for Lua Effects when clientside entity limit is reached
  • Fixed NPCData.Weapons (Spawnmenu NPCs) not being counted as valid weapons, causing NPCs like Fisherman from Lost Coast not being able to spawn with his signature weapon
  • Fixed super tiny or 0-length slider and rope constraints causing crazy physics on props and causing potential crashes
remove_circle

Removed

  • Removed "dropprimary" console command
  • Removed the "Couldn't find surface in GetColorForSurface()" message
  • Removed a bunch of unused variables and merged double if statements across the sandbox gamemode (Community Contribution)
add_circle

Features

  • Added SF_PHYSPROP_IS_GIB, SF_PHYSBOX_ALWAYS_PICK_UP, SF_PHYSBOX_NEVER_PUNT, SF_WEAPON_START_CONSTRAINED, SF_WEAPON_NO_PLAYER_PICKUP and SF_WEAPON_NO_PHYSCANNON_PUNT enums (all shared)
  • Added NextBot.IsAbleToSee( ent, useFOV = true )
  • Added NextBot:Set/GetFOV()
  • Added CNavArea.IsPotentiallyVisible( cnavarea )
  • Added CNavArea:IsCompletelyVisible( cnavarea )
  • Added Nextbot.Set/GetMaxVisionRange()
  • Added CNavArea:IsPartiallyVisible( eyepos, ignoreEnt = NULL )
  • Added DLabelEditable.Set/GetAutoStretch, defaults to false
  • Added NEXTBOT:OnEntitySight and NEXTBOT:OnEntitySightLost
  • Added Material:Get/SetVector4D, returns/takes 4 numbers
  • Added DButton.SetMaterial() (Community Contribution)
  • Added Player.OwnerSteamID64(), serverside only, returns the SteamID of family sharing owner of the game license (or just the player's SteamID if not using FS), will be 0 before player is fully authed
  • NPC.NavSetGoalTarget, NPC.NavSetRandomGoal, NPC.NavSetGoal and NPC.NavSetWanderGoal now return a bool - whether the path generation succeeded or failed
  • Added a 2nd argument to util.RedownloadAllLightmaps - update static prop lighting
  • Added "stack" argument for GM:OnLuaError
  • Added DTree_Node.GetChildNodes
  • Added DTree_Node.GetChildNodeCount
  • Added DCollapsibleCategory.SetHeaderHeight
  • Added DCollapsibleCategory.GetHeaderHeight
  • PropSelect.AddModel(Ex) now returns the icon it creates (Community Contribution)
  • RecipientFilter global now has a new optional argument - make unreliable
arrow_circle_up

Improvements

  • DNumberWang.OnValueChanged is now only called when the value has actually changed
  • Increased precision of doubles in util.TableToJSON
  • Player.SetActiveWeapon( NULL ) now hides the view model as expected
  • Player.SetActiveWeapon( NULL ) no longer causes next selected weapon to be force-lowered
  • surface.DrawCircle is no longer made out of dots but uses lines and it's color argument is now optional
  • Promoted "HTTP failed - ISteamHTTP isn't available!" to an ErrorNoHalt with stack to help identify what addon is causing the error message
  • Weapon.SetClip1/SetClip2 marks the weapon to not give out reserve ammo/reset clips on weapon pickup
  • Made Entity.Use's last 3 arguments optional
  • More consistent "self" type/NULL checking for CNavArea and CLuaEmitter
  • CLuaParticle.SetThinkFunction/CollideFunction now ErrorNoHalts on bad input, instead of a silent message
  • DCollapsibleCategory now works better with Derma skins
  • CreateSound() no longer forces the internal filter to be reliable
handyman

Fixed

  • surface.DrawTexturedRect(UV) now work with poster command nicely
  • Fixed clientside DTVar callbacks not being called when setting an "Entity" type property to NULL
  • Fixed PANEL:OnStopDragging being called multiple times per "dragging drop" (Community Contribution)
  • Fixed engine.LightStyle crashing with style=64
  • NPC.NavSetGoal no longer tries to generate a 0 length path failing every time, now has 2 more arguments, minPathLength and direction = vec3_origin
  • Fixed render.DrawQuadEasy producing malformed/squashed quads in very certain rare cases
  • Player.PickupObject now force drops the given object before trying to pick it back up, so the object doesn't get stuck in an invalid state
  • Player.SetNoCollideWithTeammates( true ) no longer causes players with Team ID 1-4 to not receive melee damage from NPCs
  • Fixed walking on player heads not working correctly if SetNoCollideWithTeammates() is set to true and the 2 players are in different teams in teamID range 1-4
  • Fixed players on moving brush entities getting instantly killed if inside each other with SetNoCollideWithTeammates( true )
  • Fixed players getting flung unexpectedly from frozen props, most noticeably with SetNoCollideWithTeammates enabled and standing in teammates
  • Avoid console errors when using PrintMessage with weird input
  • DMenu submenus inherit parent's derma Skin
  • Fixed HTTP() global trying to use invalid ISteamHTTP pointer after changelevel on dedicated servers causing a crash
  • DModelPanel clears render depth automatically fixing weird artifacts when 2 or more DModelPanels are on top of each other