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