141,247 Commits over 4,505 Days - 1.31cph!
Hunters and fish pie 2 > 1 mushroom
dead log resource gib meshes and setup
isn't currently supported as nothing in the resource family gibs
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
WIP Oil rigs no longer despawn all crates when the server restarts, large rig converted, small rig to go
- Reworked the reset setup, attached a generator to the main reset so it can be saved, removed the smaller puzzleresets for each of the rooms
- Puzzle now force-resets on server restart, unless there's players nearby - this also fixes getting killed while sleeping if you happened to be near any puzzle when the server goes down
- Crates get saved so if you were in the middle of hacking the locked crate, it just continues after restart
- Various other stuff to allow the puzzlereset to correctly find its reset entities and reset objects again afterwards
- Puzzle itself saveloads references to spawned crates so it doesn't spawn duplicates on the next reset
- ScientistBoatOilrigManager is no longer an entity (not needed)
- Slight refactor, lots more cleanup to be done
merge from main -> Hackweek_CompostUI
merge from Squirrel_test -> critter_animals
Fixed potential NRE in FadeCanvasGroup
optimised ao textures for vehicles, generic textures and misc items.
halved 2k -> 1k with almost zero visual difference, not enough to warrant the double res
328 MB -> 192 MB vram
merge from Rabbit_test -> critter_animals
add WIP frog "interested" state, which currently makes it look for shallow water and then start croaking
russian roulette;
- updated game model art
- added both ammo model types to indicate rounds in play for applicable rev types
- added chain connector model for python pick cases
- added preview baked textures
- updated material and prefab
Fix navmesh generating in places in shouldn't, potential fix for "navmesh failed to be created", and optimization of NPC path following
merge from Frog_Branch -> critter_animals
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
Update: submitting the results of script run
Tests: none
Update(editor): automate copying of original resource to DynamicResourceRef
- change DynamicResourceRef to be a class type (reflection modification on values is quite a bit oh hassle). Will try to fix later if I got time
Tests: ran the new script, checked the modified prefabs
Path following optimizations (around double perf), also a bunch of instrumentation and a benchmark setup:
- only string pull the beginning of the path, we will string pull again eventually so not need to run the algo for the whole path (steering agents only)
- only re-string pull the current path if we moved past a threshold or passed a path corner, not every frame (steering agents only)
- when chasing a moving target, instead of recalculating a new path, try to extend the previous path a bit instead to save time
- use unity transform SetPositionAndRotation instead of setting both independantly
- fuse some native method calls, so that we only call one method and skip the interop cost for the other call
- do not check corridor validity if no tile has changed since pathing
Update: Add DynamicResourceRef to UI_StoreTakeover
- amend prop drawer to invoke the right prop
Tests: none
fix animations of frogs not playing, skating sideways, and movement speed issues
merge from main -> fix_hotbar_swap_overstack
Fix hotbar swapping not working with overstacks
- move the RPC completely serverside so it can swap overstacks (thinking was we didn't need a network++ originally if we kept it clientside but forgot swapping overstacks is awkward)
- keep existing admin checks
optimised props ao textures as it was the same issue with 227 of them, most carrying sources far bigger than they ship at and storing a single channel as rgb.
resized to existing max cap 110 files
rgb -> 8-bit grey 183 files
halved 2k -> 1k 24 files
146.3 MB -> 96.3 MB vram
merge from main -> base_occlusion
Small buffs for unused pies, doubled the bonus duration for: bigcat, hunters, pork (900→1800), fish (600→1200), chicken (300→600)
Hunters pie bleed reduction up to 90% from 75%
optimised deployable ao textures where applicable. 245 of them, most carrying sources far bigger than they ship at and storing a single channel as rgb.
resized to existing cap 126 files
rgb -> 8-bit grey 148 files
halved 2k -> 1k 47 files
186.6 MB -> 92.6 MB vram
ao is sampled from the green channel so rgb storage was never doing anything.
Refactor and cleanup of code
Clean: remove PathProxyFor
- update StoreBundleTool to work with DynamicResourceRef
Tests: none, not in use yet
hab armour split off into chunks so they can break off individually.
when all chunks are gone, it leaves the frame of the armour.
re-exported hab armour and added armour chunks.
optimised weapon ao textures. 68 were oversized on disk and nearly all were storing a
single channel as rgb. no weapons ships above 1024 now.
max size 2048 -> 1024 (52 files)
on disk 4096/2048 -> 1024/512/256 (68 files)
bit depth rgb -> 8-bit grey (58 files)
vram 114.8 MB -> 28.6 MB
ao convention on weapons is half the albedo, so 1024 against the usual 2048 albedo.
80 already did this, we were just inconsistent about it. we could half again on a per asset basis depending on size of object.
Update: Add DynamicResourceRef<T> to replace PathProxyForAttrib
Allows us to both automate more of the dynamic bundle assignment as well as help with future merge conflict resolution
Tests: added it to UI_StoreTakeover and it's drawer
Glass AR - texture, material, naming updates, experimental SSS shader
Add tunble drone detonate distance convar.
possible NRE fix for mannequins
optimised darts textures and max sizes. we were shipping the radiation dart at 4k on all textures.
RadiationDart_AO 4096 -> 512
RadiationDart_bc 4096 -> 1024
RadiationDart_mg 4096 -> 1024
RadiationDart_nrm 4096 -> 1024
42.7 MB → 2.17 MB VRAM
looking at other textures that are unnecessarily big too to optimise where applicable.
Fix prevent building volumes being baked into the navmesh instead of ignored
Medkit now gives -20 radiation, same as two individual syringes
Boat Planner tech tree cost down from 120 to 30
Longsword swing radius 0.3 > 0.4, swing delay 2 > 1.5. Slightly more accurate swings and less time between swings.
merge from vehicle_pooling
Add a "restoreHierarchy" field to poolables, flip it only on vehicles to minimize the amount of affected features by vehicle pooling - fixes UI pooling issues.
Merge from render_pipeline_testing
animation imports + keyframe curve editor
Deleted old prefab location