Garry's Mod Logo
Changes Header

Changes

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

arrow_circle_up

Improvements

  • •
    "SAM" admin tool support for TTT bans (Community Contribution)
  • •
    Updated localization for Turkish, Spanish and German (Community Contributions)
  • •
    Fixed selecting "Swedish chef" language setting the language to an invalid value (Community Contribution)
handyman

Fixed

  • •
    Fixed traitor button rendering inconsistencies & optimization (Community Contribution)
  • •
    Fixed ragdoll not being created if ttt_dyingshot is on (Community Contribution)
  • •
    Check data_static/ for rearm scripts for use in workshop addons (Community Contribution)
add_circle

Features

  • •
    Added a whole bunch of particle system operators and initializers from CS:GO, including additional properties to existing ones
  • •
    Added SetTarget1-SetTarget4 map inputs to logic_choreographed_scene/scene_entity
  • •
    Added hide_server convar, which when set to 1 will hide the server from the server browser
  • •
    Implemented experimental auto-refresh support for weapons in spawnmenu - changing weapon info (including adding a new weapon) will update/add the weapon in spawnmenu automatically
  • •
    Added disable_on_remove key-value to logic_collision_pair
  • •
    Added "Toggle" input to env_projectedtexture
  • •
    Added "Start Disabled" spawnflag for env_projectedtexture (also rearranged options in Hammer in order of usefulness)
  • •
    Implemented networking for scaled props spawning scaled prop gibs
  • •
    Added `SetLifetime` input to prop_combine_ball - 0 or negative values makes it infinite
  • •
    Added BallCaught and OnBallCaught input/output for portal energy ball entities (from Portal 2)
arrow_circle_up

Improvements

  • •
    player.CreateNextBot sets the bot name by the time player_activate event is called
  • •
    Bump max Source Engine save game size to 12M (from 3) - so the game is not stuck in a (near) infinite loop when trying to load malformed saves during level transitions
  • •
    Bump "cvarlist" buffers from 128 to 1024, so console command/variable descriptions fit
  • •
    Linux: Do not try to execute threaded tasks if there are no tasks - this addresses significant slowdowns on Linux (srcds?) to do with the filesystem
  • •
    Removing point_spotlight will now also remove entities it created
  • •
    More safeguards against loading malformed .gma files
  • •
    Fixed weapon tracer spread on Y axis not being taken into account at all when the effect is fired serverside
  • •
    Micro optimizations to spawnicon and static prop rendering
  • •
    PhysModelCreateBox doesn't reset solid parameters
  • •
    Replace missing .png/.jpg image data with solid white color - this would happen when a Material()'d .png file goes missing (is deleted). It used to be undefined behavior
  • •
    func_smokevolume removes its particles when dormant (when not seen by the player), so the particles can be used by other entities since there's a global limit
  • •
    Mount floating .GMA files before fetching info about subscriptions - so they load in time if launching the game with +map
  • •
    Always mount folder addons before Workshop system (so that the workshop system can find floating .gmas in addons/ folders consistently)
  • •
    Do not hide servers with out of bounds data such as impossible player counts, clamp the data instead
  • •
    Mention valid sample rates in "Invalid sample rate X for sound Y" warning
  • •
    Unblock mp_flashlight console variable in menu state (for use by gamemode convar settings)
  • •
    mat_texture_list - Don't display alpha channel for formats without alpha channel (RGB888, etc)
  • •
    Navmesh auto-blocking checks now run on map start/cleanup
  • •
    Rework how spawnpoint entities are added in base gamemode - one file now, not 25 duplicated files
  • •
    Move default console position to the left a bit so it does not obstruct certain main menu UI elements by default
  • •
    Code cleanup: Replace debug.getregistry usage with RegisterMetaTable where appropriate (Community Contribution)
  • •
    Code cleanup: Use math.tau in some places instead of 2 * math.pi (Community Contribution)
  • •
    Use m_yaw/m_pitch convars instead of hardcoded values in the built-in taunt cam (Community Contribution)
  • •
    Use 4-number overload of surface.SetDrawColor in base game for performance (Community Contribution)
  • •
    `teamonly` in `player_say` game event is now networked to clients
  • •
    npc_combinecamera now fires OnLostEnemy output on losing its target
  • •
    Changed how SWEPs store ViewModel/WorldModel/PrintName - To get rid of 80 character limit for all 3 fields
  • •
    Network gravity scale for players, for prediction
  • •
    Reduced networked bit counts for player's driving mode ID, player class ID and team ID (from 32bit)
  • •
    Network "Sprint Enabled" state to players for prediction (Player:SprintDisable)
  • •
    Do not initialize the scaled prop physics objects as physics shadows for clientside only entities
  • •
    Do not network duplicate health/velocity for players - Since it is already done for all entities
  • •
    Do not set collision bounds on physgun beam to save network bandwidth
  • •
    Increased `modelprecache` maximum size to 8192 (from 4096)
handyman

Fixed

  • •
    Fixed potential crashes to do with textures
  • •
    Fixed a crash to do with decals and r_maxmodeldecal 0
  • •
    Fixed crashes with sniper_proto (Half-Life 2 Sniper)
  • •
    Fixed potential bug with CBaseAnimating::IsOnFire
  • •
    Fixed G-String game icon
  • •
    Fixed the game always mounting folders that it's only supposed to on local builds
  • •
    Fixed TEXTUREFLAGS_POINTSAMPLE not respecting TEXTUREFLAGS_NOMIP
  • •
    Fixed erroring material in Half-Life 2: Episode 1 causing console spam (Stalker teeth)
  • •
    Fixed Close Caption HUD being disabled by SetHUDVisibility MapIO input
  • •
    Fixed Lua errors when loading a (Source Engine) save that had add-on Sandbox tools that are no longer present after the save was made
  • •
    Prevent crashes with wireframe model rendering and high vertex models (Mostly applies to Hammer, simply does not render such models)
  • •
    Entities that block radius (explosion) damage (such as doors), don't block it on themselves
  • •
    Fixed a Linux Dedicated Server crash with sv_showlagcompensation
  • •
    Fixed a crash to do with teleporting constrained entities
  • •
    Fixed missing wooden ladder sounds (Half-Life 2: Episode 2)
  • •
    Fixed a few ways malicious clients could lag servers
  • •
    Adjust how we disable self-unblocking for Lua-blocked nav areas to avoid negatively affecting other nav blocking entities
  • •
    Prevent crashes to do with removal of world entity (another method)
  • •
    Replace usage of "devshots_screenshot" with "screenshot" (for -makedevshots)
  • •
    Fixed weapon_snark network types
remove_circle

Removed

  • •
    Deleted constraints.lua - unused file
  • •
    Removed -nulldevice command line switch
  • •
    Remove respawn_entities concommand - we have gmod_admin_cleanup
  • •
    Removed unused bodyque entity
  • •
    Remvoed unused vote_controller entity
  • •
    Remove unused networked field from gmod_gamerules entity
  • •
    Completely remove the unused Source Engine commentary system, its UI stuff and entities
  • •
    Remove test_traceline entity
  • •
    Remove unused properties/fields on engine SWEP implementation
  • •
    Removed unused stringtables - "GModGameInfo", "ServerMapCycle" and "InfoPanel"
add_circle

Features

  • •
    Added MatSelect:OnSelect and MatSelect:OnRightClick
  • •
    Added new function to util.Timer object - TIMER:GetElaspedTime (Community Contribution)
  • •
    Added properties.Remove (Community Contribution)
  • •
    Implemented ENTITY:GetPreferredCarryAngles for ai type SENTs
  • •
    Added NPC:SetIdealSequence
  • •
    Added 5th argument to constraint.Nocollide - disableOnRemove
  • •
    Added surface.GetPanelPaintState
  • •
    Added massCenterOveride for certain physics initialize functions - Entity:PhysicsInit. Entity:PhysicsInitMultiConvex, Entity:PhysicsInitConvex, Entity:PhysicsFromMesh, Entity:PhysicsInitBox
  • •
    Added ProjectedTexture:SetNoCull and ProjectedTexture:GetNoCull
  • •
    Added NAV_MESH_BLOCKED_LUA
  • •
    Added PropSelect:OnSelect hook
  • •
    Added PropSelect:OnRightClick hook
  • •
    Added PropSelect:FindModelByValue
  • •
    Added PropSelect:SelectModel
arrow_circle_up

Improvements

  • •
    DNumSlider: Setting min or max value updates slider pos
  • •
    Optimized SortedPairs further (Community Contribution)
  • •
    Player:StripWeapons drops weapons before removing them - This mimics behavior of Player:StripWeapon
  • •
    Fallback to garrysmod.ver for when Steam is not available to set BRANCH (SRCDS)
  • •
    Made gui.HideGameUI work more like GM:OnPauseMenuShow
  • •
    Merge some math library optimizations (Community Contribution)
  • •
    Consistent return values from Sandbox tool Make* global functions
  • •
    Reduced net.WritePlayer bit count based on server's maxplayers (Community Contribution)
  • •
    Micro optimization for GWEN.CreateTextureBorder and related functions (Community Contribution)
  • •
    Implemented Panel:Clear for PropSelect
handyman

Fixed

  • •
    Fixed IMaterial:SetVector4D not using float inputs
  • •
    Fixed DropEntityIfHeld affecting all players holding anything
  • •
    Fixed MatSelect and PropSelect erroring on select if not given a convar
  • •
    Fixed Entity:ManipulateBoneJiggle type 2 non functioning
  • •
    Corrected UTF8<->UTF16 conversion for the close caption function & hook
  • •
    Call GM:PlayerAuthed outside of player prediction so CurTime has a valid value
  • •
    Fixed Player:UniqueID returning nothing before GM:PlayerInitialSpawn
  • •
    Fixed huge network load of ManipulateBone* functions
  • •
    Fixed CNewParticleEffect.AddControlPoint attachment default value - No longer produces console warnings when not given an attachment name
  • •
    Fixed a crash with Panel:AppendText
remove_circle

Removed

  • •
    Added killserver, cancelselect to concommand blacklist
  • •
    Block gui.SetMousePos/input.SetCursorPos while main menu is open
  • •
    Disallow Panel:SetHTML on panels with non empty hostname (i.e. SetHTML can only be called on empty HTML panels, or on panels that previously had its content set via SetHTML)
  • •
    Disallow Panel:RunJavascript on panels with local IP addresses
add_circle

Features

  • •
    Output an identifying string on map/model compile tool startup so you know the studiomdl/vbsp/vvis/vrad is from Garry's Mod
  • •
    Added "Browse" button to env_spritetrail in Hammer
  • •
    Ported updated layout of the Particle Particle Editor from newer Source Engine games
  • •
    Added color input/key-value for func_water_analog in Hammer
arrow_circle_up

Improvements

  • •
    VVIS/VBSP automatically tries to find gameinfo.txt if path not given
  • •
    Load particle editor first in -tools mode for convenience
  • •
    Improve scrollbar styling in -tools mode, so its more obvious what the position of the slider is
  • •
    $eyeposition and $illumposition are now affected by $scale (studiomdl.exe)
  • •
    VRAD: -dumppropmaps dumps the lightmaps as .pfm during HDR compiles
  • •
    VRAD: -dumppropmaps dumps files to /sp_lightmaps/ instead of base directory
  • •
    VRAD: Fixed -dumppropmaps TGA output color range to be accurate with what is written to the BSP (also only writes TGA files for SDR compiles)
  • •
    VRAD displays which lighting mode is being compiled in the log (HDR vs SDR)
  • •
    Compile HDR .ppl files into the BSP, without overwriting the SDR ones and swap-in HDR static prop lightmaps when HDR lighting is in use in-game
handyman

Fixed

  • •
    Fixed VBSP disabling -v flag midway through compilation if -verboseentities is not set
  • •
    Fixed VBSP being unable to find sub instances in subfolders
  • •
    gmad.exe allows model.vtx files again to be uploaded to Steam Workshop
  • •
    Adjust Hammer entity definitions so Garry's Mod specific sandbox settings don't appear on point entities such as point_spotlight
  • •
    StudioMDL: Fixed models with more than 65k vertices breaking up
  • •
    Fixed studiomdl.exe crashing when remapping sequences to preserve their order
add_circle

Features

  • •
    Added TTTShowSearchScreen hook (Community Contribution)
arrow_circle_up

Improvements

  • •
    Optimized ragdoll search network traffic (Community Contribution)
  • •
    Updated Russian localization (Community Contribution)
  • •
    Updated localization files (Community Contribution)
  • •
    Replace deprecated GetConVarNumber/GetConVarString usage (Community Contribution)
handyman

Fixed

  • •
    Fixed disconnected player networking (Community Contribution)