Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • Added physcannon_instant (defaults to 1) - Makes the gravity gun be able to be used instantly after switching to it, bypassing deploy animation (and sv_defaultdeplyspeed). The default value preserves the original behavior
  • Added option to generate spawnlists for addons to spawnmenu right click menu, similar to the one for mounted games
  • Added some existing models to the Lamp Tool, for more variety
  • Added the ability to auto join full servers when they get a free slot to the default server browser
  • Added the ability to add servers to favorites by IP to the default server browser
  • New spawnicon editor options - Move speed customization, FOV precise control, camera position copy/paste, quick rotate model +/- 45deg, Fixed selecting text in spawnicon editor only working on second try, forced LOD to highest
  • Display SENT/SWEP usage info in spawnmenu tooltip
  • Added new Team Fortress 2 map icons
  • Added prop_disable_distance_fade convar (cheat) - If set to 1, disables prop fading out with distance set by the map, including static props and other entities. Useful for taking screenshots
arrow_circle_up

Improvements

  • Fixed tiny amount of damage (less than 0.1) taking a whole armor point
  • First person Physics Gun effects no longer render during skybox pass
  • Changed "Filter" label on console to better represent what it does
  • Strip certain disruptive Unicode character groups from server & gamemode names
  • Moved extracted Steam Workshop .gma files from addons/ to cache/workshop/ so that all addon files are in the same place
  • Reworked menu_cleanupgmas to take into account server downloads - Meaning, Workshop files downloaded from servers and extracted, then deleted by Steam in 2 weeks, now get detected as useless extracted versions and are prompted for deletion
  • Do not fully disable the crosshair if player is dead, so it is visible when spectating a player in first person view, or flying around the map in spectate mode and cl_observercrosshair is set to 1 (default)
  • Visually and physically disable (but not hide) disabled Sandbox tools
  • Display a warning when trying to activate tools without a toolgun
  • Force spawnlist file names to lower case on save
  • Moved "Delete multiple items" in spawnmenu multi-select right click to the bottom - This is consistent with normal spawnicon right click item order
  • Do not try to render and save icons for models without meshes - This mostly applies to character animation files. They will appear as "ERROR" models
  • Limited certain unintentional addon whitelist paths to old addons only
  • Reworked default Half-Life 2 spawnlists to include most models that are shipped with the game without requiring mounting, as well as re-grouped similar models together in the 2 topmost default spawnlists.
  • Also added default spawnlists for Half-Life 2 episodes and Lost Coast, which will appear if those games are mounted (Note: Updated default spawnlists will not appear if you already have played the game before the update - to get them you will need to delete your existing spawnlists completely)
  • Updated hundreds of default spawnicons, added even more spawnicons for the new spawnlists
  • If a spawnicon does not exist, try to look in addons first before generating one - This makes it so that you can still edit spawnicons, but if you do not have a spawnicon rendered, and a workshop addon provides one, the game will use the workshop one as a fallback
  • Workshop subscriptions appear as "Unknown Addon" while we fetch their details - they will not be mounted as they could be banned
  • Restored Half-Life 2 use sounds with gmod_suit 1
  • Restored angle alignment/snapping for +use pickup
  • When mat_viewportscale is set to a tiny, game breaking value, fire a "Problem" notification for the user with a quick fix
  • Display an error in console when .gma addon file list has failed to be read completely
  • Included modified Alyx, Kleiner and Vortigaunt models that include animations from Half-Life 2 episodes, improving compatibility with those games
  • Included Episode 2 floor turret models for its skins & gibs
  • Included Episode 2 combine mine model, so its skins appear on that one Episode 2 map
  • Included Episode 1 ceiling turret model so it functions correctly when dry firing on that one Episode 1 map
  • Improved kill feed NPC names for map spawned NPCs like Rebels, Antlion Workers, etc
  • Improved Episode 1 intro - Blue vortigaunt material conflicts with EP2 resolved, wake up sequence works
  • Make sure to restore gamemode on server disconnect to what it was before joining the server
  • Enabled Episodic behaviors for Vortigaunts - don't attack while carrying NPC, lower threshold for range attacks during episodic maps
  • Enabled Alyx darkness mode, flashlight blindness & other episodic behaviors
  • Fixed Alyx still following the player in darkness mode without flashlight
  • Fixed Alyx's darkness breathing breaking other voice lines
  • Enabled episodic behaviors for Zombies and Headcrabs
  • Replace default cubemap texture with the one map compilation generates by default - this only affects maps that are renamed after compilation, which used to make them look overly shiny
  • Changed default value of "skill" convar to 2 (normal difficulty, was easy before)
  • Increased severity of mat_hdr_level problem (HDR being disabled, which makes certain maps not have lighting)
  • Faceposer flexes (sliders) are now grouped - The groups are defined by the models themselves
  • Updated localization files
handyman

Fixed

  • Fixed GMod force-adding "English (US)" keyboard layout which persists until PC restart
  • Fixed Winch right click not setting rope color correctly
  • Fixed inflator tool no longer working on NPCs
  • Fixed NPC kill related achievements not working
  • Fixed playermodel drifting away in prop_vehicle_crane when holding W or S
  • Fixed Lua being able to make the main menu fully black on disconnect
  • Fixed toolgun ghost entity fading out at distance in singleplayer on some maps
  • Fixed Color Modify post processing effect defaults not resetting invert
  • Fixed fsd-overrun-toy.mdl physics mesh being rotated 90 degrees (Community Contribution) & reduced its mass
  • Fixed spawning normal combine soldiers from spawnmenu with shotguns having their skin set to the shotgunner one
  • Fixed portal turret playing its disintegration sound twice when disintegrated via mods
  • Fixed player disconnection message sometimes not appearing, due to the player object being gone too soon
  • Fixed volume of certain sounds not being set briefly when first loading into a map - This fixes game making sounds when not focused when the option to specifically prevent that is enabled
  • Fixed auto generated spawnlists from mountable games disappearing on reload because they were incorrectly having "needs app" being set to the app ID, and not the app folder
  • Fixed addons over 2GB not loading correctly, the new limit is 4GB
  • Fixed "skill" console variable (selects difficulty) not doing anything for Half-Life 2 content
  • Finger poser and Faceposer correctly rebuilds UI on loss of entity
  • Fixed crazy mouse acceleration values completely breaking player view, making the game unplayable
  • Fixed faceposer breaking after 384 different flex names were loaded in a session - The limit is now 1024 and and if it is reached, a console warning is printed.
remove_circle

Removed

  • Removed Episode 2 exclusive soundscapes (wind gusts) from gm_construct
arrow_circle_up

Improvements

  • Increased some mapping limits:
  • MAX_MAP_OVERLAYS 1024 -> 8192
  • MAX_MAP_TEXDATA 2048 -> 8192
  • MAX_MAP_TEXINFO 12288 ->16384
  • Error checking in spawnicon context menu when spawnicons are removed while the player has the context menu open
handyman

Fixed

  • Fixed "cc_lang: invalid language" warning appearing with empty cc_lang
  • Fixed "Tried to Read into NULL memory!" warning appearing when mounting L4D2
  • Fixed random crashes to do with ClientsideModel & ents.CreateClientProp
  • Fixed a crash with NWVars
  • "Remember my choice for this server" is actually remembered when pressing "no" for the current session
arrow_circle_up

Improvements

  • CPropDoorRotatingBreakable does not try to precache NULL model breakables
  • Moved "render to video" temp file to videos/ folder
  • Allowed physgun_wheelspeed to go negative again
handyman

Fixed

  • Fixed symlinked autorefresh not working
  • More potential crash fixes to do with texture loading
  • Fixed net.WriteData warning not displaying correct data
  • Fixed async model loading system trying to load already loaded models
  • Fixed "bad sequence" warnings so they display correct max number
  • Fixed "Unable to initialize DirectSoundCapture" disabling voice chat
  • Fixed lua_refresh_file not working with gamemode or addon files
  • Fixed RecipientFilter global having its argument have a flipped meaning
  • Fixed some presets being erroneously treated as collection ID
  • Fixed "flush" concommand crashing on windows dedicated server
  • video library restores fps_max if it sets it
  • Fixed "render to video" not rendering while main menu is open
  • Fixed quitting while demo is being recorded writing invalid tick count to the demo count
  • Fixed a crash due to sounds failing to be loaded
  • Fixed a crash with the mesh library
  • Fixed DModelPanel having issues with depth buffer when 2 panels are overlayed
remove_circle

Removed

  • Removed some useless console commands - Test_CreateEntity, Test_RandomPlayerPosition, con_enable, con_drawnotify
add_circle

Features

  • Added Turkish translations (Community Contribution)
arrow_circle_up

Improvements

  • Prevent TTT weapon base creating Lua errors with NPCs (Community Contribution)
  • Transition to use SteamID64 where possible (Community Contribution)
  • Changed capitalization of certain weapon ammo types to match engine (Community Contribution)
  • Minor code clean ups and optimisations (Community Contribution)
  • Optimized radar ping network traffic (Community Contribution)
handyman

Fixed

  • Fixed a bug with Magneto Stick and the pinning convars (Community Contribution)
add_circle

Features

  • New VertexLitGeneric shader parameters - $AllowDiffuseModulation and $NoTint - both allow disabling color tint per material, enabling better compatibility with content from other Source engine games
  • Additions to .gma whitelist - materials/colorcorrection/*.raw and data_static/ - alternative to data/ folder with all the acceptable extensions for file.Write (except for the files that were already previously allowed, such as models, materials, etc)
  • Added some of the existing navmesh related entities to the base FGD
  • Restored content unloading, behind a convar - gmod_unload_test
  • Added SolidEnergy shader from CS:GO - enables certain things to draw correctly from Portal 2
  • Added lua_refresh_file <path>
  • Added quit keep_players option to not force disconnect players, a requested feature by server owners
  • -allowquit makes engine.CloseServer() function and run "quit keep_players"
  • Added Impact_GMOD effect that supports usage of IMPACT_ flags
  • Added "teamonly" param to "player_say" game event
  • Added "trace" console command for debugging purposes
  • Added sphere visualizer to point_message radius in Hammer
  • Added "Use" input to most entities in Hammer
arrow_circle_up

Improvements

  • Added file path to "ERROR: couldn't open." warnings
  • Change usages of deprecated gui.MousePos to input.GetCursorPos (Community Contribution)
  • Safeguards against malformed .gma files
  • Empty stored entity outputs when pasting duplications to prevent abuse
  • Reduced Player.__index calls in player 3rd person animations for performance improvement (Community Contribution)
  • func_physbox/func_pushable is ignored by navmesh generation as walkable surfaces
  • More "reportable" keyvalues in default FGDs - shows useful info in the Entity Report window
  • Disabled default automatic navmesh unblocking to accommodate CNavArea:MarkAsBlocked
  • Hide "No bound shader" warning behind developer 1 - and also add which materials the error is for
  • A bit faster optional argument handling for Lua API
  • Added classnames to "C_BaseEntity::UnlinkFromHierarchy" warning
  • Safe guard against invalid vector input to PhysObj functions to prevent crashes
  • Read settings/users.txt from MOD search path for safety
  • Limited lua_error_url to http(s) and send the client's SteamID with the Lua errors
  • Bumped MAX_MAP_ENTITIES to 65k (tools only) and engine hunk limit to 256MB
  • Unhide r_portalscloseall cheat convar
  • Fallback certain shaders that are not shipped with the game to existing ones only if they don't exist
  • Favorite workshop categories are no longer cached - so that they update properly when favorites change
  • Mention what nav_quicksave 2 does in the description of nav_quicksave
  • Enable episodic behaviors for npc_citizen when hl2_episodic is set to 1
  • Do not handle spawnicons during render.RenderView to prevent possible issues
  • Turn Lua effect creation warnings into non halting Lua errors so they have a stack trace
  • Initialize vectors when GetSequenceLinearMotion fails to prevent potential crash issues
  • Increased MAX_LIGHTSTYLES to 128 (from 64)
  • Switched func_rotating to use CSoundPatch for its looping sounds to fix missing sounds when joining a multiplayer server after a round has started
  • Display HLTV client connect messages differently from normal clients
  • Hide HLTV servers from the server list - They can't be displayed properly side by side right now (Game servers running HLTV are still visible)
  • WEAPON:CustomAmmoDisplay uses pooled string (potential micro optimization)
  • Micro optimization for missing physics objects
  • Validate model header values to not crash the game later - warnings are printed in console for such models, and they are not loaded
  • Patched base game cs_fix.mdl to not crash the game in certain scenarios
  • Do not even try to read weight of first bone for models without any
  • When deleting ragdoll physics objects, also delete constraints
  • Reset movehelper host after bot command processing, like players already do
  • Disabled SteamID authentication checking for LAN only servers - Fixes -multirun clients being stuck for some players waiting for confirmation whether the SteamID is valid or not when joining a LAN server
  • Hide IP address in status command for P2P servers
  • Prevented creating render target with names of non RT textures to avoid crashes
  • Prevented movement when the player is dead for WALK/NOCLIP/FLY movetypes
  • Do not mark addons with id of 0 for download from server - Just avoids the unnecessary wait time when its the only addon
  • Switched server downloads extension filter to a whitelist
  • Increased the default Hammer Map Compile Window size to 1280x720, from 600x400
  • Made 'Couldn't find target' warning more verbose
  • Clean up render targets created by Lua API, improving memory usage on map disconnect
  • Set inflictor of Crowbar/Stunstick damage to the weapon itself, not the player
  • Set Gravity Gun damage inflictor to the gravity gun, not the player, which is the attacker
  • Prop physics damage tries to set correct attacker, based on entity ownership and physics attackers
  • Applied a whitelist to Auto refresh folder watchers, to save system resource usage
handyman

Fixed

  • RPG rocket stops its looping sound when removed prematurely
  • Fixed crashes when using tv_record console command
  • Player:IsBot now returns true for SourceTV master client
  • Prevented tv_enable going beyond absolute max player count and crashing
  • SourceTV players are considered bots for player library
  • Do not wait for SteamID validation for HLTV clients that will never come, so players can actually join such servers
  • Fixed tags for HLTV servers, added extra hltv:1 tag
  • Fixed duplicate definitions for Player:GetTool (Community Contribution)
  • Improved support for non-English messages in DTextEntry history (Community Contribution)
  • World clicker aim uses correct FOV values, so it works when FOV is modified by GM:CalcView hooks, etc
  • Fixed displacements with $alphatest 1 materials not having collisions
  • Fixed props with VortWarp shader crashing the game when entering water
  • Fixed crashes when accessing out of bounds flex controllers
  • Given sk_ally_regen_time a minimum value of 0.01 to avoid division by 0, and subsequent freezes due to infinite loops
  • Resolved incompatibility with $BlendModulateTexture and $detail - fixes gm_construct sand/grass transitions
  • Fixed blendable textures on a brush being inverted in Hammer i.e. not appearing like they do in-game
  • Fixed fonts from gamemode's content/ folder inside a .gma not being extracted - so that they can actually be loaded
  • Clean up DOF_Ents table on DOF_Kill (Community Contribution)
  • Fixed airboat model attachment name
  • Fixed seemingly incorrect calculation of vehicle wheel total height
  • Prevent audio system being able to read files outside of game folder
  • Make duplicator actually spawn the correct NPC - It was spawning them by entity class, luckily all of the base ones are present in the "NPC" list by their classname, now it spawns them by their actual original name in the "NPC" list.
  • Fixed SteamID placeholder calculation for clients with no SteamID (multirun environments)
  • Fixed crashes due to CSoundPatch
  • Fixed Panel:SetDrawLanguageIDAtLeft causing cursor selection to be offset
  • Fixes for func_door looping sounds
  • Improve autorefresh handling for lua_openscript(_cl) scripts
  • Fixed secondary map instances overriding base map revision
  • Fixed navmesh place names being cutoff by 1 character
  • Fixed "from end/current position" seeking for files stored in VPKs
  • Fixed viewpunch prediction errors when landing
  • Fixed useless spam in output of VBSP (when compiling maps)
  • Fixed useless spam in console when starting Linux Dedicated Server
  • Fixed nav_generate and nav_edit trying to run unknown or removed concommands and convars
  • Fixed 2 community.properties translations that had typos
  • Do not force Nextbot/SNPC render group to opaque by default - let the engine decide based on the entity's model
  • Fixed an issue where text too long in mat_texture_list would not draw at all
  • Clear water reflection view every frame - fixes not rendering skybox causing water reflections to be "stuck" to screen, etc.
  • Fixed crash when prop_doors have no model on spawn
  • Fixed drag'n'drop preview being offset when local panel position is above 2048 pixels on any axis
  • Fixed a crash with npc_vortigaunt in a specific Half-Life 2 Coast map scripted sequence when you make it shoot an explosive barrel
  • Fixed an infinite loop in EnumerateElementsAlongRay when ray has infinite end position
  • Fixed minor saverestore warning with prop_physics
  • Force DXT1 /w 1BitAlpha to DXT1 format in VTF loading to make them actually appear correctly
  • Reject textures whose size is calculated to be 0 bytes
  • Prevented crashes with ragdolls (especially when created too early)
  • Fixed crashes when Half-Life: Source vortigaunt or scientist is killed by unowned combine ball
  • Fixed potential minor memory leaks with Source Engine
  • Fixed crashes related to shadow rendering
  • Do not cleanup env_soundscape_proxy entities - This used to break soundscapes, and other soundscape entities are already not cleaned up
  • Fixed func_tank becoming unusable after temporarily setting its firerate to 0
  • Fixed trigger_hurt damagetype keyvalue parsing for unsigned int values
  • Fixed func_instance_io_proxy not updating inputs correctly - All instance .vmf files will need to be re-saved for the fix to work
  • Set -game to garrysmod for Hammer if not already set, fixing "missing shader" warning spam on start up
  • Initialize mod shaders for VBSP (during map compile), so painted skybox materials can load correctly for cubemaps (since they use custom shaders, and missing shaders make materials not load)
  • Fixed crashes when failing to create physics bone followers at entity limit
  • Prevent crash on game exit to do with the loading screen
  • Fixed datapack_stats not correctly decompressing data, causing crashes sometimes
  • Fixed crashes when maps have entities parented in an infinite loop
  • Fixed a graphical glitch-exploit with pp/copy material and the halo library
  • Added sound/*.ogg to BSP whitelist
  • Gravity Gun stores and restores PhysObj drag state, instead of always resetting it
  • Fixed many crashes when certain models try to access invalid data
  • Fixed potential crash with game_ui entity
  • A number of crash fixes to do with infinities
  • Potential crash fixes with npc_barnacle
  • Fixed Problem count not being visible if problems are fired before the menu is created
  • Prevent models going invisible when animation cycle somehow becomes infinity
  • Fixed func_breakable_surf crashes on spawn without a model set
  • Fixed certain brushes not having any collisions on maps when the brush count is over 65k
  • Better reference counting for model decal materials, so they are not unloaded when the decals are still being rendered
  • Enable unloading of decal materials (and textures) on map shutdown
  • Fixed a crash with prop_vehicle_crane and map cleanups
  • Fixed crash when running editdemo without HLTV
remove_circle

Removed

  • Removed a number of useless files from Dedicated Server Distributions, such as binaries and other files only used by the game client
  • Removed unused "bodyque" entity system
  • Disabled and partially removed unused Source Engine commentary system
  • Removed mem_eat command