All Rust commits from Facepunch

anim updates
Open/close sounds
Add a 'needs stirring' electrical output so people can make circuits letting them know the generator needs stirred
Optimize worst case pass of the multiple exterior detection so it doesn't balloon execution time
Apply the item position on the Loadout UI icon slots if applicable https://files.facepunch.com/raul/2026/September/22_22-19-FixedHellbender.png https://files.facepunch.com/raul/2026/September/22_22-20-PertinentWeevil.png
Fix the deployment being the wrong way around
Add blinking 'processing' and 'blocked' text on the info display
Ok fine allow buildings to define multiple exteriors - even though theoretically there can only be a single exterior per base it gets funky in it's current implementation when not all building blocks are handled by base occlusion so you can have separate sections of a base that aren't connected with faces but are both outsides (example: connecting external TC with ramps)
Exclude high walls from room occlusion (since they are always considered outside structures)

▊▆▍▌▆▅▉ ▍▋▊▊█▋▉▌ ▉▍▍▊▋▋
Fix bases being able to define multiple outsides of the base - collapse to a single outside when interior rooms incorrectly are flagged as interior
Bugfix: fix invalid takeover data for crystal ak Accidentally copied pack even though it hasn't one when manually resolving Tests: navigated to page, crystal ak displays as intended

Added a per-stage benchmark measurement harness before moving onto experimental optimisations. To be used to measure future improvements and map changes. - ProcgenStats: time per-stage, number of prefabs placed, placement hash, counters (filter calls, radius scans, texel reads, anchor scans, monument attempts). - ProcgenBenchmark: editor tooling to generate maps for queued seeds and writes a CSV row per-stage. One map per play session, exiting play mode after each generation. - Powershell scripts to drive the editor benchmarks and compare CSV outputs by hash and stage time
Bugfix: store.refresh now restarts the tab Fixes tab having only default-initialized tiles Tests: ran refresh while on general tab
Post merge fixes
merge from main fix conflict in ConversationData, bumped VehiclePadRepaired condition type
█▇▌▊▇▉▅▊ ▋▋▄ █▇▉▊▇▉█ ▋▆▇▇▆▇▇ ▍▅▊▇▍▄▇█▇ ▅▇▇▄▆ ▄▆█▍ ▉▄▌█▇ ▅▅▆ ▄▍▄▌▄▅▉ ▇▇ ▇▉▇▋▋▊▄▄▇▇▄█ ▅▊▄▍█▋▆█▉ ▋█ ▅▊▍███▅▅▌ ▋▍▋ ▊▄▅▋▇ ▌█▄ ▌▅▌▌▇ ▄▍▉█▆▌▋
▆▄▆▍▋▉ ▉▊▋▌▅▆▌█▄▇▅█▉▅▇█▌▉▉▌▇▊▄█▄▆▆▅▇▍ ▋▊▌▉▄▅▇ ▊▌ ▌▋▆ ▇▅▇ █▅▇▆▌▅ ▋▇▌ ▆▍▉▆ ▋▍▄ ▋▄▄ ▊▉▉▍▄▅▄▆ ▋▋ ▅▄▆ ▍▅▊▅▌
▊▅▅▆▇▍ ▆▅▇▋▍▍▌▌▍▉▍▊█▍▍ ▊▇█▆▍▋▋▆ ▄▍█▄▄▇ ▌▆▉▇▌▋▇ ▊▆▆▅▋ ▆▄ ▋▄▄▍▋▊▍▋▋▄
Update: HttpImage - permit multiple requests for same url Fixes clurred images for overlay pages where first button shares sprite with full screen image but has different settings Tests: navigated to coconut underwear page - loaded both

merge from procgen_visualiser
▉ ▉█▆▍▋ ▅▍▋▄ ▋▉▅▍▅▌▇▇▌▉█▊█▊▄█▍▉▇▇▆▋▆▊▉▋█

merge from main
Merge from critter_animals
Indicator + light notify LOD
Merge from animal_fence_sound_polish
First pass on jellyfish swarms
Animal fencing audio polish and added new ui sounds

Tweaked power phase requirements Tweaked loot spawn types Fixed bad map topology in harbor_1
added colour mask slot to crittermovement and environmentfishcritter shaders for crab
Pipe/wire pass for random room i (small)
Tech tree fixes
edited grenade vm pullpin anim so the pin does not momentarily appear on screen after its pulled as it blends to throw ready idle
Halloween Wallpapers - texture update
█ ▆▉▍ ▌▆▌▊▋▋ ▆▄▌▇▍▊▇▆▋▄ ▇▅▆▊▌▄ ▉▉▌▇▌▅▇▄▊▍▅█▉ ▅▅█▉▄ ▉▇▌▆▌ █▌▌ ▇▉▉▇▍▌▅▋
updated skins list
Minimum of 1 fuel for even worse foods (grubs)
spooky halloween decor pack steam item
- Description - Crafting costs - Tech tree

Updated huntingtrophy prefab to allow different sheep colourings to display correctly.
Update: HttpImage - pick a higher mip, seems to look better when downsampled Tests: navigated to pack overlay page
- Have to restir after adding new food - Show a little pop animation in the loot panel ui to show its been reset - Make 'electircity required' show in red
- Turn off lamp and indicator if theres no power connected to the biofuel generator - "stirring" -> "stirred"
Mask sheep face when shaving (only disappear when fully shaved), have shaved areas more organic looking and wavy
Reduce power consumption
Add emissive indicator lights: - green flashing when done (fuel in and not food) - green when cooking normally - solid red when no food (to show its burning power) - red flashing when needing to be stirred
Update: reimplement shop.unloadAssets convar Tests: set it to 0, navigated to shop and out, confirmed bundle was still loaded via listdynamic, set to 1, confirmed it was gone via listdynamic
Manifest