branchgarrysmod.main/maincancel
1,054 Commits over 1,280 Days - 0.03cph!
Fix potential crash issue with rope rendering
Remove the while loop from DModelPanel render
* Added surface.GetScissorRect (Faster than surface.GetPanelPaintState) - returns enabled, left, top, right, bottom
Merged Pull Requests
* weapon_fists sets damage position
* Make closedcaptions fonts anti aliased
Fix missing font CloseCaption_Small
Implement vendor specific shadow depth format test for Intel
Allow solid triggers to touch triggers
* Allows loose weapons and ammo entities touch remove/teleport triggers, etc.
Unhide r_particle_timescale
Merge PR: Toolgun trace not hitting parented props re-fix
Fixed a crash to do with HTLV
Flechette Gun aligns projectiles with world clicker
Fixed buggy behavior of HL:S crossbow with its zoom
* (By removing the "instant" attack mode)
Fix HL:S crowbar hitsounds in multiplayer
Alias some HL:S weapon killicons from HL2 ones
Clear _rt_Camera texture to black on disconnect
Clear water reflection/refraction textures when unused
Ship fixed door models
* Door03_Slotted - fixed skins not working, fixed opening animations not always playing correctly, added ep1 hardware type, fixed pushbar lighting
* Door03 (Ep1) - added rusted texture skin from Door01 (fits the window cutout)
* Door01 - added ep1 hardware type, fixed pushbar lighting
Ship fixed Skin13 & 14 for doors
* Fixed handlebar textures for both
Implement pistol empty holster
* Fixes the model having empty and non empty holster anim being tied to the same activity
Fix missing return value on Matrix()
Remove 12char cap on net_showudp names
Added ActivityWeight/ActivityID to util.GetModelInfo sequences
Remove auto generated server flags
* It's been long enough for people to adjust to setting sv_location
Fixed some potential crashes
Potential optimizations for Matrix()
* Should be a bit faster, especially when not using table as first arguments
Potential optimization for Angle() (same as Vector at some point before)
Clamp BodyMoveXY playback rate to networking limits
Merge PR: Ability for Sandbox NPCs to randomize their model
Possibly fix Linux build error
Apply GetPoseParameter range fix for its one internal usage
In the player anim state. Probably does nothing, but at least its not setting the clientside poseparameters move_x/y to invalid values briefly
Fixed crashes with Alyx and Jalopy being removed
* Also makes Alyx cancel try to enter the vehicle if it is removed while she is running to it
Re-include SteamP2P on Linux dedicated servers
Fixed Gravity Gun storing buoyancy as a bool
Try some more potential crash fixes
* Based on just a single dump
TTT: Fix SimpleImage PaintOver handling
Fix a crash when trying to load weird VTX files
Allow Spawnicon Editor to be resized
https://files.facepunch.com/rubat/2026/February16-2345-RevolvingLouse.mp4
* Also merged Pull Request for case insensitive search and arrow key animation switching
Fix NPE client crash when game.Get3DSkyboxInfo is ran too soon
Remove FCVAR_REPLICATED from hud_deathnotice_time
* It's a clientside convar, the flag has no effect.
Fix color mismatch between cl_ and sv_ showhitboxes
cl_showhitboxes 2 to show ONLY player hitboxes
Make jump/land sounds play for non local players
* Also made Player:PlayStepSound volume argument default to 1
* Fixes Player:PlayStepSound not really doing anything in multiplayer
Added game.Get3DSkyboxInfo
Returns table with "origin" and "scale" keys. No function arguments.
Send replicated convars in batches of 128
* This fixes an overflow/network channel corruption issue on server join when the server tries to send over 255 replicated convars to the client.
Remove some unused stuff
* Removes CRC calc for game_sounds_manifest.txt loading, since the CRC is never used.
* Removes CGarrysMod::SetupSoundsManifest
Reload soundscripts when games are mounted
* This fixes no voice lines playing in Half-Life 2 maps when the game was started without HL2 mounted, and then HL2 is mounted.
Minor cleanups in multiplayer animstate
* Make flDeadtime in prediction use correct data type
* Removed a bunch of unused fields in MultiPlayerPoseData_t
* Reduce amount of LookupPoseParameter calls
Fix leaks with CProceduralTexturePanel
* This fixes color picker preview in particle editor breaking after a few uses
Move CUtlVector::GrowVector error to memory grow functions
Fixed single character folders not working for textures on Linux
* This should fix missing textures on surf_quickie.bsp on Linux. Possibly other maps as well.
Minor cleanups
Fixed Global.EmitSound not firing EntityEmitSound
Apply TF2 SDK fix for CUtlFilenameSymbolTable
* Should help fix loading packed files on Linux on certain maps with embedded files
Fix thirdperson initial angle snap (From TF2 SDK)
Put mksheet into "Tools" group (VPC)
Clamp bot player count in the server browser
* Also apply the clamping to serverlist.Query
Merge Pull Requests
* TTT weapon visual fixes for singleplayer
* Use IsPlayer instead of GetClass() == "player" in base gamemode
Fix a crash in CVoiceGameMgr::ClientConnected due to binary module usage
Fixed normal headcrabs not spawning from their cannisters
Remove the entire GameStats(Uploader) system
Its never used by anything, just wastes resources
Also references to xboxsystem and matchmaking systems that were still compiled in
Ship a fixed hunter_flechette.mdl
* Uses the idle animation by default now instead of the impact animation, so they actually fly straight now, not at an angle
Update AR2, Flechette Gun and SLAM spawn icons
* AR2 icon now points the same way as other guns, SLAM icon now has the same warmer colors as all the other icons, Flechette Gun icon no longer uses the angled model in the preview
Fix Flechette Gun being able to shoot through thin walls
Fix file list concommand autocomplete searching mounted content
It's only used for stuff like saves and demos, no need to search in mounted games like HL2
Fix sounds played via env_microphone having no subtitles
Apply lightmap with lightstyles fix from CS:GO
* Seems to help a little on MC:V maps
Minor cleanups
Make game.GetMapVersion also return the BSP version
Apply a tiny fix for dynamic lights (Light tool) for bumped lightmaps
* This is the difference: https://files.facepunch.com/rubat/2026/February06-2318-JoyousQueenslandgrouper.mp4
Minor changes from CS:GO to do with float bumped lightmaps
Apply same limitations of render.CapturePixels to render.Capture
* Allow render.Capture on rendertargets
Fixed some potential crash issues
chat.AddText handles numbers
Try to fix Linux compile error
Implement $pointsamplemagfilter
Lets try static client scratch buffer
Added support for V12 static prop lump (MC:V)
Remove r_maxdlights convar
* it's already at its max value
Implement empty idle for pistol
Scale lightmap pages to current map's needs
Implement STUDIOHDR_FLAGS_VERT_ANIM_FIXED_POINT_SCALE
Fixed some potential crashes with navmeshes
Fix potential crash issues with dropship
Prevent `trace` concommand erroring with dropships
Better handle invalid physObj in queued collision events
Lets try making lights non networked
Make Pistol weapon use its draw empty animation when empty
Implement empty draw for Crossbow
Added "damage" keyvalue to `crossbow_bolt`
Allow m_ragdollMins/m_ragdoll.allowStretch via SetSaveValue again
Minor cleanups
Alias prop_portal_stats_display to prop_dynamic
* Fixes Portal 1 having missing elevators
Material refcount changes
* Fixed Portal 1 energy pellet having missing texture (0 ref count)
* Do not precache AR2 ball materials until used, they can now also unload on map change
* Do not forcibly precache muzzleflash materials that are not even used
Render hook changes
* Apply correct rendering matrices for PreDrawHUD and PostDrawHUD, so calling cam.Start2D is no longer necessary.
* Move calling of PreDrawHUD slightly later, so it renders in the 2D view, just like PostDrawHUD does.
* Moved GM:PostDrawEffects to be called slightly sooner than before, so it is called in the 3D view, not after it, and also is consistently called only when PreDrawEffects is
Prevent opening chat with cl_drawhud 0 locking you out of main menu
Do not precache some HL1 weapons
Prevent gauss gun spewing about out of bounds values
Remove more unused HUD elements from builds
HUDShouldDraw gets called for cl_showfps panel (when active)
Remove more unused GameUI stuff
Fixed crashes with certain material proxies when used on static props
More minor cleanups
sv_showimpacts draws server hitboxes in blue color
Init QAngle to 0,0,0 on creation
Fixed player hitboxes in vehicles at odd angles
Fixed some player animation/hitbox desync
* Vehicle animation poseparameters were not set serverside
* Player "grab ear" animation was not playing serverside
Restore sv_showhitboxes (cheat protected)
Pull Request: Added color support for Arctic player model
func_movelinear supports changing parents
* Fixed a bug on ep1_c17_01
Rearrange new field of CopiedDupe netmessage to bottom
* Apparently there's some addon out there that overrides some duplicator functionality and breaks any changes, sigh. At least this way it should be less broken.
Fix Alyx playermodel coloring covering some wrong areas
Add some checks for voice chat gain manager
* If current or target gain become inf or nan, reset. Also prevent division by 0.
More fixes for potential crashes
Fix some addons erroring out due to DImage changes
Lets try updating BASS.DLL to 2.4.18.3
* Probably achieves nothing at all
Include hl2 version of buildingset056a
* Apparently it was changed in the 20th anniversary update?
particle COLLISION_MODE_INITIAL_TRACE_DOWN traces down
* instead of tracing west
More potential crash fixes
Added EnableSpotlight Input to npc_cscanner
PR: Fixed an accidental global var in DModelPanel
Fixed models with matproxies flip flopping render groups (static props)
Faceposer fixes
* Does not try to access flex controllers above 96 (since no convars anyway, and no networking)
* Fixed faceposer setting invalid flex value ranges (from MIN to MAX of the flex which is incorrect, to from 0 to 1 which is correct)
Potential fix for player model faces (alyx/gman) in multiplayer
Update Rebel texture sheets to fix a small issue on the gloves
Remove HUD Hint related code from base weapon
Ship mksheet.exe (for particle sprite sheets)
saverestore uses ErrorNoHaltWithStack not Msg
* Also fixed a Lua error due to missing ErrorNoHaltWithStack
Merge Pull Requests
* Apply name filter to post refresh server list updates
* Fixed Lua errors when manually running internal concommands dupe/save_publish
Fixed an exploit that allowed spamming player_pickup on the server
* For now, we block any new pick up attempts if we have a prop already picked up.
Replace barney's face on EP1 maps
Dynamic resupply changes
* Use GetMaxArmor instead of hardcoded 100
* Use "canon" values for max ammo of each ammo type (instead of 9999), so it spawns more useful ammo types instead of shotgun ammo all the time
Fix Combine Soldiers using rifle walk/run anims with shotguns
Disable more Low Violence code that checked the registry
* It was already basically unused, so it won't confuse me in the future by being still compiled
Add description and min/max to engine_no_focus_sleep
Fixed more crashes and many potential crashes to do with models
Fix a regression with func_tracktrain
* It a portal2/csgo change, weirdly
Minor cleanups
Duplicator tool changes
* Improve rendering of the dupe bounds when intersecting with world
* Improve dupe spawn position calculation to avoid spawning in walls
* Show selected dupe name/icon in context menu
Final finger poser mod support updates
Finger poser UI flips controls for right hand
Put the i in Dynamite
Rework Finger poser a bit
* Do not use hardcoded lists of bones, add a new list library list so addons can add support for custom models easily.
* Deduplicate some code
* Improve support for Zeno Clash 1 models
Localize "Loading..." labels in Steam Workshop browsers
* Also made it more consistent between all content types
Merged PR: Localize some more UI texts
Fix a very spammy warning on Linux
Localize Favorites map category in main menu
* Also fix localization of Other maps category
Localize server outdated tag
* Also fix translation module adding trailing space to every single output string
Minor cleanups
* Removing some unused VGUI code that I came across
Duplicator uses icons instead of text for workshop status
Resolve self-crash with File:Read
Add fallback material for sprites/flare6 (env_funnel)
Add 2koth_ and cppl_ maps to TF2 category
Replace coreball.mdl with one with simpler physics model
Merged Pull Requests
* Fixed start/stopsound for some entities in Hammer having invalid default values
* Localize "password" placeholder in server browser
Some potential crash fixes
Stop NPC_Citizen lobbing healthkits and NPCs
Fix NPCs being unable to pickup constrained weapons
* Specifically the first spawnflag "Start constrained", which caused a potential progression stopper on ep1_c17_02a
Add Combine Shotgunner Playermodel texture with colorable eyes
Update Odessa playermodel
* Consistent phong usage on face material (consistent with citizens)
* Fixed mouth faceposing
Dynamite no longer uses timer.Simple, and clamps delay to 3600
Apply some checks for a potential crash issue
* Would crash with a message instead of silently
Limit Material() in menu state
Fixed Lua error counts in Problems panel being covered up by Copy btn
Fix killfeed showing neutral/fearful NPCs as friendly
* When killed by the player specifically
Fix "Couldn't create player_connect event" appearing on success
Apply some NPE checks to render data cache
Fix player model eyes pointing elsewhere when singleplayer is paused
Minor cleanup
Added vec = game.GetWindSpeed( vec pos = nil )
* Optional arg that takes into account wind controllers with radius above -1
* Without arg = only use the global controller (if one exists)
* position argument unfortunately will not do anything on client yet because the env_wind position is never networked to the clients
* Function is shared
Fixed a crash with running "+showbudget" on srcds
Add type checking to Entity:PhysicsInitConvex second arg
Fixed some potentially crashy issues
Merged Pull Requests
* Don't reset Player Counts on serverside Lua Refresh of Sandbox-derived gamemodes
* Micro optimization for sql.QueryValue
* TTT: Fix auto weapon spawning on non-TTT maps
Fixed smscorch2_subrect.vmt having wrong texture offset
Fix Lua errors when NPCs use Fists and Camera SWEPs
Remove XZip from Bootil
Update FastLZ lib
Fix some compile warnings in Bootil
Fix "Error" and "ErrorNoHalt" not firing OnLuaError on SRCDS
Minor cleanups
* Makes CBaseAnimating::m_OverrideViewTarget private
Fixed potential crash issue with look door
Jalopy no longer spawns trigger_vehicle_cargo at all times
* Instead, spawn the entity only when asked to, i.e. `CargoVisible` key value is set before Entity.Spawn is called (maps), or SetCargoHopperVisibility input is used on the car. This input can now also be used to properly disable the functionality by doing `SetCargoHopperVisibility 0`
* This means that Sandbox Jalopy no longer uses 2 edicts, and will not be able to hold a magnusson device in the invisible holder (unless explicitly enabled beforehand)
Added ReleaseBusterFromCargo input to Jalopy
Remove "Ember type" from env_embers in Hammer (did nothing)
Make env_embers compile with parenting support
* So basically there's this stupid system of "if a brush entity doesn't have "origin" keyvalue at map compile time, the brush model bounds will be in world space". env_embers did not use it and therefore was incompatible with parenting. We now make this entity use that system (like all entities should really be doing to be honest) and try to detect the difference in code for old maps and new maps, and apply the entity's position to the particles if we detect the map as "newly compiled with support for parenting" for this entity
FGD: Add auto generated values of func_breakable_surf
* So they do not appear as broken in Hammer, and provide explanation as to what they do.
Add a few new inputs to prop_vehicle_jeep (Jalopy version)
* DisableRadarDetectEnemies
* EnableHazardLights
* DisableHazardLights
* NoHazardLights key value
* Added "Has Gun" keyvalue to jeep in Hammer
* Removed non existent "HUD Locator Precache" spawnflag from Jeep in Hammer
Use FGD files
* Fixed prop_vehicle_jeep having static prop key values that are not applicable to it
* Added some descriptions here and there, where there were previously none
* Deduplicated some key value definitions, such as skin and fade distance stuff
Added new spawnflag for func_tracktrain - GoldSrc rotation
Make plastic materials emit some particles on bullet hit
* Affects props like the blue barrel, Lamarr cage, etc.
Add "enabled" key to util.GetSunInfo
Try to fix IMaterial:GetShader on Linux SRCDS
* By storing the shader name on the material, instead of relying on the shader system on dedicated server
Fixed a typp in UGC uploader (+ some translations)
Added texture name to ShaderAPIDX8::CreateD3DTexture warning
Merge some func_tracktrain changes from P2/CSGO
* Allow Roll spawnflag
* hack to avoid gimble lock
* SF_CORNER_TELEPORT interpolation change
* Dead end path change
* Added missing spawnflag (4), updated description of "HL1 train" spawnflag
Lets try turning "gamemode is nil" crashes into Lua errors
* Seems to not crash on its own, and is slightly better/debuggable user experience
Add likely fail reason to ShaderAPIDX8::CreateD3DTexture warnings
* It's 1x1 DXT5 textures in my experience, so we test for that
Do not forcibly crash the server if `player_connect` event failed to create
* Now prints a warning and continues on.
Fixed a typo (Serveres => Servers)
TTT: Add TTTRadarScan hook
Only queue simple timers if using the same callback func
Minor cleanups
* Code deduplicate of timer.Destroy alias
* Remove code from timer.Create that seems to do nothing useful
Handle potential mesh related crashy issue
Try to fix decals on high poly models spazzing out across the whole map
Fixed double bound checks in map loading
Fixed a NPE crash with CrossbowLoad effect
More potential crash fixes to do with model flexes
Scale JIGGLE_IS_BOING jiggle bones with bone scale
Do not eject players from vehicles on Spawn() during level transitions
Fixed save restore warning due to NPC flex related changes
Minor cleanups
Fixed Sun Editor not inheriting map values properly
Added SurfaceName to `trace` concommand
Fixed crashes to do with flexes on NPC models
Probably fixed screenspace_general_8tex
Added more data to util.GetSunInfo
color, material, size
Fixed a typo in nags_alyx.txt
Remove Bootil's ZLib usage (GZip), since it is unused by the game
Merged Pull Requests
* Fixed "Edit entity" property creating Lua errors when the entity was removed after menu open
* Don't use deprecated VGUIFrameTime in the base game
Fix spawnicons not rendering when returning true in GM:RenderScene
Try to solve undo ordering issues due to clearing of undo table
Actually reenable net message buffer limiter thing
Whoopsie
Reenable FreeImage's GIF support for now
* Should not rely on this, GIFs as addon previews are not officially supported (never were)
Queue simple timers to next frame if called from a simple timer callback
Update ambient_generic radius description in Hammer
Remove status trying to use non existent convars
Update Bootil's ZLib (Just testing if it will build on Linux)
More fixes for potential BSP loading crashes
Prevent infinite loops in MapIO
* When running over 100 map inputs per frame, continue firing inputs in the next frame. No input events are discarded. A console message is printed if the limit is hit.
Apply changes to CopyBoneMatrix from x86-64
Fix FreeImage format IDs
Fixed WorkshopDL not mounting gamemode files
Fixed Male Citizen player model mounts
Added `screenspace_general_8tex` shader
* This is the same as `screenspace_general`, but binds 8 texture samplers
* This is an experiment in shader inheritance
* material parameters: $TEXTURE4 - $TEXTURE7, $LINEARREAD_TEXTURE4 - $LINEARREAD_TEXTURE7
Entity:SetCollisionGroup allows HL2 collision groups
Added COLLISION_GROUP_HL2_SPIT enum
Disable all unused FreeImage plugins
Block fs_ convars from Lua
Minor cleanups (whitespace)
TTT: Remove usages of PANEL:SetDisabled
* Also made "Confirm Death" button get disabled if pressed, like "Call Detective" does.
Remove usages of Panel:GetDisabled for base game
Disabled DMenuOption adjustments
* Clicking disabled options no longer closes all menus
* Disabled options no longer react to hover events (visually)
Delete unused `showhitlocation` convar
Micro optimizations for Matrix() & Entity:GetBoneMatrix
Micro optimizations for some Vector stuff
* Vector global, __div, __mul, Mul
* Mostly caching GetType result
Added Entity:CopyBoneMatrix
Same as GetBoneMatrix, but instead or returning a new matrix, it copies the data to the matrix given in 3rd argument, which should be faster.
Merged Pull Requests
* Do not draw effect rings in Depth Pass
* Fixed regressive Lua error in g_SBoxObjects cleaning code
Change damage indicator materials
* For full screen damage effects, use a "vignette" type texture
* For other effects, use $linearwrite material to reduce banding
Disable "player is dead" red screen effect
* It was not applied consistently to all deaths, and it is kinda unwanted for Sandbox type game
Move drown damage effects from UTIL_ScreenFade to damage indicator
Adjust burn/drown damage indicator effects
More oranger burn effect, longer drown effect (same length as it was before any changes)
Move crush damage effect to HudAnimations too
Make DMG_ACID screen effect separate and different
* No longer duplicate of radiation effect, green-ish tint
Rework DMG_PLASMA effects/sound
* DMG_PLASMA no longer makes the screen just half black (now has cyan effect), and changed the associated sound from infinite loud thing to the burn damage effect
STUDIO_ flags for Pre/PostDrawPlayerHands
Try deleting "scripts/game.txt"
* it only contains `"$game" "GARRYSMOD"` and doesn't seem to be used by the game
Changed gun firing sounds from 140dB to 105dB
* This is consistent with Crowbar and some other weapon sounds, and is less loud at large distances.
* This affects NPC firing sounds as well
* Changed toolgun to use its own soundscript - `Toolgun.Single`. No sound change, only volume change.
Make Annabelle in player's hands produce correct shooting sound
nil check undo Entities table when cleaning them up
Remove unused pooled string
Fix hook.Add name in main menu
Added flags arg to PostDrawViewModel/PreDrawViewModel
Fixed VOX map id replacing not working at all
Fixes certain sentences.txt stuff not working properly
Player.Spawn will also force exit the player from their vehicle
Apply NOTEAMCOLLIDE in serverside ShouldCollide as well
* This will run BEFORE Lua ShouldCollide
* Fixes severe performance loss when many no collided players stand in the same spot
Fixes for some potential crashes
Allow Pre/PostPlayerDraw recursion up to 10 deep