Garry's Mod Logo
schedule 08 July 2014
General

14.07.08

A major update is coming in, so servers will need to be restarted before joining them as usual. This update consists mostly of exploit fixes, various requested adjustments, and a few new Lua features for developers including extended support for AI navigation meshes, up to 64 DT vars of each type, and toggleable lag compensation for all entities.
arrow_circle_up

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
handyman

Fixed

  • 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
add_circle

Features

  • Added lag compensation to the crowbar's secondary attack
  • Added TTTPlayerUsedHealthstation hook
handyman

Fixed

  • Admin commands no longer appear in "last words"
  • Fixed a minor issue with teleporter effects
add_circle

Features

  • Added team.SetColor(index, color)
  • Added Angle:SnapTo(component, degrees)
  • Added IsColor(), net.WriteColor(), net.ReadColor()
arrow_circle_up

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
  • Improved context menu properties in various ways
handyman

Fixed

  • 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
add_circle

Features

  • Entity:PhysicsDestroy
  • Weapon:GetHoldType
  • util.SharedRandom
  • util.BlastDamageInfo
  • Entity:SetLOD
  • Entity:SetLagCompensated
  • Entity:IsLagCompensated
  • Player:SetAllowWeaponsInVehicle
  • Player:GetAllowWeaponsInVehicle
  • CSoundPatch:SetDSP
  • CSoundPatch:GetDSP
  • IGModAudioChannel:EnableLooping
  • IGModAudioChannel:PlayFile
  • Entity:SetPhysicsAttacker
  • game.SetSkillLevel
  • EFFECT:StartTouch
  • CUserCmd:SelectWeapon
  • Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
  • PhysObj:GetName
  • CNavArea:Draw
  • CNavArea:GetZ
  • CNavArea:IsOverlapping
  • CNavArea:Contains
  • CNavArea:IsCoplanar
  • CNavArea:GetClosestPointOnArea
  • CNavArea:IsVisible
  • CNavArea:GetCorner
  • navmesh.GetNavAreaCount
  • navmesh.GetNavArea
  • navmesh.GetNavAreaByID
  • navmesh.BeginGeneration
  • navmesh.IsGenerating
  • navmesh.GetPlayerSpawnName
  • navmesh.SetPlayerSpawnName
  • navmesh.AddWalkableSeed
  • navmesh.ClearWalkableSeeds
  • Entity:IsDormant
  • ENTITY:Blocked
  • Color:ToHSV
  • gui.InternalKeyTyped
arrow_circle_up

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
  • 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 the trace results should be written into
  • 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 (defaults to "")
  • Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
  • Entity:PlayScene second argument (delay) is now optional (defaults to 0)
  • MsgC can now print text with several colors in a single call
  • Moved Player:Freeze, Player:GodEnable, Player:GodDisable, Player:IsFrozen, Player: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
  • Improved vgui.LoadControlsFromString (no longer writes to a temporary file)
handyman

Fixed

  • 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
  • DynamicLight
  • Fixed util.TableToJSON crashing when passed a table containing keys that aren't strings or numbers
  • Fixed GM:OnReloaded being called more than once on most gamemodes
remove_circle

Removed

  • Removed "loop" flag from sound.PlayURL
  • Removed support for vm_origin and vm_angles from GM:CalcView