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