Jul 8, 2014
Garry's Mod - Rubat
FIXES
  • Fixed item pickups not being collectable in some cases
  • Fixed env_microphone not always transmitting NPC voices in multiplayer
  • Fixed some textures on gm_construct having an incorrect normal map when running under DX8
  • Fixed console crash on some machines
  • Fixed another possible exploit with CNetChan::SendFile
  • Fixed an exploit allowing access to any file on a client machine
  • Fixed vehicle noclip exploit
  • Fixed SMG viewmodel animation glitch when firing exactly 3 shots in a single burst
  • Fixed inaccurate text selection in RichText controls

IMPROVEMENTS
  • Files with an incorrect extension can no longer be loaded as modules
  • Loose .vcd files can now be loaded without having to be compiled into scenes.image

TTT
  • Fixes
    • Admin commands no longer appear in "last words"
    • Fixed a minor issue with teleporter effects
  • Additions
    • Added lag compensation to the crowbar's secondary attack
    • Added TTTPlayerUsedHealthstation hook
COMMUNITY
  • Fixes
    • Fixed vehicle third person affecting cameras
    • Fixed shipped weapons creating errors when given to NPCs
    • Fixed SimpleDoF to properly work with cameras
    • Fixed return values of draw.SimpleText
    • Fixed big numbers not sending properly with net.WriteTable
    • Fixed gmod_admin_cleanup/gmod_cleanup errors when run in a dedicated server console
    • Fixed vehicles not duplicating their skin, bodygroups, etc
    • Fixed derma.SkinTexture
    • Fixed longstanding thruster crash exploit
    • Fixed pasted ragdolls with duplicator being in T pose until you touch them (still happens for saves though, sorry)
    • Fixed snow footsteps
    • Fixed some base weapons (Alyx gun, HL1 grenade) being .357 clones
  • Improvements
    • Post Process effects are no longer saved across restarts
    • Hidden some useless HL2 maps
    • Updated jQuery/AngularJS
    • draw.SimpleTextOutlined now returns same thing as draw.SimpleText
    • Lua errors notification only stays for 10 seconds instead of 30
    • Clicking "Resize" in spawnicon right click menu no longer automatically rerenders the icon.
    • Fancified Bouncy Ball
    • Updated server browser looks
    • Bots are no longer counted towards player count in server browser
    • Sort addons and games alphabetically in Browse
    • Made player_manager.TranslateToPlayerModelName case insensitive
    • Tweaked some tools
      • Tweaked default values for some of the tools, tweaked limits in context panels for some of the tools
      • Added right click option for lamp tool to copy settings of another lamp
      • Deprecated settings/controls/*.txt, noone uses it, serves no benefit.
    • Improved context menu properties in various ways
      • Now works properly when you look from camera/driving a vehicle
      • Fixed some issues with "Drive" property and cameras
  • Additions
    • Added team.SetColor(index, color)
    • Added Angle:SnapTo(component, degrees)
    • Added IsColor, net.WriteColor, net.ReadColor
LUA
  • Fixes
    • 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
    • Fixed InnerAngle and OuterAngle parameters not doing anything in lights created by DynamicLight()
    • Fixed util.TableToJSON crashing when passed a table containing keys that aren't strings or numbers
  • 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(0) now returns the world on both server and client
    • 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 in which trace results should be written
    • 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
    • Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
    • Entity:PlayScene second argument (delay) is now optional
    • MsgC can now print text with several colors in a single call
    • Moved Player:Freeze, GodEnable, GodDisable, IsFrozen, 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
    • Optimized vgui.LoadControlsFromString
  • Additions
    • Added Entity:PhysicsDestroy()
    • Added Weapon:GetHoldType()
    • Added util.SharedRandom(uniqueName, min, max, additionalSeed=0)
    • Added util.BlastDamageInfo(dmginfo, origin, radius)
    • Added Entity:SetLOD(lod=-1)
    • Added Entity:SetLagCompensated(bool), IsLagCompensated()
    • Added Player:SetAllowWeaponsInVehicle(bool), GetAllowWeaponsInVehicle()
    • Added CSoundPatch:SetDSP(dsp), GetDSP()
    • Added IGModAudioChannel:EnableLooping(bool)
    • Added IGModAudioChannel:PlayFile(path, flags, callback)
    • Added optional second argument to Entity:SetPhysicsAttacker which controls expiry time
    • Added game.SetSkillLevel(int), game.GetSkillLevel()
    • Added the following hooks to scripted effects: StartTouch, Touch, EndTouch
    • Added CUserCmd:SelectWeapon(weapon_ent)
    • Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
    • Added PhysObj:GetName()
    • Added CNavArea:Draw(), IsUnderwater(), GetSizeX(), GetSizeY(), IsRoughlySquare(), IsFlat(), GetZ(pos), IsOverlapping(pos, tolerance), Contains(pos), IsCoplanar(navArea), GetClosestPointOnArea(pos), IsVisible(pos), GetCorner(cornerId)
    • Added navmesh.GetNavAreaCount(), GetNavArea(pos, beneathLimit), GetNavAreaByID(id), BeginGeneration(), IsGenerating(), GetPlayerSpawnName(), SetPlayerSpawnName(), AddWalkableSeed(pos, normal), ClearWalkableSeeds()
    • Added Entity:IsDormant()
    • Added ENT:Blocked(other)
    • Added Color:__tostring, Color:__eq and Color:ToHSV
    • Added gui.InternalKeyTyped(code)
  • Removals
    • Removed "loop" flag from sound.PlayURL
    • Removed support for vm_origin and vm_angles from GM:CalcView
Jul 8, 2014
Garry's Mod - Rubat
FIXES
  • Fixed item pickups not being collectable in some cases
  • Fixed env_microphone not always transmitting NPC voices in multiplayer
  • Fixed some textures on gm_construct having an incorrect normal map when running under DX8
  • Fixed console crash on some machines
  • Fixed another possible exploit with CNetChan::SendFile
  • Fixed an exploit allowing access to any file on a client machine
  • Fixed vehicle noclip exploit
  • Fixed SMG viewmodel animation glitch when firing exactly 3 shots in a single burst
  • Fixed inaccurate text selection in RichText controls

IMPROVEMENTS
  • Files with an incorrect extension can no longer be loaded as modules
  • Loose .vcd files can now be loaded without having to be compiled into scenes.image

TTT
  • Fixes
    • Admin commands no longer appear in "last words"
    • Fixed a minor issue with teleporter effects
  • Additions
    • Added lag compensation to the crowbar's secondary attack
    • Added TTTPlayerUsedHealthstation hook
COMMUNITY
  • Fixes
    • Fixed vehicle third person affecting cameras
    • Fixed shipped weapons creating errors when given to NPCs
    • Fixed SimpleDoF to properly work with cameras
    • Fixed return values of draw.SimpleText
    • Fixed big numbers not sending properly with net.WriteTable
    • Fixed gmod_admin_cleanup/gmod_cleanup errors when run in a dedicated server console
    • Fixed vehicles not duplicating their skin, bodygroups, etc
    • Fixed derma.SkinTexture
    • Fixed longstanding thruster crash exploit
    • Fixed pasted ragdolls with duplicator being in T pose until you touch them (still happens for saves though, sorry)
    • Fixed snow footsteps
    • Fixed some base weapons (Alyx gun, HL1 grenade) being .357 clones
  • Improvements
    • Post Process effects are no longer saved across restarts
    • Hidden some useless HL2 maps
    • Updated jQuery/AngularJS
    • draw.SimpleTextOutlined now returns same thing as draw.SimpleText
    • Lua errors notification only stays for 10 seconds instead of 30
    • Clicking "Resize" in spawnicon right click menu no longer automatically rerenders the icon.
    • Fancified Bouncy Ball
    • Updated server browser looks
    • Bots are no longer counted towards player count in server browser
    • Sort addons and games alphabetically in Browse
    • Made player_manager.TranslateToPlayerModelName case insensitive
    • Tweaked some tools
      • Tweaked default values for some of the tools, tweaked limits in context panels for some of the tools
      • Added right click option for lamp tool to copy settings of another lamp
      • Deprecated settings/controls/*.txt, noone uses it, serves no benefit.
    • Improved context menu properties in various ways
      • Now works properly when you look from camera/driving a vehicle
      • Fixed some issues with "Drive" property and cameras
  • Additions
    • Added team.SetColor(index, color)
    • Added Angle:SnapTo(component, degrees)
    • Added IsColor, net.WriteColor, net.ReadColor
LUA
  • Fixes
    • 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
    • Fixed InnerAngle and OuterAngle parameters not doing anything in lights created by DynamicLight()
    • Fixed util.TableToJSON crashing when passed a table containing keys that aren't strings or numbers
  • 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(0) now returns the world on both server and client
    • 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 in which trace results should be written
    • 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
    • Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
    • Entity:PlayScene second argument (delay) is now optional
    • MsgC can now print text with several colors in a single call
    • Moved Player:Freeze, GodEnable, GodDisable, IsFrozen, 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
    • Optimized vgui.LoadControlsFromString
  • Additions
    • Added Entity:PhysicsDestroy()
    • Added Weapon:GetHoldType()
    • Added util.SharedRandom(uniqueName, min, max, additionalSeed=0)
    • Added util.BlastDamageInfo(dmginfo, origin, radius)
    • Added Entity:SetLOD(lod=-1)
    • Added Entity:SetLagCompensated(bool), IsLagCompensated()
    • Added Player:SetAllowWeaponsInVehicle(bool), GetAllowWeaponsInVehicle()
    • Added CSoundPatch:SetDSP(dsp), GetDSP()
    • Added IGModAudioChannel:EnableLooping(bool)
    • Added IGModAudioChannel:PlayFile(path, flags, callback)
    • Added optional second argument to Entity:SetPhysicsAttacker which controls expiry time
    • Added game.SetSkillLevel(int), game.GetSkillLevel()
    • Added the following hooks to scripted effects: StartTouch, Touch, EndTouch
    • Added CUserCmd:SelectWeapon(weapon_ent)
    • Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
    • Added PhysObj:GetName()
    • Added CNavArea:Draw(), IsUnderwater(), GetSizeX(), GetSizeY(), IsRoughlySquare(), IsFlat(), GetZ(pos), IsOverlapping(pos, tolerance), Contains(pos), IsCoplanar(navArea), GetClosestPointOnArea(pos), IsVisible(pos), GetCorner(cornerId)
    • Added navmesh.GetNavAreaCount(), GetNavArea(pos, beneathLimit), GetNavAreaByID(id), BeginGeneration(), IsGenerating(), GetPlayerSpawnName(), SetPlayerSpawnName(), AddWalkableSeed(pos, normal), ClearWalkableSeeds()
    • Added Entity:IsDormant()
    • Added ENT:Blocked(other)
    • Added Color:__tostring, Color:__eq and Color:ToHSV
    • Added gui.InternalKeyTyped(code)
  • Removals
    • Removed "loop" flag from sound.PlayURL
    • Removed support for vm_origin and vm_angles from GM:CalcView
Apr 19, 2014
Garry's Mod - Rubat
An exploit was released last night that took advantage of the Source Engine’s file sending mechanism which made it possible to send files with any extension to the client or server. This exploit is likely still active in all other Source Engine games so we’re not going to go into specific details about it.

Needless to say that this was exploited in Garry’s Mod on Windows to send dlls to clients and servers. As far as we are aware the exploit wasn’t used to do anything malicious beyond propagating itself, spamming chat and changing server names. But to be safe we recommend that you consider deleting your Garry’s Mod install and starting fresh. It might be a good idea to do an online virus scan too.
The patch we released this morning attempts to clean up any mess left behind by these exploits and patches the variety of methods which they used. If anyone has further information about the exploits, or any exploits left un-patched please email Garry Newman personally at garrynewman@gmail.com.
Apr 19, 2014
Garry's Mod - Rubat
An exploit was released last night that took advantage of the Source Engine’s file sending mechanism which made it possible to send files with any extension to the client or server. This exploit is likely still active in all other Source Engine games so we’re not going to go into specific details about it.

Needless to say that this was exploited in Garry’s Mod on Windows to send dlls to clients and servers. As far as we are aware the exploit wasn’t used to do anything malicious beyond propagating itself, spamming chat and changing server names. But to be safe we recommend that you consider deleting your Garry’s Mod install and starting fresh. It might be a good idea to do an online virus scan too.
The patch we released this morning attempts to clean up any mess left behind by these exploits and patches the variety of methods which they used. If anyone has further information about the exploits, or any exploits left un-patched please email Garry Newman personally at garrynewman@gmail.com.
Apr 4, 2014
Garry's Mod - Rubat
Here are a few quick fixes for the issues introduced by yesterday's update. Servers will need to be restarted.
Some known issues remain and will be addressed next week.

  • 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
  • IGModAudioChannel:SetTime now prints a warning if it is called on a non block streamed channel
  • Added IGModAudioChannel:IsBlockStreamed
Apr 4, 2014
Garry's Mod - Rubat
Here are a few quick fixes for the issues introduced by yesterday's update. Servers will need to be restarted.
Some known issues remain and will be addressed next week.

  • 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
  • IGModAudioChannel:SetTime now prints a warning if it is called on a non block streamed channel
  • Added IGModAudioChannel:IsBlockStreamed
Apr 3, 2014
Garry's Mod - Rubat
Due to character limits, the list below does not include changes contributed by the community.
The full changelog can be found here.

FIXES
  • 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 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
  • 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 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
  • Fixed combine balls not colliding with players
  • Fixed env_zoom not working at all
  • 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

IMPROVEMENTS
  • Improved mounting system
  • 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

ADDITIONS
  • Added clientside convar cl_steamoverlay_pos
LUA SCRIPTING
  • Fixes
    • 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
    • Fixed Player:ScreenFade not taking color alpha into account
    • 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
    • Fixed Entity:GibBreakClient not taking skin number into account
    • Fixed Entity:MapCreationID returning different values after a map cleanup
    • 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, 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:SetAnglesnot preserving translation and scale
    • Fixed surface.CreateFont disconnecting clients when an invalid table is passed
  • 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
    • 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 now permanently deletes the channel
    • IGModAudioChannel:SetPos now takes an orientation vector as an optional second argument
    • Improved command blacklisting for Player:ConCommand and game.ConsoleCommand
    • sound.Add now accepts a table as its pitch and volume parameters
    • Moved Vector:__unm from Lua to C
    • Moved Angle:__unm from Lua to C
    • Matrix can now take an optional 4x4 table as an argument
    • Matrices can now be multiplied by vectors
    • Player:ViewPunchReset first argument is now optional (defaults to 0)
    • 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
    • Changed Entity:DispatchTraceAttack arguments to (dmginfo, traceres, dir)
  • Additions
    • Added chat.Open
    • Added chat.Close
    • Added render.SetLightmapTexture
    • Added render.PushRenderTarget
    • Added render.PopRenderTarget
    • Added GM:EntityEmitSound
    • Added NEXTBOT:OnRemove
    • Added timer.TimeLeft and timer.RepsLeft
    • Added render.OverrideAlphaWriteEnable
    • Added render.OverrideColorWriteEnable
    • Added render.SetWriteDepthToDestAlpha
    • Added a few requested ACT enums
    • Added PANEL:OnRemove hook
    • Removed PANEL:OnDeletion hook
    • Replaced Entity:GetTextures with Entity:GetMaterials
    • Added IGModAudioChannel:GetPos
    • Added IGModAudioChannel:GetVolume
    • Added IGModAudioChannel:SetTime
    • Added IGModAudioChannel:Set3DFadeDistance
    • Added IGModAudioChannel:Get3DFadeDistance
    • Added IGModAudioChannel:Set3DCone
    • Added IGModAudioChannel:Get3DCone
    • Added IGModAudioChannel:GetState
    • Added IGModAudioChannel:IsLooping
    • Added IGModAudioChannel:IsOnline
    • Added IGModAudioChannel:Is3D
    • Added IGModAudioChannel:GetLength
    • Added IGModAudioChannel:GetFileName
    • Added IGModAudioChannel:GetSamplingRate
    • Added IGModAudioChannel:GetBitsPerSample
    • Added IGModAudioChannel:GetLevel
    • Added IGModAudioChannel:FFT
    • Added IGModAudioChannel:GetPlaybackRate
    • Added IGModAudioChannel:SetPlaybackRate
    • Added the GMOD_CHANNEL_* and FFT_* enums
    • Added sound.GetTable
    • Added sound.GetProperties
    • Added GM:StartCommand
    • Added GM:EntityFireBullets
    • Added util.GetSurfacePropName
    • Added system.FlashWindow
    • VMatrix objects can now be printed to the console
    • Added VMatrix support for the following operators: ==, ~=, +, -
    • Added VMatrix:ToTable
    • Added VMatrix:Set
    • Added VMatrix:Identity
    • Added VMatrix:IsIdentity
    • Added VMatrix:IsRotationMatrix
    • Added VMatrix:Invert
    • Added VMatrix:GetRight
    • Added VMatrix:GetUp
    • Added VMatrix:SetForward
    • Added VMatrix:SetRight
    • Added VMatrix:SetUp
    • Added VMatrix:GetField
    • Added VMatrix:SetField
    • Added VMatrix:SetScale
    • Added VMatrix:InvertTR
    • Added VMatrix:GetInverse
    • Added VMatrix:GetInverseTR
    • Added VMatrix:GetForward
    • Added Player:GetCurrentViewOffset
    • Added Player:SetCurrentViewOffset
    • Added Entity:AddFlags
    • Added Entity:RemoveFlags
    • Added Entity:IsFlagSet
    • Added FL_* enums
    • Added Player:GetViewPunchAngles
    • Added Player:SetViewPunchAngles
Apr 3, 2014
Garry's Mod - Rubat
Due to character limits, the list below does not include changes contributed by the community.
The full changelog can be found here.

FIXES
  • 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 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
  • 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 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
  • Fixed combine balls not colliding with players
  • Fixed env_zoom not working at all
  • 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

IMPROVEMENTS
  • Improved mounting system
  • 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

ADDITIONS
  • Added clientside convar cl_steamoverlay_pos
LUA SCRIPTING
  • Fixes
    • 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
    • Fixed Player:ScreenFade not taking color alpha into account
    • 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
    • Fixed Entity:GibBreakClient not taking skin number into account
    • Fixed Entity:MapCreationID returning different values after a map cleanup
    • 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, 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:SetAnglesnot preserving translation and scale
    • Fixed surface.CreateFont disconnecting clients when an invalid table is passed
  • 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
    • 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 now permanently deletes the channel
    • IGModAudioChannel:SetPos now takes an orientation vector as an optional second argument
    • Improved command blacklisting for Player:ConCommand and game.ConsoleCommand
    • sound.Add now accepts a table as its pitch and volume parameters
    • Moved Vector:__unm from Lua to C
    • Moved Angle:__unm from Lua to C
    • Matrix can now take an optional 4x4 table as an argument
    • Matrices can now be multiplied by vectors
    • Player:ViewPunchReset first argument is now optional (defaults to 0)
    • 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
    • Changed Entity:DispatchTraceAttack arguments to (dmginfo, traceres, dir)
  • Additions
    • Added chat.Open
    • Added chat.Close
    • Added render.SetLightmapTexture
    • Added render.PushRenderTarget
    • Added render.PopRenderTarget
    • Added GM:EntityEmitSound
    • Added NEXTBOT:OnRemove
    • Added timer.TimeLeft and timer.RepsLeft
    • Added render.OverrideAlphaWriteEnable
    • Added render.OverrideColorWriteEnable
    • Added render.SetWriteDepthToDestAlpha
    • Added a few requested ACT enums
    • Added PANEL:OnRemove hook
    • Removed PANEL:OnDeletion hook
    • Replaced Entity:GetTextures with Entity:GetMaterials
    • Added IGModAudioChannel:GetPos
    • Added IGModAudioChannel:GetVolume
    • Added IGModAudioChannel:SetTime
    • Added IGModAudioChannel:Set3DFadeDistance
    • Added IGModAudioChannel:Get3DFadeDistance
    • Added IGModAudioChannel:Set3DCone
    • Added IGModAudioChannel:Get3DCone
    • Added IGModAudioChannel:GetState
    • Added IGModAudioChannel:IsLooping
    • Added IGModAudioChannel:IsOnline
    • Added IGModAudioChannel:Is3D
    • Added IGModAudioChannel:GetLength
    • Added IGModAudioChannel:GetFileName
    • Added IGModAudioChannel:GetSamplingRate
    • Added IGModAudioChannel:GetBitsPerSample
    • Added IGModAudioChannel:GetLevel
    • Added IGModAudioChannel:FFT
    • Added IGModAudioChannel:GetPlaybackRate
    • Added IGModAudioChannel:SetPlaybackRate
    • Added the GMOD_CHANNEL_* and FFT_* enums
    • Added sound.GetTable
    • Added sound.GetProperties
    • Added GM:StartCommand
    • Added GM:EntityFireBullets
    • Added util.GetSurfacePropName
    • Added system.FlashWindow
    • VMatrix objects can now be printed to the console
    • Added VMatrix support for the following operators: ==, ~=, +, -
    • Added VMatrix:ToTable
    • Added VMatrix:Set
    • Added VMatrix:Identity
    • Added VMatrix:IsIdentity
    • Added VMatrix:IsRotationMatrix
    • Added VMatrix:Invert
    • Added VMatrix:GetRight
    • Added VMatrix:GetUp
    • Added VMatrix:SetForward
    • Added VMatrix:SetRight
    • Added VMatrix:SetUp
    • Added VMatrix:GetField
    • Added VMatrix:SetField
    • Added VMatrix:SetScale
    • Added VMatrix:InvertTR
    • Added VMatrix:GetInverse
    • Added VMatrix:GetInverseTR
    • Added VMatrix:GetForward
    • Added Player:GetCurrentViewOffset
    • Added Player:SetCurrentViewOffset
    • Added Entity:AddFlags
    • Added Entity:RemoveFlags
    • Added Entity:IsFlagSet
    • Added FL_* enums
    • Added Player:GetViewPunchAngles
    • Added Player:SetViewPunchAngles
Jul 5, 2013
Garry's Mod - Facepunch
- Workshop addons can be downloaded when joining a server
- Added resource.AddWorkshop( workshopid )
- Fixed fonts being invisible on resolution change
- Fixed crash when starting map
- Fixed sound.PlayURL not always calling the callback properly
- Banned 1,500 cheaters

If you have been banned for cheating and are sure you didn't cheat - then please email me at garry@garrysmod.com with your 64bit SteamID and I will look into it for you.
Jul 5, 2013
Garry's Mod - garry
- Workshop addons can be downloaded when joining a server
- Added resource.AddWorkshop( workshopid )
- Fixed fonts being invisible on resolution change
- Fixed crash when starting map
- Fixed sound.PlayURL not always calling the callback properly
- Banned 1,500 cheaters

If you have been banned for cheating and are sure you didn't cheat - then please email me at garry@garrysmod.com with your 64bit SteamID and I will look into it for you.
...