Garry's Mod Logo
add_circle

Features

  • Added Entity:FindGestureLayer
  • Added Entity:FindGestureSequenceLayer
  • Added Entity:RemoveLayer
  • Added Entity:SetLayerAutokill
  • Added GM:OnNPCDropItem
  • Added NPC:IsCrouching
  • Added NPC:SetForceCrouch
  • Added 2 new optional args to mesh.TexCoord
  • Added NPC:CapabilitiesHas
  • Added NPC:ConditionID
  • Added NPC:IsUnforgettable
  • Added NPC:MoveGroundStep
  • Added effects.TracerSound
  • Added sequence events to util.GetModelInfo
  • Added util.IsBoxIntersectingBox
  • Added MATERIAL_CULLMODE_NONE for render.CullMode
  • Added new arguments to Entity:DropToFloor
  • Added new argument to HTML:ConsoleMessage
  • Added Panel:SetTextHidden
  • Added MAX_PLAYER_BITS global
  • Added MainEyePos and MainEyeAngles
  • Added IGModAudioChannel:GetTagsWMA & IGModAudioChannel:GetTagsMP4
  • Added render.GetFogMaxDensity
  • Added skin parameter to util.GetModelMeshes + up to 15% optimization
arrow_circle_up

Improvements

  • ClientsideModel is now able to be hit by clientside only traces after initializing physics on it post creation (Collision bounds must be set manually if model changes)
  • Try to end mesh.Begin when a mesh wasn't ended when the function is called. (i.e. after a Lua error) It will still error afterwards like it did before, but now prevents game hanging, hopefully without side effects
  • End current Lua mesh (if there is one) on Lua error - preventing game crashes and graphical glitches
  • Change ents.CreateClientRope slack parameter to work better
  • ents.CreateClientRope ropes now despawn if any of its attached entities are removed
  • Allow giving ents.CreateClientRope local vectors instead of attachment IDs
  • Made Entity:PhysicsInitBox/Sphere set solidity before setting the physics object - this improves behavior for those functions with ClientsideModel and is consistent with PhysicsInit()
  • Validate input range for File:Read and File:Write, so the game does not crash with negative bytes to read
  • Improved handling of BSP model names for Lua clientside entities (sets the model index so tracing code can work better)
  • Improved handling of infinite loops with Entity:WaterLevel when called from the water level change hook
  • Switch debugoverlay functions to better optional argument checking with type checking
  • util.IsValidModel returns false if extension is not .mdl
  • Changed render.DrawQuadEasy to use better optional argument handling (potentially breaking)
  • Sandbox gamemode: Do not store the NPCTable/VehicleTable tables on the entities (The name is still stored)
  • Player:GetPunchAngle will now error with lua_strict set to 1 (deprecation warning)
  • Allow mesh.TexCoord to only accept 1 texture coordinate
  • Optimizations for usage of GM:PlayerCanHearPlayersVoice - it will no longer be called for non speaking players
  • Minor optimizations for most Lua functions returning a sequential table
  • Minor adjustment to WEAPON:OnRemove for consistency of execution time with other OnRemove hooks, no functional change expected
  • Validate input ranges for sound.Generate (will error)
  • Validate input ranges for most Lua functions that use enumerations in arguments (will silently clamp the value)
  • Entity:GetCycle now returns 0 instead of nil for invalid entities
handyman

Fixed

  • Fixed clientside sounds not firing WEAPON:FireAnimationEvent
  • Fixed render.SetShadowsDisabled setting the shadow distance instead of disabling shadows
  • Fixed duplicate HTTP headers being discarded instead of being joined with a comma like it did previously
  • Fixed Player:Flashlight playing sounds when disabling a disabled flashlight, etc.
  • Fixed list.GetEntry erroring when used
  • Fixed infinite loops when calling Entity:DrawModel from GM:PrePlayerDraw/GM:PostPlayerDraw
remove_circle

Removed

  • Blocked editdemo console command from Lua just in case
  • Removed obsolete/undocumented/useless panel types from vgui.Create
  • Disabled vmevent API (jit.attach)