140,315 Commits over 4,505 Days - 1.30cph!

12 Minutes Ago
Bugfix: fix races in parameter caches when slamming SwitchToThreadPool - UniTask synced up to commit c995d2b Tests: ran SwitchToThreadPool test - now passes
14 Minutes Ago
New(tests): add TaskTests.SwitchToThreadPool that reproduces deadlock reported by community Tests: gets stuck as expected when PooledRunners are active
53 Minutes Ago
Boat sail optimization, LOD2 and LOD3 now switch to newly baked static meshes (with lowered/raised variants) instead of the skinned mesh renderers, so they can be batched Replaced animator string usage
1 Hour Ago
Fixed material not being applied in 3rd person Fixed honey bandage position not being the same as the regular bandage in 3rd person
1 Hour Ago
Cleanup wolf foundation jump test
1 Hour Ago
Merge from main
3 Hours Ago
Fixed save load path registeringcomponents twice
3 Hours Ago
Add test for wolf leap on foundation, not cleaned up yet
4 Hours Ago
Updated all IO tests to the new syntax
4 Hours Ago
merge from main
Today
Rename navpos to navVector3, as it can also be a direction / delta, delete old navVector3, fix compile errors
Today
Fix world space leak in wolf and tiger leaps, fix eqs donut potentially using uninitialized garbage nav nextPosition
Today
Initial work to create dedicated navmesh position
Today
merge from trdesk_snapping_fix
Today
Fix an old "Cannot set the parent of the GameObject" sound error when disconnecting while on a moving train
Today
merge from main
Today
Slight cleanup + reformat
Today
Fix for procedural rail lines sometimes not linking up properly at junctions There was an old bug in train track collation that could miss junctions when splitting up the splines, depending on the iteration order. Likely only became visible recently when we switched to FindObjectsByType with FindObjectsSortMode.None Tested a known case / seed that had a broken junction after initial map generation but not when loading the map from a file - now works in both scenarios
Today
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
Today
IOTestFixture, helpers for IO2 automated tests Updated AND switch tests
Yesterday
Converted more stuff: seismic sensor, some audio entities, fuse box
Yesterday
improvements to the muzzle attachment setup unified origin point for these attachements to be at their base - makes placement much easier used prototype 17 as an example and updated its muzzle attachment positions
Yesterday
merge from main
Yesterday
attempting to normalise render sizes weapons and clothing
Yesterday
setting up glass ar 3p anims and world model
Yesterday
fix bugs with syncing the server state of the arcade to the active player, update manifest
Yesterday
fixed large planter gibs spawning upside down
Yesterday
improved first person and specifcally 3rd person muzzle brake positioning for the following: sks, thompson, sar, pistol revolver, space lr300, pump shotgun, prototype 17, mp5, m4 shotgun, m249, m16, hmlmg, custom smg and handmade smg
Yesterday
prefab setup, gotta regen manifest
Yesterday
audio + hit sounds
Yesterday
oops forgot meta file
Yesterday
add feedback for hitting notes, bootleg fake particles, level up toasts
Yesterday
basic replication for spectators
Yesterday
Initial setup for character customisation. Simple convar based system to swap between various pre-existing player model features
Yesterday
Glass AR - shader fix for self sorting issues in viewmodel
Yesterday
Converted door controller: had to set the monument door controller prefab inputs as main power slots, will need some S2P
Yesterday
Converted most lights, fridge and car lift
Yesterday
difficulty ramping
Yesterday
New tool Tools > Find > Unreferenced Assets Scans the project for assets that are not referenced by anything, tracing chains so that eg. a texture referenced by a material that is not used anywhere will be counted as unused Can't catch everything - assets loaded by string path in scripts won't be caught by this tool, so use with care
Yesterday
Right click-dragging items in the crafting queue now lets you move them around within the queue. Fade all other queued items out when dragging an item. https://files.facepunch.com/ad/1b1411b1_2026-08-14_12-27-43/crafting_reorder.mp4
Yesterday
merge from woodarmour_skinnable (wood armour items skinnable setup)
Yesterday
wood armor hat, gloves, jacket, pants skin setup, fixed icons, icon renderer, workshop scene rotations, workshop source models for each
Yesterday
network_range_audit -> main
Yesterday
optimised LOD0 of the burlap sack, much cheaper than before.
Yesterday
merge from main
Yesterday
Reduce the networking range of the following objects from 256 -> 128m (7/7)
Yesterday
Reduce the networking range of the following objects from 256 -> 128m (6/7)
Yesterday
Reduce the networking range of the following objects from 256 -> 128m (5/7)
Yesterday
Reduce the networking range of the following objects from 256 -> 128m (4/7)
Yesterday
Add a "Random" option with a dice icon to the start of the skin list, selectable/saved per-item type. With this selected, a random unlocked skin is used per craft.