Garry's Mod Logo
schedule 26 March 2025
Update

March 2025 Update

Shaders, new content and many other improvements.

Rubat
Programmer
Estonia
This update brings some new content to Sandbox:
There are also further localization improvements to the Sandbox gamemode, more English-only phrases are now translated to player's selected language.

We also have a new mountable game, at the request of its developer: Klaus Veen's Treason.
Players will be able to use maps, models and other assets from this game in Garry's Mod, once mounted through Main Menu's Games section.

This update also adds a large number of new entities to the game, mostly from newer Source Engine games. This should help mappers create even better maps, and potentially improve compatibility with maps from mountable games.
In addition, there were some improvements to the Hammer editor and map compilation tools, further benefitting mappers.
This update also brings partial custom shader support, enabling modders to create fancy effects such as this:
As usual, there is a large number of Lua API additions and fixes, as well as other miscellaneous fixes and improvements for modders as well as players.

A complete list of changes can be found below this update post.
add_circle

Features

  • Added Portal 2 Coop player spawn points
  • Added all missing Portal 2 map icons
  • Added visual placeholder entities for Portal 2 excursion funnel, Wheatley boss and npc_personality_core
  • Added Hacked and Harmless Rollermine variants to spawnmenu
  • Added Enemy Rebel NPC to the spawnmenu - This NPC is intended as an example for modders to have humanoid NPC reskins not produce combine noises
  • Added ability to copy Sandbox tool class names via right click context menu (Community Contribution)
  • Added new Bloom preset
  • Added mounting support for Klaus Veen's Treason at the request of its developer
  • Added mp_weaponrespawn
arrow_circle_up

Improvements

  • Bumped default value of sbox_maxconstraints to 2000 to account for larger dupes/saves
  • Made Sniper kills in "Alyx as sniper" sections in Half-Life 2 episodes appear as Alyx in the kill feed
  • Fixed mass-adjusted punt forces being applied to Mega Gravity Gun
  • Fixed Gravity Gun launching things too far due to a previous fix for spin_none physics interaction
  • Removed cheat flag from cl_wpn_sway_scale
  • Added a Player Model Selector button to spawnmenu
  • Added an ever increasing counter to poster file names to avoid name collisions
  • Allowed closecaptions in multiplayer with the closecaption console variable set to 1 (closecaption_mp for dedicated servers)
  • Updated Portal turret relationships to certain NPCs
  • Main menu news panel now has rounded corners to match the rest of the main menu styles (Community Contribution)
  • Do not penalize full servers in the ranking (Community Contribution)
  • Do not display effect rings with Gravity Gun equipped (Community Contribution)
  • Adjusted Sandbox weapon, NPC icons, etc. to scroll text if it is too long, for cases where translations take too much space
  • Replaced "::" buttons with proper icons in Spawnmenu drawers and other places
  • Spawnmenu drawers scale the category list - so that when the drawers are open, the bottom categories are not hidden behind the drawer (NPCs and Spawnlists tabs)
  • Loading screen gets map information faster when hosting a game
  • Update/render loading screen when running stringtable callbacks, which would normally freeze for some period of time (Community Contribution)
  • Port original explosion ear ringing behavior from Half-Life 2 to Lua - produces less ear ringing in general
  • Added icons to drag'n'drop right click menu (i.e. when drag and dropping spawnmenu icons with right click)
  • Added RPG Launcher as default weapon for Rebels in the spawnmenu (Community Contribution)
  • Updated some Half-Life 2 campaign map icons to show more recognizable areas, and be less dark.
  • Fixed water material in the first map of Half-Life 2: Episode 2 appearing different from the original game
handyman

Fixed

  • Fixed some props in Portal 2 appearing rainbow-y
  • Fixed "missing sound common/null.wav" when throwing grenades
  • Fixed Mega Gravity Gun not being able to pick up flesh
  • Fixed base Lua SWEPs not using correct localization strings
  • Fixed unicode addon name display for Workshop Addons when they are downloaded while joining servers
  • Fixed player death ragdoll forces always being applied to center - now applies forces to the body part that was shot
  • Fixed NPC icons in spawnmenu search not having weapon selection on right click
  • Fixed strider stomp attack creating invisible ragdoll with Keep Ragdolls
  • Fixed Portal Rocket Turret not updating its facing angles with no target
  • Fixed right-side padding of the gamemode list items in main menu to be consistent with other padding (Community Contribution)
  • Fixed inconsistent margins on language list and Start Game button (Community Contribution)
  • Fixed camera tool entity losing its key binds on level transition, leaving the player potentially stuck in the camera view
  • Fixed singleplayer toolgun ghost from saving in map saves as a prop
  • Fixed more missing spawnmenu localizations (entity categories and others) (Community Contribution)
  • Implemented localization for built-in undo actions
  • Implemented ammo name localization for built-in ammo types (shown when picked up)
  • Localization support for crosshair customization (Community Contribution)
  • Localized Balloon and Dynamite world tool tips (Community Contribution)
  • Fixed the game not downloading maps from servers if compressed version exists locally, but wasn't extracted/was corrupted
  • Prevent Keyboard options tab contents from being loaded from addons/mountable games
  • Half-Life's Geiger counter only reacts to enabled trigger_hurt entities
  • Fixed Barney missing animations in his Half-Life 2: Episode 1 appearances
  • Fixed crashes when using SuperDOF with multicore rendering
  • Fixed certain languages not working at all on Linux due to filename capitalization issues
  • Fixed a crash when spawning certain vehicles with malformed vehicle scripts
  • Fixed tool sorting not being alphabetical when some tools are missing localization strings (Community Contribution)
  • Fixes towards MP3s hanging the game on first playback
  • Ported some exploit fixes from Team Fortress 2 SDK
  • Fixed .357 Magnum reload missing its shell eject effect
  • Fixed Bugbait not having viewmodel bob when sprinting
  • Fixed missing AR2 reload sound in 3rd person
  • Fixed missing Pistol brass eject effects for players in 3rd person
  • Fixed missing holdtype & player animations for Bugbait in 3rd person
  • Fixed missing holdtype animations for Citizen Suitcase, Citizen Package, Annabelle and Alyxgun weapons
  • Fixed npc_zombie not using sk_zombie_dmg_both_slash console variable at all
  • Fixed inaccessible area on ep2_outland_10 due to model name collision
  • Fixed Half-Life 2: Episode 2 Fast Zombie on car jumpscare sequence
  • Fixed missing animation on hula doll in Half-Life 2: Episode 2's final map
  • Fixed Lua errors when damage is dealt without an attacker
  • Fixed being able to reset Frag Grenade timer after it exploded, prevent it from being removed, and make it explode again while invisible
  • Added missing icons for new Team Fortress 2 maps
  • Fixes a crash exploit with the Balloon tool
  • Fixed missing underwater materials causing massive FPS loss when under water
remove_circle

Removed

  • Do not apply spawnmenu names to map-spawned NPCs in kill feed - it was too error prone
  • Removed player jingles/impulse 202
add_circle

Features

  • Added ttt_filter_role entity (Community Contribution)
  • Let GM:TTTLastWordsMsg hook override default behaviour (Community Contribution)
  • Added crosshair customization (Community Contribution)
arrow_circle_up

Improvements

  • Magneto-stick DoAttack code cleanup (Community Contribution)
  • Changed holdtypes for consistency with viewmodels (Community Contribution)
  • Clarify Health Station usage in hint text (Community Contribution)
  • Update localization files (Community Contributions)
handyman

Fixed

  • Fixed C4/Radio sounds not playing in certain cases (Community Contribution)
  • Fixed "CS:S not mounted" warning not showing when CS:S is not mounted (Community Contribution)
  • Close player volume slider along with scoreboard (Community Contribution)
  • Fixed players sometimes being revealed as dead when they chat/voicechat right as they die (Community Contribution)
  • Fixed Health Station not breaking at exactly 0 HP (it being damaged, not used) (Community Contribution)
add_circle

Features

  • Added some generic logic entities from Portal 2 - logic_register_activator, logic_coop_manager, point_viewcontrol_multiplayer, point_viewproxy
  • Added new inputs/keyvalues to prop_vehicle_choreo_generic from Portal 2
  • * Inputs: SetCanShoot, UseAttachmentEyes, SetMaxPitch, SetMinPitch, SetMaxYaw, SetMinYaw
  • * Key-values: PlayerCanShoot, UseAttachmentEyes
  • Enable DMX versions 3, 4 and 5 loading for particles from newer Source Engine games
  • Ported most particle related features from CS:GO
  • Added 2 new spawnflags to env_player_surface_trigger - Trigger on player(s) leaving ground & Set output activator to the player
  • Added new inputs to game_text - SetText, SetPosX, SetPosY, SetTextColor, SetTextColor2
  • Added new inputs for game_player_equip - TriggerForAllPlayers and TriggerForActivatedPlayer, as well as "Strip All Weapons First" spawnflag
  • Added skybox_swapper entity
  • Added logic_eventlistener and logic_eventlistener_itemequip from Team Fortress 2
  • Added point_worldtext entity (CS:GO version) and added most Team Fortress 2-exclusive features into it
  • Added logic_random_outputs entity
  • Added fog_volume entity
  • Added trigger_tonemap entity
  • Added env_ambient_light entity
  • Added point_entity_finder entity
  • Added particle-based func_precipitation types from CS:GO
  • Added ability to override func_precipitation particle systems by name
  • Added func_precipitation_blocker entity
  • Implemented origin for playlooping/playrandom and ambientOriginOverride for "playSoundscape" in soundscapes
  • Added new options to Run Map dialog in Hammer
  • Restored "JellyFish" shader (Partially Community Contribution)
  • Added hostile keyvalue to npc_citizen - Will be treated as a combine. Useful for NPC reskins to not have combine noises. Or just for fun.
  • Implemented experimental 24-bit color support for Windows Dedicated Server console, and proper color support on Linux SRCDS
  • Implemented HDR override for fog colors for 20th anniversary Half-Life 2 maps (Also available in Hammer for mappers)
  • Added Master spawnflag to env_tonemap_controller
  • Added SetMaxDensityLerpTo input & HDRColorScale key-value to env_fog_controller
  • Implemented AttachToVehicle input for npc_fastzombie
  • Added sv_maxvoicepacketsperframe console variable
  • Enable "flammable" "no" prop interaction, to prevent props from igniting on explosion damage (for modellers at compile time)
  • Added min_use_angle for func_button from CS:GO
  • Added DisappearMinDist & DisappearMaxDist key values to func_lod (DisappearDist being deprecated and hidden, but still working)
  • Added GetSpeed and SnapToStartPos to func_rotating entity
  • Added AffectedByWind keyvalue to func_dustmotes entity
  • Added trigger_playermovement auto walk and no jump spawnflags
  • New localisation phrases in community.properties (Community Contribution)
  • Added ip_steam console variable
  • Added sv_usercmd_custom_random_seed console variable
  • Added sv_showimpacts console variable
  • Added radius support to env_wind
  • color_correction entities now work correctly with fog_volume - Adds Master and Simulate clientside spawnflags
  • Upgraded ColorCorrectionUI to CS:GO's version with ability to load saved presets
  • Added Quick Switches to the console dialog, allowing easy usage of common console commands and variables for debugging purposes
  • Added inputs to env_skypaint in Hammer for mapping
arrow_circle_up

Improvements

  • Do not estimate velocity clientside since we network it for every entity anyway
  • * Use networked velocity for entities that set it serverside
  • * Physics entities such as props, vehicles, SENTS do not set their velocity, since its all handled by the physics engine, so it ends up not actually being networked
  • Moved "SOLID_VPHYSICS static prop with no vphysics" warning to developer 1
  • Made particle preview background slightly lighter (32,32,32)
  • Set the default particle orientation in Particle Editor on creation
  • Added particle material name to "unimplemented sprite renderer" warning (.pcf particles)
  • Force Sandbox tool classnames to lowercase at all times to fix a bug in multiplayer where the client and server classname could have mismatching capitalization
  • Applied potential filesystem optimization suggested by the community
  • Micro optimization for SWEP think
  • Optimize DListView_Line - Remove DListViewLabel's Think function since it does nothing in DListView_Line anyway
  • Minor code quality & performance improvements to Toolgun Help, RenderTarget related Lua code, skypaint matproxy, ToolGun and Post Processing control panels, ents.FindByClassAndParent, removed deprecated calls to ControlPanel:AddControl, Workshop Mount VGUI, Sandbox hints, Removed unused JS dependencies in main menu - angular-ui, jquery-ui, jquery-color, AngularJS from 1.1.2 to 1.8.2, cleaner server list layout code & Better display on small screens (Community Contributions)
  • Micro optimization for Entity.__index (Community Contribution)
  • Micro optimizations for team library (Community Contribution)
  • Potential micro optimizations in localization loading/parsing
  • Store disabled workshop addon IDs as Uint64 instead of IDs turned to strings - should save some memory
  • Clear CShadowDepthView to black instead of white - fixes reflective glass on certain maps having while glow with flashlight turned on
  • Do not throttle loopback (local servers) connections when sending data from server to client
  • Check allocated edict count before allocating more - this should prevent "ED_Alloc: no free edicts" crashes when spam spawning hundreds of entities per second
  • Improved X-axis text inset handling with center alignment (for DButton when an icon is use)
  • Change Hitbox 7 color from white to orange for the debugging console variable and HMLV
  • Search for shaders in map file if none were found in the game folder
  • Added "shaders/*.vcs" to BSP whitelist
  • Updated screenspace_general shader with some CS:GO features
  • * Removes $X360APPCHOOSER (Use $VertexColor)
  • * Adds $VERTEXSHADER
  • * Added most CS:GO parameters except for C4* and C5* parameters
  • Enable sv_parallel_sendsnapshot by default
  • Display a warning when async file read operation tries to read more bytes than there are in the file
  • Display HTTP error when FastDL fails to download a file and if it's not a 404 error
  • Made lua_run entity keyvalues case insensitive
  • Call Entity:SetCreator on all Sandbox spawned entities, not just SENTs (Community Contribution)
  • Filled in some GMod specific console variable descriptions that are defined in C++
  • Added shader name to "failed to create shader" console error message
  • Rework how LZMA decompression works for BSP files to be more reliable and less wasteful
  • Added more useful info to Client=>Server and Server=>Client GMod specific net message ToStrings for debugging purposes (net_showmsg)
  • Unhide sv_maxspeed console variable
  • Do not read mapcycle.txt file from addons or mountable games
  • Added weapon class name & entity index to "Weapon spawning in solid" console warning
  • Exit SRCDS (with a message) if GSLT is invalid or expired (can still not provide one), instead of never connecting to Steam. This behavior is consistent with CS:GO. hide_server 1 can be used to hide your server from the server list.
  • Added description for debug_dump console command and print more info about what it did when ran
  • Rollermine uses two-pass render group when open instead of translucent, this makes it render better with SSAO pass (such as with Bokeh DOF)
  • Allow Map I/O to convert integer/float parameters to strings automatically
  • Unhide sv_hl2mp_weapon_respawn_time/sv_hl2mp_item_respawn_time
  • Also made mp_weaponstay work for map spawned entities, by respawning them
  • Update verbosity of "Out-of-range value" warnings
handyman

Fixed

  • Fixed some minor memory leaks - These are mostly in developer features to do with KeyValues, not normal gameplay
  • Initialize m_rgflCoordinateFrame on creation clientside - This fixes certain matrices being nulled out when they are not supposed to, such as when calculating prop_vehicle_choreo_generic look angles
  • Allow loading PCF version 2 in -tools Particle Editor
  • Fixed many, many potential crashes with the particle system
  • Fixed missing materials with legacy Ash precipitation type
  • Fixed 2 "Parent cvar in server.dll not allowed" warnings on client start up
  • Do not print cc_lang = with developer 1
  • Fixed "Not playing a local game" being printed on game start up
  • Fixed some warnings on map load when Portal 1 or Half-Life Source are not mounted
  • Fixed crashes with func_tank
  • Fixed crash when ents.CreateClientProp is given an empty string
  • Fixed logic_collision_pair and some other obscure entities not calling GM:EntityRemoved
  • Remove NULL entities from Entity.Constraints table when associated constraints are removed
  • * Fixes for tanktrain_ai
  • * Fixed sound playback and updated default sounds to existing files
  • * Added "Chase Target" key value
  • * Added missing "Target Entity" input to the FGD
  • * Fixed movement direction selection & movement speed
  • * !player target will update to the closest player before every move
  • * Change update rate while moving to 0.1s (from 0.5)
  • Updated RPG viewmodel to use correct muzzle flash event and prevent console warning when firing
  • Fixed a server crash exploit to do with malicious packets
  • Fixed bone manipulations (scale, position) being transformed by how much the player moved on level transition
  • Fixed which entity is the inflictor/weapon in CTakeDamageInfo when firing built-in C++ weapons, including when NPCs fire them, as well as trigger_WateryDeath.
  • Fixed small potential memory leak with creating Lua bone followers
  • Fixed a small memory leak in gamemode .txt file parsing
  • Fixed a small memory leak with saving presets (presets library)
  • Fixed "Bad SetLocalOrigin on gmod_hands" warnings (Community Contribution)
  • Prevent .ani files from loading if they would crash the game i.e. if the .ani file is smaller than the model expects it to be
  • Update jQuery version and reduce reliance on it in main menu, as well as lazy load images (Community Contribution)
  • Do not crash with "bad inline model number", show a console warning instead
  • Fixed bone manipulated entities' render bounding box being set to invalid sizes with certain models
  • Fixed "Toggle" input on some triggers improperly toggling the entity
  • Fixed console warning about missing material when opening Options menu
  • Fixed max player speed not being set when trying to slow walk with +walk but slow walk is disabled via Player:SetCanWalk
  • Do not unexpectedly reduce maximum health on dead entities
  • Play act console command animations on the server as well (for hitboxes)
  • Fixed a stack overflow in TextEntry scrolling
  • Fixed a rare crash when net_showmsg console variable is in use
  • "Fixed" an infinite loop in memory allocation by exiting the engine/tool with a nice message
  • Prevent developer only messages about bone access not being allowed with util.DecalEx in multiplayer
  • Fixed MP3s recaching 2 times in a row sometimes for no reason
  • Fixed cache size not being able to exceed 65kb per item
  • Make MP3s skip the ID3 data immediately on cache, not on first playback. This makes loading a bit slower per-file, but makes it so we don't need to cache upwards of 400KB of unused data per MP3 for playback without hanging the game
  • Increased amount of cached data for MP3s to satiate initial burst of data access by BASS.DLL (from 16K to 96k) This was preventing asynchronous load of the entire file
  • Fixed SWEP.ViewModelFlip making view model sway backwards
  • Fixed scrollbar parent resizing not adjusting scrollbar grip position (Lua scrollbar panels)
  • Fixed CRopeKeyframe having huge serverside bounds when not attached to anything, such as being the last entity in a series
  • Fixed trigger_remove OnRemove output not working at all
  • Made cmd console command not kick people (And hide it)
  • Fixed .gma files being left open in some cases if they failed to load/parse
  • Prevent potential crashes to do with traces on models
  • Materials using the SpriteCard shader can now render correctly with render_sprite_trail particle renderer
  • Mitigate invalid vehicle scripts causing server crashes
  • Fixed player_squad NPC squad being overflown when spawning too many npc_alyx or npc_citizen entities
  • Fixed spawnmenu NPC squads being overflown when spawning many NPCs in the same faction at once
  • Fixed infinite loop with removing world decals
  • Fixed input parameter type for prop_ragdoll's StartRagdollBoogie input
  • Fixed out of bounds pose parameters sometimes getting garbage values
  • Fixed a crash in trace code that could happen after a changelevel
remove_circle

Removed

  • Removed scratchpad from game builds
  • Removed bloodspray console command
  • Removed some perforce VGUI panels from builds
  • Removed some useless strings from garrysmod_english.txt
  • Removed mat_surfaceid and vgui_drawtree_panelptr console commands/variables
  • Removed unused resource/chromium/ folder
  • Removed non existent commedit.dll from sdkenginetools.txt
  • Removed cl_threaded_client_leaf_system console variable, which was doing nothing since 2016, except to mislead people
  • Removed sv_autojump as it also does nothing besides misleading people
  • Removed hack for Intel GPUs that disabled Shader Model 3 shaders
  • Removed some clientside weapon stubs for non existent weapons
  • Removed usage of DOFModeHack from Bokeh DOF
  • Remove cl_customsounds as it no longer has an effect on anything
add_circle

Features

  • Added model scale preview to Hammer
  • Added HammerID for entities in Hammer's selection status bar (Brushes already had this added a while back)
  • Added build date to Hammer's About dialog
  • Added "starlayers" to env_skypaint in Hammer, and mention the skybox texture name requirement in the entity description
  • Added internal/hidden npc_rollermine inputs in Hammer
  • Include missing Garry's Mod specific additions in Hammer - new Rollermine spawnflag and beam_spotlight's SetColor input
  • Implemented Hammer preview for point_worldtext
  • Implemented Hammer multi-cordon system from CS:GO
  • Added light_directional support for VRAD
  • Implement -StaticPropSampleScale & -StaticPropBounce for VRADfrom CS:GO
  • Added -softenCosine for VRAD
  • Added -bounceFromNamed (lights) to VRAD (Community Contribution)
  • Added %alphatexture VMT compile parameter for VRAD (Community Contribution)
  • Added `Ignore Solid` for point_spotlight in Hammer
  • Added support for %CompileNoShadows to VBSP
arrow_circle_up

Improvements

  • Tweak Hammer splash image & .exe info
  • Increase MAX_MAP_BRUSHES from 16384 to 65535
  • Increase default size of Hammer Entity Help window
  • Expand Hammer Object Bar by 20px to fit auto vis groups horizontally
  • Allow bool and boolean to be interchangeable in .fgd files
  • Hammer & other tools mount addons/ folder by default (can be disabled with -noaddons launch parameter)
  • Updated the Hammer icon to be higher quality and have Garry's Mod colors
  • When copying game configs in Hammer options, ask for a new name instead of copying the existing name without a way to change it
  • Switch Hammer to use CmdSeqDefault.wc by default (like CS:GO, user preferences are still stored in CmdSeq.wc)
  • Updated input elements Hammer Options tabs to fit the width of the window and fit more data
  • Update "Lighting Origin" KV description to mention info_target, not info_lighting, latter of which is removed on compile and is only meant for static props
  • Ensure Hammer's Entity Properties Input/Output columns fit the header text, so its not "P...", "O...", etc. when adding a new input for the first time
  • Entity comments allow adding new lines with Enter in Hammer Object Properties
  • Ported some other VRAD changes from CS:GO to do with displacement lightmaps, supposedly should be better where brushes/displacements meet
  • Only show "Warning! Invalid model version" with verbose flag in VRAD output
  • Increase usefulness of "Occluder straddles multiple areas" VBSP warning
  • Do not set thread count to 1 if the local CPU has more than 32 of them (limited to 64 now, and is clamped instead of resetting)
  • Set default Model Picker model image output folder to a game sub-folder, not C:/
  • Tools: try searching for gameinfo.txt relative to the .exe of the tool, if gameinfo.txt not found
  • Actually implement undo limit in tools (and set it to 512 in Particle Editor)
handyman

Fixed

  • Fixed collision model preview in Hammer being offset in 3D when dragging
  • Fixed keybinds in Hammer for 1 & 2 not updating the render distance setting correctly, resulting in it being reset to previous step when certain actions happen
  • Fixed empty buttons appearing in Hammer Entity Properties when it is opened before any entity is selected
  • Made Hammer use gmod.exe when generating GameConfig.txt
  • Fixed Hammer breaking VMF files if they contain \n in keyvalue values
  • Text parsing: Handle loading/writing \r correctly (Hammer VMF)
  • Fixed map instances being added to recently opened files in Hammer when opening the parent map
  • Fixed certain inputs having wrong descriptions in Hammer Entity Properties window
  • Added missing HLFaceposer.exe icons
  • Fixed a crash in HLFaceposer.exe when opening file lists when files are in VPKs
  • Fixed HLFaceposer.exe crash due to missing phoneme extractor DLLs
  • Fixed tool Model Picker causing console warnings
  • Fixed "Clear Undo History" option not working in Particle Editor
  • Fixed panel/memory leak with particle picker previews (Particle Editor)
  • Fixed a memory corruption issue with VRAD static prop lightmaps
  • Fixed VRAD crashing due to missing VVD files
  • Fixed VBSP crashing with missing VVDs, and fix it trying to look for VVDs in incorrect places in rare cases
  • Prevent VBSP crashing with bad VMFs (that contain unescaped newlines in KV values), display an error
  • Fixed map compile tool output formatting to do with missing prints related to threaded workloads
  • Removed duplicate "missing material" output from VBSP
  • Fixed a crash with Material Picker (-tools)
  • StudioMdl: Gracefully handle numframes 0 or below in $sequence with an error message, instead of crashing
remove_circle

Removed

  • Hide "Generate Backpack Icons" button in Model Picker as it is not applicable to Garry's Mod
add_circle

Features

  • Added PhysObj:GetIndex
  • Added NPC:SetFOV, NPC:GetFOV (in degrees), NPC:IsInViewCone ( vector/entity )
  • Added Entity:AddSpawnFlags, Entity:RemoveSpawnFlags and Entity:SetSpawnFlags (Community Contribution)
  • Added MAX_EDICT_BITS global enum
  • Added NPC:GetLastPosition
  • Added NPC:GetMoveDelay
  • Added NPC:SetMoveDelay
  • Added physenv.GetPhysicsPaused
  • Added physenv.SetPhysicsPaused
  • Added ENTITY:TranslateNavGoal
  • Added sound.SetActorGender
  • Added viewid to render.GetViewSetup, can be used to detect water rendering passes
  • Added ENTITY:DoImpactEffect for ai and nextbot SENTs
  • Added CTakeDamageInfo:GetWeapon and CTakeDamageInfo:SetWeapon
  • Added Entity:Alive
  • Added math.IsNearlyEqual
  • Added HWBToColor (Community Contribution)
  • Added COLOR:ToHWB (Community Contribution)
  • Added COLOR:GetHue, COLOR:SetHue, COLOR:AddHue (Community Contribution)
  • Added COLOR:GetSaturation, COLOR:SetSaturation, COLOR:AddSaturation (Community Contribution)
  • Added COLOR:GetBrightness, COLOR:SetBrightness, COLOR:AddBrightness (Community Contribution)
  • Added COLOR:GetLightness, COLOR:SetLightness, COLOR:AddLightness (Community Contribution)
  • Added COLOR:GetWhiteness, COLOR:SetWhiteness, COLOR:AddWhiteness (Community Contribution)
  • Added COLOR:GetBlackness, COLOR:SetBlackness, COLOR:AddBlackness (Community Contribution)
  • Added 2nd argument to CompileFile - showError
  • Added util.RemoveDecalsAt
  • Added Player:ExitLadder
  • Added "owner" argument to WEAPON:OnDrop
  • Allow NPC list (list.Set) to set Author property (displayed in spawnmenu on hover tooltip)
  • Added drawviewer field to render.RenderView
  • Added ability to ship custom shaders in Workshop addons
  • Added NPC:GetHeadDirection and NPC:GetEyeDirection
  • Added Entity:SetNetworkVarsFromMapInput as a helper and a sister function to Entity:SetNetworkKeyValue
  • Added SANDBOX:SpawnmenuIconMenuOpen
  • ENT.Information support for tooltips in NPC spawn icons
arrow_circle_up

Improvements

  • Display a non halting error when teamID in Player:SetTeam would not network correctly
  • GM:ClientSignOnStateChanged is no longer called for HLTV clients
  • util.IsValidModel uses meshcount to determine useless models, instead of hardcoded path substrings, which is error prone
  • Do not IsValid the ident in hook.Add & hook.Remove - The check was added solely to print an error for invalid input types, but NULL entity is still an entity
  • Make Entity:IsOnFire return false instead of nil for non animated entities
  • Entity:FollowBone doesn't check the boneID argument if given a NULL entity, or no arguments at all
  • Cache gamemode table for gamemode.Call and hook.Run (Community Contribution)
  • engine.CloseServer now returns true if quit command was issued, also fixed it not working immediately on server start up
  • COLOR:SetUnpacked now type checks its inputs
  • Made certain Lua errors thrown from Lua-defined functions produce more useful stack traces
  • game.CleanUpMap deletes C_Hairball
  • Make file.Write and file.Append return success of file.Open used internally (Community Contribution)
  • Added Lua implementations of HSVToColor & HSLToColor for higher performance and ensuring their return value has the Color metatable (Community Contribution)
  • Allow comments and trailing commas in JSON parsing
  • Made util.TableToJSON output whole numbers without decimal point when encountering such whole Lua numbers
  • Made Player:LimitHit serverside only (it would error clientside)
  • Made file.Read return nil on failure instead of no value
  • HTTP calls the fail callback with -disablehttp
handyman

Fixed

  • Fixed not being able to StopSound generated sounds
  • Fixed clientside only entities being considered map created by Entity:CreatedByMap
  • Fixed DAdjustableModelPanel spazzing out when main menu is open (by ignoring mouse input)
  • gmsave.SaveMap now respects Entity.DoNotDuplicate fully
  • Improve JSON function compliance with the JSON specification
  • * util.TableToJSON - math.huge keys now become "Infinity" instead of "inf"
  • * util.JSONToTable - Handle nil in arrays, convert boolean looking keys ("true", "false") to booleans if this behavior is not disabled by the 3rd argument
  • Fixed DButton:SetConsoleCommand not accepting vararg (Community Contribution)
  • Fixed DTextEntry autocomplete menu not inheriting text entry's skin
  • Fixed GM:NeedsDepthPass causing NPCs to not render, and fixed it rendering ropes twice
  • Try to mitigate util.TableToJSON leaving junk behind on failure
  • Fixed ai.GetSquadMemberCount returning nothing if there is no squad with given name. Now returns 0.
  • Fixed team.GetColor retuning non copied default color for invalid team IDs
remove_circle

Removed

  • Removed last 3 parameters of engine.WriteSave which are now handled in-engine automatically
  • Added timedemo and related console variables/console commands to blocked console command list
  • Blocked the "showconsole" console command, and the tv_record console command clientside
add_circle

Features

  • Added `-noconclr` launch parameter to disable dedicated server console colors
  • Added some new entities to Hammer (FGD) that were missed from the main update
arrow_circle_up

Improvements

  • Made zoom_sensitivity_ratio save across sessions
  • Made PLAYER:AddCleanup server only (Community Contribution)
  • Micro optimization for how C++ retrieves entities from Lua
  • ContentIcon.Copy & SpawnIcon.Copy also copies the tooltip
handyman

Fixed

  • Fixed bone manipulations not working clientside if ever set serverside on the same entity (Regression)
  • Fixed regression with TTT team colors while spectating
  • Fixed a regressive server crash to do with keyvalues
  • Fixed some small memory leaks in dedicated server workshop handling
  • Partially implemented missing mat_ambient_light convars used by one of the newly added entities
  • Fixed Half-Life: Source shotgun right click pump sounds desync
  • Fixed ELF_KEEP_ON_RECREATE_ENTITIES sharing value with another flag, resulting in unexpected behavior