Garry's Mod Logo
add_circle

Features

  • Added ENT.PhysicsSounds for anim type SENTs - If set to true, re-enables physics impact sounds for the entity
  • Added vgui.GetAll - Internal, returns only Lua created panels. Used to fix PANEL:PreAutoRefresh and PANEL:PostAutoRefresh not working
  • Middle mouse click for DColorCube/DColorMixer to reset to convar defaults
  • Added DColorCube:GetDefaultColor/DColorCube:SetDefaultColor
  • Added DSlider:ResetToDefaultValue
  • Added "content_descriptors" to steamworks.FileInfo result
  • Added private activity functions - util.GetActivityNameByID, util.GetActivityIDByName, util.GetAnimEventIDByName
  • util.GetAnimEventNameByID is now shared
  • Added Panel:SetCookieName support for DNumSlider, DCheckbox, DCheckboxLabel
  • Added DAdjustableModelPanel:GetMovementScale/DAdjustableModelPanel:SetMovementScale
  • Added optional argument to NPC:StopMoving
  • Added new argument to Entity:CreateBoneFollowers
  • Bone follower support for AI and Nextbot SENTs
  • Added Entity:Dissolve
  • Added a 3rd argument for PathFollower:Chase
  • Added NPC:SetStepHeight and NPC:GetStepHeight
  • Added NPC:GetArrivalSpeed / NPC:GetArrivalDistance
  • Added ability for traces to use a table of class names as "filter"
  • Traces now have "whitelist" input property - This will turn the table filter into a whitelist, rather than ignore list. This will NOT affect function() filters
  • Added "hitclientonly" option to trace functions clientside
  • Added new data to util.GetModelInfo - MeshCount, BoneCount, Flags, StaticProp (specific flag)
  • Added a new argument to concommand.Add autocomplete callback - tokenized arguments
  • Added CNewParticleEffect:GetRenderBounds
  • Clientside physics object scaling is now possible with Entity:SetModelScale
  • Added RegisterMetaTable( name, table )
  • sound.Generate now accepts table of samples, or direct binary data as a string
  • Added optional argument to sound.Generate - loopStart (sample ID)
  • Entity:GetPoseParameter and Entity:SetPoseParameter now can accept numbers instead of strings
  • Entity:GetPoseParameterRange can now accept string instead of a number
  • Added steamworks.GetList/steamworks.FileInfo serverside
  • Allow 3 separate number inputs to certain mesh.* functions - mesh.Position, mesh.Normal, mesh.TangentS, mesh.TangentT
  • file.Delete now returns true on success, false otherwise
  • Gamemode cvars: Added "replicate" field - If set to 0, removes REPLICATED flag from gamemode cvars
  • Added Entity:GetFlexType( id ) = string
  • Added Color:Lerp( target, frac )
  • Added string.NiceName
  • Added player_manager.GetPlayerClassTable (Community Contribution)
  • Added 2nd return value to SANDBOX:CanArmDupe hook - message to display on denial (Community Contribution)
  • Added GM:OnPauseMenuShow
  • Added ENT.PhysicsSolidMask to anim/ai/nextbot SENTs
  • 3rd argument to GM:NetworkIDValidated - ownerID64
arrow_circle_up

Improvements

  • Increase the limit of Entity:ManipulateBoneScale to 512 (from 32)
  • Material function can use .cache files from steamworks.Download
  • DCollapsibleCategory items support disabled styles
  • More consistent Vector/Angle optional argument handling - You can now do Vector( nil, 1, 2 ) and get the expected output
  • Made new vgui.Create errors non halting to prevent breaking existing mods that are badly coded
  • Block mem_force_flush from Lua access just in case - Having this enabled in autoexec causes issues, so lets disallow servers to force it on players
  • Block servers from modifying fov_desired, skill, cl_playerspraydisable, voice_overdrivefadetime
  • Block "path" concommand from being able to be ran via Lua
  • Block all .log files for file.Read, not just console.log
  • Changed Matrix memory management to match Vector/Angle - This aims to fix stuttering when GCing lots of matrices, for example in rendering hooks
  • Try to make sure SENTs are initialized clientside before processing net messages, to avoid a race conditions with sending newly spawned SENTS to clients
  • Type check table arguments of ColorToHSL, ColorToHSV and physenv.SetPerformanceSettings
  • "anim" type SENTs move physics objects clientside for you - hopefully this does not cause any issues
  • Try loading model from Hammer keyvalues before setting models/error.mdl on anim SENTs
  • Player:SetAvoidPlayers ignores noclipping players
  • Give debug name to physics objects created via Lua & models scaling - for Lua functions, will be the function name that created it, for scaled physics objects - model name + scale
  • Entity:FollowBone, Entity:SetAttachment and Entity:SetParent will throw errors when given absolutely invalid attachment/bone IDs (i.e. less than 0, or above 255)
  • Entity:GetBodyGroups returns "empty" for submodels with no meshes (instead of nothing)
  • DNumSlider:SetEnabled also affects its DLabel
  • DLabel:SetDark disables DLabel:SetBright, and vice versa
  • DLabel:SetHighlight always overrides DLabel:SetDark AND DLabel:SetBright
  • IMaterial:GetColor returns an actual Color
  • Disabled DLabel has faded out colors
  • Make WEAPON:Think not run before NextAttack in singleplayer - This mimics SWEP:Think's behavior clientside in multiplayer
  • Call TOOL:Holster and TOOL:Deploy when switching tools clientside - This was done when using gmod_tool serverside only, it is now done when gmod_toolmode changes both clientside and shared
handyman

Fixed

  • Fixed PhysObj:GetFrictionSnapshot only returning 1 entry
  • Fixed crashes with ENT.RenderGroup = RENDERGROUP_STATIC(_HUGE)
  • Fixed a crash with Entity:PhysicsInitConvex and invalid input
  • Potential fix for a crash withNextbot:BodyMoveXY
  • Fixed render.SetLocalModelLights ignoring last light
  • Fixed IMaterial:GetKeyValues sometimes returning nothing on dedicated servers
  • Prevented invalid input to render.DrawWireframeSphere to avoid crashes
  • Fixed DMenuOptionCVar resetting from cvar too early in certain use cases
  • surface.PlaySound can accept soundscript names clientside
  • EmitSound handles registered sounds a bit better clientside (no need for a hack by adding .wav to the sound name)
  • Fixed Entity:FollowBone not working with boneID 0
  • Fixed SoundDuration returning wrong values for MP3 files
  • Fixed .wav SoundDuration being off by number of channels on srcds
  • Fixed SoundDuration not really working on Linux SRCDs
  • Fixed timer callbacks, HTTP callbacks & async file read callbacks not firing clientside if the client is timing out
  • Release materials created by surface.GetTextureID clientside on disconnect
  • Fixed Entity:SetModel, util.GetModelMeshes and util.PrecacheModel leaking model reference counts
  • Fixed crashes relating to Entity:FollowBone
  • Fixed util.DecalMaterial to actually work
  • Fixed file.AsyncRead erroring after Lua shutdown
  • util.StringToType supports "boolean" and "number" types
  • Panel:GetFont works for RichText
  • Fixed RichText Panel:InsertColorChange to black not working when its the first and only color change
remove_circle

Removed

  • Removed file.AsyncRead from menu state entirely, since its broken there anyway