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