Garry's Mod Logo
add_circle

Features

  • Added Toggle Hammer input to func_nav_avoid and func_nav_prefer
  • Added new Hammer inputs from Team Fortress 2 for all model entities - SetModel, SetCycle, SetPlaybackRate
  • Enabled Half-Life 2: Episode 2 phys_slideconstraint notifications for constraint sounds support
  • Added sv_log_storetime convar (defaults to 0) - A number of hours to keep log files in /logs/ for
  • Added enable_fast_math convar (enabled by default)
  • Added sv_standable_normal convar
arrow_circle_up

Improvements

  • Enabled STUDIO_DRAW_NO_SHADOWS flag for PCF particle model renderer
  • Turn host_state.interval_per_tick into double
  • Updated Steamworks API to version 1.64
  • Disabled player flashlight offsets when using viewmodel attachment for flashlight position
  • Micro optimizations for the main menu, prop_effect initialization, table lookups in Sandbox tools, TTT spawnpoint selection, Thruster effects, Sandbox Light entity rendering, and halo library when rendering models with decals (Community Contributions)
  • Minor changes to prop_effect rendering for better integration with community addons (Community Contribution)
  • Swap colors in snd_show display for server and client sounds to match GMod error colors, add SV/CL prefix
  • Reduced cl_detaildist to 3k from 4k by default to improve performance on some maps
  • Do not try to initialize vaudio_speex voice codec when using Steam voice system
  • Prevent player.CreateNextBot and bot command in singleplayer, so you are not kicked for "server is full" in singleplayer
  • Removed trailing newline from certain disconnect messages for consistency
  • Marked a bunch of debug console commands and console variables as cheats, for consistency
  • Implemented partial prediction latch resets from Team Fortress 2 SDK - Makes prediction errors with weapons not reset every predictable variable, causing player position jolt. This is what Half-Life 2: Deathmatch does already.
  • Cleanup contents of the cache/workshop/ folder on dedicated servers for no longer used/installed addons
  • Delete Lua error log files if they are over 100MB
  • Set sv_logdownloadlist to 0 by default, preventing generation of useless files in garrysmod/DownloadLists/
  • Moved demoheader.tmp file to cache/ folder (safe to delete)
  • Moved media/mapkeys.res to settings/mapkeys.res, media/ folder now no longer needed on game installs
  • Improved default server log filename format to L-YYYY-MM-DD-III now, was LMMDDIII which is incomprehensible at a glance
  • Prevented sv_pure defaulting to mode 0, and dedicated servers trying to read files we don't ship every server startup
  • Improved error handling when failing to load Steamworks library, now should reliably say what the failure is as reported by Steamworks library itself
  • Consistent stripping of bogus characters from server names (Community Contribution)
  • Lua implementations of TypeID and is[type] global functions for improved execution speed (Community Contribution)
  • Switched texture memory debug variables to 64bit integers
  • Removed FCVAR_ARCHIVE flag from dsp_volume ConVar
  • Reset MaxArmor on player spawn to match MaxHealth
  • Adjust texture list panel header to scale with screen width
  • Updated gm_flagrass and gm_construct navmeshes with lighting info
  • Added VPROF scopes to various community requested areas for performance profiling
  • Don't treat "workshop" and "" as valid addon names for "files in this addon" searches
  • Prevent main menu backgrounds scanning 2 paths on each file open, one always having nothing
  • Improved error handling with missing data in <gamemode>.txt files
  • Don't fruitlessly search workshop content for every mounted path - only search in addons for each Workshop path
  • Do not mount gamemodes/ for menu state Lua, since it is unused there
  • Updated Sandbox Undo system UI code to be more self contained and flicker less on refresh
  • Refactor cleanup tool UI to be more self contained (Community Contribution)
  • Added dormancy check to Sandbox Lights, so lights outside of PVS no longer produce light, allowing more lights to be placed in the local area (Community Contribution)
  • Improve Holly library related error handling - The game no longer crashes (64bit builds) when Holly.dll is missing
  • Updated config_default.cfg to set ConVars to their defaults - mp_decals and sensitivity. Were set to 2x their default, now set to the actual default
  • Reset stale gamemode details on server list refresh (Community Contribution)
  • Added some decal related nullptr checks
  • Prevent invisible Projected Textures (brightness 0) from trying to render projected shadows
  • Made sounds played via surface.PlaySound not be spatialized (so the UI sounds don't have echo, etc)
  • Added some requested silkicon flag icons - IC, JE, GG, fixed EH flag to not be mirrored
  • Made prop_physics WaterLevel code apply to all animating entities (SENTs) for more consistent WaterLevel results
  • Made _rt_ResolvedFullFrameDepth texture use IMAGE_FORMAT_R32F
  • Clamp server's bot player count to total player count in the server list
  • r_visualizetraces 2 now visualizes hull trace sizes
  • Clear all previous dismount spots when searching for ladder dismount spots, in case the ladder moved or something (addons)
  • Apply crazy physics entity removal to movetype FLY(GRAVITY) entities - This fixes crossbow and SMG1 projectiles spamming warnings infinitely when they somehow fall outside of the map
  • Improve "TWOPASS" brush rendering in shadow passes
  • Removed unused NW vars in gmod_thruster code + switch remaining ones to DTVars system (Community Contribution)
  • Minor adjustment to CBaseCombatCharacter::Weapon_Switch - Call CBaseCombatCharacter::OnChangeActiveWeapon
  • Made dsp_reload convar a cheat
  • Reduced DMenuBar spacing, removing it from the left side
  • Enabled dumpstringtables <table> support to only print specific table (since it can print clientside only strings)
  • Enabled localization for Information/Purpose/Instructions fields in spawnmenu tooltips on SWEPs/SENTs/etc (Community Contribution)
  • Improved smoothness of various game systems at high curtime/uptime, such as certain NPCs firing, flying and certain types of entity animations
  • Made playermodel editor sliders work consistently with other sliders - the value of the slider now actually matches the visual preview (Community Contribution)
  • Display Lua net messages in the Net Graph with a separate color
  • Automatically scale the Net Graph if it goes higher than half of the screen, so it doesn't cover it entirely
  • Added fallbacks for SurfaceGGX and WorldGGX shaders (for mountable games)
  • Moved "dynamic shadow poke through" community fix to opt in convar (r_shadow_clip) since it causes unwanted behavior sometimes
  • Try preventing "non positional" control points bloating particle system bounding box - This should help with particle sorting
  • Stopped some pointless materials being loaded on game start up
  • Removed FCVAR_ARCHIVE from sv_loadingurl - Don't want this to be saved on game clients
  • Removed FCVAR_ARCHIVE from sv_skyname - Since it is reset on map load every time anyway
  • Wipe mesh vertex buffers on lock
handyman

Fixed

  • Fixed "Render models" particle renderer not setting up model lighting
  • Fixed Faceposer tool creating one extra convar
  • Prevent "give" console command creating certain forbidden entities that would crash the game
  • Cache sound durations to avoid file parsing every time a sound is played (especially on dedicated servers)
  • Fixed a crash with lua_dumptimers_cl when timer names are very long
  • Fixed cl_showents and some other console commands crashing when ran on SRCDS
  • Fixed a crash when running ai_test_los in multiplayer
  • Fixed rare Lua state corruption due to async Lua events after level change
  • Left 4 Dead 1 & 2 .nav files can now successfully load
  • Fixed double "scripted_ents library is not a table." warnings
  • Fixed potential crashes with Lightmapped_4WayBlend in DirectX 8 mode
  • Fixed DxSupport system not working correctly, breaking per-GPU graphics presets
  • Fixed Max Health not updating correctly in singleplayer for local player clientside
  • Fixed Airboat water wake effect drawing in the depth pass
  • Fixed local player volume being NaN for a split second when starting to talk
  • Fixed weapon_pistol prediction errors due to double CurTime changes that appeared only on dedicated servers
  • Fixed ammo/net library not resetting serverside on disconnect
  • Fixed func_conveyor applying infinity as force to entities, causing physics engine crashes
  • Fixed certain maps having wrong fog colors due to env_fog_controller malicious blinding check
  • Fixed GameState.txt being empty all the time
  • Fixed some instances of SRCDS trying to use clientside Steamworks APIs - Fixes [SAPI FAIL] messages
  • Fixed game hang when func_ladder is spawned via console commands
  • Restored ability to store generated VPROF reports to a file
  • Fixed a crash with DebugDrawPhysCollide
  • Fixed a crash issue with bone follower physics object management
  • Do not render $no_draw materials on models in depth pass
  • Fixed a crash with game.MountGMA
  • Fixed NPC footsteps not using leg positions for trace start location, so now the footsteps should be more accurate to the surface under each foot
  • Fixed NPC footsteps not respecting intended footstep sound volume
  • Fixed nav_update_lighting always applying black color to the nav areas, now correctly samples map data
  • Do not search for spray file cache (other people's sprays) in addons/mountable games
  • Fixed an infinite loop in the client shadow system
  • Fixed procedural bones not working correctly (being applied twice)
  • Fixed a crash with "decals/rendermodelshadow" material (its material proxy)
  • Fixed minor logic errors in base game Lua code (Community Contribution)
  • Fixed warnings about "LuaParticles non 0 refcount on removal"
  • Remove VERTEXTEXTURE flag from textures when loading from disk, to prevent associated graphics bugs on Linux/MacOS
  • Potential Linux/MacOS crash fixes for community shaders
  • Enforce NOLOD and NOMIP flags for .vtf files without mipmaps, to prevent certain community textures refusing to load with low texture setting
  • Fixed a crash with vehicles on level transitions when precached entities are being deleted
  • Fixed a different Ctrl + LeftArrow key combo crash with TextEntry UI component
  • Fixed crash dump console log for console messages without newlines (Msg, MsgC lua functions)
  • Fixed most gamemode hooks in C++ trying to read a boolean return value from Lua and then never using it
  • Implemented clientside string index search, so ParticleEffect can just work with clientside-only precaches now
  • Potential fix for BaseAnimatingOverlay animation layers resetting on server join
  • Fixes for potential client shadow manager crashes
  • Fixed alignment of textures in mat_texture_list tiles
  • Fixed another decal related crash
  • Fixed numerous crashes when the server is at entity limit
  • Fixed Combine Dropship being able to remove players
  • Fixed prop_effect in Sandbox dupes having wrong bounding boxes, causing dupe icons to generate too zoomed in
  • Fixed a crash in bone cache system
  • Fixed a minor memory leak with CEF implementation
  • Fixed Lua error in main menu when unsubbing from a workshop item after game start but before the main menu is fully initialized
  • Fixed a few cases of FileFindHandle_t leaks
  • Fixed BADDONCONTENT search paths not being removed on folder addon refresh
  • Fixed clientside CGrabController crash
  • Fixed DToolTip and DMenuOption spamming panel layouts every frame
  • Fixed potential crashes with ragdolls
  • Apply potential fix for procedural bone sizing issues with complex community models
  • Potential fix for cubemaps breaking when rendering spawnicons
  • Resolve a bunch of bugs introduced by switch to double curtime, mostly to do with NPCs
  • Fixed a crash to do with CalcDamageForceVector
  • Fixed spawning NPCs too early (before world precache) breaking all NPCs until level change
  • Fixed sound of the hidden Leafblower tool being spammed (Community Contribution)
  • Prevent Lua errors when running gmod_admin_cleanup command twice in a tick (Community Contribution)
  • Potential fixes for vphysics crazy position crashes to do with players exiting vehicles
  • Fixed infinite recursion crash with ragdoll teleportation
  • Fixed a number of crashes with npc_hunter if its physics object is deleted
  • Try to prevent game breaking states when giving invalid values to m_yaw/m_pitch convars
  • Potential fix for kickid command kicking wrong (unauthed/loading) players when using SteamID64
  • Fixed a Linux/MacOS crash to do with reading certain texture formats
remove_circle

Removed

  • Removed unused steam client libraries on Linux
  • Removed linux_server_cycle.sh (unused)
  • Removed dxsupport_sp.cfg and dxsupport_episodic.cfg (unused files)
  • Removed bin/vtex.ico - unnecessary file
  • Removed glview.exe, height2normal.exe and height2ssbump.exe dev tools (unused or useless)
  • Removed con_logfile convar from code - fixes warnings about it missing when running certain console commands
  • Disabled support for dxsupport_override.cfg (unnecessary for GMod)
  • Removed point_bonusmaps_accessor entity
  • Removed env_debughistory entity and its associated console commands (did nothing)
  • Removed unused/useless convars - mat_software_aa*, r_flashlightscissor, hud_jeephint_numentries, hud_takesshots, filesystem_report_buffered_io, r_shader_srgbread, r_raindensity, r_drawvgui, mat_norendering, vgui_message_dialog_modal, voice_debugfeedback, g_ragdoll_lvfadespeed, hud_drawhistory_time, player_limit_jump_speed, tf_escort_score_rate, hud_airboathint_numentries, sv_hudhint_sound, striderbuster_magnetic_force_hunter, sniper_xbox_delay, systemlinkport, matchmakingport, xmove, xlook, cl_drawleaf, sv_dumpstringtables, sensor_smooth
  • Removed sv_no_ain_files convar and just do not auto send .nav and .ain files to clients at all
  • Removed sv_unlockedchapters convar, stop reading scripts/ChapterBackgrounds.txt on game start
  • Removed test_freezeframe concommand
  • Removed CHudVoiceSelfStatus HUD element
  • Removed Half-Life 2 menu game logo and menu button code, and the inaccessible start new game dialog
  • Removed CTextStatsMgr internal unused system that writes an unnecessary empty text file called "stats.txt"
  • Disabled startup videos system - It was non functional anyway, but now we don't ship an empty file in media/ and read it on every game start up
  • Disabled dedicated server status bar on Windows - causes issues with console history
  • Removed the Half-Life 2/Portal demo code - It was calling some clientside Steamworks APIs on the game server
  • Disabled MMX and 3DNow code - it was never really used by modern computers and was only implemented for 32bit Windows
  • Removed the unused Ragdoll Low Violence manager
  • Removed some stub XBox related presence system, removes user_context and user_property concommands
  • Removed Logitech G15 integration leftovers and its convars - We never shipped the .dll for it to work, so I think it was always unusable, so just get rid of it entirely
  • Removed PyroVision leftovers - the shader, the overlay render code, the CReplacementProxy (replace_proxy) material proxy and a bunch of pyro_* convars
  • Removed r_sse2 convar as there's no reason for this to be touched by players
  • Removed serverside mat_hdr_tonemapscale ConVar
  • Removed SetTonemapScale and BlendTonemapScale hammer inputs from env_tonemap_controller entity. These 2 inputs never actually functioned, especially in multiplayer, since they set mat_hdr_tonemapscale ConVar which is never read anywhere, and is reset every frame.
  • Removed unnecessary material override for Half-Life 2: Episode 2 Antlion Guard (Community Contribution)
  • Removed SCRIPTNAME and SCRIPTPATH setting code when running Lua scripts