Garry's Mod Logo


  • Added ProjectedTexture:SetLightWorld and ProjectedTexture:GetLightWorld
  • Added CreateParticleSystemNoEntity
  • Added CNavArea:GetSpotEncounters
  • Added CNavArea:GetVisibleAreas
  • Added surface.GetTextPos
  • Added engine.AbsoluteFrameTime
  • Added render.RenderFlashlights
  • Added flags of the world to DIconBrowser (Community Contribution)
  • Added Weapon:GetDeploySpeed to all weapons
  • Added Weapon:SetDeploySpeed to all weapons


  • Made util.IsOBBIntersectingOBB shared
  • game.CleanUpMap now respects the EFL_KEEP_ON_RECREATE_ENTITIES flag
  • Made Entity:SetHealth have an effect clientside for prediction purposes
  • Entity:FireBullets calls WEAPON:DoImpactEffect on active weapon serverside to mimic clientside behavior
  • Added safeguards against not popping render.PushCustomClipPlanes
  • util.GetModelMeshes now accepts "00000000" format bodygroups
  • CNewParticleEffect:SetControlPointOrientation can now accept an Angle instead of 3 directional Vectors
  • Made FrameNumber shared
  • DGrid now works correctly with Panel:Clear, and ignores invisible items (Community Contribution)
  • DListView_Column:SetFixedWidth sets the column width immediately (Community Contribution)
  • Player:IsWorldClickingDisabled is now properly networked to client
  • Removed networking limits for Player:SetFrags and Player:SetDeaths
  • Reduced net.WriteEntity/net.ReadEntity from 16 bits to 13 bits (Community Contribution)
  • Made Entity:CreatedByMap, Entity:MapCreationID and Entity:GetCreationID networked and shared
  • Entity:SetFriction now affects players
  • Reverted "Allowed weapons and entities to set their own classname" as it was causing issues
  • Following functions will no longer return nil when used on invalid entities, and will return 0 instead - Entity:GetNumPoseParameters , Entity:GetHitBoxGroupCount, Entity:GetHitBoxCount, Entity:GetBodygroupCount, Entity:GetSkin, Entity:GetSequence, Entity:GetNumBodyGroups, Entity:GetSequenceGroundSpeed, Entity:GetSequenceMoveDist, Entity:GetModelContents, Entity:GetLayerDuration, Entity:GetLayerWeight
  • Following functions will no longer return nil when used on invalid entities, and will return an empty string instead - Entity:GetPoseParameterName, Entity:GetSequenceName, Entity:GetSequenceActivityName
  • Entity:GetBoneCount - used to return -1 on failure, now returns 0
  • Entity:GetPlaybackRate - returns 1 on failure
  • Entity:GetBoneName - returns __INVALIDBONE__ on failure
  • Entity:GetSequenceActivity - returns -1 on failure
  • Entity:GetSequenceVelocity - returns vector_origin on failure
  • Entity:GetLayerPlaybackRate - returns 1 on failure


  • Fixed file.Find ignoring "Copy (" files
  • Fixed game.SetSkillLevel always being forced to the value of 'skill' convar
  • Apply cyclic parent hierarchy stack overflow fix to clientside Entity:SetParent
  • Reset value of render.SetLightingMode on map shutdown
  • Reset render.EnableClipping to false on map shutdown
  • Make file.Exists return correct values for folders in Lua paths
  • util.DecalEx now also affects static props
  • Increased networked bits for player flags so Player:HasGodMode is now networked to clients properly