What's New in Rust's "Devblog 93" Update
Devblog 93 added the semi-automatic rifle, made weapon damage far more predictable by removing player projectile penetration, and started announcing admin item spawns to the whole server. Facepunch also began officially hosting Battle Royale.
Devblog 93 shipped in January 2016, off the back of Rust's highest player numbers since February 2014. It's a meaty one: the semi-automatic rifle finally went in, weapon damage got a serious predictability pass, admins lost the ability to quietly spawn themselves gear, and Facepunch started officially hosting the Battle Royale mod.
The semi-automatic rifle
The semi-automatic rifle was added as a mid-tier weapon with good accuracy and damage, designed to fill the gap before the jump to an AK or bolt action. It's a little more common than those, and crucially it takes metal fragments instead of high quality metal to craft. Helk flagged straight away that a balance patch was almost certainly coming. New models for the holosight and silencer went in alongside it.
Damage predictability
This is the change that mattered most. The complaint was that Rust's damage felt random - you shouldn't be landing ten hit markers on someone only to watch them sprint away, and you should know that four AK hits kills.
Two changes address it. First, body part damage multipliers are now far more uniform, so hitting someone X times with a given weapon reliably kills rather than stacking up hits that barely register. Second, and more subtly, projectile penetration on player body parts is disabled. Penetration was usually triggered by random animation states, which made outcomes feel like a slot machine. Hits on players now always stop the bullet - though bullets can still punch through wooden barricades and similar cover.
Admin item spawns get announced
A persistent complaint about community servers was admins spawning gear for themselves and ruining the game. From this update, when an admin spawns an item for themselves or another player, it's announced to the entire server in chat. Garry was upfront that server owners wouldn't like it, and equally blunt about the response: if the spawn is legitimate, you have nothing to hide from your players.
More servers, and official Battle Royale hosting
With player numbers spiking, more official servers went up - most locations now run three: a 4k procedural, a 2k procedural, and Hapis Island. Facepunch also began officially hosting Intoxicated's Battle Royale servers, framed as part of a broader intention to support modding better by working more closely with the mod's author. The server list refresh behaviour was also tweaked to avoid overloading.
Related: Rust now supports Steam's connect protocol, so clicking a link on a web page opens the game and connects you to that server directly.
Uber batching lands
Andre's batching system, teased over the previous weeks, is finished. Batching combines many small objects into one big object so it renders faster. Unity's built-in static and dynamic batching don't work for Rust, which has fairly high-poly meshes and buildings placed dynamically at runtime. The old custom batching only covered a handful of the lowest-poly LODs and shadow-casting geometry and was awkward to configure.
The new version is generic, works on nearly any object, and is easy to set up. Benchmarking it honestly is hard - abstract test scenes overstate the gains and results depend heavily on hardware - but testing against real server save games showed improvements of multiple milliseconds per frame near larger player-made structures. The plan was to roll it out to more objects over following weeks, particularly around loot areas.
Rendering: skin shading and new ambient occlusion
Skin was already running in the deferred path, but without subsurface scattering or any skin-specific features. More information now gets packed into deferred mode so those features work properly, with performance slightly improved in areas with many lights. The second-stage deferred skin includes curvature scaling for transmission and a softer subsurface normal, and an ambient lighting issue that made skin look darker than it should was fixed.
Separately, Diogo built a new SSAO implementation from scratch as a side project, based on industry-standard techniques, after being unhappy with everything available on the Asset Store. It removes the darkening artefact caused by precision issues in the old implementation, lifts the radius limitations, and scales well to higher resolutions and larger sampling radii - so quality and performance are no longer a trade-off.
Also incoming from work Andre did on another Facepunch project over the holidays: directional occlusion for the aerial perspective image effect, better altitude-based fog density and improved cloud shading, all targeted at the staging branch.
Player skin colour and the female model
The skin colour system had a distribution problem - there were hardly any white players. Colours were retuned so players are generally black or white, with mid-shades still present but much rarer. If you played through this patch, you may well have changed colour.
The female character model is nearing completion. The face is finished, and she's in-game skinned to the male rig, though the implementation was still rough. Next step was cleaning that up and returning to adapting the clothing sets to the reworked models.
Debug keys move to console commands
The hard-coded admin keys are gone. Right Shift + P for the debug camera and Right Shift + L for noclip have been moved to console commands, which makes far more sense now that Rust has a binding system. You can restore the old behaviour without the modifier by opening the console and typing bind p debugcamera and bind l noclip. Follow it with writecfg if you want the binds to persist.
Unity bugs and fixes
Garry was candid about a rough week of engine-level problems: widespread crashing and freezing traced to Unity updating FMod, misaligned loot panels from Unity's UI erroring at odd times, UI font corruption (reproducible by scrolling the server list), and screen resolution UI stretching. Most had no patch available yet, since Unity generally wants a minimal reproducible project before acting. The takeaway was a plan to stop matching Unity versions between staging and production so closely, so this class of problem gets caught before shipping. Rust's own crash reporting was updated too.
Fixed this week:
- Fixed an exploit using disconnect during the loading screen - it caused genuinely weird behaviour and was behind a batch of previously baffling remote error reports
- Fixed a bed exploit to get inside rocks, plus bed placement issues
- Fixed being able to use a blueprint as ammo
- Fixed invisible collectibles (rock, wood and so on)
- Fixed rock smash particles colliding with the player collider
- Fixed the missing texture on the key lock
- Fixed missing pipe collision and missing concrete wall collision in the military tunnels
- Large water catcher is now researchable
Art in progress
Railroad and road art went into the dungeons as a first iteration - meshes and textures may get polish later, but it does the job at this stage. Work also started on the flamethrower: the high-poly is essentially finished with the low-poly already underway, and the fuel handle from the original concept was swapped for one based on a real fuel pump grip after the artist realised the concept version wasn't based on anything that exists. Music work continued with a lazier, more melancholy piece earmarked as a possible home theme for when you have building privilege, or a rainy daytime theme.