Garry's Mod Logo
schedule 16 December 2015
Devblog

December 2015 Update

An update has been released! This update includes a lot of exploit, crash and Half-Life 2 campaign fixes, as well as other minor bug fixes and Lua API improvements. Thanks to the following people for helping us out and reporting dangerous exploits: Willox, Leystryku, Python1320, MeepDarknessM/Meepen and ogniK. And thanks to everyone who helped testing the update and reported bugs/problems. As usual, servers will need to be restarted. The update will be automatically downloaded when you restart your game. You can check out the full change log below:
add_circle

Features

  • Added localization for leafblower
arrow_circle_up

Improvements

  • Optimized menu map retrieval
  • Clamped physgun color to above 0
handyman

Fixed

  • Fix utf8.len() for empty inputs
  • Fixed utf8.codes to abide to Lua 5.3's implementation
  • Fixed utf8.force dying on empty input
  • Fixed GM:AddDeathNotice's incorrect internal parameter naming
remove_circle

Removed

  • Removed old test file
add_circle

Features

  • Added new TF2 map prefixes
arrow_circle_up

Improvements

  • Updated Bouncy Ball & NetworkVar dupe support
handyman

Fixed

  • Fixed Singleplayer crash with Light Tool
  • Fixed Saves/Dupes tab exploit
arrow_circle_up

Improvements

  • Updated language files to be gender neutral
handyman

Fixed

  • Fixed instant defusal exploit
add_circle

Features

  • Added gameui_show_dialog, buildcubemaps, voice_ and some snd_ commands to blocked cvar list
  • Added support for L4D1 & Retail Black Mesa Source maps
  • Added maps/*_particles.txt for HL2:EP2 maps
  • Added new TF2 map icons and a few L4D1 map icons
  • Added menu_cleanupgmas that cleans up unused .gma files
  • Added ACT_HL2MP_SWIM_IDLE & ACT_HL2MP_SWIM to Lua
  • Added new soundscript stuff from TF2 update
  • Added 2 new parameters for Entity.RestartGesture - autokill=true, addIfMissing=true
  • Added 6 missing silkicons
  • Added cfg/mapcycle.txt to stop invalid map version spam
  • Added -noworkshop command line parameter
  • Added possible ragdoll related physics crash prevention/fix
  • Added support for Steam game server accounts
  • Added font name to the "There was an error creating the font!"
  • Added Vehicle.IsValid - returns whether the actual VEHICLE is valid or not
  • Added Vehicle.SetPos( vector ) - Actually working SetPos for vehicles
  • system.IsWindowed
  • input.LookupKeyBinding
  • ENT:FireAnimationEvent
  • ENT:HandleAnimEvent
  • CNavArea.SetAttributes
  • CNavArea.GetCostSoFar
  • CNavArea.ComputeAdjacentConnectionHeightChange
  • CNavLadder.GetLength
  • navmesh.IsLoaded
  • navmesh.SetMarkedArea
  • navmesh.GetMarkedArea
  • navmesh.SetMarkedLadder
  • navmesh.GetMarkedLadder
  • navmesh.GetEditCursorPosition
  • navmesh.Reset
  • navmesh.Load
  • navmesh.Save
  • CLuaLocomotion.IsAreaTraversable
  • CLuaLocomotion.GetMaxJumpHeight
  • PathFollower.ResetAge
  • PathFollower.MoveCursorToClosestPosition
  • PathFollower.GetHindrance
  • PathFollower.GetCursorData
  • PathFollower.GetCurrentGoal
  • PathFollower.FirstSegment
  • PathFollower.LastSegment
  • ismatrix
  • halo.RenderedEntity
  • Entity.IsPlayingGesture
  • Entity.AddGesture
  • Entity.AddGestureSequence
  • Entity.AddLayeredSequence
  • Entity.IsValidLayer
  • Entity.GetLayerDuration
  • Entity.SetLayerDuration
  • Entity.SetLayerPriority
  • Entity.RemoveGesture
  • Entity.RemoveAllGestures
  • Entity.SetLayerCycle
  • Entity.GetLayerCycle
  • Entity.SetLayerPlaybackRate
  • Entity.SetLayerWeight
  • Entity.GetLayerWeight
  • Entity.SetLayerBlendIn
  • Entity.SetLayerBlendOut
  • Entity.SetLayerLooping
  • Entity.StopAndDestroyParticles
  • Entity.StopParticlesNamed
  • Entity.StopParticlesWithNameAndAttachment
  • Weapon.GetWeaponViewModel
  • Weapon.GetWeaponWorldModel
  • Weapon.GetWeight
  • Weapon.HasAmmo
  • Weapon.AllowsAutoSwitchTo
  • Weapon.AllowsAutoSwitchFrom
  • CreateParticleSystem
  • CNewParticleEffect.IsValid
  • CNewParticleEffect.SetControlPoint
  • CNewParticleEffect.SetControlPointOrientation
  • CNewParticleEffect.SetSortOrigin
  • CNewParticleEffect.GetEffectName
  • CNewParticleEffect.StartEmission
  • CNewParticleEffect.StopEmission
  • CNewParticleEffect.GetOwner
  • CNewParticleEffect.AddControlPoint
  • CNewParticleEffect.StopEmissionAndDestroyImmediately
  • Added CNewParticleEffect.__tostring()
  • Added CNewParticleEffect.IsFinished
  • Added CNewParticleEffect.IsViewModelEffect
  • Added CNewParticleEffect.SetIsViewModelEffect
  • Added CNewParticleEffect.SetControlPointEntity
  • Added CNewParticleEffect.SetControlPointForwardVector
  • Added CNewParticleEffect.SetControlPointRightVector
  • Added CNewParticleEffect.SetControlPointUpVector
  • Added CNewParticleEffect.SetControlPointParent
  • Added CNewParticleEffect.GetHighestControlPoint
  • Added CNewParticleEffect.GetAutoUpdateBBox
  • Added CNewParticleEffect.Restart
arrow_circle_up

Improvements

  • Made the "DirectX Out of Date" message open the Support webpage and changed its text
  • Updated Awesomium to 1.7.5.1
  • PathFollower.Compute( pos, nextbot, function ) now has a third paramter - function( area, areafrom, ladder, elevator, length )
  • input.LookupBinding() now has a second parameter - exact
  • net.ReadData no longer tries to read 0-length or negative length data
  • sv_logsdir can no longer be used to write any file with any extension anywhere on your PC
  • file.Remove no longer can delete any file on your PC in menu state
  • Updated net_graph, sv_log(sdir), Orange Box .pcf particle system & bunch more things to their latest TF2 version
  • Updated All NPC/AI weapons except for Crossbow
  • Increased precision of integers for util.KeyValuesToTable
  • Enabled a some EP2 Alyx stuff - Entering Jalopy, etc.
  • Entity.RestartGesture() is now serverside only ( It never did anything on client )
  • Entity.SetWeaponModel()'s Weapon argument is now optional
  • Improved AI player detection in multiplayer ( It used to detect the last player on server, now properly detects the closest one )
  • Updated propdata.txt to contain Episodic stuff
  • Updated Steamworks API to latest version
  • Updated localization files
  • Moved some files from garrysmod.vpk to fallbacks.vpk ( HLS gibs, Alyx Gun epsodic sounds )
  • Some of gravity gun convars are no longer cheat only
  • Moved GetConVarNumber and GetConVarString to Lua for better performance
  • Ground speed for NPCs now takes model scale into account
  • Slightly improved player movement on moving props so they are less likely to be ejected
  • Moved some steamworks.* Lua functions to ISteamUGC
  • Entity.CreateParticleEffect() now returns the particle object it creates
handyman

Fixed

  • Fixed Vehicle.IsBoosting crashing the game when used on a seat
  • Fixed physenv.AddSurfaceData only working once per map
  • Fixed TF2 .nav files crashing the game on map load
  • Fixed GetSaveTable() not properly handling some entity fields
  • Fixed RPG sound spam #2
  • Fixed triggerable soundscapes being removed when cleaning up the map
  • Fixed combine mines not detecting players in Single Player ( And player in the last player slot in multiplayer )
  • Fixed util.TraceLine and Entity:FireBullets not hitting player hitboxes outside of their hull if there is a prop behind said hitbox
  • Fixed gravity gun not calling OnFailedPhysGunPickup on any entity
  • Fixed not being able to grab a Magnusson Device from Jalopy's back
  • Fixed Jalopy's radar and added multiplayer support
  • Fixes d3_breen01 map getting stuck
  • Fixed Combine Mine leaving looping sound behind if removed while the sound is playing
  • Fixed a bug with Bugbait and Grenade weapons where you can have both stuck in unusable state
  • Fixed SF_TRIG_TOUCH_DEBRIS not working in any trigger entity
  • Fixed Weapon.GetActivity() not returning any values
  • Fixed unhandled usermessage 21
  • Fixed scripted entity names being restricted to 32 characters. ( Now restricted to 64 )
  • Fixed Player:GetEyeTrace not working correctly with lag compensation
  • Fixed prediction errors when walking or attempting to sprint while crouched
  • Fixed particle systems not obeying some attach types correctly
  • Fixed scenes not playing in some cases
  • Fixed some issues with player movement prediction
  • Fixed a client crash issue with some ragdoll models ( unreasonable position )
  • Fixed some things printing twice on Linux srcds
  • Fixed yet another DDoS exploit
  • Fixed some DoS exploits having to do with server log output
  • Fixed a security exploit
  • Fixed splitpacket server crash exploit
  • Fixed net library server crash exploit
  • Fixed yet another server crash exploit
  • Fixed CreateMaterial exploit
  • Fixed Player.Say exploit
  • Fixed an exploit/a bug that allowed people to get the "Play X days/months" achievements faster ( or slower )
remove_circle

Removed

  • Removed Panel.OnMousePressed method
  • Removed RawConsoleCommand
  • Removed the 8192 .lua file limit for singleplayer. (The limit still exists for multiplayer)
  • Removed the 20 character addon name limit for engine.GetAddons()
  • Removed soundscapes from fallbacks, they are all shipped in garrysmod.vpk now
  • Got rid of unnecessary Steam.dll dependency