Garry's Mod Logo
add_circle

Features

  • status console command now also prints server & map uptime
  • Implemented Lightmapped_4WayBlend shader with full tools support
  • Implemented new Water shader features - lightmapped water fog, flow maps and ability to reflect 3D skybox ($reflect3dskybox), envmaps for expensive water, support for $reflect2dskybox
  • Use gmod_flashlight attachment for flashlight if it exists - this works for player models, world models and view models
  • Added sv_nomap_timeout convar - Closes a dedicated server if it is running without a map for given amount of seconds.
  • Added "Restore" input to func_breakable_surf entity
  • Added $PortalColorGradientDark and $PortalColorGradientLight to PortalRefract shader
  • Added new parameters to SpriteCard shader
  • $AimAtCamera, $OrientationMatrix ($Orientation 2)
  • $Orientation now supports modes 3 and 4
  • $basetexturetransform support for DepthWrite shader (for alpha tested materials)
arrow_circle_up

Improvements

  • Prevent silly values in fog_controller (malicious map "protection"), as well as prevent map reload loop via player_loadsaved entity
  • Improvements to multiplayer player getters
  • FindEntityProcedural !pvsplayer multiplayer support improvement
  • UTIL_GetLocalPlayer micro optimizations
  • UTIL_FindClientInPVS now tries to get the closest client
  • Changed "exe version" to "network version" in output of "version" console command to avoid confusion
  • Removed newline from "Disconnect by server." kick message, so server console log is less messy. No other kick reason adds a new line at the end.
  • Micro optimization for GM:HUDDrawTargetID (Community Contribution)
  • Enable Episode 2 behavior for npc_combine_s (Some sort of "march" mode)
  • Allow .PCF as valid network transfer extension (FastDL)
  • SRCDS workshop addon cache also caches titles - Also display a warning when that cache will be used
  • Make "No account token specified" message in SRCDS console a warning
  • Unhide sv_soundscape_printdebuginfo
  • Reset render library's internal "last material" vartiable on map shutdown
  • Fallback "VertexBeckman" shader to "VertexLitGeneric" (PVK2 game)
  • Improve free edict detection during entity creation, so allocated edict count cannot pass the internal buffer amount and prevent creation of entities until map restart
  • Clean-up doubleclicking code in the main menu (Community Contribution)
  • Internal rework of main menu's bottom bar (Community Contribution)
  • Make zombies/metrocops propagate their "use lag compensation" state to spawned child NPCs (headcrabs and manhacks)
  • Dynamically calculate max autocomplete items for the console based on available space
  • Added SteamID64 to "Dropped %s player from server" console message
  • Enabled CEF credits button in the Options
  • Limit static prop counts to safe values to prevent crashes
  • Minor VPK support changes from CS:GO - potential memory usage improvement
  • Add description to g_ragdoll_maxcount convar, update descriptions for gm_snapangles and gm_snapgrid
  • Give prop_active_gib* convars descriptions and more sane values - 100 active gibs should be plenty (was 999999)
  • Add a better crash message when getting vertex size 0 to help catch source of the crash
  • Alias dz_door (CS:GO danger zone map doors) to prop_door_rotating
  • Prevent item_item_crate from spawning certain entities that could cause game crashes
  • Throw an engine error when trying to request invalid shader parameter, instead of cryptic crashing
  • Changed whereis to print path of missing files (useful for mat_texture_list 1)
  • Improved several console warnings and crash popups with extra information to help diagnose the underlying issues
  • Improved .nav file error handling to prevent game crashes and freezes, as well as error reporting
  • Do not save or load mat_specular/mat_bumpmap convars across game sessions - These are debugging convars, they do not need to save and cause persistent visual downgrade with no video options enabling them back.
  • Increase max lightmap dimensions to 128 for brushes (from 32)
  • Renamed npc_tf2_ghost to nb_example, and moved it from base gamemode to Sandbox
  • Alias sdk_lightmappedgeneric_dx9 shader to lightmappedgeneric for content from some Source Engine games/mods
  • Potentially improved console variable related performance
  • Remove main menu's reliance on RUNLUA: hack through console.log
  • Use consistent search paths for textures and some model code - makes textures load from consistent location of disk, just like models and materials
  • Make gm_spawn only work for .mdl files
  • Fixed crashes to do with a certain demo files that play on the wrong map (compared to the one it was recorded on)
  • Clear "material is missing" flag on all materials when a map is started loading
  • Initialize 3rd person camera on map load, to fix behavior change after first disconnect
  • Defer gameevent/OnRequestFullUpdate game event if not in main thread (instead of dropping it)
  • Reject non .vtf customization files
  • Optimized Sandbox Widgets system, especially when none are used on the entire server (Community Contribution)
  • Minor optimizations for GM:PlayerSelectSpawn (Community Contribution)
  • Minor loading screen cleanups (Community Contribution)
  • Optimized some internal engine functions to do with looping over player list, so they no longer loop over the player list
  • Added function locations to output of lua_find(hooks) commands and adjusted formatting and colors so its easier to read
  • Adjusted formatting of lua_dumptimers commands so its easier to read
  • Updated gmod_physiterations description to specifically mention constraints
  • Default presets in Utilities tab dynamically load convar defaults instead of being hardcoded
  • Allow fractional tickrates (i.e. 66.666), and clamp the result between 1ms and 100ms
  • Constraint library - Change the rope material shader blacklist to a whitelist (of UnlitGeneric, SplineRope and Cable shaders), and disallow materials that do not exist
  • Prevent player's view roll from being changed by bad actor maps either by spawning or teleporting the player
handyman

Fixed

  • Fixed "TraceAttackToTriggers" system for bullets causing the shot entity to have a separate damage event for each pellet of a shotgun shot
  • Fixed func_lookdoor in multiplayer only reacting to the first player on the server (now reacts to the closest player)
  • Multiple improvements to error handling of particle sheet loading
  • weapon_fists sets Weapon in DamageInfo (Community Contribution)
  • Prevent crashes due to net_graph trying to draw too much at a time
  • Fix Error() in C not exiting the game with a nice message when multicore rendering is enabled
  • Fixed sv_lagcompensationforcerestore not really doing what it says in its description
  • Fixed soundscapes not working with duplicate sounds
  • Fixed Entity:FireBullets causing "CLuaObject:GetType with invalid lua state" warnings after a changelevel when using FireBullet callbacks
  • Restore rope texture scaling to Half-Life 2 values when they are spawned by the map
  • Prevent potential Lua errors with weapon_base when owner dies during firing bullets
  • Fixed some IMaterial functions complaining in console about "$basetexture not being a texture". (Non multicore rendering only)
  • Fixed server crash when mounting ladders at edict limit
  • Prevent crash to do with CSpatialPartition invalid handles
  • Fixed edict exhaustion prevention affecting nextbot players, and crashing the server
  • Fixed a crash when using gm_load on dedicated server
  • Fixed a crash with clientside ropes on props
  • Fixed server crashes to do with Gonarch NPC
  • Fixed many server crashes when trying to spawn gibs at edict limit
  • Make prop water level changes actually work, and apply on clientside too
  • MsgC no longer outputs empty strings when first argument is a color, preventing console message deduplication
  • Fixed fall damage constants being inconsistent between client/server
  • Prevent "bone write access" warnings with ClientsideRagdoll
  • Fixed CLC_Move::ToString numbers being flipped
  • Fixed CBaseFileSystem::ReadLine not working for workshop files at all
  • Fixed VPK file.Find issues with folder searching
  • Fixed BSP file.Find not really working well
  • Fixed Lua errors with DProperty_VectorColor when deleting the associated editable entity
  • Prevent misleading "X used to create wrong class type" warning that happened at edict limit when spawning gibs
  • Try to prevent Half-Life: Source gibs from falling out of the world
  • Fixed an issue with GM:HUDShouldDraw that allowed blocking access to main menu
  • Fixed some weird v7.4 VTF cubemap textures not loading due to missing sphere map
  • Fixed clientside prediction breaking hull traces against local player in multiplayer
  • Do not complain about missing "$refracttexture" when polling water material for its requirements
  • Fixed kickid via SteamID64 not working on dedicated servers
  • Prevent crashes in engine tracing code to do with BSP models
  • Fixed maps compiled without VVIS not rendering any water surfaces (and when noclipping outside of the map)
  • Fixed 'status' console command showing IP address for -p2p dedicated servers
  • Fixed sun glow overlay not rendering in water reflections
  • Fixed a nullptr crash on game exit to do with models
  • Prevent crashes with vertexSize of 0 on materials - will now use error material instead, and throw a warning about what material is wrong
  • Fixed spam about "Trying to use Map as if it were a variable" on GUI dedicated server
  • Try to improve static props fading out randomly for CS:GO maps
  • Fixed render.RenderView affecting FOV for worldclicker, including the context menu
  • Fixed (near?) infinite loops/game freezes in when listing entities in a box with negative bounds
  • Fixed a potential issue with bad BSP embedded files
  • Prevent potential crashes on map change to do with color correction entities
  • asset:// sets correct mime type for .svg files (Community Contribution)
  • Fixed an obscure crash with LuaJIT
  • Fixed an null pointer crash with sv_debug_player_use convar
  • Fix Un-Statue property bypassing GM:CanProperty serverside
  • Fixed ATI1N and ATI2N names being swapped in the texture list
  • Made env_smoketrail entity not add its velocity to its particles, SMG1 grenade trail works as expected
  • Improved handling of v7.5 texture image formats
  • Fixed exit game crash to do with procedural sounds
  • Fixed some theoretical, extremely tiny memory leaks to do with Key Values parsing (Community Contribution from TF2 SDK)
  • Fixed pose parameter support for CMDLPanel (Community Contribution from TF2 SDK)
  • Fixed asset://mapimage/ URLs using wrong mime type (Community Contribution)
  • Fixed a exit game crash to do with -multirun
  • Applied potential fix for retry command for local server host not working correctly when other players are present on the server
  • Applied a potential fix for r_flushlod crashing the game (Community Contribution)
  • Fixed -tools mode spamming about "Too many popups!" when many particle previews are on screen
  • Fixed crashes to do with IK in certain models
remove_circle

Removed

  • Removed pointless "PREP OK" console message during map loading
  • Removed "HudBloodSplat" effect. (It did nothing at all)
  • Removed mat_remoteshadercompile console variable
  • Removed GMOD_Player::ViewPunch, Weapon_Drop and OnTakeDamage overrides (did nothing), m_iCallSpawnTimer and m_iStartTick which were unused at all
  • Removed CHL2_Player::GetAutoaimVector, ShouldKeepLockedAutoaimTarget, BumpWeapon, Weapon_CanUse (all were doing nothing, or were Xbox only)
  • Removed autoaim_unlock_target convar which is now unused