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

35 Minutes Ago
Cleanup wolf foundation jump test
51 Minutes Ago
Merge from main
1 Hour Ago
Fixed save load path registeringcomponents twice
2 Hours Ago
Add test for wolf leap on foundation, not cleaned up yet
3 Hours Ago
Updated all IO tests to the new syntax
3 Hours Ago
merge from main
6 Hours Ago
Rename navpos to navVector3, as it can also be a direction / delta, delete old navVector3, fix compile errors
6 Hours Ago
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
Today
Converted more stuff: seismic sensor, some audio entities, fuse box
Today
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.
Yesterday
Fixed Twitch Rivals Desk being flipped 180° when snapped Before: https://files.facepunch.com/raul/2026/August/Unity_1Lnnf0xnVr.mp4 After: https://files.facepunch.com/raul/2026/August/Unity_GSudl4SgyH.mp4
Yesterday
fixed spelling mistake on shipping container decal
Yesterday
Merge from hide_services
Yesterday
Reduce the networking range of the following objects from 256 -> 128m (2/7) (screwed up the last batch): cantina_chair.static chair_c.static ChippyArcadeMachine.static decor_shelf_01.static decor_shelf_02.static decor_shelf_03.static decor_shelf_04.static decor_shelf_05.static lab_table1.static lab_table2.static lab_table3.static tabledoor_a.static tabledoor_b.static workbench2.static discordtrophy_deployed folding_chair_a_clean_white.mountable folding_chair_a_rusty_black.mountable folding_chair_a_rusty_green.mountable wooden_bench_a_mountable chair_a_mountable ptboat_storage fuel_storage rhib_storage_drybox rhib_storage rowboat_storage modular_car_radio batteringram.head BlackjackMachine.caboose BlackjackMachine.static 40mm_grenade_he 40mm_grenade_smoke apartment.bucket apartment.counter_brown_single apartment.counter_brown_triple apartment.counter_dark_single apartment.counter_white_double apartment.cupboard_brown_large apartment.cupboard_dark_small apartment.kitchen_counter_large apartment.kitchen_cupboard_large apartment.kitchen_sink apartment.mailbox stool_a BBQ.CamperModule CardTableSeat CharityPlushie_01_deployed CharityPlushie_02_deployed CharityPlushie_03_deployed CharityPlushie_04_deployed easel.deployed Block 2 WeaponRackLight BlackjackMachine.static 40mm_grenade_he 40mm_grenade_smoke apartment.bucket apartment.counter_brown_single apartment.counter_brown_triple apartment.counter_dark_single apartment.counter_white_double apartment.cupboard_brown_large apartment.cupboard_dark_small apartment.kitchen_counter_large apartment.kitchen_cupboard_large apartment.kitchen_sink apartment.mailbox stool_a BBQ.CamperModule CardTableSeat CharityPlushie_01_deployed CharityPlushie_02_deployed CharityPlushie_03_deployed CharityPlushie_04_deployed easel.deployed