A major update has been released! As usual, servers will need to be restarted.
This update features important fixes for various bugs and exploits, along with minor optimizations and improved scripting support for nextbots and navmeshes.
Thanks to Willox for reporting dangerous exploits.
You can check out the full changelog below:
Game Changes
- NEW Added measures against fake servers.
- NEW Added an experimental cache system for vectors/angles returned by Lua functions to minimize memory allocation/freeing
- NEW Added HL:S gib models (for custom maps that use them)
- NEW Added more validation for packets (prevents one of the ddos methods)
- NEW Added GM:AcceptInput(ent, input, activator, caller, value), equivalent behavior of ENTITY:AcceptInput
- NEW Added Alyx Gun sounds
- NEW Added Entity.CollisionRulesChanged()
- NEW Added PhysObj.RecheckCollisionFilter()
- NEW Added CLuaEmitter.Is3D()
- NEW Added CLuaEmitter.GetPos()
- NEW Added CLuaLocomotion.GetMaxYawRate()
- NEW Added CLuaLocomotion.SetMaxYawRate( float )
- NEW Added CLuaLocomotion.IsAscendingOrDescendingLadder()
- NEW Added CLuaLocomotion.IsUsingLadder()
- NEW Added navmesh.GetNearestNavArea( pos, anyZ = false, distance = 10000, checkLOS = false, checkGround = true, team = -2 )
- NEW Added navmesh.GetAllNavAreas()
- NEW Added CNavArea.GetRandomPoint()
- NEW Added CNavArea.GetCenter()
- NEW Added CNavArea.GetAttributes()
- NEW Added CNavArea.HasAttributes( int )
- NEW Added CNavArea.IsOverlappingArea( CNavArea )
- NEW Added CNavArea.ComputeGroundHeightChange( CNavArea )
- NEW Added CNavArea.ComputeDirection( Vector )
- NEW Added CNavArea.GetIncomingConnectionsAtSide( NavDir )
- NEW Added CNavArea.GetIncomingConnections()
- NEW Added CNavArea.IsValid()
- NEW Added CNavArea.GetAdjacentCountAtSide( NavDirType )
- NEW Added CNavArea.GetAdjacentCount()
- NEW Added CNavArea.GetAdjacentAreaAtSide( NavDirType, int )
- NEW Added CNavArea.GetRandomAdjacentAreaAtSide( NavDirType )
- NEW Added CNavArea.GetAdjacentAreasAtSide( NavDirType )
- NEW Added CNavArea.GetAdjacentAreas()
- NEW Added CNavArea.IsConnectedAtSide( CNavArea, NavDirType )
- NEW Added CNavArea.IsConnected( CNavArea )
- NEW Added CNavArea.GetLadders()
- NEW Added CNavArea.GetLaddersAtSide( NavLadderDir )
- NEW Added navmesh.GetNavLadderByID( id )
- NEW Added CNavLadder.GetPosAtHeight( float height )
- NEW Added CNavLadder.GetNormal()
- NEW Added CNavLadder.IsValid()
- NEW Added CNavLadder.GetID()
- NEW Added CNavLadder.IsConnectedAtSide( CNavArea, NavLadderDir )
- NEW Added ‘victim’ and ‘damageinfo’ arguments to NEXTBOT:OnOtherKilled
- NEW Added ‘ent’ argument to NEXTBOT:OnLeaveGround & NEXTBOT:OnLandOnGround
- NEW Added NEXTBOT:OnContact( ent )
- NEW Added NEXTBOT:OnIgnite()
- NEW Added NEXTBOT:OnNavAreaChanged( old, new )
- NEW Added Nextbot:GetSolidMask()
- NEW Added Nextbot:SetSolidMask( mask )
- NEW Added Entity.AddSolidFlags(flags)
- NEW Added Entity.RemoveSolidFlags(flags)
- NEW Added Entity.GetSolidFlags()
- NEW Added Entity.SetSolidFlags(flags)
- NEW Added FSOLID_ enums
- NEW Added NAV_MESH_ enums
- NEW Added custom icon for srcds.exe
- NEW Added VProf support to a bunch of functions
- NEW Added navigation mesh for gm_flatgrass
- NEW Added GM:NotifyShouldTransmit(ent, shouldtransmit) to catch clientside PVS states on entities
- NEW Added third optional argument to CreateSound() – channel
- NEW Added Panel:GetZPos()
- NEW Added CRecipientFilter:GetCount()
- NEW Added CRecipientFilter:AddPAS( vec )
- NEW Added models/weapons/c_arms.mdl
- UPD New NWVars are back and should be stable now (hopefully)
- UPD Added multvar and incrementvar to blocked convar list
- UPD Added w_bugbait.mdl with proper bones
- UPD timer.Adjust has its 4th argument optional now
- UPD Merged LuaJIT bug fixes from master branch and fixed GMod’s special table.insert to support JIT
- UPD Commented warnings about “Cannot update control point %d for effect ‘%s'”, occours with ghost_effect
- UPD Increased MaxDistance of env_projectedtexture from 1500 to 56756 in multiplayer
- UPD Updated Bootil to latest version (fixes symbolic link autorefresh)
- UPD Prevented servers from being able to force screen resolution on players
- UPD Improved cursor handling in TextEntry for Ctrl+Left/Right
- UPD Improved the logic for AI squads in multiplayer (still needs some work)
- UPD Player view smoothing now works properly when walking up stairs with a custom step size
- UPD Updated navigation mesh for gm_construct
- UPD Updated BASS.DLL to 2.4.11
- UPD “stopsound” now also stops all BASS.DLL sounds
- UPD Unsubscribing from addons now properly deletes the associated .gma files
- UPD net.WriteBit now also accepts numbers
- FIX Fixed “DataTable warning: player: Out-of-range value (x) in SendPropFloat”
- FIX Fixed CAI_LeadBehavior, Alyx no longer stands around being stupid in multiplayer
- FIX Fixed player model without physics crashing the game when a ragdoll was created
- FIX Fixed timer.Pause & timer.UnPause not checking whether the timer was already paused or not
- FIX Fixed game.CleanUpMap() duplicating all decals created by infodecal entities
- FIX Fixed an issue with Entity.Weapon_SetActivity
- FIX Fixed ambient_generic not working in some cases
- FIX Fixed Player:SetHullDuck() not working properly
- FIX Fixed Stalkers not bleeding and leaving their beams behind after they are removed
- FIX Fixed Combine Helicopter, Dropship, Gunship & Floor Turret bleeding in multiplayer
- FIX Fixed auto refresh not working with symbolic links
- FIX Fixed GMad not working properly on Linux and OSX
- FIX Fixed Lua files not being loaded on clients in multiplayer in some cases
- FIX Fixed Lua fonts being deleted on resolution change
- FIX Fixed bad NextBot collisions with players by default
- FIX Fixed NextBots not being able to walk through PLAYERCLIP brushes by default
- FIX Fixed Hammer making Steam show you as playing Garry’s Mod
- FIX Fixed Lua errors when printing invalid Panels and Physics objects
- FIX Fixed static lighting breaking in some cases
- FIX Fixed a huge exploit with “cvarlist” console command
- FIX Fixed net.WriteUInt writing data as signed integer
- FIX Fixed game_ui entity not releasing player input on player death
- FIX Fixed an exploit with OpenFolder
- DEL Removed “Lua JIT is DISABLED!” message
- DEL Remove FCVAR_ARCHIVE flag from cl_thirdperson, sv_backspeed & hud_showemptyweaponslots
GMPublish
- UPD Removed the need for steam_appid.txt
- UPD Fixed not updating addon tags
GitHub changes
- NEW Added EP1 & EP2 details to detail.vbsp
- UPD Restored background for default HL2 HUD
- UPD Several server browser changes
- UPD Remember/RestoreCursorPosition are now clientside only
- UPD PropSelect now sorts models alphabetically
- UPD Improved default Fists SWEP hit detection
- UPD Made 2nd parameter of DProperty_Combo.Setup() optional
- UPD Got rid of unnecessary Network Strings
- FIX Fixed stalkers not attacking players
- FIX “Fixed” DAdjustableModelPanel’s model not being visible if the camera positions are not set up
- FIX Fixed a problem with SortedPairsByValue
- FIX Fixed the player count selector missing its arrow
- FIX Fixed big saves becoming corrupted
- FIX Fixed DColumnSheet selected button
- FIX Fixed right clicking on entities sending Mouse 2 signtal to the server
- DEL Removed hacky workarounds in weapon_fists
TTT
- NEW Added Spanish, Russian, Chinese, and Swedish translations
- NEW Allowed for custom TTT Scoreboard ScoreGroups
- NEW Added German translation
- NEW Added main menu settings (English only)
- NEW Added hat_retrieve to Swedish
- NEW Added hat_retrieve to German, Portuguese, and Spanish
- FIX Fixed spectators having footstep sounds
- FIX Fixed Decoy’s radar color
- FIX Fixed Magneto Stick setting nil Owner on active SWEP
- UPD Updated Portuguese translations
- UPD Use PlayerModel colouring for TTT players
- UPD Improved Defuser compatibility
- UPD Sped up weapon scrolling
- UPD Crosshairs have even gap/length for each line
- UPD Allowed detectives to reequip their dropped hat
- UPD Improved grenade throwing
- UPD Bumped version
- UPD Allowed spectators to talk in all chat – redirects to team
Community Contributions
- NEW Added more friends/enemies to achievement count
- NEW Added Panel:DeleteCookie()
- NEW Added player.GetBySteamID() and player.GetBySteamID64()
- NEW Added GM:PreDrawPlayerHands() and GM:PostDrawPlayerHands()
- NEW Added drag’n’drop support to DHorizontalScroller
- NEW Added ColorRand()
- UPD Renamed DHorizontalDivider.GetRigth to DHorizontalDivider.GetRight
- UPD Optimized Panel:IsOurChild( Panel )
- UPD Updated default Fonts on Linux and OS X
- UPD DGrid: Use table.remove instead of setting to nil
- UPD Removed cam.IgnoreZ() from DModelPanel
- UPD Moved net.lua from modules to extensions
- UPD Made UTIL_IsUselessModel more efficient
- UPD Updated all SWEP files to a unified format
- UPD net.ReadType no longer requires an argument
- UPD Updated CalcView to allow CalcVehicleView to be hooked
- UPD Properties can only be used on weapons when unheld
- UPD Bots will respawn without needing to attack
- UPD Optimized scripted_ents.Get a bit
- UPD Made prop_generic panel not error without a setup table
- UPD Allowed more GM functions to be hooked
- UPD Improved error message when indexing string badly (with key not within the string library)
- UPD Improved map counter when filtering maps
- UPD Renamed flechette_gun to weapon_flechettegun
- UPD Renamed UTIL_IsUselessModel to IsUselessModel
- FIX Fixed prediction on jump boost
- FIX Fixed Vector:ToColor
- FIX Fixed main menu text shadow transparency on OS X
- FIX Fixed DColumnSheet button colors
- DEL Removed useless require calls