Garry's Mod Logo


  • Added new argument to Entity.EmitSound - flags, and fixed type checking for the other optional arguments, including pitch and volume arguments not working if soundlevel argument is not given
  • Added 5th optional argument for surface.DrawOutlinedRect - thickness
  • Added ENT/SWEP.IconOverride (Also works for NPCs/Vehicles)
  • Added sound.EmitHint( SOUND_ enum, position, volume, duration, owner = NULL )
  • Added SOUND_ enums
  • Added "NiceName" read only field to Undo structure, contains the text shown in player's undo list UI (Community Contribution)
  • Added basic soundscript support for EmitSound global
  • Added "size" and "updated" (date) keys to engine.GetAddons()
  • Added new optional argument to Entity.DrawModel() - flags (STUDIO_)
  • PrePlayerDraw/PostPlayerDraw now have 2nd argument - flags (STUDIO_)
  • DrawWorldModelTranslucent/DrawWorldModel now have 2nd argument - flags (STUDIO_)
  • RenderOverride now also has 2nd argument - flags (STUDIO_)
  • Added DSP argument to entity.EmitSound and EmitSound global
  • Added 3 new types for steamworks.GetList() - "followed", "friend_favs", "favorite"
  • New optional argument for surface.DrawText - bool - force additive/not additive, defaults to font default
  • Added CTakeDamageInfo.SetBaseDamage
  • Added PlayerHandleAnimEvent and PlayerFireAnimationEvent hooks
  • Added maps/*.lmp to Workshop whitelist
  • Added list.GetTable() (Community Contribution)
  • Better click "animation" for DImageButton depression, added DImageButton:SetDepressImage() (Community Contribution)
  • Added Player.SetMaxArmor
  • Added Player.GetMaxArmor
  • Added render.GetHDREnabled()
  • Added Player.SetViewPunchVelocity
  • Added Player.GetViewPunchVelocity
  • Added player_manager.GetPlayerClasses() and PLAYER:ClassChanged() (Community Contribution)


  • Made NPC.NavSetGoal()'s 3rd argument to default to 100 to prevent old addons from erroring
  • Use a faster method of ignoring newlines in Base64decode
  • Allowed various Draw* global functions related to Post Processing to work directly with RenderTargets (Community Contribution)


  • TOOL.ServerConVar actually creates the convars
  • Fixed draw.RoundedBox(Ex) with border value larger than the box height causing the box to render larger than intended
  • HTTP global always returns a boolean, not only on success
  • Fixed nextbots not respecting EF_NOSHADOW
  • Fixed an issue with SWEP:OwnerChanged clientside not being called when initially dropping a weapon
  • Entity.GibBreakServer is no longer affected by breakable_multiplayer convar (Aka it works now)
  • Fixed util.GetModelMeshes returning data for the error.mdl for models that don't actually exist
  • Entity.GetModel() clientside should now return more correct result
  • language.GetPhrase now translates strings starting with #
  • Player.PrintMessage serverside now translates messages like expected
  • Fixed DTree_Node.ExpandRecurse producing Lua errors
  • CSoundPatch:SetDSP now works while the sound is playing
  • Fixed addon spawnlists not supporting subcategories
  • Fixed DNumberScratch (and DNumSlider) constantly firing it's OnValueChanged callback when the value didn't actually change
  • Fixed collision/movement issues with Player.SetModelScale