Due to character limits, the list below does not include changes contributed by the community. The full changelog can be found [url=http://www.garrysmod.com/2014/04/03/14-04-03/]here[/url]. FIXES [list] [*] 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 [/list] IMPROVEMENTS [list] [*] 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 [/list] ADDITIONS [list] [*] Added clientside convar cl_steamoverlay_pos [/list] LUA SCRIPTING [list] [*] Fixes [list] [*] 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 [/list] [*] Improvements [list] [*] 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) [/list] [*] Additions [list] [*] 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 [/list] [/list]