Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • Default SWEP:ShootBullet now has 3 optional arguments - ammo_type, force, tracer (#1502) (Community Contribution)
  • Added ITexture.IsErrorTexture
  • Added support for DTVars change callbacks on client
  • Added LuaLocomotion:Set/GetGravity()
  • Added COLOR.Unpack COLOR.SetUnpacked and COLOR.ToTable (#996) (Community Contribution)
  • Added Vector.Unpack, Vector.SetUnpacked and Vector.ToTable
  • Added Angle.Unpack, Angle.SetUnpacked and Angle.ToTable
  • Added VMatrix.Unpack and VMatrix.SetUnpacked
  • Added Entity.Get/SetLightingOriginEntity
  • Added VMatrix.Zero and IsZero
  • Added HSL color functions - HSLToColor, ColorToHSL and COLOR:ToHSL()
  • All DProperties default data type rows, DNumberScratch, DNumSlider and DSlider now support Set/IsEnabled
  • Added optional min and max arguments to Create(Client)ConVar
  • Added ConVar.GetFlags, IsFlagSet, GetMin and GetMax
  • Added Convar.Revert, works only on Lua created ConVars
  • Added Player.GetPreviousWeapon()
  • Added 'ignorez' to Material() function
  • Added sql.IndexExists() (#1105) (Community Contribution)
  • Added Entity.UpdateShadow()
  • Added ENT_ANIM.GetShadowCastDirection() hook
  • Added Player.Set/GetSuitPower
arrow_circle_up

Improvements

  • Moved GM:PlayerShouldTakeDamage definition to init.lua from shared.lua (#1600) (Community Contribution)
  • GM:GravGunPunt is no longer called for NULL entities on client
  • DTooltip will now remove its contents (if appropriate) when its target panel is removed
  • Entity.SetPreventTransmit can now override transmit state of TRANSMIT_ALWAYS
  • Updated Stack (Lua object) implementation (#1566) (Community Contribution)
  • SWEP.TranslateFOV is now shared
  • string.NiceSize calculates MBs not MiBs, etc like the suffix suggests (#1615) (Community Contribution)
  • Second argument of Player.SetFOV is now optional
  • Tightened IsEntityPositionReasonable bounds to avoid crashes
  • Prevented usage of PhysicsInit* and PhysicsDestroy functions on the world entity and ragdolls to avoid crashes
handyman

Fixed

  • DListView_Column.SetFixedWidth with negative values no longer freezes the game
  • Fixed Entity.MapCreatedID() and Entity.CreatedByMap() being set a bit too late for GM:EntityKeyValue
  • Some Derma functions no longer pollute global table (#1598) (Community Contribution)
  • Weapon inheritance doesn't error when baseclass weapon has non table values (#1586) (Community Contribution)
  • Fixed Player.Give's second argument soft-breaking non clip using weapons such as built in frag grenades
  • Fixed Entity.Activate on a SetModelScaled ragdolls causing a crash (It still won't scale ragdolls)
  • Entity.PhysicsDestroy on ragdolls no longer crashes the game
  • Fixed ConVars with FCVAR_NEVER_AS_STRING not firing ConVar change callbacks
  • Fixed SWEP.TranslateFOV not opening area portals
  • Player.GetFOV now returns a float on server to match clientside behavior
  • Managed Lua ConVars save properly with FCVAR_NEVER_AS_STRING flag
arrow_circle_up

Improvements

  • TTT: Optimized type checks (#1596) (Community Contribution)
  • TTT: Micro Optimized loops (#1610) (Community Contribution)
handyman

Fixed

  • TTT: Stop bleeding on respawn (#1611) (Community Contribution)
add_circle

Features

  • Having Half-Life 1: Deathmatch mounted now also adds the Half-Life 1 weapons, entities and NPCs into the spawnmenu
  • Add a message to Addons menu if -noworkshop is active
  • Added search bar for gamemode list in "Find Multiplayer" menu
  • Added gmod_maxammo, defaulted to 9999, affects max carried ammo of players, values below 1 mean use the ammo type's maximum
  • Half-Life 2 jeep gets its gun on Half-Life 2 maps automatically
  • Most local user content (dupes/saves/demos/spawnlsits/toolgun presets) now saves to Steam Cloud automatically
  • Mounting Left 4 Dead 1 will also mount its "The Sacrifice" DLC
  • Added missing Left 4 Dead 1 and CS:GO map icons
  • Added Enabled/Disabled Only filters to Subscriptions in Addons menu
  • Middle mouse click reset feature on sliders works for all default tools in Spawnmenu
  • Half-Life 2 NPCs can use Half-Life 1 .357 Handgun and Shotgun
  • Flechette Gun can be picked up and used by NPCs
arrow_circle_up

Improvements

  • Ragdolls on client will set proper surface property for traces (Bullet holes have correct textures)
  • Gamemode list tries to display prettier/correct-er names (i.e. prefers "Sandbox" over "sandbox")
  • Made the server list usable on 800x600 and below
  • Search boxes in server browser got a border so they are visible on white backgrounds, and are a bit wider
  • Updated TTT to its latest version
  • Trying to load a save with missing map will now display a more explicit/nicer error message
  • NPCs wielding Half-Life 2 Crossbow use Shotgun animations instead and are more accurate with it
  • Disallowed Half-Life 2 NPCs from picking up SLAM, Frag grenade, Bugbait, Physics and Gravity Guns and Half-Life 1 throwables (Satchel, Hand grenade, Tripmine, Snark) since they can't use those weapons
  • The game no longer saves selected gamemode across sessions
  • Centered text vertically in Sandbox's pickup history
handyman

Fixed

  • Fixed Half-Life 1 ammo pickups giving wrong ammo types
  • Fixed some models flickering on Left 4 Dead/CS:GO Maps as well as other visual fixes
  • Fixed Half-Life 1 Osprey and Apache bleeding in multiplayer
  • Fixed some CS:GO maps having weird water around in them (Fixed grenadeclip brushes acting as water)
  • Half-Life 2 shotgun with no ammo no longer tries to force switch away
  • Fixed Half-Life 2 grenade sprite to match its appearance in Half-Life 2
  • Fixed missing textures on Half-Life 1: Deathmatch maps with only Half-Life 1: Deathmatch installed
  • Picking up ammo no longer forces you to switch away from your current weapon
  • Fixed Half-Life 1 Glock spamming sounds with no ammo
  • Weapon selection properly ignores invalid weapon slot commands and doesn't play sounds (slot0, slot7-10 commands)
  • func_breakable_surf break sounds are no longer played at the 0,0,0 position
  • func_breakable_surf and other entity impact sounds are no longer played at 0,0,0 position
  • Restored npc_dog footsteps
  • Fixed Half-Life 2 Ceiling Turret's shooting sounds and muzzle flash effect
  • Fixed visual effects for Stunstick, RPG, Crossbow and Gravity Gun
  • Fixed sounds for RPG, Crossbow and Gravity Gun in multiplayer
  • Fixed Gravity Gun launching jeeps and airboats too hard
  • Fixed Gravity Gun punting not clamping its force (potentially throwing other objects too far)
  • Fixed Rollermine NPC on fire constantly jumping and not doing much else
  • Fixed killing yourself with the Jeep's Gauss Gun making the vehicle bugged, unenterable and sometimes driving forward endlessly
  • Fixed saving a dupe not automatically updating the local dupe list
  • NPCs no longer crash the game when using Half-Life 2 Crossbow
  • Fixed clientside Half-Life 1 gibs not despawning
  • Fixed some Half-Life 1 NPCs spawning Half-Life 2 gibs
  • Fixed NPC support for manhack_welder
  • Fixed NPCs not following the player in multiplayer on some Half-Life 2 campaign maps on which they do in singleplayer
  • Fixed first person spectator weapon effects for Gravity Gun, Physics Gun, Stunstick as well as Bullet tracers
  • Fixed Suit Chargers being unintentionally forced to 30 energy instead of 75
  • Fixed player's speed not being forced by player_speedmod in singleplayer when it should be, for example in the Half-Life 2 teleporter sequence
  • Fixed dying in a trigger_playermovement causing crouching key stuck until retouching the trigger or rejoining the server
  • Fixed Half-Life map transitions/changes resetting player weapons and position unintentionally in Sandbox and Base gamemodes
  • Fixed weapon_fists breaking props in multiplayer not spawning gibs on client (Community Contribution)
  • Restored hud_quickinfo console variable, disabled by default, doesn't save (May require a game restart to disable itself initially)
  • Fixed non-admin players being able to run vehicle_flushscript
  • Fixed Combine Balls not seeking NPCs like they do Players
  • Fixed RPG reload animations playing too soon after shooting a rocket
  • Fixed Nextbot shadows looking bad when they are 400 units or more away from the player
  • Fixed some (server/addon) sounds ceasing to work when switching audio devices
  • Fixed shotgun bullet holes having wrong decals on certain surfaces such as the mirror on gm_construct
  • Fixed SHIFT+F2 not working in main menu after exiting a server
  • Fixed cursor staying on screen indefinitely when releasing context menu button while holding a mouse button
  • Fixed Bodygroups tab in Player Model Selector being invisible in certain cases
  • Fixed potential errors with Spawnicon Editor
remove_circle

Removed

  • Disabled certain duplicate Half-Life 2 pickup history elements still displaying (health/armor kits)
add_circle

Features

  • Added a warning for when env_sprite is given a non sprite material (an unlitgeneric), which apparently can cause crashes
  • Added support for 16384 = SF_BUTTON_NOTSOLID spawnflag to func_button from CS:GO
  • Added beam_spotlight.SetColor input
  • Added SetDamage input to Half-Life 2's crossbow_bolt
arrow_circle_up

Improvements

  • g_debug_ragdoll_visualize no longer crashes with ClientsideModel present
  • Monster Osprey doesn't create its looping sound after being deleted creating a console error
  • Gravity Gun no longer updates its effects and poseparameters when not held, affecting other weapons
  • Fixed mountdepots.txt not using the values at all to decide if a game should be mounted
  • Fixed env_fade problem from source-sdk-2013/issues/479 (Community Contribution)
  • Fixed cc_random crashing the game with closecaptions disabled
  • Fixed SWEPs firing network change callbacks too often/when nothing has changed
handyman

Fixed

  • Replace corrected materials with in-code solution for bumpmapped decals and Half-Life 1 chrome effects
  • Improved support and stability for 128+ bone models
  • Some minor changes to menu_cleanupgmas to maybe help debug an issue where it "doesn't work sometimes"
  • Updated studiomdl.exe to be closer to the TF2 counterpart - Now tries to preserve sequence order (and names?) when recompiling, more console output when model file exceeds buffer sizes
remove_circle

Removed

  • Removed unused variable from gmod_cameraprop.lua (Community Contribution)
add_circle

Features

  • Added Entity.GetBoneContents
  • Added Entity.GetBoneSurfaceProp
  • Added Entity.IsNextBot
  • Added NPC.DropWeapon
  • Added game.GetAmmoTypes
  • Added game.GetAmmoData
  • Added NEXTBOT:OnTraceAttack
  • Added ENT_AI.IsJumpLegal hook
  • Added SWEP.GetNPCRestTimes
  • Added SWEP.GetNPCBurstSettings
  • Added SWEP.GetNPCBulletSpread
  • Added SWEP:CanBePickedUpByNPCs hook, which allows Citizen NPCs to pick up SWEPs from the ground
  • Added "Contents" field to TraceResult
  • Added ModelKeyValues field to util.GetModelInfo
  • base_nextbot automatically calls GM:ScaleNPCDamage
  • Allowed writing of .json files to data/ folder using file.Write
  • Added "anims" field to Entity.GetSequenceInfo, contains all AnimationIDs associated with given SequenceID
  • Added RT_SIZE_REPLAY_SCREENSHOT, RT_SIZE_LITERAL, RT_SIZE_LITERAL_PICMIP
  • Added new optional arguments to Player.DropNamedWeapon and Player.DropWeapon
  • Player.DropWeapon's first argument is now optional
  • Added the missing ACT_HL2MP_SIT_KNIFE/MELEE2 Lua enums
  • Player.SelectWeapon() can now accept Weapon entities directly
  • Added a second argument to GM:PlayerSelectSpawn, GM:PlayerSpawn and GM:PlayerInitialSpawn - transition
  • language.Add can now override strings it previously set
arrow_circle_up

Improvements

  • Replaced a bunch of internal ErrorNoHalt calls in Lua bindings to also include stack trace
  • Net message warnings now contain the net message name they belong to
  • Improved the "Warning: Tried to set missing key on Dynamic Light object" message to include stacktrace and proper newlines
  • Filled NPC animation translations for weapon_base
  • GetInternalVariable, GetSaveTable and SetSaveValue now can read and write clientside prediction table
  • GetSaveTable() now has an optional parameter to return all internal variables, not just the ones used for save system
  • Player.GetWeapons() ensures the output table is sequential
  • More errors into console when steamworks.Publish fails
handyman

Fixed

  • Fixed crash issues with Entity.SetCycle, Entity.SetPlaybackRate and Entity.SetPoseParameter
  • Entity.TranslatePhysBoneToBone now works on entities from ClientsideRagdoll
  • Fixed Player.Say not working sometimes
  • ClientsideModels initialize their world transform matrix on creation just like entities do
  • Fixed a crash issue with Entity.SetMaterial()
  • Fixed crashing issues with Entity.GetSequenceInfo and Entity.GetAnimInfo with out of bounds IDs (returns nil instead)
  • Fixed using any NWVar functions on game.GetWorld() resetting its NWVars/GlobalNWVars
  • Fixed NPCs firing SWEPs twice a frame
  • Fixed Player.GetTable() resetting on player disconnect and before GM:EntityRemoved is ran on the player
  • Fixed Entity.SetBloodColor() not working properly with zombie and antlion blood types
  • render.Draw(Wireframe)Sphere will fallback to 24 longitude/latitude steps if we are about to crash