Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • Hammer: Allow right click on 3D view to activate FPS camera controls, on tools where right click in 3D view is not used
  • Added point_viewcontrol features from CSGO: SetTarget/SetTargetAttachment/ReturnToEyes/TeleportToView/SetTrackSpeed/SetPath inputs, "fov" "trackspeed "fov_rate" keyvalues, Set FOV spawnflag
  • Added env_sprite_clientside
  • env_projectedtexture: Added "style" and "pattern" keyvalues/inputs, SetNear/FarZ inputs and more
  • Added simple multiplayer support for color_correction_volume
  • Added info_particle_target as alias of info_target
  • Added prop_dynamic_glow as alias of prop_dynamic
arrow_circle_up

Improvements

  • Replaced a bunch of Color( 255, 255, 255 ) cases with color_white, etc
  • Hammer: Made the "Default to 15 degree rotations" setting invert what SHIFT does during rotation, not outright enable/disable it
  • Restored invalid model file header checks for VRAD
  • More descriptive error messages when Msg* functions fail to call tostring()
  • Avoid kicking players for "Connection rejected by game"
  • Crash with a nicer message on maps that have (purposefully) corrupted first lump
  • Better Orbit camera for DAdjustableModelPanel
  • Added server related steam error code translations
  • Minor improvements to PrintTable() (Community Contribution)
  • Switched steamworks.GetList to ISteamUGC
  • Better error handling for compressed map lump loading
  • The game no longer loads "Do not mount" state for unsubscribed addons
  • Combined the two loops in weapons.Register into one
  • Print a console message when game is started with -noaddons
  • Increased precision of rotation for all entities to fix prediction errors (lagginess) when walking on frozen props at not straight angles
  • Doubled maximum ammo types
handyman

Fixed

  • Fixed a crash related to shadow rendering
  • Fixed DNumberScratch's value going out of bounds of the blue background with huge values
  • Preventative fix for large Lua files causing clients to get stuck on loading or completely breaking a server with autorefresh
  • Fixed GMOD_SendToClient having inflated buffer sizes
  • Do not rebuild Derma skin on ALL panels when some single panel gets its skin set
  • Dtooltip inherits derma skin from the panel it is opened for
  • Fixed Hammer not loading vgui language files
  • Fixed certain labels/buttons in Hammer model picker being cut off
  • Fixed HLMV not being able to open VPK folders (and potentially other places not detecting VPK folders)
  • VRAD no longer crashes with invalid model versions on static props (i.e. Portal 2/CSGO models)
  • VRAD no longer bails compiling vertex lighting for static props with invalid model versions
  • VRAD now uses DX90 (used DX8 versions before) vertex format for vertex lighting of static props
  • Fixed "snap to grid" display in Hammer not updating when it should
  • Fixed "Browse" for func_instance in Hammer not filling the field properly when map .vmf is not located in the GarrysMod/garrysmod/maps folder
  • Fixed (env_)explosions not respecting the NODLIGHTS flag
  • Fixed a crash to do with built-in weapons
  • env_projectedtexture shadows can now be turned on while the projected texture is on (previously required the projected texture to be turned off)
  • Fixed hover state of DSlider's draggable "knob"
  • Overflowing serverside sound precache no longer boots you to main menu/crashes the server
  • Fixed MP3/OGG sounds being cached even when they don't exist/failed to load
  • Fixed Lua errors when thrusters are trying to use NULL particle emitters
  • Force disconnecting players to leave their current vehicle properly
  • Fixed Icon Editor erroring when editing a spawnicon which was removed (spawnmenu_reload)
  • Hammer and entity templates can now properly handle post Left 4 Dead 1 map entity Input/Output (ESC delimiter instead of a comma)
  • Fixed a crash with npc_alyx shooting on a server with no players
  • Changed bodygroups to use unsigned integers over signed integers to prevent crashing and increase the bodygroup combination limit somewhat
  • npc_combinegunship's ground attack spawnflag and inputs work now
  • trigger_teleport ejects player from a vehicle when teleporting with the "Only Players In Vehicles" spawnflag
  • Hammer: Fixed .fgd flag/array values inheritance, so spawnflags on trigger_teleport are no longer missing (possibly fixes other entities too)
  • Fixed an infinite loop with CAI_TrackPather on ep2_outland_11a (and possibly other maps/places)
remove_circle

Removed

  • Removed usage of SendLua in the undo library
  • Removed some unused variables from Sandbox entities
  • Removed internal STUDIO_TWOPASS hack for Lua entities to hopefully fix the render order issues for good
  • Rollback render.ClearDepth change for DModelPanel as it causes issues for addons
add_circle

Features

  • Added new argument to Entity.EmitSound - flags, and fixed type checking for the other optional arguments, including pitch and volume arguments not working if soundlevel argument is not given
  • Added 5th optional argument for surface.DrawOutlinedRect - thickness
  • Added ENT/SWEP.IconOverride (Also works for NPCs/Vehicles)
  • Added sound.EmitHint( SOUND_ enum, position, volume, duration, owner = NULL )
  • Added SOUND_ enums
  • Added "NiceName" read only field to Undo structure, contains the text shown in player's undo list UI (Community Contribution)
  • Added basic soundscript support for EmitSound global
  • Added "size" and "updated" (date) keys to engine.GetAddons()
  • Added new optional argument to Entity.DrawModel() - flags (STUDIO_)
  • PrePlayerDraw/PostPlayerDraw now have 2nd argument - flags (STUDIO_)
  • DrawWorldModelTranslucent/DrawWorldModel now have 2nd argument - flags (STUDIO_)
  • RenderOverride now also has 2nd argument - flags (STUDIO_)
  • Added DSP argument to entity.EmitSound and EmitSound global
  • Added 3 new types for steamworks.GetList() - "followed", "friend_favs", "favorite"
  • New optional argument for surface.DrawText - bool - force additive/not additive, defaults to font default
  • Added CTakeDamageInfo.SetBaseDamage
  • Added PlayerHandleAnimEvent and PlayerFireAnimationEvent hooks
  • Added maps/*.lmp to Workshop whitelist
  • Added list.GetTable() (Community Contribution)
  • Better click "animation" for DImageButton depression, added DImageButton:SetDepressImage() (Community Contribution)
  • Added Player.SetMaxArmor
  • Added Player.GetMaxArmor
  • Added render.GetHDREnabled()
  • Added Player.SetViewPunchVelocity
  • Added Player.GetViewPunchVelocity
  • Added player_manager.GetPlayerClasses() and PLAYER:ClassChanged() (Community Contribution)
arrow_circle_up

Improvements

  • Made NPC.NavSetGoal()'s 3rd argument to default to 100 to prevent old addons from erroring
  • Use a faster method of ignoring newlines in Base64decode
  • Allowed various Draw* global functions related to Post Processing to work directly with RenderTargets (Community Contribution)
handyman

Fixed

  • TOOL.ServerConVar actually creates the convars
  • Fixed draw.RoundedBox(Ex) with border value larger than the box height causing the box to render larger than intended
  • HTTP global always returns a boolean, not only on success
  • Fixed nextbots not respecting EF_NOSHADOW
  • Fixed an issue with SWEP:OwnerChanged clientside not being called when initially dropping a weapon
  • Entity.GibBreakServer is no longer affected by breakable_multiplayer convar (Aka it works now)
  • Fixed util.GetModelMeshes returning data for the error.mdl for models that don't actually exist
  • Entity.GetModel() clientside should now return more correct result
  • language.GetPhrase now translates strings starting with #
  • Player.PrintMessage serverside now translates messages like expected
  • Fixed DTree_Node.ExpandRecurse producing Lua errors
  • CSoundPatch:SetDSP now works while the sound is playing
  • Fixed addon spawnlists not supporting subcategories
  • Fixed DNumberScratch (and DNumSlider) constantly firing it's OnValueChanged callback when the value didn't actually change
  • Fixed collision/movement issues with Player.SetModelScale
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)