Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • •
    Added “G String” game mounting support
  • •
    Added a confirmation window when a server tries to force connect a player to a different server
  • •
    Added "Followed" and "Favorites" categories to dupes, saves and demos sections of main menu and the spawn menu
  • •
    The map, gamemode & server name of the server you are joining is now shown on the default loading screen. It also now goes dark mode based on player’s local time
  • •
    Added "Disable Sprays" checkbox to the Options menu
  • •
    Servers that failed to respond to the info/ping requests are now shown in the server browser under "Unreachable Servers" section
  • •
    Added "Disconnect" button to the "open URL" and "connect to a server" confirmation dialogs
  • •
    You can now CTRL+A in console (or in any other RichText GUI element such as default chat window) to select all text
  • •
    Added "Size" display to every addon in the Addons menu
  • •
    Added weapon slot 7, 8, 9 and 0 binds to Options menu as some mods/gamemode might be using more than 6 weapon slots
  • •
    Added map icons for new maps of Team Fortress 2, CS:GO and Fistful of Frags
  • •
    Added sound effect slider to Audio Options menu. This affects all sounds except for voice chat and music, both of which have their own sliders. This allows players to configure voice chat volume separately from the sound effects volume, making the voice chat louder if master ("Game") volume is set to maximum.
arrow_circle_up

Improvements

  • •
    Throwing the last HL2 grenade now maintains previous/last weapon for gravity gun grenade throws
  • •
    Limit maximum force for Thruster tool to 1e10 (from 1e35) to reduce crashing potential
  • •
    Manually installed .gma addons now display their internal title in the Addons menu, not the filename
  • •
    "sv_skyname" now applies changes live, without needing a map restart
  • •
    “sv_gravity” now updates the physics gravity without needing a map restart
  • •
    FOV in Jeep (and its reskins by addons) now matches player configuration in Options menu (Defaulted r_jeepFOV to 0 so it uses player's desired FOV)
  • •
    Fixed r_jeepFOV not updating properly when re-entering a vehicle
  • •
    Made the two Portal 2 DLCs also mount with Portal 2
  • •
    ERROR spawnicons are no longer saved to disk when rendering them in the Spawnicon Editor, unless of course we are editing the icon of models/error.mdl itself
  • •
    Sandbox Camera entity now also uses "noclip"/first person drive type, like Lamp
  • •
    Removed the strange 10 unit distance 3rd person view from "noclip" drive type, now is true first person
  • •
    Crouch and Jump buttons now have an effect in "noclip" and "sandbox" drive types (Hold C > Right click on entity > Drive), similar to normal player noclip
  • •
    Ported more episodic behavior for the Gravity Gun - including being able to pick up props behind grate-type props
  • •
    Removed max values from steam stats, they will now continue to increase after completing their associated achievements
  • •
    Spawnmenu handles screen resolution changes better while on a map
  • •
    Pressing CTRL while a RichText GUI element is focused will no longer reset selection, and neither will copying the text
  • •
    Moved spawnicon queue to a convar (spawnicon_queue) which defaults to 0, and made it target 10fps not 30 when enabled
  • •
    NPCs can now open brush doors if it’s in their way, unless the door specifically disables this
  • •
    Added a replacement for a missing shader which fixes a bunch of Left 4 Dead 2 maps having wireframe textures in the skyboxes
  • •
    Adjusted color of water on Left 4 Dead 2 maps
  • •
    Added fixed versions of nuke_clouds materials for some CS:GO map skyboxes
  • •
    Improved default Face Poser presets to not stretch faces across the whole map
  • •
    Preset editor properly handles different convar capitalization (now forces lowercase) and handles cases where the preset contains less convars than the tool itself
handyman

Fixed

  • •
    Fixed graphical glitches on Portal 2 maps when using flashlight (by overwriting skybox materials to have $ignorez set to 1)
  • •
    Fixed certain lights on Portal 2 maps looking incorrect (Refract shader's $localrefract workaround)
  • •
    Fixed Workshop addons not being able to update when joining a server after they have been already loaded by the game
  • •
    Sprays now work in singleplayer
  • •
    Fixed sprays not working for player slots 64-128
  • •
    Fixed not being able to see updated spray image of a player that rejoins the server after changing their spray image until the game is restarted (Also fixes their old spray image becoming error texture)
  • •
    Fixed Half-Life: Source scientists screaming non-stop after getting damaged
  • •
    Fixed an issue with Vehicle duplication when there is no associated player (Community Contribution)
  • •
    Fixed too many NPCs in a squad making new NPCs unable to shoot, which used to happen when spawning over 16 NPCs of the same type through the Spawnmenu at the same time
  • •
    Fixed Gravity Gun sounds being audible only for its owner
  • •
    Fixed weapons sometimes trying to play their sounds from underground, resulting them in not playing any sounds
  • •
    Fixed the broken Gunship patrol pathing code from Half-Life 2 (without hl2_episodic 1) reaching infinite loops and hanging the game
  • •
    Fixed default spawnlists counting as user config, which made them not restore due to a Steam bug if they are deleted
  • •
    Fixed tp_coastal from Fistful of Frags crashing on map load
  • •
    Fixed Faceposer's UI getting filled with 7px tall blank panels when switching Faceposer targets
error

Known Issues

  • •
    Some Left 4 Dead 1 and 2 maps crash on map load. There is a workaround for it on the "dev" beta version of Garry's Mod, but it needs extensive testing before it can be released to public.
add_circle

Features

  • •
    Added "Addon Presets" feature
  • •
    Added "Toggle" keybind for Hoverball tool
  • •
    Added "Playback rate" slider for Spawn Icon editor
  • •
    You can now undo Weapons spawned through Spawnmenu with middle mouse click or the Creator tool (Community Contribution)
  • •
    Hoverball now shows its "Strength" value in the tooltip
  • •
    Dynamite now shows its "Delay" value in the tooltip
  • •
    Added "Followed" and "Favorite" sections to Addons menu
  • •
    Subscribing to addons with addon dependencies from in-game now displays a nice message telling you which addons you should also install with quick buttons to do so
  • •
    Added ability to hide news in main menu (News posts younger than 7 days are still force shown)
  • •
    Banned/invalid addons now appear in the addon list to give users a chance to uninstall them and to tell them why they are not loaded
  • •
    Added support for the new Left 4 Dead 2 DLC
  • •
    Added 4 map icons from the Team Fortress 2 Halloween 2020 update
  • •
    Added "enable realistic fall damage" option to "start new game" for Sandbox
arrow_circle_up

Improvements

  • •
    Implemented full effects for the Super Gravity Gun
  • •
    It should no longer be possible for the Gravity Gun effects to break when overwriting Garry's Mod files
  • •
    Gravity gun effects now look closer to how they look in Half-Life 2
  • •
    Reduced the minimum value for Light tool brightness to -10 from 0, which makes the light dimmer (-6 in UI)
  • •
    Improvements to prevent spawning props partially inside walls/ground
  • •
    Translated "Unfrozen X objects" and "Undone X" (experimental) hints
  • •
    Added default keybinds to Lamp and Light tools
  • •
    Given Hoverball tool more sensible defaults
  • •
    Revised Hoverball visuals and placement angles
  • •
    Improved UGC (addons/dupes/etc) pagination: Added page number for easy sharing, now works better on extremely small screens and can go beyond page 32
  • •
    Reduced minimum amount of UGC icons to 1 so the UGC menus are at least functional on tiny screens
  • •
    Light tool rope attaches closer to the top of the model like expected
  • •
    Localized Workshop subscription Download/Extraction window
  • •
    Do not display "ServerContent" addons in Latest/Popular/Trending categories in-game
  • •
    Updated Light tool model - color tool applies color only to parts that are meant to be colored similarly to Lamp tool models
  • •
    Finger poser improvements: New background image, scales better with custom tool panel width, holding SHIFT should now make it easier to position fingers
  • •
    Changing spawnicon skin/bodygroups in the spawnmenu triggers "Save Changes" button to show
  • •
    Experimental spawnicon loading 'queue' - prevent complete freezes when opening spawnlists, load spawnicons until we reach 30 FPS or 1 per frame
handyman

Fixed

  • •
    Fixed right clicking or middle mouse clicking on text entries in spawnmenu forcing the spawnmenu to stay hanging unable to be closed with Q
  • •
    Fixed not being able to +use pickup hl2 grenades
  • •
    Fixed not being able to +use pickup weapons (as in, physics pickup)
  • •
    Weapons no longer disappear when you pick up 0 ammo from them with gmod_ammo 0
  • •
    Fixed Half-Life 2 credits not working
  • •
    Don't count "no workshop id" as a workshop id for server browser gamemode list, potentially hiding the install gamemode button
  • •
    Fixed not being able to send large dupes (arm them) to server while being able to download large dupes from server. Dupe anti spam is now per-player on server and also exists on client.
  • •
    Fixed Gravity Gun leaving held prop stuck mid air on client when the Gravity Gun is switched away too quickly
  • •
    physcannon_mega_enabled now works as expected
  • •
    Fixed Gravity Gun launch/punt effects coming from the wrong place in 3rd person for local player
  • •
    Fixed "Cleanup Scripted Weapons" button only cleaning up Scripted Entities and not Weapons (now does both), Added missing translation for "#Cleaned_Sents"
  • •
    Resizing spawnmenu Dupes/Saves tabs now properly updates the icons to fit within the new size
  • •
    Players are no longer in the sit animation in 3rd person when exiting vehicles
  • •
    Fixed Lamp/Light tool effects not rendering
  • •
    Fixed Thruster not working at all if it was turned on while frozen by the Physics Gun
  • •
    Fixed being able to "store an attack" using the Fists SWEP by switching away after pressing LMB and before the attack is performed
  • •
    Fixed entering a vehicle while crouched saving and restoring the crouched view offset when exiting the vehicle even though the player is forced to un-crouch
  • •
    Properly align checkbox labels in New Game settings
  • •
    Partially resolve explosive barrels exploding when catching them and lightly touching ground after throwing
arrow_circle_up

Improvements

  • •
    Updated Portuguese translation for TTT (Community Contribution)
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