Garry's Mod Logo
Changes Header

Changes

What’s changed in Garry's Mod in each patch.

add_circle

Features

  • Added Half-Life: Source difficulty configuration files
  • Added filter_activator_context and filter_activator_model entities
  • Changing skill level with Lua or the convar also runs/loads the appropriate skill config files
  • Added full support for Static Prop Lightmaps
  • Added $phong, $envmapLightScale and $envmapLightScaleMinMax parameter support for LightmappedGeneric shader
  • Added $phongAlbedoBoost parameter to VertexLitGeneric shader
  • Added $phongDisableHalfLambert parameter to VertexLitGeneric shader
  • Added $pp_colour_inv to g_colourmodify shader
  • Added $envmapsphere parameter to VertexLitGeneric, which restores how Half-Life: Source chrome materials render
  • Added input/output descriptions to "Entity Properties" window in Hammer
  • Added prop_sphere to Hammer and added radius keyvalue to it
  • Added func_friction to Hammer
  • Added 6 new inputs to all entities - SetLocalOrigin, SetLocalAngles, DisableDraw, EnableDraw, DisableReceivingFlashlight, EnableReceivingFlashlight
  • Added "Disable flashlight" keyvalue to all entities in Hammer
  • Added new inputs to func_tracktrain - SetMaxSpeed, MoveToPathNode, TeleportToPathNode, LockOrientation, UnlockOrientation
  • Added new output to func_tracktrain - OnArrivedAtDestinationNode
  • Added the following particle initializers - Position Along Ring, Position Along Epitrochoid, Position Modify Place On Ground, Position From Chaotic Attractor, Scalar Random, Vector Random, Vector Component Random, Set Hitbox to Closest Hitbox, Set Hitbox Position on Model, Velocity Set from Control Point, Remap Particle Count to Scalar
  • Added the following particle operators - Remap Direction to CP to Vector
  • Added the following global particle attributes - screen space effect, normal, Visibility input dot min/max, Visibility input distance min/max
  • Added "render models" particle renderer
  • Added "hitbox" and "hitbox set" parameters to - Movement Lock to Bone (operator), Cull relative to model (operator), as well as Position on Model Random (initializer) whose "hitbox scale" is now "model hitbox scale"
arrow_circle_up

Improvements

  • Do not set PANEL.ClassName in vgui.CreateFromTable to a missing variable (Community Contribution)
  • Minor tweaks to cvars library internals (Community Contribution)
  • Increased view model networking limitations, notably bodygroup combinations
  • Editable Entities editing now uses net.WriteEntity, not a 32bit net.WriteUInt (Community Contribution)
  • Doubled particle precache limit
handyman

Fixed

  • Fixed "last known CNavArea" not updating for players, which is used by some internal nextbot functionality, and some navmesh editing functionality
  • Potential fix for sv_parallel_sendsnapshot and sv_parallel_packentities crashing the server randomly
  • Spawnmenu search properly invalid input from addons, instead of erroring
  • Workaround fix for "../data/whatever" Material paths not working on Linux when garrysmod/materials/ folder is missing
  • Fixed gmpublish on Linux not working out of the box
  • Fixed Particle Editor Model Picker not applying picked model
  • Fixed certain NPCs that create entities crashing when the server is at the entity limit
  • Prevent Lua errors in Sandbox tools & constraint library when the server is at the entity limit
  • removeid concommand now works as expected with RunConsoleCommand
  • Fixed toggle_duck console command in multiplayer
add_circle

Features

  • Added ProjectedTexture:SetLightWorld and ProjectedTexture:GetLightWorld
  • Added CreateParticleSystemNoEntity
  • Added CNavArea:GetSpotEncounters
  • Added CNavArea:GetVisibleAreas
  • Added surface.GetTextPos
  • Added engine.AbsoluteFrameTime
  • Added render.RenderFlashlights
  • Added flags of the world to DIconBrowser (Community Contribution)
  • Added EF_NOFLASHLIGHT
  • Added Weapon:GetDeploySpeed to all weapons
  • Added Weapon:SetDeploySpeed to all weapons
arrow_circle_up

Improvements

  • Made util.IsOBBIntersectingOBB shared
  • game.CleanUpMap now respects the EFL_KEEP_ON_RECREATE_ENTITIES flag
  • Made Entity:SetHealth have an effect clientside for prediction purposes
  • Entity:FireBullets calls WEAPON:DoImpactEffect on active weapon serverside to mimic clientside behavior
  • Added safeguards against not popping render.PushCustomClipPlanes
  • util.GetModelMeshes now accepts "00000000" format bodygroups
  • CNewParticleEffect:SetControlPointOrientation can now accept an Angle instead of 3 directional Vectors
  • Made FrameNumber shared
  • DGrid now works correctly with Panel:Clear, and ignores invisible items (Community Contribution)
  • DListView_Column:SetFixedWidth sets the column width immediately (Community Contribution)
  • Player:IsWorldClickingDisabled is now properly networked to client
  • Removed networking limits for Player:SetFrags and Player:SetDeaths
  • Reduced net.WriteEntity/net.ReadEntity from 16 bits to 13 bits (Community Contribution)
  • Made Entity:CreatedByMap, Entity:MapCreationID and Entity:GetCreationID networked and shared
  • Entity:SetFriction now affects players
  • Reverted "Allowed weapons and entities to set their own classname" as it was causing issues
  • Following functions will no longer return nil when used on invalid entities, and will return 0 instead - Entity:GetNumPoseParameters , Entity:GetHitBoxGroupCount, Entity:GetHitBoxCount, Entity:GetBodygroupCount, Entity:GetSkin, Entity:GetSequence, Entity:GetNumBodyGroups, Entity:GetSequenceGroundSpeed, Entity:GetSequenceMoveDist, Entity:GetModelContents, Entity:GetLayerDuration, Entity:GetLayerWeight
  • Following functions will no longer return nil when used on invalid entities, and will return an empty string instead - Entity:GetPoseParameterName, Entity:GetSequenceName, Entity:GetSequenceActivityName
  • Entity:GetBoneCount - used to return -1 on failure, now returns 0
  • Entity:GetPlaybackRate - returns 1 on failure
  • Entity:GetBoneName - returns __INVALIDBONE__ on failure
  • Entity:GetSequenceActivity - returns -1 on failure
  • Entity:GetSequenceVelocity - returns vector_origin on failure
  • Entity:GetLayerPlaybackRate - returns 1 on failure
handyman

Fixed

  • Fixed file.Find ignoring "Copy (" files
  • Fixed game.SetSkillLevel always being forced to the value of 'skill' convar
  • Apply cyclic parent hierarchy stack overflow fix to clientside Entity:SetParent
  • Reset value of render.SetLightingMode on map shutdown
  • Reset render.EnableClipping to false on map shutdown
  • Make file.Exists return correct values for folders in Lua paths
  • util.DecalEx now also affects static props
  • Increased networked bits for player flags so Player:HasGodMode is now networked to clients properly
arrow_circle_up

Improvements

  • Update Steamworks API to v1.57
  • Added sv_cheats requirement to some console commands and variables that are either unuseful, or should only be used for development
handyman

Fixed

  • Fixed a Lua error about "derma_icon_browser.lua"
  • Fixed a regression with language getting reset to Steam's language if your chosen in-game language is English
  • Fixed an issue with handling of asset:// URLs
  • Fixed various crashes
add_circle

Features

  • Added Panel:Set/GetTooltipDelay (Community Contribution)
  • Added vgui.Exists (Community Contribution)
  • Added the Derma Icon Browser (derma_icon_browser console command) (Community Contribution)
arrow_circle_up

Improvements

  • Refresh language files on gamemode change
  • Reworked how workshop item info timeout works for server downloads to hopefully make it work more reliably
  • Throttled CreateFragmentsFromFile messages to 1 a second to avoid lag
  • Expanded the 'Your map differs from the servers' kick reason with more info
  • IncludeCS now returns result of include() (Community Contribution)
  • Use snd_musicvolume instead of volume for loading screens (Community Contribution)
  • Contain DButton's image size if it's too big (Community Contribution)
  • Refactored weapon_medkit so it is easier to change/extend (Community Contribution)
  • Security fixes
handyman

Fixed

  • Fixed ToolGun:GetToolObject returning local players values for other players clientside
  • Fixed potential Lua errors with PropSpawn effect
  • Fixed an infinite loop with util.TableToJSON when a table has __index that always gives non-nil output
  • Fixed crashes when barnacle m_hTongueTip's m_pSpring is null
  • Fixed a server crash to do with invalid vehicle scripts for airboats
  • Fixed a crash when accessing self.loco of a deleted nextbot
  • Try to prevent crashing when (re)loading textures from .png
  • Menu support for util.IsBinaryModuleInstalled (Community Contribution)
  • TTT: Fixed ironsight position when in singleplayer (Community Contribution)
handyman

Fixed

  • Fixed procedural textures of size 32768 trying to allocate way too much memory
  • Disallow loading of procedural textures above 64k on any side (with a warning)
  • Added more info to "CFontTextureRegen: Failed to allocate X bytes" warning (and should also be less crash prone when it happens)
  • Simplified gmod_tool concommand code
  • Call TOOL:ReleaseGhostEntity on holster even when TOOL:Holster doesn't
  • TGA loading: do not try to read data if overflowed - Simply displays better warning, it wasn't actually reading any data
  • Made string.ToTable work with numbers again
  • Fixed timer spam from medkit weapon (Community Contribution)
  • Unspecified security patch