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. Full Changelog Game Changes FIX Fixed item pickups not being collectable in some cases FIX Fixed env_microphone not always transmitting NPC voices in multiplayer FIX Fixed some textures on gm_construct having an incorrect normal map when running under DX8 FIX Fixed console crash on some machines FIX Fixed another possible exploit with CNetChan::SendFile FIX Fixed an exploit allowing access to any file on a client machine FIX Fixed vehicle noclip exploit FIX Fixed SMG viewmodel animation glitch when firing exactly 3 shots in a single burst FIX Fixed inaccurate text selection in RichText controls UPD Files with an incorrect extension can no longer be loaded as modules UPD Loose .vcd files can now be loaded without having to be compiled into scenes.image TTT FIX Admin commands no longer appear in “last words” FIX Fixed a minor issue with teleporter effects NEW Added lag compensation to the crowbar’s secondary attack NEW Added TTTPlayerUsedHealthstation hook Community Contributions FIX Fixed vehicle third person affecting cameras FIX Fixed shipped weapons creating errors when given to NPCs FIX Fixed SimpleDoF to properly work with cameras FIX Fixed return values of draw.SimpleText FIX Fixed big numbers not sending properly with net.WriteTable FIX Fixed gmod_admin_cleanup/gmod_cleanup errors when run in a dedicated server console FIX Fixed vehicles not duplicating their skin, bodygroups, etc FIX Fixed derma.SkinTexture FIX Fixed longstanding thruster crash exploit FIX Fixed pasted ragdolls with duplicator being in T pose until you touch them (still happens for saves though, sorry) FIX Fixed snow footsteps FIX Fixed some base weapons (Alyx gun, HL1 grenade) being .357 clones UPD Post Process effects are no longer saved across restarts UPD Hidden some useless HL2 maps UPD Updated jQuery/AngularJS UPD draw.SimpleTextOutlined now returns same thing as draw.SimpleText UPD Lua errors notification only stays for 10 seconds instead of 30 UPD Clicking “Resize” in spawnicon right click menu no longer automatically rerenders the icon. UPD Fancified Bouncy Ball UPD Updated server browser looks UPD Bots are no longer counted towards player count in server browser UPD Sort addons and games alphabetically in Browse UPD Made player_manager.TranslateToPlayerModelName case insensitive UPD Tweaked some tools UPD Improved context menu properties in various ways NEW Added team.SetColor(index, color) NEW Added Angle:SnapTo(component, degrees) NEW Added IsColor(), net.WriteColor(), net.ReadColor() Lua Scripting FIX Fixed EntityhysicsFromMesh building a deformed collision mesh FIX Fixed PhysicsCollide entity callback missing information about the entity which was collided with FIX Fixed IMaterial:GetMatrix crashing the game FIX Fixed sound.Add not working on dedicated servers FIX Fixed ents.FindByClass not interpreting wildcards correctly FIX Fixed util.CRC not working correctly on strings with embedded zeroes FIX Fixed util.JSONToTable losing precision for large integer values FIX Fixed Entity:GetBoneController returning a truncated value FIX Fixed Entity:SetHitboxSet not working properly with an integer parameter FIX Fixed NPC:FoundEnemySound, LostEnemySound, FearSound, IdleSound and AlertSound not calling their appropriate equivalent in the engine FIX Fixed InnerAngle and OuterAngle parameters not doing anything in lights created by DynamicLight() FIX Fixed util.TableToJSON crashing when passed a table containing keys that aren’t strings or numbers FIX Fixed GM:OnReloaded being called more than once on most gamemodes UPD Updated LuaJIT to version 2.0.3 UPD Reverted Entity:IsValid to its old behaviour UPD Changed EntityhysicsInitBox behaviour to be more consistent with EntityhysicsInitConvex (no longer creates a broken physics object in some cases) UPD game.GetWorld is now shared UPD Player:HasWeapon and Player:GetWeapon are now shared UPD Entity(0) now returns the world on both server and client UPD Entities can now have up to 64 DT vars of each type (except strings) UPD Player:Kick and Player:Ban kick/ban reasons are now optional and may contain newlines UPD SWEP holdtypes are now properly networked UPD Vector and angle access using a numerical index rather than x/y/z is now slightly faster UPD gui.OpenURL now clamps URLs to 511 characters max UPD Added safeguards to mesh library functions UPD Entity:GetMaxHealth is now shared again and properly networked UPD EntityrawViewModel now takes an optional second argument which controls which viewmodel to show/hide (defaults to 0) UPD Moved Entityisposition, GetActivity, IsNPCMoving, IsUnreachable to NPCisposition, GetActivity, IsMoving, IsUnreachable UPD Trace tables now accept an “output” parameter which may contain the table the trace results should be written into UPD sound.PlayFile and sound.PlayURL callbacks now receive an error ID and error name as their second and third parameters if an error occurs UPD Weapon:CallOnClient second argument is now optional (defaults to “”) UPD Moved PlayerlayScene, NPClayScene and NextBotlayScene to Entity metatable UPD EntitylayScene second argument (delay) is now optional (defaults to 0) UPD MsgC can now print text with several colors in a single call UPD Moved Player:Freeze, Player:GodEnable, Player:GodDisable, Player:IsFrozen, Player:HasGodMode to Lua UPD Clamped pitch between -90 and 90 instead of -180 and 180 for AngleRand UPD util.KeyValuesToTable and util.KeyValuesToTablePreserveOrder now accept a third parameter which prevents keys from becoming lowercased when set to true UPD vgui.LoadControlsFromFile/LoadControlsFromString now properly creates scripted panels UPD Improved vgui.LoadControlsFromString (no longer writes to a temporary file) NEW Added EntityhysicsDestroy() NEW Added Weapon:GetHoldType() NEW Added util.SharedRandom(uniqueName, min, max, additionalSeed=0) NEW Added util.BlastDamageInfo(dmginfo, origin, radius) NEW Added Entity:SetLOD(lod=-1) NEW Added Entity:SetLagCompensated(bool) NEW Added Entity:IsLagCompensated() NEW Added Player:SetAllowWeaponsInVehicle(bool) NEW Added Player:GetAllowWeaponsInVehicle() NEW Added CSoundPatch:SetDSP(dsp) NEW Added CSoundPatch:GetDSP() NEW Added IGModAudioChannel:EnableLooping(bool) NEW Added IGModAudioChannellayFile(path, flags, callback) NEW Added optional second argument to Entity:SetPhysicsAttacker() which controls expiry time (defaults to 5 seconds) NEW Added game.SetSkillLevel(int), game.GetSkillLevel() NEW Added the following hooks to scripted effects: EFFECT:StartTouch(), EFFECT:Touch(), EFFECT:EndTouch() NEW Added CUserCmd:SelectWeapon(weapon_ent) NEW Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables NEW Added PhysObj:GetName() NEW Added CNavArearaw(), IsUnderwater(), GetSizeX(), GetSizeY(), IsRoughlySquare(), IsFlat() NEW Added CNavArea:GetZ(pos) NEW Added CNavArea:IsOverlapping(pos, tolerance) NEW Added CNavArea:Contains(pos) NEW Added CNavArea:IsCoplanar(navArea) NEW Added CNavArea:GetClosestPointOnArea(pos) NEW Added CNavArea:IsVisible(pos) NEW Added CNavArea:GetCorner(cornerId) NEW Added navmesh.GetNavAreaCount() NEW Added navmesh.GetNavArea(pos, beneathLimit) NEW Added navmesh.GetNavAreaByID(id) NEW Added navmesh.BeginGeneration() NEW Added navmesh.IsGenerating() NEW Added navmesh.GetPlayerSpawnName() NEW Added navmesh.SetPlayerSpawnName() NEW Added navmesh.AddWalkableSeed(pos, normal) NEW Added navmesh.ClearWalkableSeeds() NEW Added Entity:IsDormant() NEW Added ENTITY:Blocked(other), only applies to SENTs using the MOVETYPE_PUSH movetype NEW Added Color:__tostring, Color:__eq and Color:ToHSV() NEW Added gui.InternalKeyTyped(code) DEL Removed “loop” flag from sound.PlayURL DEL Removed support for vm_origin and vm_angles from GM:CalcView Continue reading...