August 14, 2026·RustProfit Team

What's New in Rust's "Devblog 164" Update

June 2017's Devblog 164 gave the first real look at the Scientist NPCs that grew out of Helk's weapon-testing bots, added contact shadows as an optional graphics setting, and attacked the workshop skin loading problem head on.

What's New in Rust's "Devblog 164" Update

Devblog 164 went out on 14 June 2017, and its most important item was not actually in the patch. This is the week Facepunch first showed off humanoid Scientist NPCs - a feature that grew, almost accidentally, out of the test bots Helk had written the previous week to balance weapons against. The shipped content is mostly optimisation: contact shadows, a fix for the workshop skin loading problem, and continued decal and foliage work.

Humanoid NPCs

Concept art for Scientist NPCs had existed for some time. What made them real was Helk programming rudimentary bots to test weapon balance against something resembling a human target. Partway through he realised most of that work was exactly what humanoid NPCs would need - something the team had wanted for a long time - so he pushed ahead and made significant progress.

The bad news is it consumed his entire week and was not ready to ship. Given the potential for server crashes, it needed serious testing before release rather than being pushed out broken.

The plan he outlined: several different tiers of NPC with different weapons and possibly different coloured uniforms, spawning at certain radtowns. Looting them will not give you exactly what they were carrying, but it will yield some interesting new loot types. They are also substantially smarter than the animal AI - they already knew how to chase, flank and take cover.

Beyond the mechanics, Helk framed it as finally giving players something to go out and kill other than nakeds who just bought the game, and floated the idea of revealing some canon Rust lore through them. One knock-on consequence: the current radsuit model was originally designed for these NPCs, so a new radsuit needs concepting - possibly something patchwork, and definitely without the frog boots.

Skin optimisation

Workshop skins remained a major performance problem, especially when you run into a lot of skins that have not been cached yet. The short-term fix in this patch is a system that downloads and processes all visible skins during the loading screen when you spawn or respawn. That removes the heavy performance drops immediately after waking up, and helps most on slow connections, where loading the first batch of skins was causing major lag. It can be toggled with the skinwarmup convar - set it to 0 to disable it entirely if something misbehaves.

The long-term fix is bigger: Facepunch decided to write their own thread-safe backend to load skin textures from PNG files on disk and compress them to DXT. That will finally eliminate the remaining 30-60ms lag spikes that Unity's texture loading and compression methods cause on every call. The team had been hoping Unity would ship async methods that do not block the main thread, but with no sign of that happening they took it in-house. Andre hoped to finish it over the weekend and start testing the following week.

Contact shadows

Diogo wanted to properly overhaul shadows but had major optimisations to land first, so he rolled out contact shadows as a good effort-to-benefit compromise. They are a screen-space technique that complements regular shadow mapping and are far more precise at capturing local shadow detail on surfaces.

The most obvious change is that the viewmodel now self-shadows. Player shadows immediately make more sense, and it shows up throughout the world - notably inside your own constructions, where sun and moon light leaking through gets mitigated or eliminated entirely.

The trade-offs are real: it costs runtime performance and fails in some situations, most visibly making grass shadows much darker and more pronounced, with improvements planned. Contact shadows are therefore disabled by default, with the toggle in the Graphics configuration menu under Graphics Quality, directly above the Shadow Cascades option. Diogo's recommendation was to try it on NVIDIA GTX 970/1060 or AMD R9 380 class hardware or better.

Texture packing

Diogo also started a new optimisation he expected substantial returns from. Rust began life using Unity's standard shaders, which are quick and easy but not optimised for particular cases. The shader backend has been made faster and prettier since, but the material inputs - properties and textures - were never changed or optimised. Some materials carry dozens of properties and far too many textures, and the texture count in particular becomes a bottleneck quickly.

The work involves packing texture data to reduce the number of textures in use. The payoff is reduced rendering bandwidth, faster shaders from reduced latency, a smaller game build, and - most importantly - savings in both system and video RAM. Low-end hardware should benefit most, though improvements were expected to be noticeable across the board. Facepunch had already shipped a similar solution for terrain rendering long ago, when terrain was typically more than half of what was visible in any given frame; this extends the approach to everything else.

Decals, displacement and foliage

Andre finished off the deferred decal work. Some decals had instancing disabled on their materials, which made them much slower to render than the rest, and animals were incorrectly spawning large numbers of barely-visible footprints on all surface types. Both are fixed, leaving decals in a good place.

Since the custom instancing implementation worked well on decals, he added instancing support to the foliage displacement pass too, which should significantly reduce the cost of having foliage displacement enabled - particularly with a lot of players around.

The new foliage system also came off the back burner after a couple of months of more pressing work. It gained randomised tinting, scaling and distance fadeout, bringing it to feature parity with the old grass system and the SpeedTree shaders, plus placement rules based on value noise that let artists get convincing results mixing multiple grass and foliage meshes. Rendering it with instancing rather than batching was being explored, which would substantially cut CPU load and memory usage. All of it stayed disabled and invisible to players, with Vince due to attempt new grass once back from vacation.

Item pickup tweaks

Two long-standing pickup annoyances were fixed. Seeds always tried to go straight to the belt hotbar even when there were already seeds in the inventory - now seeds, and any stackable item, prefer whichever container already holds items of their type. Consumables like mushrooms had the opposite problem, never going to the belt regardless of what was there; they now prefer the belt hotbar, while still moving to the inventory if that is where their stack already lives.

Monuments

With Vince on holiday and the rocket factory building finished, Damian moved to the remaining parts of the launch site. He finished a new warehouse building, restructured the surrounding layout, and began the dressing pass to bring the area up to target quality. Vince had finished dressing the checkpoint areas before leaving.

Petur confirmed work continues on Hapis Island, with many improvements and some radical changes lined up - complete with a nudge toward a hint dropped in the previous devblog - and more detail promised as the end of the month approached.

Audio

Feedback on the previous week's metal melee impacts was mixed, so Alex R did another pass over the picks specifically, making them deeper and beefier. With his ears rested from the newer footstep sounds, he also revisited the barefoot footsteps, which are cleaner and more natural now, with the rest queued next.

He also tracked down a subtle bug where sounds could get cut off slightly early if they had been pitched down during pitch randomisation. It had not been an issue previously because there used to be a short delay between stopping and recycling a sound; with that delay removed, the length change caused by repitching was not being accounted for when deciding when to recycle, producing a faint click at the tail of some sounds. A new sound for the dropbox and mailbox went in, alongside mix and volume tweaks to a handful of other sounds.

On music, testing turned up spots where intensity changes felt off or songs sat wrong at particular intensity levels. Most were fixed, with a few gaps in the newer songs still needing extra clips written.

The remainder of the changelist is short: an EAC update, the maxrpcspersecond default reduced to 200, far terrain mixing restored on the highest shader quality level (600), a fix for the airdrop flight sound import settings, and tree colliders now counting as grounded in the server-side player movement checks.