Garry's Mod Logo
add_circle

Features

  • Added CNewParticleEffect:SetShouldSimulate/CNewParticleEffect:GetShouldSimulate
  • Added game.GetMapChangeCount
  • Added render.IsTakingScreenshot
  • Added new STUDIO_ flags argument to WEAPON:ViewModelDrawn, GM:PreDrawViewModel, GM:PostDrawViewModel, GM:PreDrawPlayerHands and GM:PostDrawPlayerHands
  • Added Entity:CopyBoneMatrix
  • Added COLLISION_GROUP_HL2_SPIT enum.
  • Added more data to util.GetSunInfo, such as size, material and color
  • Added game.GetWindSpeed
  • Added game.Get3DSkyboxInfo
  • Added ActivityWeight/ActivityID fields to util.GetModelInfo sequences
  • Added surface.GetScissorRect (Faster than surface.GetPanelPaintState)
  • Added mesh.BoneData
  • Added second argument to Mesh - boneWeights
  • Added IMesh:DrawSkinned (Lua mesh hardware skinning support)
  • Implemented Panel:Clear for DPropertySheet and DCollapsibleCategory
  • Added ENTITY:ResolveCustomFlyCollision( trace, vecVel )
  • Added ProjectedTexture:SetSkipShadowUpdates/ProjectedTexture:GetSkipShadowUpdates
  • Added ability for vehicles in spawnmenu to set health on spawn
  • Added ability for Spawnmenu NPCs (Sandbox) to randomize their model on spawn (Community Contribution)
  • Added PhysObj:GetBuoyancyRatio
arrow_circle_up

Improvements

  • Reset effects of render.WorldMaterialOverride, render.ModelMaterialOverride and render.BrushMaterialOverride on disconnect
  • Prevent entity precaches on map start from calling GM:OnEntityCreated/Removed hooks
  • Add more entities to protected list (cannot be parented, overwritten or removed) - gmod_gamerules, ai_network, soundent, instanced_scripted_scene, ai_ally_speech_manager, scene_manager, npc_barnacle_tongue_tip
  • Entity:GetModel force lowercases weapon world models too (It was already forcing lowercase on all other entities)
  • Reenabled net message buffer limiters so net.BytesLeft should now work as expected
  • Apply some random-ish patches from LuaJIT repo, including a memory allocator fix
  • Made Entity:SetLightingOriginEntity use model illumination position when given an entity with a model
  • RichText:SetText now discards \r and \0 characters - this is consistent behavior with RichText:AppendText and fixes Panel:GetText not working correctly after SetText and AppendText calls in that order
  • Player:Spawn will now force exit the player from their vehicle
  • Allow GM:PrePlayerDraw/GM:PostPlayerDraw recursion up to 10 deep
  • Micro optimizations for Matrix & Entity:GetBoneMatrix
  • Micro optimizations for Vector, and __div, __mul, Mul Vector methods
  • Entity:SetCollisionGroup once again allows HL2 specific collision groups
  • Queue simple timers to next frame if called from a simple timer callback (if using the same callback function we are currently executing)
  • Micro optimization for sql.QueryValue (Community Contribution)
  • GM:HUDShouldDraw now gets called for cl_showfps panel (when active)
  • Applied correct rendering matrices for GM:PreDrawHUD and GM:PostDrawHUD, so calling cam.Start2D is no longer necessary
  • Moved calling of GM:PreDrawHUD slightly later, so it renders in the 2D view, just like GM:PostDrawHUD does
  • Moved GM:PostDrawEffects to be called slightly sooner than before, so it is called in the 3D view, not after it, and also is consistently called only when GM:PreDrawEffects is, not at all times.
  • Make game.GetMapVersion also return the BSP version
  • Allowed render.Capture to run with console open when a custom render target is set
  • chat.AddText now handles numbers like expected
  • Player:PlayStepSound volume argument now defaults to 1
  • Minor optimizations for Matrix() and Angle() global functions
  • Clamped animation playback rate to networking limits when set by Nextbot:BodyMoveXY internally
  • More strict type checking for table members, for tables passed to engine functions (Will throw non halting Lua errors)
  • Potential micro optimization for trace filter tables
  • mesh.Begin now throws errors with invalid primitive counts
  • Apply name restrictions to concommand.Add for certain invalid characters
  • Make joystick input add to mouse delta, not replace it - since the player can still use both at the same time (CUserCmd:GetMouseX)
  • Pass GM:AdjustMouseSensitivity's arguments to WEAPON:AdjustMouseSensitivity (Community Contribution)
  • IMesh:BuildFromTriangles will now read weights from util.GetModelMeshes - It will only read 2 weights max (as per hardware skinning limtiation), while util.GetModelMeshes can return up to 3!
  • concommand.Add now errors when given invalid parameter types
  • Added type checking to Entity:PhysicsInitConvex's second argument
  • render.ModelMaterialOverride will no longer override current override type
handyman

Fixed

  • Fixed Player:DropObject not working for Physics Gun without its first argument
  • Rework how trace whitelist works - it now better respects the collision group/mask, using it when testing for whitelist, instead of inverting it after the entity failed to pass the whitelist
  • Fixed a material refcount issue with render.MaterialOverride - occurred with dupe icon generator where the outline became missing texture with bigger dupes
  • Fixed potential refcount issues with render.MaterialOverrideByIndex, render.WorldMaterialOverride, render.ModelMaterialOverride, render.BrushMaterialOverride
  • Fixed IMaterial:GetShader on Linux SRCDS always returning "shader_error"
  • Fixed "Error" and "ErrorNoHalt" not firing GM:OnLuaError on dedicated servers
  • Fixed EmitSound not firing GM:EntityEmitSound
  • Prevent infinite loops with GM:EntityEmitSound hook
  • Fixed Player:PlayStepSound not really doing anything in multiplayer
  • Make effects.BubbleTrail not turn start/end pos into mins/maxs, unexpectedly affecting the effect
  • Fixed vertex limit checking for mesh.Begin when using an IMesh object (65535 now, instead of 32768)
  • Fixed crashes with improper usage of SavePresets
  • Fixed potential crashing issues with util.GetModelMeshes
  • Fixed util.SpriteTrail leaking entities when given invalid arguments and throwing Lua errors
  • Fixed GM:AdjustMouseSensitivity returning nothing still affecting sensitivity
  • Fixed navmesh.GetNavAreaCount not matching navmesh.GetAllNavAreas return count
  • Fixed drive system not fully working in TTT
remove_circle

Removed

  • Blocked write access to fs_ convars from Lua
  • Blocked write access to mat_texture_list_txlod_sync and building_cubemaps convars
  • Blocked setinfo concommand
  • Disallowed Entity:PhysicsInit* functions on players