Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • •
    Added custom radio button support and extra default sounds (Community Contribution)
  • •
    Added optional translation parameters when adding radio sound names (Community Contribution)
arrow_circle_up

Improvements

  • •
    Set Attacker and Inflictor in usages of SWEP:FireBullets (Community Contribution)
  • •
    Raise passive equipment item limit from 16 to 32 (Community Contribution)
  • •
    Russian and Turkish localization updates (Community Contributions)
handyman

Fixed

  • •
    Fixed "Tried to create font 'X' from a game font 'Y'" warnings
  • •
    Prevent the round start info box from stacking when restarting rounds rapidly
remove_circle

Removed

  • •
    Remove "Missing CS:S" chat warning (Community Contribution)
add_circle

Features

  • •
    status console command now also prints server & map uptime
  • •
    Implemented Lightmapped_4WayBlend shader with full tools support
  • •
    Implemented new Water shader features - lightmapped water fog, flow maps and ability to reflect 3D skybox ($reflect3dskybox), envmaps for expensive water, support for $reflect2dskybox
  • •
    Use gmod_flashlight attachment for flashlight if it exists - this works for player models, world models and view models
  • •
    Added sv_nomap_timeout convar - Closes a dedicated server if it is running without a map for given amount of seconds.
  • •
    Added "Restore" input to func_breakable_surf entity
  • •
    Added $PortalColorGradientDark and $PortalColorGradientLight to PortalRefract shader
  • •
    Added new parameters to SpriteCard shader
  • •
    $AimAtCamera, $OrientationMatrix ($Orientation 2)
  • •
    $Orientation now supports modes 3 and 4
  • •
    $basetexturetransform support for DepthWrite shader (for alpha tested materials)
arrow_circle_up

Improvements

  • •
    Prevent silly values in fog_controller (malicious map "protection"), as well as prevent map reload loop via player_loadsaved entity
  • •
    Improvements to multiplayer player getters
  • •
    FindEntityProcedural !pvsplayer multiplayer support improvement
  • •
    UTIL_GetLocalPlayer micro optimizations
  • •
    UTIL_FindClientInPVS now tries to get the closest client
  • •
    Changed "exe version" to "network version" in output of "version" console command to avoid confusion
  • •
    Removed newline from "Disconnect by server." kick message, so server console log is less messy. No other kick reason adds a new line at the end.
  • •
    Micro optimization for GM:HUDDrawTargetID (Community Contribution)
  • •
    Enable Episode 2 behavior for npc_combine_s (Some sort of "march" mode)
  • •
    Allow .PCF as valid network transfer extension (FastDL)
  • •
    SRCDS workshop addon cache also caches titles - Also display a warning when that cache will be used
  • •
    Make "No account token specified" message in SRCDS console a warning
  • •
    Unhide sv_soundscape_printdebuginfo
  • •
    Reset render library's internal "last material" vartiable on map shutdown
  • •
    Fallback "VertexBeckman" shader to "VertexLitGeneric" (PVK2 game)
  • •
    Improve free edict detection during entity creation, so allocated edict count cannot pass the internal buffer amount and prevent creation of entities until map restart
  • •
    Clean-up doubleclicking code in the main menu (Community Contribution)
  • •
    Internal rework of main menu's bottom bar (Community Contribution)
  • •
    Make zombies/metrocops propagate their "use lag compensation" state to spawned child NPCs (headcrabs and manhacks)
  • •
    Dynamically calculate max autocomplete items for the console based on available space
  • •
    Added SteamID64 to "Dropped %s player from server" console message
  • •
    Enabled CEF credits button in the Options
  • •
    Limit static prop counts to safe values to prevent crashes
  • •
    Minor VPK support changes from CS:GO - potential memory usage improvement
  • •
    Add description to g_ragdoll_maxcount convar, update descriptions for gm_snapangles and gm_snapgrid
  • •
    Give prop_active_gib* convars descriptions and more sane values - 100 active gibs should be plenty (was 999999)
  • •
    Add a better crash message when getting vertex size 0 to help catch source of the crash
  • •
    Alias dz_door (CS:GO danger zone map doors) to prop_door_rotating
  • •
    Prevent item_item_crate from spawning certain entities that could cause game crashes
  • •
    Throw an engine error when trying to request invalid shader parameter, instead of cryptic crashing
  • •
    Changed whereis to print path of missing files (useful for mat_texture_list 1)
  • •
    Improved several console warnings and crash popups with extra information to help diagnose the underlying issues
  • •
    Improved .nav file error handling to prevent game crashes and freezes, as well as error reporting
  • •
    Do not save or load mat_specular/mat_bumpmap convars across game sessions - These are debugging convars, they do not need to save and cause persistent visual downgrade with no video options enabling them back.
  • •
    Increase max lightmap dimensions to 128 for brushes (from 32)
  • •
    Renamed npc_tf2_ghost to nb_example, and moved it from base gamemode to Sandbox
  • •
    Alias sdk_lightmappedgeneric_dx9 shader to lightmappedgeneric for content from some Source Engine games/mods
  • •
    Potentially improved console variable related performance
  • •
    Remove main menu's reliance on RUNLUA: hack through console.log
  • •
    Use consistent search paths for textures and some model code - makes textures load from consistent location of disk, just like models and materials
  • •
    Make gm_spawn only work for .mdl files
  • •
    Fixed crashes to do with a certain demo files that play on the wrong map (compared to the one it was recorded on)
  • •
    Clear "material is missing" flag on all materials when a map is started loading
  • •
    Initialize 3rd person camera on map load, to fix behavior change after first disconnect
  • •
    Defer gameevent/OnRequestFullUpdate game event if not in main thread (instead of dropping it)
  • •
    Reject non .vtf customization files
  • •
    Optimized Sandbox Widgets system, especially when none are used on the entire server (Community Contribution)
  • •
    Minor optimizations for GM:PlayerSelectSpawn (Community Contribution)
  • •
    Minor loading screen cleanups (Community Contribution)
  • •
    Optimized some internal engine functions to do with looping over player list, so they no longer loop over the player list
  • •
    Added function locations to output of lua_find(hooks) commands and adjusted formatting and colors so its easier to read
  • •
    Adjusted formatting of lua_dumptimers commands so its easier to read
  • •
    Updated gmod_physiterations description to specifically mention constraints
  • •
    Default presets in Utilities tab dynamically load convar defaults instead of being hardcoded
  • •
    Allow fractional tickrates (i.e. 66.666), and clamp the result between 1ms and 100ms
  • •
    Constraint library - Change the rope material shader blacklist to a whitelist (of UnlitGeneric, SplineRope and Cable shaders), and disallow materials that do not exist
  • •
    Prevent player's view roll from being changed by bad actor maps either by spawning or teleporting the player
handyman

Fixed

  • •
    Fixed "TraceAttackToTriggers" system for bullets causing the shot entity to have a separate damage event for each pellet of a shotgun shot
  • •
    Fixed func_lookdoor in multiplayer only reacting to the first player on the server (now reacts to the closest player)
  • •
    Multiple improvements to error handling of particle sheet loading
  • •
    weapon_fists sets Weapon in DamageInfo (Community Contribution)
  • •
    Prevent crashes due to net_graph trying to draw too much at a time
  • •
    Fix Error() in C not exiting the game with a nice message when multicore rendering is enabled
  • •
    Fixed sv_lagcompensationforcerestore not really doing what it says in its description
  • •
    Fixed soundscapes not working with duplicate sounds
  • •
    Fixed Entity:FireBullets causing "CLuaObject:GetType with invalid lua state" warnings after a changelevel when using FireBullet callbacks
  • •
    Restore rope texture scaling to Half-Life 2 values when they are spawned by the map
  • •
    Prevent potential Lua errors with weapon_base when owner dies during firing bullets
  • •
    Fixed some IMaterial functions complaining in console about "$basetexture not being a texture". (Non multicore rendering only)
  • •
    Fixed server crash when mounting ladders at edict limit
  • •
    Prevent crash to do with CSpatialPartition invalid handles
  • •
    Fixed edict exhaustion prevention affecting nextbot players, and crashing the server
  • •
    Fixed a crash when using gm_load on dedicated server
  • •
    Fixed a crash with clientside ropes on props
  • •
    Fixed server crashes to do with Gonarch NPC
  • •
    Fixed many server crashes when trying to spawn gibs at edict limit
  • •
    Make prop water level changes actually work, and apply on clientside too
  • •
    MsgC no longer outputs empty strings when first argument is a color, preventing console message deduplication
  • •
    Fixed fall damage constants being inconsistent between client/server
  • •
    Prevent "bone write access" warnings with ClientsideRagdoll
  • •
    Fixed CLC_Move::ToString numbers being flipped
  • •
    Fixed CBaseFileSystem::ReadLine not working for workshop files at all
  • •
    Fixed VPK file.Find issues with folder searching
  • •
    Fixed BSP file.Find not really working well
  • •
    Fixed Lua errors with DProperty_VectorColor when deleting the associated editable entity
  • •
    Prevent misleading "X used to create wrong class type" warning that happened at edict limit when spawning gibs
  • •
    Try to prevent Half-Life: Source gibs from falling out of the world
  • •
    Fixed an issue with GM:HUDShouldDraw that allowed blocking access to main menu
  • •
    Fixed some weird v7.4 VTF cubemap textures not loading due to missing sphere map
  • •
    Fixed clientside prediction breaking hull traces against local player in multiplayer
  • •
    Do not complain about missing "$refracttexture" when polling water material for its requirements
  • •
    Fixed kickid via SteamID64 not working on dedicated servers
  • •
    Prevent crashes in engine tracing code to do with BSP models
  • •
    Fixed maps compiled without VVIS not rendering any water surfaces (and when noclipping outside of the map)
  • •
    Fixed 'status' console command showing IP address for -p2p dedicated servers
  • •
    Fixed sun glow overlay not rendering in water reflections
  • •
    Fixed a nullptr crash on game exit to do with models
  • •
    Prevent crashes with vertexSize of 0 on materials - will now use error material instead, and throw a warning about what material is wrong
  • •
    Fixed spam about "Trying to use Map as if it were a variable" on GUI dedicated server
  • •
    Try to improve static props fading out randomly for CS:GO maps
  • •
    Fixed render.RenderView affecting FOV for worldclicker, including the context menu
  • •
    Fixed (near?) infinite loops/game freezes in when listing entities in a box with negative bounds
  • •
    Fixed a potential issue with bad BSP embedded files
  • •
    Prevent potential crashes on map change to do with color correction entities
  • •
    asset:// sets correct mime type for .svg files (Community Contribution)
  • •
    Fixed an obscure crash with LuaJIT
  • •
    Fixed an null pointer crash with sv_debug_player_use convar
  • •
    Fix Un-Statue property bypassing GM:CanProperty serverside
  • •
    Fixed ATI1N and ATI2N names being swapped in the texture list
  • •
    Made env_smoketrail entity not add its velocity to its particles, SMG1 grenade trail works as expected
  • •
    Improved handling of v7.5 texture image formats
  • •
    Fixed exit game crash to do with procedural sounds
  • •
    Fixed some theoretical, extremely tiny memory leaks to do with Key Values parsing (Community Contribution from TF2 SDK)
  • •
    Fixed pose parameter support for CMDLPanel (Community Contribution from TF2 SDK)
  • •
    Fixed asset://mapimage/ URLs using wrong mime type (Community Contribution)
  • •
    Fixed a exit game crash to do with -multirun
  • •
    Applied potential fix for retry command for local server host not working correctly when other players are present on the server
  • •
    Applied a potential fix for r_flushlod crashing the game (Community Contribution)
  • •
    Fixed -tools mode spamming about "Too many popups!" when many particle previews are on screen
  • •
    Fixed crashes to do with IK in certain models
remove_circle

Removed

  • •
    Removed pointless "PREP OK" console message during map loading
  • •
    Removed "HudBloodSplat" effect. (It did nothing at all)
  • •
    Removed mat_remoteshadercompile console variable
  • •
    Removed GMOD_Player::ViewPunch, Weapon_Drop and OnTakeDamage overrides (did nothing), m_iCallSpawnTimer and m_iStartTick which were unused at all
  • •
    Removed CHL2_Player::GetAutoaimVector, ShouldKeepLockedAutoaimTarget, BumpWeapon, Weapon_CanUse (all were doing nothing, or were Xbox only)
  • •
    Removed autoaim_unlock_target convar which is now unused
add_circle

Features

  • •
    Added MakeRegularAlly/MakeGameEndAlly inputs for GMan/Mossman/Monk/Fisherman in Hammer
  • •
    Added new .QC commands to studiomdl.exe - $maxverts, $phyname, $internalname, $qcassert, $lcaseallsequences, $defaultfadein, $defaultfadeout, $appendsource, $redefineattachment, $skinnedLODs
  • •
    Mount CSS/Episodic VPKs in tools (Hammer & compilers)
  • •
    Implemented color preview for models in Hammer
  • •
    Added color keyvalue to prop_door_rotating in Hammer
  • •
    Added ability to paint 4-way blend materials in Hammer (Supported materials only!)
  • •
    Implemented particle picker for Hammer
  • •
    Added file metadata to map and model compiler exes (version, description, product name, etc.), and given them an icon
  • •
    Added -SunSamplesAreaLight option for VRad (Community Contribution)
  • •
    Reenable -maxlightmapdim and -defaultluxelsize for VBsp, and them add to help text
  • •
    Water materials with $lightmapwaterfog (and flowmaps) will now receive lightmaps on map compile
arrow_circle_up

Improvements

  • •
    Add descriptions to light entity keyvalue properties in Hammer
  • •
    Update StudioMDL usage info when given no parameters - added previously unmentioned command line options, dump supported .qc command list
  • •
    Move modelscale keyvalue from Breakable to specifically prop_physics and its variants in Hammer to better represent what entities support the feature
  • •
    Make tools/toolsinvisibleladder not create visleaves during map compilation
  • •
    Adjusted VRAD's post-compile stats to show data size limits in correct places, as well as bump max data size for entity lump
  • •
    Enable static prop lighting (vertex & lightmap) for VRAD with -fast (Since it is already controlled by -StaticPropLighting)
  • •
    Mention -StaticPropLighting requirement for vertex lighting on static props in Hammer (Disable Vertex Lighting field)
  • •
    Images are now saved as .bmp instead of .tga in HLMV
  • •
    Change Shader display to a read only text entry in HLMV, so it can be copied
  • •
    Display selected material in a text box in HLMV, so it can be copied
handyman

Fixed

  • •
    Fixed default model for physics_cannister, npc_launcher, npc_missiledefense (now a box) and weapon_bugbait in Hammer
  • •
    Fixed some entities such as info_ladder_dismount not using colors in Hammer as defined in the FGD files
  • •
    Fixed visual and undo bugs with CMapSweptPlayerHull (func_useableladder) in Hammer
  • •
    Enable VRAD compile stats without -verbose flag
  • •
    Fixed StudioMDL crashing when creating folders for the model
  • •
    Fixed HLMV crashes when doing stuff without a model selected
  • •
    Fixed extremely slow "Take screenshot" performance in HLMV
  • •
    When a material is missing in HLMV, include the missing material name in "VMTs loaded" section
remove_circle

Removed

  • •
    Remove non existent key-values from env_smoketrail in Hammer
  • •
    Removed non existent entities from Hammer - Weapon_Brickbat, env_rotorwash, references to weapon_beerbottle, test_sidelist, npc_crabsynth, env_terrainmorph
  • •
    Remove non existent entities from BreakableBrush "spawn on break" keyvalue in Hammer
  • •
    Disallowed creating "Auto" visgroup in Hammer manually
add_circle

Features

  • •
    Added Entity:FindGestureLayer
  • •
    Added Entity:FindGestureSequenceLayer
  • •
    Added Entity:RemoveLayer
  • •
    Added Entity:SetLayerAutokill
  • •
    Added GM:OnNPCDropItem
  • •
    Added NPC:IsCrouching
  • •
    Added NPC:SetForceCrouch
  • •
    Added 2 new optional args to mesh.TexCoord
  • •
    Added NPC:CapabilitiesHas
  • •
    Added NPC:ConditionID
  • •
    Added NPC:IsUnforgettable
  • •
    Added NPC:MoveGroundStep
  • •
    Added effects.TracerSound
  • •
    Added sequence events to util.GetModelInfo
  • •
    Added util.IsBoxIntersectingBox
  • •
    Added MATERIAL_CULLMODE_NONE for render.CullMode
  • •
    Added new arguments to Entity:DropToFloor
  • •
    Added new argument to HTML:ConsoleMessage
  • •
    Added Panel:SetTextHidden
  • •
    Added MAX_PLAYER_BITS global
  • •
    Added MainEyePos and MainEyeAngles
  • •
    Added IGModAudioChannel:GetTagsWMA & IGModAudioChannel:GetTagsMP4
  • •
    Added render.GetFogMaxDensity
  • •
    Added skin parameter to util.GetModelMeshes + up to 15% optimization
arrow_circle_up

Improvements

  • •
    ClientsideModel is now able to be hit by clientside only traces after initializing physics on it post creation (Collision bounds must be set manually if model changes)
  • •
    Try to end mesh.Begin when a mesh wasn't ended when the function is called. (i.e. after a Lua error) It will still error afterwards like it did before, but now prevents game hanging, hopefully without side effects
  • •
    End current Lua mesh (if there is one) on Lua error - preventing game crashes and graphical glitches
  • •
    Change ents.CreateClientRope slack parameter to work better
  • •
    ents.CreateClientRope ropes now despawn if any of its attached entities are removed
  • •
    Allow giving ents.CreateClientRope local vectors instead of attachment IDs
  • •
    Made Entity:PhysicsInitBox/Sphere set solidity before setting the physics object - this improves behavior for those functions with ClientsideModel and is consistent with PhysicsInit()
  • •
    Validate input range for File:Read and File:Write, so the game does not crash with negative bytes to read
  • •
    Improved handling of BSP model names for Lua clientside entities (sets the model index so tracing code can work better)
  • •
    Improved handling of infinite loops with Entity:WaterLevel when called from the water level change hook
  • •
    Switch debugoverlay functions to better optional argument checking with type checking
  • •
    util.IsValidModel returns false if extension is not .mdl
  • •
    Changed render.DrawQuadEasy to use better optional argument handling (potentially breaking)
  • •
    Sandbox gamemode: Do not store the NPCTable/VehicleTable tables on the entities (The name is still stored)
  • •
    Player:GetPunchAngle will now error with lua_strict set to 1 (deprecation warning)
  • •
    Allow mesh.TexCoord to only accept 1 texture coordinate
  • •
    Optimizations for usage of GM:PlayerCanHearPlayersVoice - it will no longer be called for non speaking players
  • •
    Minor optimizations for most Lua functions returning a sequential table
  • •
    Minor adjustment to WEAPON:OnRemove for consistency of execution time with other OnRemove hooks, no functional change expected
  • •
    Validate input ranges for sound.Generate (will error)
  • •
    Validate input ranges for most Lua functions that use enumerations in arguments (will silently clamp the value)
  • •
    Entity:GetCycle now returns 0 instead of nil for invalid entities
handyman

Fixed

  • •
    Fixed clientside sounds not firing WEAPON:FireAnimationEvent
  • •
    Fixed render.SetShadowsDisabled setting the shadow distance instead of disabling shadows
  • •
    Fixed duplicate HTTP headers being discarded instead of being joined with a comma like it did previously
  • •
    Fixed Player:Flashlight playing sounds when disabling a disabled flashlight, etc.
  • •
    Fixed list.GetEntry erroring when used
  • •
    Fixed infinite loops when calling Entity:DrawModel from GM:PrePlayerDraw/GM:PostPlayerDraw
remove_circle

Removed

  • •
    Blocked editdemo console command from Lua just in case
  • •
    Removed obsolete/undocumented/useless panel types from vgui.Create
  • •
    Disabled vmevent API (jit.attach)
add_circle

Features

  • •
    Added most of Counter-Strike: Source and Half-Life 2 Episodic content to Garry's Mod (excluding voice over and music due to licensing issues, as well as excluding maps)
  • •
    Enabled Episodic spawnmenu content (NPCs/Vehicle/Entity) by default
  • •
    Added a confirmation dialog when trying to load a save that would change current map
arrow_circle_up

Improvements

  • •
    Prevent throwing props immediately when using +USE pickup if holding left or right mouse buttons while picking up something
  • •
    Made Combine Energy Balls bounce from frozen props in a more consistent fashion
  • •
    Made crossbow bolts bounce from indestructible props, frozen and unfrozen
  • •
    Faceposer uses localized string for "Other" category
  • •
    Minor optimizations to Problems panel, ability to close it via ESC key or clicking empty space around it (Community Contribution)
  • •
    Updated browser implementation on Windows to support much newer features
  • •
    "Edit Entity" window in Sandbox now shows prettier entity names (instead of the internal names) (Community Contribution)
  • •
    Made r_pixelfog require sv_cheats 1 to prevent players disabling fog
  • •
    Increase physgun_maxrange maximum value to 32k (from 8k)
  • •
    Localize old spawnmenu category names for addon-added entities, weapons, etc (Community Contribution)
  • •
    Updated Dedicated Server UI on Windows - added workshop collection entry box, gamemode selection, removed mandatory RCON password (blank=disable RCON) and replaced Steam icon with a Garry's Mod one
handyman

Fixed

  • •
    Fixed leading spaces in a console command not adding it to the console autocomplete history
  • •
    Updated Metrocop player model so the model actually has a shadow
  • •
    Fixed Metrocop player model gloves having unintended white texture bits
  • •
    Physics Gun rotation and Camera zoom/roll now work consistently independent of client FPS
  • •
    Fixed Resistance Turrets being in Combine Overwatch NPC squad (Spawn menu)
  • •
    Fixed pink or green artifacts appearing on certain decals when spammed in one place a lot
  • •
    Bonemerged models inherit lighting origin from parent - makes view model hands match lighting of the view model itself
  • •
    Fixed incorrect player aiming animations for other players sitting in vehicles
  • •
    Restored functionality of m_filter (No longer forced to 1)
  • •
    Fixed non ASCII characters in "Unknown command X" console message appearing as "?"
  • •
    Update RPG Launcher world model to fix muzzle flashes not playing, or playing at incorrect times
  • •
    Fixed changing video settings always forcing a map reload
  • •
    Fixed missing Trails tool undo message localization
  • •
    Fixed missing Antlion Guard step sounds
  • •
    Fixed CS:S Leet playermodel coloring area overlapping the belt
  • •
    Ship Half-Life 2: Episode 2 override of barricade001a.mdl with fixed physics mesh
  • •
    Fixed Hacked Rollermine not respecting ignore players flag
  • •
    Fixed d2_coast_09 not changing fog color when coming out of the tunnel
  • •
    Fixed visual 1px overlap in SWEP info tooltip during fade out (Community Contribution)
  • •
    Fixed being unable to damage partially submerged props with explosions from above the water surface
  • •
    Improve how death is handled when NPC is killed by a harpoon. Fixes killing Antlion Guard on d2_coast_11 with a harpoon not progressing the map
  • •
    Fixed some map surfaces (that use built-in materials, across Half-Life 2, Episode 2 and CS:S maps) having incorrect surface properties, making footstep sounds not match the surface
  • •
    Fixed decals from the Paint tool that were not working or working poorly when applied on models
remove_circle

Removed

  • •
    Removed "Use Bloom" checkbox from Video options, as it was not bound to any convar or setting, meaning it did nothing
  • •
    Removed "No HDR but use bloom" setting from Video Options since it doesn't do anything
  • •
    Remove duplicate "Black and White" color modify preset (Community Contribution)