2,099 Commits over 1,492 Days - 0.06cph!
Minor cleanup in cl_voice.lua
Wipe vertex buffers on lock
Fixed wood_spool01.mdl prop data and smoothing groups
█ ▆ ██▊▆▇█▆ ▌▇▋▇▇▌▍▍ ▉▍▍▉▅▋▍ █▄ ▉▍▋▅
Hopefully fixed cubemap issues on Linux and AMD GPUs
Temporarily disable (32bit) MacOS builds
* Maybe not so temporarily
Added CMoveData:RemoveKey helper
* Since CMoveData:AddKey and Get/SetButtons already exist
Fixed Kinect SDK not even trying to load on 64bit builds
Potential fix for kickid kicking unauthed players when using SteamID64
* Also use SteamGameServerUtils()->GetConnectedUniverse() instead of hardcoding public universe
Make Entity.GetHitboxSetCount return a number at all times
Fixed potential crash issue with ToGL texture reading
Fixed potential crash issue with ToGL texture reading
* No idea if it happens on Linux normally (probably does), but on Windows it was an issue apparently
Mesh library fixes
* Some copy paste mistakes in error messages
* Fixed BuildFromTriangles reading bone weights from the wrong table
Minor cleanups
* Deleted sensor_smooth cvar (unused)
Improve Kinect support error handling
Minor cleanups
Fixed missing Toggle input for func_nav_prefer/avoid entities
Mesh library fixes
* Some copy paste mistakes in error messages
* Fixed BuildFromTriangles reading bone weights from the wrong table
Minor cleanups
* Deleted sensor_smooth cvar (unused)
Improve Kinect support error handling
Minor cleanups
Fixed missing Toggle input for func_nav_prefer/avoid entities
Fixed an issue with usermessage hooks
Do not clamp flexes of C_BaseFlex when set from Lua
Add entity names to "MOVETYPE_FOLLOW with no model" warning
Implement CTRL+Backspace and CTRL+Delete for text entries
Try to prevent game breaking states with silly values of m_yaw/m_pitch
Minor cleanups
Added "session_begin_ignore_version" hammer command
* If you brick your VMF with this, don't blame me
Add description to r_PhysPropStaticLighting
Move "dynamic shadow poke through" "fix" to opt in convar
* r_shadow_clip (defaults to off) - it being enabled causes shadows to be clipped erroneously sometimes
Try preventing "non positional" control points bloating particle bbox
* This should help with particle sorting
* Marks C_INIT_RandomColor C_OP_RemapAverageScalarValuetoCP C_OP_RemapCPtoScalar as using non positional control points (in addition to the existing ones)
* This could potentially cause issues where these non positional operators act on positional control points used by other control points, but who would do that?
Fixed some regressions with recent changes
* Extra unnecessary assignment in viewmodel bob code, also change CFuncTankMortar to use doubles for firing
* Some minor model panel/icon/player model selector fixes
Fixed couple potential Lua stack corruption issues with hooks
* Specifically call conditions of CreateClientsideRagdoll and EntityEmitSound
Fixed some typos
Minor whitespace cleanups
Remove some unnecessary usages of std::string
Remove "ReleaseVideoMemory" stuff from Hammer
Fixed Hammer material list leaking file search handles
Allow render.BindLocalCubemap with `nil` to unbind the cubemap
Workaround double messages per Sandbox limit hit
* Only display the "Prop limit hit" message, not the "spawn blocked by server" message in the case of hitting the prop limit, etc
* When spawning a dupe or something and hitting the prop limit 100s of times, only display ONE "prop limit hit" message.
Fixed some regressions with recent changes
* Extra unnecessary assignment in viewmodel bob code, also change CFuncTankMortar to use doubles for firing
* Some minor model panel/icon/player model selector fixes
Fixed couple potential Lua stack corruption issues with hooks
* Specifically call conditions of CreateClientsideRagdoll and EntityEmitSound
Fixed some typos
Minor whitespace cleanups
Remove some unnecessary usages of std::string
Remove "ReleaseVideoMemory" stuff from Hammer
Fixed Hammer material list leaking file search handles
Allow render.BindLocalCubemap with `nil` to unbind the cubemap
Workaround double messages per Sandbox limit hit
* Only display the "Prop limit hit" message, not the "spawn blocked by server" message in the case of hitting the prop limit, etc
* When spawning a dupe or something and hitting the prop limit 100s of times, only display ONE "prop limit hit" message.
Add entity names to "MOVETYPE_FOLLOW with no model" warning
Implement CTRL+Backspace and CTRL+Delete for text entries
Try to prevent game breaking states with silly values of m_yaw/m_pitch
Minor cleanups
Added "session_begin_ignore_version" hammer command
* If you brick your VMF with this, don't blame me
Add description to r_PhysPropStaticLighting
Move "dynamic shadow poke through" "fix" to opt in convar
* r_shadow_clip (defaults to off) - it being enabled causes shadows to be clipped erroneously sometimes
Try preventing "non positional" control points bloating particle bbox
* This should help with particle sorting
* Marks C_INIT_RandomColor C_OP_RemapAverageScalarValuetoCP C_OP_RemapCPtoScalar as using non positional control points (in addition to the existing ones)
* This could potentially cause issues where these non positional operators act on positional control points used by other control points, but who would do that?
Fixed an issue with usermessage hooks
Do not clamp flexes of C_BaseFlex when set from Lua
Fixed spawning NPCs too early breaking all NPCs until level change
Merged Pull Requests
* Enable localization for Information/Purpose/Instructions fields in spawnmenu tooltips on SWEPs/SENTs/etc
* Leafblower improvements
* TTT: restore original arctic playermodel color while in "serious mode"
* TTT: handle failed entity creations
* TTT: Add localization to "FIRE! IT BURNS" text effect
Update medic rebels player models to be colorable (Community Contrib)
Add fallbacks for SurfaceGGX and WorldGGX shaders
Fixed Group03m/male_05 using wrong texture directory
Fixed only some Sandbox entities not spawning when looking far away
* Specifically refers to Spawnmenu entity spawning, where SENTs and Weapon middle clicks were not spawning anything if the player is looking into air, while things like props, vehicles and NPCs were spawning. Now consistently works for all entity types.
Try to account for addons doing weird things in ENT.SpawnFunction
* Referring to spawnmenu gm_spawn* error handling notifications
Potential fixes for vphysics crazy position crashes
Minor changes in sound system
* 0.00001% less memory usage
Fixed middle mouse reset on DNumSlider not working
PR: Make playermodel editor sliders work consistently with other sliders
* Specifically, the value of the slider actually matches the visual preview
Fixed player breathing animation at high curtime being choppy
Fixed infinite recursion with ragdoll teleportation
Fixed a number of crashes with npc_hunter if its physics obj is delete
Double curtime related fixes
* Fixed weapon bob being choppy at high curtime
* Fixed strider gunfire at high curtime
* Fixed func_tank firing at high curtime
* Fixed sprite animations at high curtime
* Fixed gunship firing at high curtime
* Fixed flying/falling NPCs being choppy mid air
Minor fixes in Demo to Video system
Fixed autoplay sequences being choppy at high curtime
Fixed thruster effects at high curtime
Drop ship and jeep cannon fixes at high curtime
Minor fixes
* Fixed potential error state in markup.Parse when parsing colors
* Fixed string.FormattedTime returning incorrect millisecond value
Try to add more info CUtlLinkedList overflow message
Fixed Weapon:SetNextPrimaryFire truncating to floats
* SetNextSecondaryFire and SetLastShootTime as well
Fixed inflator tool setting firerate only for left click
Net Graph tweaks
* Display net messages with a separate color
* Automatically scale the net graph if it goes higher than half of the screen
Minor changes
Unbreak TTT voice panels again
Minor fixes for certain regressions
Fixed Weapon:SetNextPrimaryFire truncating to floats
* SetNextSecondaryFire and SetLastShootTime as well
Fixed inflator tool setting firerate only for left click
Net Graph tweaks
* Display net messages with a separate color
* Automatically scale the net graph if it goes higher than half of the screen
Minor changes
Unbreak TTT voice panels again
Minor fixes for certain regressions
Minor fixes in Demo to Video system
Fixed autoplay sequences being choppy at high curtime
Fixed thruster effects at high curtime
Drop ship and jeep cannon fixes at high curtime
Minor fixes
* Fixed potential error state in markup.Parse when parsing colors
* Fixed string.FormattedTime returning incorrect millisecond value
Try to add more info CUtlLinkedList overflow message
Fixed middle mouse reset on DNumSlider not working
PR: Make playermodel editor sliders work consistently with other sliders
* Specifically, the value of the slider actually matches the visual preview
Fixed player breathing animation at high curtime being choppy
Fixed infinite recursion with ragdoll teleportation
Fixed a number of crashes with npc_hunter if its physics obj is delete
Double curtime related fixes
* Fixed weapon bob being choppy at high curtime
* Fixed strider gunfire at high curtime
* Fixed func_tank firing at high curtime
* Fixed sprite animations at high curtime
* Fixed gunship firing at high curtime
* Fixed flying/falling NPCs being choppy mid air
Fixed combine soldier player model material being broken by git
PR: Prevent Lua errors when running gmod_admin_cleanup twice
Try keeping Win7/8 support for Hammer for that one guy
* Probably shouldn't bother since it affects < 0.1% of Windows users, but it's also a tiny change
Added sv_standable_normal
Slightly unfix DPanelSelect:OnActivePanelChanged
* So it is called even when the current panel is reselected, as some existing stuff (Player Model Editor) relies on it. Still only run associated convars if the selected panel actually changed
Prevent Lua errors in Player Model editor due to weird existing mods
* Apparently there are mods out there that provide boolean arguments to AddValidModel's new arguments
Allow matproxies without a bind function
Apply potential fix for procedural bone sizing
Keep a reference to custom cubemap while spawnicons are rendered
Try to make spawnicon editor size with screen
Added render.BindLocalCubemap
* Helps custom model rendering, such as icon editor and player model selector
* It takes a string as input, so it can handle HDR and non HDR cubemaps for you
Adjust icon editor colors to match actual values in spawnicon rendering
Draw Icon Editor spawnicon over the background
Added ability to overwrite spawnicon rendering lighting
* RebuildSpawnIconEx accepts "lightbox" (6 vectors) and "lights" keys (same as render.SetLocalModelLights)
* Simple preview - sky is the limit on actual light setups - https://files.facepunch.com/rubat/2026/August26-3166-AcidicArgentineruddyduck.mp4
Apply 10+ loop deep error to PrePlayerDraw
Fix the typo in "unlosed" file find handles error
Resolve a bunch of double curtime bugs
* Pretty much only relates to NPCs
Add a null check in CalcDamageForceVector
Fixed potential crashes with ragdolls
Fixed potential crash with game.MountGMA
Fix TTT erroring due to it using base gamemode panels
Pull Request: Fix spawnmenu search icons sometimes not having images
Add fallbacks for SurfaceGGX and WorldGGX shaders
Fixed Group03m/male_05 using wrong texture directory
Try to fix -tools on Linux
Fix TTT erroring due to it using base gamemode panels
Fixed only some Sandbox entities not spawning when looking far away
* Specifically refers to Spawnmenu entity spawning, where SENTs and Weapon middle clicks were not spawning anything if the player is looking into air, while things like props, vehicles and NPCs were spawning. Now consistently works for all entity types.
Try to account for addons doing weird things in ENT.SpawnFunction
* Referring to spawnmenu gm_spawn* error handling notifications
Potential fixes for vphysics crazy position crashes
Minor changes in sound system
* 0.00001% less memory usage
VGUI tweaks
* Make Lua panels never overlap main menu (except for modal panels, TBD)
* Clientside DrawOverlay is no longer called from menu overlay panel
* DrawOverlay and CaptureVideo hooks use pooled strings
* DrawOverlay and PostRenderVGUI are now called just before main menu rendering (PostRender still is called after, TBD)
* Disable PreRender return value while main menu is open
Minor cleanup - give internal GMod panels better names
Move PostRender hook slightly earlier to never cover up main menu
* Specifically just before rendering the overlay panels/hooks (DrawOverlay/PostDrawVGUI), exactly where ClientMode::PostRender is called
Add caller info to "MapIO infinite loop" warning (if available)
Minor adjustments to detailobject system from CS:GO
* No functional changes, just maybe 0.001% faster loading times
Draw Lua panels behind main menu when it is open
Reduced DMenuBar spacing, removing it from the left side
Fixed DToolTip spamming PerformLayout from engine
* This was always happening, but was invisible before recent DrawOverlay changes. Now directly call PerformLayout to set/update the size, without going through the engine
Fixed DMenuOption spamming InvalidateLayout
* Another previously invisible issue
* Fixed DLabel:SetDisabled always calling InvalidateLayout(), even when the enabled value did not change. This is consistent with engine Label:SetEnabled behavior
Try to make Entity:IsPlayerHolding more reliable
Re-export fixed combine soldier player model textures
* Fixes green tint from VTFEdit export that I forgot about
Experimental error handling for Sandbox spawn concommands
* gm_spawn commands give player a notification when they fail, stating the failure reason
* This should hopefully help understand why it seems to not work sometimes?
Make seat jeep animation default to 0.5, not 0
Rework how Lua panels are put behind the main menu
* Fixes that one server having issues (probably not the only one), fixes spawnmenu getting rendered in save previews
Remove "VehicleMemDupe" entity modifier
* Appears to really just do nothing
Minor cleanups
Fixed green tint on group03 male player model texture
Minor adjustments to CEF implementation
* Added some safeguards in resource handlers
* Added mime type translations for gif, webm, mp4
Remove "Hinge Axis (Non functional)" field from prop_door_rotating
Fixed a crash with failing to create `physics_entity_solver` entity
Try to fix -tools on Linux
Pull Request: Fix spawnmenu search icons sometimes not having images
Fixed spawning NPCs too early breaking all NPCs until level change
Merged Pull Requests
* Enable localization for Information/Purpose/Instructions fields in spawnmenu tooltips on SWEPs/SENTs/etc
* Leafblower improvements
* TTT: restore original arctic playermodel color while in "serious mode"
* TTT: handle failed entity creations
* TTT: Add localization to "FIRE! IT BURNS" text effect
Update medic rebels player models to be colorable (Community Contrib)
Fix inverted condition that deletes NPCs on spawn
Fixed potential crashes with ragdolls
Fixed potential crash with game.MountGMA
Apply 10+ loop deep error to PrePlayerDraw
Fix the typo in "unlosed" file find handles error
Resolve a bunch of double curtime bugs
* Pretty much only relates to NPCs
Add a null check in CalcDamageForceVector
Improve reliability of Voice Chat HUD
* Adds util.IsPlayerSpeaking (internal really)
* PlayerStartVoice & PlayerEndVoice now get called consistently even if the player entity does not exist. They also both get consistent PlayerIndex argument, which is now used in base gamemode to index voice panels
Try to solve potential backwards compat issues w/ voice panel changes
Do not play suit animation on spawn
* This is apparently a thing where multiplayer gamerules force equip the suit on spawn, but with animation enabled
GetDpiForWindow to GMOD_GetWindowDpi in one missed spot
* Got trolled by VSCode not saving the file
Slightly unfix DPanelSelect:OnActivePanelChanged
* So it is called even when the current panel is reselected, as some existing stuff (Player Model Editor) relies on it. Still only run associated convars if the selected panel actually changed
Prevent Lua errors in Player Model editor due to weird existing mods
* Apparently there are mods out there that provide boolean arguments to AddValidModel's new arguments
Allow matproxies without a bind function
Apply potential fix for procedural bone sizing
Keep a reference to custom cubemap while spawnicons are rendered
Try to make spawnicon editor size with screen
Added render.BindLocalCubemap
* Helps custom model rendering, such as icon editor and player model selector
* It takes a string as input, so it can handle HDR and non HDR cubemaps for you
Adjust icon editor colors to match actual values in spawnicon rendering
Draw Icon Editor spawnicon over the background
Added ability to overwrite spawnicon rendering lighting
* RebuildSpawnIconEx accepts "lightbox" (6 vectors) and "lights" keys (same as render.SetLocalModelLights)
* Simple preview - sky is the limit on actual light setups - https://files.facepunch.com/rubat/2026/August26-3166-AcidicArgentineruddyduck.mp4
Minor adjustments to CEF implementation
* Added some safeguards in resource handlers
* Added mime type translations for gif, webm, mp4
Remove "Hinge Axis (Non functional)" field from prop_door_rotating
Fixed a crash with failing to create `physics_entity_solver` entity
Try to solve potential backwards compat issues w/ voice panel changes
Fixed an infinite loop with TokenReader::IgnoreTill
Do not play suit animation on spawn
* This is apparently a thing where multiplayer gamerules force equip the suit on spawn, but with animation enabled
PR: Prevent Lua errors when running gmod_admin_cleanup twice
Try keeping Win7/8 support for Hammer for that one guy
* Probably shouldn't bother since it affects < 0.1% of Windows users, but it's also a tiny change
Added sv_standable_normal
Fixed a few cases of FileFindHandle_t leaks
Minor cleanups
Fixed BADDONCONTENT filepaths not being removed on refresh
Dropship can die now (Sandbox only)
* Updated its model to have correct surface properties type (metal), and be heavier so it falls more naturally
Fixed HLMV not working as "Open file with" in Windows
* Was complaining about not being able to find gameinfo.txt
Citizen tweaks
* Make citizens hate gunships (attack chopper + dropship included) if they have an RPG in hands. This allows them to actually shoot those and not just be neutral to those.
* Make citizens use "canon" max ammo for giving player ammo check. Stops them from giving ammo forever until player reaches 9999 (by default)
Fixed water on d2_coast_10
* 20th anniversary update changed the material that is stored in Source Engine licensee VPKs
Narrow down PhysObj:SetMass input checks to prevent crashes
Hopefully fixed clientside CGrabController crash
Turn sound system error console messages into warnings
Use 64bit sample counters for audio system
* This is a change from CS:GO to not need to reset the system to work around the 32bit int limits
Add fallback for tree_deciduous_cards_01_darker
Minor adjustment to CBaseCombatCharacter::Weapon_Switch
* Call OnChangeActiveWeapon
Fixed freezes and crashes due to losing audio device (Windows)
Minor tweaks
* Some sanity checks in datacache
* Make dsp_reload a cheat
* Log snd_restart to console
Undo GMod changes to metrocop_sheet.vmt
* Removes bumpmap from the NPC version, restores specular. (these 2 effects are not directly compatible) Player model unchanged.
Fixed glowing foreheads on combine soldier player model
Added language.FormatPhrase
* Helper function, to replace language.GetString():format()
Add localization string for "Skin 0", etc (properties sub menu)
Fixed DPanelSelect running convars too much on creation
* When creating a bunch of icons (player model selector), it would run the convars for selected item for each item added. Now only runs the convars when the selection actually changes.
Added right click menu with reset option to DColorCube
Fixed DColorMixer:GetVector being always 1 change behind
* This changes GetColor in DColorMixer:ValueChanged to be the new value, not the old value. This fixes player model selector color selector always being one "change tick" behind, so color resets were not really applying correctly
Added ability to localize player model names, and categorize them
* Data only
* Added player_manager.GetAllPlayerModels() that includes categories/nice names
* Added 2 new arguments to AddValidModel - nice name and category
Minor derma cleanups
Make DColorMixer palette centered and attempt to size it correctly
* Size to fit all palette items into exact number of rows
* Added DColorMixer:SetPaletteName
Make DHorizontalDivider work with percentages
* This helps when resizing panels, and when screen resolution changes between game sessions
Fixed DPanelList ownLine handling
Overhauled the default Player Model Selector
* Take more of the screen by default
* Improve model rendering to not have overblown phong effect
* Display player model categories
* Can now resize model and model selectors via a divider
* Can reset player/weapon colors to default, and added palettes so you can store custom color presets (separate from all other palettes)
* Preview: https://files.facepunch.com/rubat/2026/August14-3121-LightslategrayIrishsetter.png
Update player model spawnicons
* To get rid of the plastic phong sheen
Minor render library improvements
* Potential optimization for render.ResetModelLighting
* render.SetLocalModelLights sets missing lights in the input table to DISABLED - this fixes an issue where previous calls with 4 lights would persist to future calls with 2 input lights
* Fixed compile warnings
Potential crash fixes
Micro optimization for Lua matproxies
Minor cleanup in spawnicon rendering
Added player_manager.RemoveValidModel
Adjust player model categories
* Remove 1 and 2 model categories.
Apply localization to DColorPalette right click menu
ColorToHSV does not truncate hue to integer
* This prevents loss of data when converting the color from HSV back to RGB
* This is consistent with ColorToHSL
Added "Copy to clipboard" option to DColorCube/Mixer
DNumSlider adjustments
* Prevent sliding the slider with mouse2/3/4/5 (Can still right click drag the name in Sandbox tools)
* Added right click menu to the slider to reset and copy the value. This should help players find this ability
Increase Hydraulic speed slider range so its default isn't out of bounds
Use DermaMenu for DBinder right click
* Includes reset to NONE and reset to default options
* This is less prone to screw the player over by right clicking around
Fixed suit admire animation being invisible
Fixes for potential entity related crashes
Fixed regression with CalcViewModelView due to admire anim fix
Make menu state FrameTime use doubles
Make seat jeep animation default to 0.5, not 0
Rework how Lua panels are put behind the main menu
* Fixes that one server having issues (probably not the only one), fixes spawnmenu getting rendered in save previews
Remove "VehicleMemDupe" entity modifier
* Appears to really just do nothing
Minor cleanups
Fixed green tint on group03 male player model texture
Fixed Posix compile error
* Why doesn't MSVC also throw an error in this case?
Add caller info to "MapIO infinite loop" warning (if available)
Minor adjustments to detailobject system from CS:GO
* No functional changes, just maybe 0.001% faster loading times
Draw Lua panels behind main menu when it is open
Reduced DMenuBar spacing, removing it from the left side
Fixed DToolTip spamming PerformLayout from engine
* This was always happening, but was invisible before recent DrawOverlay changes. Now directly call PerformLayout to set/update the size, without going through the engine
Fixed DMenuOption spamming InvalidateLayout
* Another previously invisible issue
* Fixed DLabel:SetDisabled always calling InvalidateLayout(), even when the enabled value did not change. This is consistent with engine Label:SetEnabled behavior
Try to make Entity:IsPlayerHolding more reliable
Re-export fixed combine soldier player model textures
* Fixes green tint from VTFEdit export that I forgot about
Experimental error handling for Sandbox spawn concommands
* gm_spawn commands give player a notification when they fail, stating the failure reason
* This should hopefully help understand why it seems to not work sometimes?
Fixes for potential entity related crashes
Fixed regression with CalcViewModelView due to admire anim fix
Make menu state FrameTime use doubles
VGUI tweaks
* Make Lua panels never overlap main menu (except for modal panels, TBD)
* Clientside DrawOverlay is no longer called from menu overlay panel
* DrawOverlay and CaptureVideo hooks use pooled strings
* DrawOverlay and PostRenderVGUI are now called just before main menu rendering (PostRender still is called after, TBD)
* Disable PreRender return value while main menu is open
Minor cleanup - give internal GMod panels better names
Move PostRender hook slightly earlier to never cover up main menu
* Specifically just before rendering the overlay panels/hooks (DrawOverlay/PostDrawVGUI), exactly where ClientMode::PostRender is called
Minor render library improvements
* Potential optimization for render.ResetModelLighting
* render.SetLocalModelLights sets missing lights in the input table to DISABLED - this fixes an issue where previous calls with 4 lights would persist to future calls with 2 input lights
* Fixed compile warnings
Potential crash fixes
Micro optimization for Lua matproxies
Minor cleanup in spawnicon rendering
Added player_manager.RemoveValidModel
Adjust player model categories
* Remove 1 and 2 model categories.
Apply localization to DColorPalette right click menu
ColorToHSV does not truncate hue to integer
* This prevents loss of data when converting the color from HSV back to RGB
* This is consistent with ColorToHSL
Added "Copy to clipboard" option to DColorCube/Mixer
DNumSlider adjustments
* Prevent sliding the slider with mouse2/3/4/5 (Can still right click drag the name in Sandbox tools)
* Added right click menu to the slider to reset and copy the value. This should help players find this ability
Increase Hydraulic speed slider range so its default isn't out of bounds
Use DermaMenu for DBinder right click
* Includes reset to NONE and reset to default options
* This is less prone to screw the player over by right clicking around
Fixed suit admire animation being invisible
Added language.FormatPhrase
* Helper function, to replace language.GetString():format()
Add localization string for "Skin 0", etc (properties sub menu)
Fixed DPanelSelect running convars too much on creation
* When creating a bunch of icons (player model selector), it would run the convars for selected item for each item added. Now only runs the convars when the selection actually changes.
Added right click menu with reset option to DColorCube
Fixed DColorMixer:GetVector being always 1 change behind
* This changes GetColor in DColorMixer:ValueChanged to be the new value, not the old value. This fixes player model selector color selector always being one "change tick" behind, so color resets were not really applying correctly
Added ability to localize player model names, and categorize them
* Data only
* Added player_manager.GetAllPlayerModels() that includes categories/nice names
* Added 2 new arguments to AddValidModel - nice name and category
Minor derma cleanups
Make DColorMixer palette centered and attempt to size it correctly
* Size to fit all palette items into exact number of rows
* Added DColorMixer:SetPaletteName
Make DHorizontalDivider work with percentages
* This helps when resizing panels, and when screen resolution changes between game sessions
Fixed DPanelList ownLine handling
Overhauled the default Player Model Selector
* Take more of the screen by default
* Improve model rendering to not have overblown phong effect
* Display player model categories
* Can now resize model and model selectors via a divider
* Can reset player/weapon colors to default, and added palettes so you can store custom color presets (separate from all other palettes)
* Preview: https://files.facepunch.com/rubat/2026/August14-3121-LightslategrayIrishsetter.png
Update player model spawnicons
* To get rid of the plastic phong sheen
Add a safeguard for KeyValues::ReadAsBinary from CS:GO
Undo GMod changes to metrocop_sheet.vmt
* Removes bumpmap from the NPC version, restores specular. (these 2 effects are not directly compatible) Player model unchanged.
Fixed glowing foreheads on combine soldier player model
Improve reliability of Voice Chat HUD
* Adds util.IsPlayerSpeaking (internal really)
* PlayerStartVoice & PlayerEndVoice now get called consistently even if the player entity does not exist. They also both get consistent PlayerIndex argument, which is now used in base gamemode to index voice panels
Fixed "Spawn with toolgun" not respecting tool trace for props
* Also fixed it not remembering prop skin and bodygroups
r_visualizetraces 2 now visualizes hull trace sizes
Try using a hull trace for "Can we reach ladder" check
* This is meant to address the ability to attach to a HL2 ladder through certain walls with tiny gaps
Minor cleanups
Do a LoS trace when searching for ladder dismounts
* Also clear all previous dismounts when searching for ladder dismounts, in case the ladder moved or something
Fixed Lua error in main menu when unsubbing before menu init
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
VBSP: Fixed WVT patched materials not being added to patch list
* Fixes detail props not appearing on WorldVertexTransition materials when they are applied to brushes and not displacements
Fixed Hammer crash when rendering certain materials
* Such as models/wireframe for detail prop material
Fixed some Hammer toolbar buttos not having descriptions
Fixed Detail Objects not rendering on brushes in Hammer
Fixed more potential crashes
Fixed a crash with a specific addon + cleanups
More potential crash fixes
Even more potential crash fixes + minor cleanups
Minor commands.lua cleanups
Fixed bone manipulated entity render bounds when never rendering first
* Fallback to old behavior of using model bounds when the bone manipulated bounds are not calculated yet.
PR: Fixed inconsistencies in localization source strings
Clamp bot player count to total player count
Reduce AR2 default clip to match its clipsize
* This is consistent with SMG1 and HL2 behavior
Fixed a minor memory leak with CEF implementation
Merge Pull Requests
* Remove unused NW vars in gmod_thruster code + switch them to datatables
* Update spawnmenu search to support multiple search terms
Narrow down PhysObj:SetMass input checks to prevent crashes
Hopefully fixed clientside CGrabController crash
Turn sound system error console messages into warnings
Use 64bit sample counters for audio system
* This is a change from CS:GO to not need to reset the system to work around the 32bit int limits
Add fallback for tree_deciduous_cards_01_darker
Minor adjustment to CBaseCombatCharacter::Weapon_Switch
* Call OnChangeActiveWeapon
Fixed freezes and crashes due to losing audio device (Windows)
Minor tweaks
* Some sanity checks in datacache
* Make dsp_reload a cheat
* Log snd_restart to console
Fixed a few cases of FileFindHandle_t leaks
Minor cleanups
Fixed BADDONCONTENT filepaths not being removed on refresh
Dropship can die now (Sandbox only)
* Updated its model to have correct surface properties type (metal), and be heavier so it falls more naturally
Fixed HLMV not working as "Open file with" in Windows
* Was complaining about not being able to find gameinfo.txt
Citizen tweaks
* Make citizens hate gunships (attack chopper + dropship included) if they have an RPG in hands. This allows them to actually shoot those and not just be neutral to those.
* Make citizens use "canon" max ammo for giving player ammo check. Stops them from giving ammo forever until player reaches 9999 (by default)
Fixed water on d2_coast_10
* 20th anniversary update changed the material that is stored in Source Engine licensee VPKs
Clamp bot player count to total player count
Reduce AR2 default clip to match its clipsize
* This is consistent with SMG1 and HL2 behavior
Fixed a minor memory leak with CEF implementation
Merge Pull Requests
* Remove unused NW vars in gmod_thruster code + switch them to datatables
* Update spawnmenu search to support multiple search terms
Fixed a crash with a specific addon + cleanups
More potential crash fixes
Even more potential crash fixes + minor cleanups
Minor commands.lua cleanups
Fixed bone manipulated entity render bounds when never rendering first
* Fallback to old behavior of using model bounds when the bone manipulated bounds are not calculated yet.
PR: Fixed inconsistencies in localization source strings
VBSP: Fixed WVT patched materials not being added to patch list
* Fixes detail props not appearing on WorldVertexTransition materials when they are applied to brushes and not displacements
Fixed Hammer crash when rendering certain materials
* Such as models/wireframe for detail prop material
Fixed some Hammer toolbar buttos not having descriptions
Fixed Detail Objects not rendering on brushes in Hammer
Fixed more potential crashes
Fixed "Spawn with toolgun" not respecting tool trace for props
* Also fixed it not remembering prop skin and bodygroups
r_visualizetraces 2 now visualizes hull trace sizes
Try using a hull trace for "Can we reach ladder" check
* This is meant to address the ability to attach to a HL2 ladder through certain walls with tiny gaps
Minor cleanups
Do a LoS trace when searching for ladder dismounts
* Also clear all previous dismounts when searching for ladder dismounts, in case the ladder moved or something
Fixed Lua error in main menu when unsubbing before menu init
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
Remove `mat_software_aa*` convars, since they don't do anything
* Software AA system is locked to XBox 360 builds
Make bone manipulations not hijack Lua SetRenderBounds
* Bone manipulation still override regular render bounds, but now Lua Entity.SetRenderBounds will override that as well
Enable dumpstringtables <table> to only print specific table
Remove sv_dumpstringtables (unused)
Implement some stringtable changes from CS:GO branch
* Short dumpstringtables, Implement clientside string index search so ParticleEffect can just work with clientside-only precaches now, other self checks
Make prop water level code apply to all animating entities (SENTs)
Try to fix baseanimating overlays resetting on server join
Merge Pull Requests
* Optimizations for Vector:ToColor
* Added math.Cot
Remove cl_drawleaf (unused)
* Not to be confused with r_drawleaf
More Lua hook related optimizations
* Similarly to stopping gamemode hooks from trying pointlessly read returned bool, do the same for SENTs, also fix some sent types not using pooled hook name strings while others do
Some clientshadowmgr changes from CS:GO
* To hopefully prevent potential crashes
Fixed Lua errors when auto refreshing SWEPs with some addons
Fixed alignment of textures in mat_texutre_list tiles
Potential ToGL crash fixes for community shaders
Cleanup: Removed 2 unused (C++) globals
More hook return value optimizations
* Stop reading those bools from Lua and then do nothing with them! This should be the last batch of them
Make _rt_ResolvedFullFrameDepth use IMAGE_FORMAT_R32F
Remove math.Cot
* It's too simple of a function, shouldn't have included it in the first place
Fixed Hammer crash when giving sprites a .mdl model
Fixed a crash with removing npc_attackchopper effects
Fixed a crash with removing func_fish_pool fish
Fixed another decal related crash
Fixed combine drop shop being able to remove players
Merged Pull Requests
* Micro optimizations for table lookups in Sandbox tools and TTT spawnpoint selection
Fixed prop_effect in dupes having wrong bounds, causing weird icons
Partially merge edict limit pull request + some other changes
* Make the trails tool not play "success" animation when we failed to create the trail
Fixed returning from PreDrawSkyBox causing area portal flickering
Fixed more at entity limit crashes
* Mostly NPCs and HL1 entities
Merge remainder of Pull Request regarding "at edict limit" handling
Micro optimization for prop_effect intialization (Pull Request)
Fixed returning from PreDrawSkyBox causing area portal flickering
Fixed more at entity limit crashes
* Mostly NPCs and HL1 entities
Merge remainder of Pull Request regarding "at edict limit" handling
Micro optimization for prop_effect intialization (Pull Request)
Make _rt_ResolvedFullFrameDepth use IMAGE_FORMAT_R32F
Remove math.Cot
* It's too simple of a function, shouldn't have included it in the first place
Fixed Hammer crash when giving sprites a .mdl model
Fixed a crash with removing npc_attackchopper effects
Fixed a crash with removing func_fish_pool fish
Fixed another decal related crash
Fixed combine drop shop being able to remove players
Merged Pull Requests
* Micro optimizations for table lookups in Sandbox tools and TTT spawnpoint selection
Fixed prop_effect in dupes having wrong bounds, causing weird icons
Partially merge edict limit pull request + some other changes
* Make the trails tool not play "success" animation when we failed to create the trail
Fixed Lua errors when auto refreshing SWEPs with some addons
Partially fix up ToGL builds on Windows (from x86-64)
Fixed alignment of textures in mat_texutre_list tiles
Potential ToGL crash fixes for community shaders
Cleanup: Removed 2 unused (C++) globals
More hook return value optimizations
* Stop reading those bools from Lua and then do nothing with them! This should be the last batch of them
Remove cl_drawleaf (unused)
* Not to be confused with r_drawleaf
More Lua hook related optimizations
* Similarly to stopping gamemode hooks from trying pointlessly read returned bool, do the same for SENTs, also fix some sent types not using pooled hook name strings while others do
Some clientshadowmgr changes from CS:GO
* To hopefully prevent potential crashes
Enable dumpstringtables <table> to only print specific table
Remove sv_dumpstringtables (unused)
Implement some stringtable changes from CS:GO branch
* Short dumpstringtables, Implement clientside string index search so ParticleEffect can just work with clientside-only precaches now, other self checks
Make prop water level code apply to all animating entities (SENTs)
Try to fix baseanimating overlays resetting on server join
Merge Pull Requests
* Optimizations for Vector:ToColor
* Added math.Cot
Remove `mat_software_aa*` convars, since they don't do anything
* Software AA system is locked to XBox 360 builds
Make bone manipulations not hijack Lua SetRenderBounds
* Bone manipulation still override regular render bounds, but now Lua Entity.SetRenderBounds will override that as well
Mirror icon16/eh.png to match the actual flag
Update TTT: Updated Russian localization
Added some more flag icons
* IC, JE, GG
Fixed some potential crash issues
Unblock 2 mat_filter* convars from Lua
* Since they don't actually get saved apparently
Fixed most gamemode hooks from C++ still trying to read returned bool
* Basically a whole bunch of Lua hooks called from C++ were still trying to read the return value of the hook as a bool and then never use it for anything. Now we simply do not try to read the boolean that we will never use. Affects over 100 unique gamemode hooks.
Remove mat_norendering from engine.dll as well
MORE ConVar changes
* Unblock viewmodel_fov - not saved in GMod
* Block cl_savescreenshotstosteam
* Remove voice_debugfeedback - unused
Change missed Gravity Gun hooks to also not get return value
Manhack tweaks
* Make Hacked Manhacks not hit other Hacked Manhacks, and DO hit regular Manhacks
* Make regular Manhacks who HATE each other be able to hit each other
Hopefully fixed LuaEmitter woes
MORE ConVar changes
* Unblock viewmodel_fov - not saved in GMod
* Block cl_savescreenshotstosteam
* Remove voice_debugfeedback - unused
Change missed Gravity Gun hooks to also not get return value
Manhack tweaks
* Make Hacked Manhacks not hit other Hacked Manhacks, and DO hit regular Manhacks
* Make regular Manhacks who HATE each other be able to hit each other
Hopefully fixed LuaEmitter woes
Mirror icon16/eh.png to match the actual flag
Update TTT: Updated Russian localization
Added some more flag icons
* IC, JE, GG
Fixed some potential crash issues
Unblock 2 mat_filter* convars from Lua
* Since they don't actually get saved apparently
Fixed most gamemode hooks from C++ still trying to read returned bool
* Basically a whole bunch of Lua hooks called from C++ were still trying to read the return value of the hook as a bool and then never use it for anything. Now we simply do not try to read the boolean that we will never use. Affects over 100 unique gamemode hooks.
Remove mat_norendering from engine.dll as well