Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

  • Entity:PhysicsDestroy
  • Weapon:GetHoldType
  • util.SharedRandom
  • util.BlastDamageInfo
  • Entity:SetLOD
  • Entity:SetLagCompensated
  • Entity:IsLagCompensated
  • Player:SetAllowWeaponsInVehicle
  • Player:GetAllowWeaponsInVehicle
  • CSoundPatch:SetDSP
  • CSoundPatch:GetDSP
  • IGModAudioChannel:EnableLooping
  • IGModAudioChannel:PlayFile
  • Entity:SetPhysicsAttacker
  • game.SetSkillLevel
  • EFFECT:StartTouch
  • CUserCmd:SelectWeapon
  • Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
  • PhysObj:GetName
  • CNavArea:Draw
  • CNavArea:GetZ
  • CNavArea:IsOverlapping
  • CNavArea:Contains
  • CNavArea:IsCoplanar
  • CNavArea:GetClosestPointOnArea
  • CNavArea:IsVisible
  • CNavArea:GetCorner
  • navmesh.GetNavAreaCount
  • navmesh.GetNavArea
  • navmesh.GetNavAreaByID
  • navmesh.BeginGeneration
  • navmesh.IsGenerating
  • navmesh.GetPlayerSpawnName
  • navmesh.SetPlayerSpawnName
  • navmesh.AddWalkableSeed
  • navmesh.ClearWalkableSeeds
  • Entity:IsDormant
  • ENTITY:Blocked
  • Color:ToHSV
  • gui.InternalKeyTyped
arrow_circle_up

Improvements

  • Updated LuaJIT to version 2.0.3
  • Reverted Entity:IsValid to its old behaviour
  • Changed Entity:PhysicsInitBox behaviour to be more consistent with Entity:PhysicsInitConvex (no longer creates a broken physics object in some cases)
  • game.GetWorld is now shared
  • Player:HasWeapon and Player:GetWeapon are now shared
  • Entity
  • Entities can now have up to 64 DT vars of each type (except strings)
  • Player:Kick and Player:Ban kick/ban reasons are now optional and may contain newlines
  • SWEP holdtypes are now properly networked
  • Vector and angle access using a numerical index rather than x/y/z is now slightly faster
  • gui.OpenURL now clamps URLs to 511 characters max
  • Added safeguards to mesh library functions
  • Entity:GetMaxHealth is now shared again and properly networked
  • Entity:DrawViewModel now takes an optional second argument which controls which viewmodel to show/hide (defaults to 0)
  • Moved Entity:Disposition, GetActivity, IsNPCMoving, IsUnreachable to NPC:Disposition, GetActivity, IsMoving, IsUnreachable
  • Trace tables now accept an "output" parameter which may contain the table the trace results should be written into
  • sound.PlayFile and sound.PlayURL callbacks now receive an error ID and error name as their second and third parameters if an error occurs
  • Weapon:CallOnClient second argument is now optional (defaults to "")
  • Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
  • Entity:PlayScene second argument (delay) is now optional (defaults to 0)
  • MsgC can now print text with several colors in a single call
  • Moved Player:Freeze, Player:GodEnable, Player:GodDisable, Player:IsFrozen, Player:HasGodMode to Lua
  • Clamped pitch between -90 and 90 instead of -180 and 180 for AngleRand
  • util.KeyValuesToTable and util.KeyValuesToTablePreserveOrder now accept a third parameter which prevents keys from becoming lowercased when set to true
  • vgui.LoadControlsFromFile/LoadControlsFromString now properly creates scripted panels
  • Improved vgui.LoadControlsFromString (no longer writes to a temporary file)
handyman

Fixed

  • Fixed Entity:PhysicsFromMesh building a deformed collision mesh
  • Fixed PhysicsCollide entity callback missing information about the entity which was collided with
  • Fixed IMaterial:GetMatrix crashing the game
  • Fixed sound.Add not working on dedicated servers
  • Fixed ents.FindByClass not interpreting wildcards correctly
  • Fixed util.CRC not working correctly on strings with embedded zeroes
  • Fixed util.JSONToTable losing precision for large integer values
  • Fixed Entity:GetBoneController returning a truncated value
  • Fixed Entity:SetHitboxSet not working properly with an integer parameter
  • Fixed NPC:FoundEnemySound, LostEnemySound, FearSound, IdleSound and AlertSound not calling their appropriate equivalent in the engine
  • DynamicLight
  • Fixed util.TableToJSON crashing when passed a table containing keys that aren't strings or numbers
  • Fixed GM:OnReloaded being called more than once on most gamemodes
remove_circle

Removed

  • Removed "loop" flag from sound.PlayURL
  • Removed support for vm_origin and vm_angles from GM:CalcView
add_circle

Features

  • Added IGModAudioChannel:IsBlockStreamed
arrow_circle_up

Improvements

  • IGModAudioChannel:SetTime now prints a warning if it is called on a non block streamed channel
handyman

Fixed

  • TTT: Fixed ironsights being broken due to changes from last update
  • Fixed .mp3 and .ogg playback becoming very expensive due to changes from last update
  • Fixed Father Grigori not being the king of animals
  • Entity:FireBullets no longer inflicts ammo-specific damage if the damage is 0 unless an ammo type is explicitly specified
add_circle

Features

  • Added clientside convar cl_steamoverlay_pos
arrow_circle_up

Improvements

  • Improved mounting system, no more texture issues on changelevels
  • sv_kickerrornum now defaults to 0 and its value is now saved to the config file
  • sv_allowcslua is now saved to the config file
  • Clientside Lua is now always allowed in singleplayer
  • Improved some spawn icons
  • TextEntry panels no longer filter '\t' characters
  • Restored old damage force behaviour
  • Singleplayer jump boost from HL2 is now implemented in Lua as a sandbox feature and works in multiplayer as well
handyman

Fixed

  • Fixed viewmodel bobbing snapping when jumping or noclipping
  • Fixed flashlight getting duplicated when receiving a full packet update
  • Fixed spawnicons not always regenerating at the correct resolution when resized
  • Fixed "Dopwnload finished" typo in console output
  • Fixed lamps projecting backwards!
  • Fixed gamemode name reported by Steam not being updated after a changelevel
  • Fixed key bindings not working correctly in the main menu
  • Fixed GMod decals not working when used on props
  • Fixed debug textures not being precached (brings mat_wireframe 1 back to its former glory)
  • Fixed rendering artifacts when some particle effects are rendered in front of the skybox
  • Fixed nav files remaining open after loading a map
  • Fixed shell ejection issues on the HL2 pistol and SMG
  • Fixed players colliding with other players while noclipping
  • Fixed viewmodel jittering when overwriting viewmodel position
  • Fixed viewmodel prediction errors when switching to thirdperson and back
  • Fixed sound spam with weapon_rpg when no ammo is left
  • Fixed jigglebones occasionally snapping into impossible positions when rapidly moving
  • Fixed keyframe_rope ignoring attachment points (this fixes various issues such as the cable from prop_vehicle_crane)
  • Fixed combine balls not colliding with players
  • Fixed env_zoom not working at all (i.e. HL2 intro)
  • Fixed choppy MP3 sound playback in some cases
  • Fixed metrocops holding the stunstick going into a T-pose when attacked
  • Fixed metrocops not turning their stunstick on before attacking
  • Fixed NPCs not receiving the appropriate amount of damage from HL2 weapons
add_circle

Features

  • Added new overlays, trails, materials, emitters
  • Added OS X and Linux icons
  • Added a horizontal divider for the spawnmenu
  • Added new options to menubar Drawing menu
  • Added Gravity Gun, Zombine Grenade, Physgun, Toolgun and Camera to the spawnmenu
  • Added presets field for all PP effects and made the convars save
  • Added 6 new NPCs to spawnmenu
  • TTT: Added two new scoreboard hooks: TTTScoreboardColumns, TTTScoreboardMenu
  • TTT: Added functions PANEL:AddColumn( label, func ) to scoreboard panels
arrow_circle_up

Improvements

  • Centered drag’n’drop dragged panels
  • Static camera has nocollide by default
  • Restricted Jalopy Seat to be spawnable only when EP2 is mounted (missing texture)
  • Fancy game names in spawnmenus Browse tree
  • Removed test NextBot from entities tab and renamed it in NPCs tab
  • Made context menu text fields a bit higher
  • Updated language files
  • Changed default killer for NPCs to worldspawn
  • Disallowed giving weapons from spawnmenu when not the player is dead
  • Fists SWEP is now properly predicted in multiplayer
  • Better view model hands system for developers
  • Converted usermessages in base gamemode to use net messages
handyman

Fixed

  • Fixed text updating from menu/history in DTextEntry
  • Fixed Trails Tool undo
  • Fixed some bugs with the Medkit SWEP
  • Fixed Camera tool duplicator support
  • Updated swimming animations
  • Fixed a bug with ToyTown PP effect
  • Fixed main menu not having focus when created
  • Fixed two crash exploits with the Wheel tool
  • Fixed derma_controls concommand
  • Fixed country flag for Taiwan
  • Fixed Muscle tool "Start on" option not doing anything
  • Fixed Elastic tool creating a rope even if no elastic constraint were created
  • Fixed DProperties + sign not updating
  • Partially fixed DFileBrowser
  • Fixed tools in spawnlists not opening contentmenu and not saving properly
  • Fixed numeric checking on DTextEntry and children
  • Fixed crash exploit with NPC weapons
  • Fixed editing presets removing default tool presets
  • Fixed crash exploit with Thruster tool
  • Fixed Spawnmenu Save button sometimes not showing
  • TTT: Fixed propspec
  • TTT: Fixed reload with full clip making the zooming spazz out on M16 and Rifle
  • TTT: Fixed being able to use ironsights on shotgun while reloading
  • TTT: Fixed pressing reload with full clip switching off ironsights
  • TTT: Fixed colour issues if not all players have same model
remove_circle

Removed

  • Removed one of the useless seats from PHX
  • Removed npc_bullseye deaths from the kill feed (dummy NPC)
add_circle

Features

  • chat.Open
  • chat.Close
  • render.SetLightmapTexture
  • render.PushRenderTarget
  • render.PopRenderTarget
  • GM:EntityEmitSound
  • NEXTBOT:OnRemove
  • timer.TimeLeft
  • render.OverrideAlphaWriteEnable
  • render.OverrideColorWriteEnable
  • render.SetWriteDepthToDestAlpha
  • Added a few requested ACT enums
  • PANEL:OnRemove
  • Removed PANEL:OnDeletion hook
  • Entity:GetMaterials
  • IGModAudioChannel:GetPos
  • IGModAudioChannel:GetVolume
  • IGModAudioChannel:SetTime
  • IGModAudioChannel:Set3DFadeDistance
  • IGModAudioChannel:Get3DFadeDistance
  • IGModAudioChannel:Set3DCone
  • IGModAudioChannel:Get3DCone
  • IGModAudioChannel:GetState
  • IGModAudioChannel:IsLooping
  • IGModAudioChannel:IsOnline
  • IGModAudioChannel:Is3D
  • IGModAudioChannel:GetLength
  • IGModAudioChannel:GetFileName
  • IGModAudioChannel:GetSamplingRate
  • IGModAudioChannel:GetBitsPerSample
  • IGModAudioChannel:GetLevel
  • IGModAudioChannel:FFT
  • IGModAudioChannel:GetPlaybackRate
  • IGModAudioChannel:SetPlaybackRate
  • GMOD_CHANNEL_*
  • sound.GetTable
  • sound.GetProperties
  • GM:StartCommand
  • GM:EntityFireBullets
  • util.GetSurfacePropName
  • system.FlashWindow
  • VMatrix objects can now be printed to the console
  • Added VMatrix support for the following operators: ==, ~=, +, -
  • VMatrix:ToTable
  • VMatrix:Set
  • VMatrix:Identity
  • VMatrix:IsIdentity
  • VMatrix:IsRotationMatrix
  • VMatrix:Invert
  • VMatrix:GetInverse
  • VMatrix:InvertTR
  • VMatrix:GetInverseTR
  • VMatrix:GetForward
  • VMatrix:GetRight
  • VMatrix:GetUp
  • VMatrix:SetForward
  • VMatrix:SetRight
  • VMatrix:SetUp
  • VMatrix:GetField
  • VMatrix:SetField
  • VMatrix:SetScale
  • Player:GetCurrentViewOffset
  • Player:SetCurrentViewOffset
  • Entity:AddFlags
  • Entity:RemoveFlags
  • Entity:IsFlagSet
  • FL_*
  • Player:GetViewPunchAngles
  • Player:SetViewPunchAngles
  • Added util.GetUserGroups
  • Added table.GetKeys(table)
  • Added spawnmenu.ActivateTool()
arrow_circle_up

Improvements

  • HTTP requests now accept a "headers" table
  • game.AddDecal now accepts a string table as its second argument
  • Entity:IsValid no longer returns true on entities which have been removed during the current frame
  • Removed IN_ key checking from lag compensation - Player:LagCompensation should now work in any predicted hook
  • Changed GM:CalcViewModelView, return a position and an angle to override viewmodel position
  • vm_origin and vm_angles fields in table returned from GM:CalcView are now deprecated
  • sound.PlayURL second parameter can now contain the “noblock” flag, which disables streaming in blocks.
  • IGModAudioChannel:Stop
  • IGModAudioChannel:SetPos
  • Improved command blacklisting for Player:ConCommand and game.ConsoleCommand, reducing false positives
  • sound.Add
  • Moved Vector:__unm from Lua to C
  • Moved Angle:__unm from Lua to C
  • Matrix
  • Matrices can now be multiplied by vectors
  • Player:ViewPunchReset
  • All trace functions from the util library now accept an ‘ignoreworld’ boolean parameter in their trace data
  • net.Start now starts an unreliable message if its second argument is true
  • Entity:DispatchTraceAttack
handyman

Fixed

  • Fixed render.SetStencilWriteMask setting the test mask instead of the write mask
  • Fixed CLuaEmitter:Finish not freeing the emitter
  • Fixed util.TableToJSON not encoding floating point values with enough accuracy
  • Player:ScreenFade
  • Fixed GM:GravGunPickupAllowed not preventing the gravity gun from trying to pick up forbidden entities
  • Fixed GM:GravGunPunt not being called clientside when holding an object
  • Fixed CSoundPatch:Stop() not actually stopping the sound when the game is paused
  • Fixed memory leak when calling timer.Create on an already existing timer
  • Fixed surface.GetTextSize ignoring '&'
  • Fixed the gravity gun and crowbar being removed when dropped using Player:DropWeapon
  • Partially fixed functions from the render and surface library not writing alpha when drawing on a render target
  • Entity:GibBreakClient
  • Entity:MapCreationID
  • Fixed NEXTBOT:Use not being called
  • Fixed panels not feeding mousewheel events to their parent if the PANEL:OnMouseWheeled hook is defined
  • Fixed long-term performance issues with Entity:Remove
  • Fixed Entity:EnableMatrix not propagating matrix transform to child bones
  • Fixed an exploit with require
  • Fixed an exploit with Player:ConCommand and game.ConsoleCommand
  • Fixed nan and +/-infinity returning a non null terminated string when converted into a string
  • Fixed Pre/PostDrawOpaqueRenderables receiving incorrect arguments
  • Fixed file functions not working with file names containing certain special characters
  • Fixed VMatrix:SetAngles(ang) not preserving translation and scale
  • Fixed surface.CreateFont disconnecting clients when an invalid table is passed
remove_circle

Removed

  • Removed effects.halo.Add