Garry's Mod Logo


  • Added second argument to util.Base64Encode - skipNewLines, defaults to false
  • Added spawnmenu.SwitchCreationTab
  • Added VMatrix.Add, VMatrix.Sub and VMatrix.Mul (matrix*matrix only)
  • Added VMatrix.GetTransposed
  • Added Angle.Random
  • Added Vector.Random, Vector.Negate, Vector.GetNegated
  • HTTP() function now has a timeout field, which dictates the network activity timeout, and will fail with reason "timeout" if it is hit
  • Added render.GetViewSetup() - returns the CViewSetup stuff including both real FOVs and the de-corrected for aspect ratio FOV
  • Filesystem search now works with map's PAK lump (file.Find included)
  • Added CUserCmd.AddKey
  • Added table.Shuffle (Community Contribution)
  • Added a new library: math.ease (Community Contribution)
  • Added DComboBox:OnMenuOpened( menu ) (Community Contribution)
  • Added table.MemberValuesFromKey (Community Contribution)
  • Added ENTITY:AddOutputFromKeyValue and ENTITY:AddOutputFromAcceptInput (Community Contribution)
  • Added SlowWalkSpeed to player_manager (Community Contribution)
  • Added DForm.PropSelect, ControlPanel.ToolPresets, ControlPanel.ColorPicker and ControlPanel.KeyBinder (Community Contribution)
  • Added math.DistanceSqr (Community Contribution)
  • Added support for 3 new types in AccessorFunc() - Vector, Angle and Color (Community Contribution)
  • markup library improvements - Adds markup.Escape, markup.Color, MarkupObject:GetMaxWidth, new argument to MarkupObject:Draw (Community Contribution)
  • Added permissions.EnableVoiceChat( bool )
  • Added CLuaLocomotion.Get/SetClimbAllowed
  • Added CLuaLocomotion.Get/SetJumpGapsAllowed
  • Added CLuaLocomotion.Get/SetAvoidAllowed
  • Added new argument to net.WriteColor - alpha (Community Contribution)
  • Added new argument to net.ReadColor - alpha (Community Contribution)


  • Better implementation of Player.IsUserGroup (Community Contribution)
  • util.GetModelMeshes is now also available serverside
  • Entity:SetBodyGroups now accepts a-z as 10-35
  • Disallowed include()ing non .lua files
  • Made Entity.GetBloodColor shared
  • stopsound also shuts down all CSoundPatches (So their IsPlaying status resets to false)
  • Made hook.Add/Remove not silently fail on arg type mismatch (Community Contribution)
  • Micro optimization in draw.SimpleText (Community Contribution)
  • Minor optimizations to string.Comma (Community Contribution)
  • Added +voicerecord to blocked console command list - use permissions.EnableVoiceChat instead
  • GM:PlayerAmmoChanged now runs AFTER the ammo count has been changed
  • Made File:Read() size argument optional, defaulting to File:Size()


  • file.Exists now works with addon title pathIDs like file.Find
  • Fixed spawnmenu.SwitchToolTab doing nothing
  • Fixed constraint.GetAllConstrainedEntities returning all entities constrained to world if the given entity is constrained to world
  • Fixed Entity.StopLoopingSound() not working as expected when multiple sounds are involved
  • Fixed table.RemoveByValue throwing an error when key is not a number (Community Contribution)
  • Fixed invalid argument being given to TextEntry.AllowInput with non ASCII characters (Windows and OSX)
  • Fixed potential Lua errors in scripted_ents library (Community Contribution)
  • Fixed a linux crash with file.AsyncRead