Blog Feed en Mon, 02 Jul 2018 22:50 CEST is a Rust servers list. Its goal is to provide an efficient way for players to find a server that suits their needs and also for servers owners to get more players on their servers. 60 Discussions Module, GDPR And New Anti-Cheat Tools Mon, 02 Jul 2018 22:50 CEST Discussions Module As promised we have replaced the comment system with a discussions module. This new module gives more options to people posting messages and to server owners.

GDPR Compliance

To comply with the European GDPR (General Data Protection Regulation), we introduced important changes:
- Our users will not receive anymore newsletter from us unless they explicit choose to receive it.
- Our users have now an option to delete their account and data.

These are the first changes to our website to comply with GDPR and more are coming.

New Anti-Cheat Tools

We have released new tools to increase vote cheating detection. Of course, we will not reveal anything about it. We should see the first results very soon...]]>
Vehicle Update Fri, 06 Apr 2018 14:24 CEST



Ahoy! The first player controlled vehicle has arrived in Rust. A motorized rowboat, with seating for one driver and three passengers, can be found on the shores of the island. They require Low Grade Fuel to operate, and have a small storage box located in the bow. If left outside too long they will decay, so you should build yourself a boat house. There will be about 64 active on a 4k sized server, so get 'em while they're hot! You can utilize these boats to access the offshore junk piles added this patch.

I won't go into crazy detail here, because our friends over at have an excellent in-depth write up that I'd just be mirroring, so check them out for more.

Point is, they're really fun

Chinook Event

The CH47 has FINALLY made it in game! Take THAT, Concept Limbo!

This transport helicopter is a periodic server event which will appear offshore and make its way to a designated drop zone to resupply. Drop zones are located at most of the Tier 1 and above monuments, and the helicopter will orbit the area in an attempt to neutralize any threats (read: players). After this, it will approach the drop zone and release its payload.

In an ideal world the scientists expecting the supplies would approach and retrieve them, but we all know that isn't what is going to happen (and it's also not implemented yet). The good news is this leaves this secure, high-value crate up for grabs by the island's subjects. Unfortunately for you, the crate has been equipped with a high-tech locking mechanism which requires some time to disarm. Approach the crate and press your use key to begin the process. A timer will be initiated and upon completion the loot will be accessible. Please note that the computer performing the brute force operation is sensitive and damage to it will slow down the process.

Another thing to note is that your map (and everyone else's) will display an icon indicating the location of any locked supply crates, so lock and load.

Water Junkpiles

Boats are cool, but you know what's better? Boats that have a function. To that end, I've added some flotsam junkpiles which spawn far off the coast. You can use a boat to access them. They're just like regular junk piles, except these are the aquatic type. You can also run around on them, but if you destroy all the loot they'll sink!


My work on boats ended up being generic enough that I could expand it to other areas of the game, the most obvious one being player corpses.

Now when someone is killed in a body of water their body will float on the water's surface and respond to rivers, etc. This not only looks a lot better, but has a functional element as players killed on boats or in water will have their loot be accessible on the surface.

AK47 Nerf

The AK47 now has increased recoil and a slightly more complicated recoil pattern during the initial burst. It is also less accurate firing from the hip due to an increased aimcone value for hipfire.

Item Costs & Balance Pass

After listening to some feedback, I did a bit of an analysis and made a metric tonne of balance changes in terms of item crafting costs. Here's the list:

  • Semi Automatic Pistol now has a HQM cost of 4 (was 8)
  • Semi Automatic Rifle now has a HQM cost of 4 (was 0)
  • All SMGs cost half the HQM they used to (including mp5)
  • Heavy Plate Armor pieces are half price
  • T-Shirt costs 20 scrap to research (was 75)
  • Longsleeve shirt costs 20 scrap to research (was 75)
  • Longsword crafting cost was halved
  • HV Rockets cost 1/4 what basic rockets cost
  • Hide armor leather costs halved
  • Bolt action rifle cost reduced significantly

In addition to the cost changes, I've made some gameplay changes to various items.

  • BAR more damage
  • Heavy Plate less nerf
  • Shirt/longshirt more radiation protection
  • HV rockets deal 1/4 rocket damage
Less Junk

Don't you just love it when you battle it out for an airdrop and get three sets of Wood Armor? Me too. But it's not us we're catering to here, so I've made some changes to the airdrop loot table so that it'll have a lot more guaranteed "good" items and way less (none, in my opinion) trash.

This also applies to the Elite crates and the new Locked crate object from the Chinooks.

Rocket Changes

HV Rockets really needed a balance pass done on them. I've changed them up to be about 1/4 the cost of regular rockets as well, as dealing 1/4 the damage. They're a lot more accurate and there's less time between firing and impact for your targets to move out of the way. This makes it a much more viable option for taking out targets which are farther away, or maybe even flying... Maybe they'll actually be crafted now that you can use them to raid and not incur a pointless cost penalty.

I've also decreased the cost of the Rocket Launcher substantially. It now costs 50 HQM and 6 pipes (was 100 HQM/10 pipes) and increased its durability, so you don't have to worry about repairing it as often.

Please enjoy!

Water Impacts

Bullets now impact the water. Big whoop.

Projectile Pooling

You know what feels like shit? When you fire your gun and a frame drop happens. While we were doing a good job with pooling particle effects and sounds, we weren't reusing the actual projectile objects. This could be particularly annoying when firing on full-auto. So I added projectile pooling and then quickly realized why we hadn't done it before. It broke a ton of stuff since various effects were either disconnecting from the projectile or destroying themselves at various points during the lifespan of a projectile. It took a while to figure it all out, but it's all working now and you should notice a smoother experience when zerging down a naked on the beach.

Network Interpolation & Extrapolation

When Helk started working on the vehicles he noticed a ton of problems. Vehicle movement is done on the server, so it needs top notch interpolation and extrapolation on the client without adding a ton of delay to the controls. I rebooted this for players a few patches ago, but server side vehicle movement was at a whole new level in terms of what it demands from the system. 

Notice that we didn't achieve this by adding a bunch of delay to the movement, instead the next position is predicted on the client and then smoothly corrected when it is received. It's easy to make things look good when the server is running perfectly, but as always in life it gets hard when something is not performing the way it should. I'm really satisfied with the result, enjoy the silky smooth movement goodness!

Workshop Skin Loading

We were having some issues with newly released skins not working until after a server restart. Due to this we had to force server updates when releasing skins for the past few weeks. This is now fixed, so future skin releases will no longer require server owners to immediately restart their server.

Triangular Walls

Long story short, people have been abusing the shit out of the conditional roof side walls by using them as entrances. The recent improvements to the conditional model system now allowed us to remove these and add model conditions to walls that change them to a triangular shape when placed next to a roof. 

If this works well we can finally go ahead and implement all sorts of new conditional models to make buildings better looking and more interesting.

Procedural World Fixes

In addition to the new forests I implemented with Damian (for more info see his section), there are some small but important world generation fixes in this update:

  • Fixed some rocks occasionally overlapping monuments
  • Fixed monument terrain blending issues (regression from terrain blend maps)
  • Fixed monument terrain carving issues (falling through terrain)
  • Finally fixed the (rare) checksum mismatch on certain seeds

Particularly the checksum mismatch has been giving us headaches for a long time since it could force server owners to re-wipe their server an hour after the wipe because the map was broken for some people. This should now finally be fixed once and for all.

Server Stalling Issues

There were a number of performance issues that could cause the server to stall for anything from several milliseconds up to more than a second. The majority of those are now fixed, which is important both for vehicles and to ensure a smooth experience overall.

Hapis Island Update

Hapis Island has received some love. The goal was to improve various points of the map which aren’t often used, as well as polishing up some older areas. Here are some highlights:

  • Added Junkyard
  • Added Sewer branch
  • Added Outpost B3
  • 8 New caves and tunnels
  • Updates & fixes to older radtowns
  • Updated roads
  • Better Junkpile spawns

See the change log for full list of changes. I look forward to receiving feedback and suggestions to further improve the island.

Forest Revamp

I've been pushing our vegetation even further than before. The first thing you will notice in this update is that instead of having just one forest type, there are now two. You’ve been asking for deciduous trees to come back, so I created another forest type with its own unique topology. The old forests contain pines, Douglas firs and reddish birches, while the new ones are filled with American beech trees and green birches. Also, temperate and tundra biomes contain large oaks that are scattered across the fields. These changes add much greater visual variety and give the game a lush feeling that we wanted to achieve for a long time.

In addition, you will notice that the density of trees has changed. Forests now cover large parts of the map and the density of the deciduous forests is quite high. This makes small bases hidden among the trees more viable. We have also adjusted the areas in which forests spawn and made trees grow alongside the edges of lakes. All in all, this means you will be staring less at vast empty fields, and forests will break up the lines of sight.

I have also spent some time helping Diogo balance his new wind-zone tech. All new trees and bushes will now react correctly to weak and strong winds.

Finally, once all this new foliage was in, I was able to look into how everything blended together. I spent some time color correcting all the textures, adding color variation and balancing various material settings and improving the billboards. I also experimented with adding custom vertex normals to trees to improve their shading. The results were really good and I was able to roll this out into today's update as well. All these small tweaks and changes should make everything blend nicely together and give the game a more pleasing look.

Map Update

I've updated the map. I originally intended to fix the lag spike when opening it, but after fixing that there were a few other things that annoyed me.

You had to left click to activate the cursor, then you'd be able to right-click to move around. This behaviour was left over from when you could draw on it, and was a bit counter intuitive. So now when you open the map your cursor will be active and you'll be able to scroll around straight away.

The map is actually rendered from the terrain's splat maps and normal maps, so it can be a lot more detailed than it was. So I played with the shader and have increased the detail levels.

Steamworks Update

I've updated Steamworks. There's nothing significantly updated here, just a bunch of smaller bug fixes.

Player Hair

The Hair Cap system is now live thanks to Diogo, which means better looking hair, especially when not using the TSSAA anti-aliasing setting. The old hair had a floating piece of geometry that sat just above the head and body and simulated fine detail, which looked good in the top settings, but the visual quality massively dropped off when using lower settings. This detail has now been shifted on to the Skin material itself, letting us do detail like this fade that looks much more similar when using TSSAA and even no AA at all:

Because of the tech changes, all head, face and body hair has been totally reworked to accommodate. Body hair especially should look way better, close-up and at distance. No more weird mangey bits! I've also added some fuzz style layer to our hair, which helps to break up the feel a lot and make it look thicker and bushier. Hair colours and dyes now look a lot more natural. Another bonus of these updates is that hair lights better now, especially at extreme lighting angles. I'm sure many people have seen the hair go bright metallic orange at sunrise and sunset; this no longer happens.

I've taken some time fixing bugs, like body hair clipping through clothing and head hair completely disappearing when wearing certain hats. Now at a minimum you'll see your hair cap. I'm working on some more deforming morphs so we can eventually cover all headwear, especially for much used items like the Metal Face Mask that have some skins with a lot more transparency than the default item. These require a small code change so expect them next update.

Since finishing the new tech I've been making more head and facial styles so there should be quite a bit more variety out there. With every new hair item it will add to the pool of items, so your look will change as the pool increases.


The major focus this month has been mountable NPCs. A large portion of the AI of an NPC is disabled when mounted, like cover reasoning and positioning. They are not as chatty either. A mount point decides whether the seated NPC can wield a weapon, and will restrict their ability to look and aim.

Junkpile scientists are enabled by default this release. They should no longer hover slightly above the ground, and the scientists will be removed together with their beloved junkpile if it times out and sinks.

When scientists spawn, they will be invulnerable until they activate fully. If a player hits a scientist, their reaction time when the player comes into view is faster.

A lot of performance improvements and bug fixes has also been made across the board for the NPCs.

Monument Puzzles

Monument runs in general could be more compelling. Until now, we relied mainly on the tiering system (map zone placement) and pockets of radiation to scale accessibility to loot.

But what if monuments were interconnected? What if they could play a specific role in the wasteland? I have been working on ways to create a hierarchy throughout our monuments. Right now you have unlimited access to all our doors, in all buildings. In the future you will need various forms of access for different types of loot rooms. Here's an example:

You just looted a Blue Access card from a common scientist NPC at a junkpile. This card grants you access to a building in the trainyard, but without electricity the card reader on the wall won't work. You get electricity back on by replacing missing fuses in a fusebox with one you found earlier along the road. Now the door is operational and grants you access to an office room. In this place you find a decent amount of loot and an intriguing Red Access card...

Scientists Compound

Amidst the other larger things this month, I started to work away on a PVE oriented monument called 'Compound'. This monument is a hub where scientists regroup and keep peace and order. They also sell things through vending machines. We want it to look like an urban settlement that represents a portion of an older larger town. Scientists walled what they could afford to defend from the wasteland.

I currently have a functional greybox of the compound and we are moving towards producing final art for it in order to ship it in next month's update.

Sound Mix Finalization

I've finally finished up the big mix pass I've been working on. Hooray! Almost every sound in the game got tweaked in one way or another. Volumes are a lot more consistent across the board. Quite a few sounds that felt a bit too sharp when the volume was cranked have been smoothed out. Some older sounds got redesigned from scratch, and new sounds got added in a few places. The backend of the sound system got some nice workflow improvements and a few bug fixes too.

Everything should sound a little more full and polished and fit together a little more nicely now. I'm sure I'll end up making a few more adjustments after I play this weekend, and there's a handful of sounds I want to redesign still, but all in all I'm pretty happy with how this turned out.

Proper Water Reflections

Last month I replaced our water reflections with a temporary analytical solution, while I finished a new system for real-time baking of reflection probes. On this update, I finally rolled out the new code which gives us our original reflection quality at only a fraction of the cost.

Our reflections again show sun and moon detail, stars and even clouds while delivering a solid performance improvement over the temporary solution. You can see the sun coloring and intensity matching the sky properly and a proper partial Moon reflection:

To clarify, this solution is similar to what we had a few months ago, except environment reflection updates are much faster than the Unity built-in system we were using.

Foliage Wind Animation

Throughout the course of this month I've been helping Damian with the necessary changes and fixes to foliage shaders. The biggest challenge was revamping the old wind animation code and adding new features without breaking existing assets.

The procedural wind animation code had to support different wind speed and turbulence values, as well as various wind sources simultaneously, either global/directional or spherical/localized. For example, it would have to be possible for foliage like grass or trees to react to a helicopter landing and an explosion, or any other effects, simultaneously.

Water Shading Improvements

After noticing that our water shader was hard to tweak I made some changes to ensure that we can modify its params like any other physical-based material in our world. You can expect some improvements to water shading, as it may integrate the rest of the world slightly better.

Some changes were also to rivers, though less than I'd prefer, in order to eliminate stretching along the river flow and improve wave normals. Chromatic dispersion should be a lot more subtle now, which was making our rivers look oily. We'll definitely revisit river rendering in the near future.

Skin Specular Occlusion

This new feature started out as an experience but evolved into a very decent solution, ending up as part of our baseline Skin shader. By resorting to Bent Normal Maps, combined with regular Normal Maps and some shader magic, we were able to achieve very interesting results. Not only were we able to mask out impossible reflections that would otherwise be shadowed, we're also able to mitigate some of the specular aliasing and exaggerated highlights that are visible when using regular normals. Naturally we also added support for static Occlusion Maps, that also help darken some areas, for a more natural look.

Note how differently indirect lighting affects the neck area and how the specular occlusion helps below the chin and ears:

Please note this screenshot was taken using only ambient lighting. No direct lighting is being used.

While this option is now available in our skin materials, these improvements probably won't be in before next month because they require artist intervention.

A New Rule for Votes Thu, 12 Oct 2017 20:41 CEST
After two servers, all the servers of the same community have their votes ignored in the score.

If you have some questions about this, feel free to ask us directly with the ticket system :

This new scoring system is a first test and can evolve in the future, but one thing is sure : It was not fair to have multiple servers boosted by the same pool of players.]]>
End of Support for Legacy Servers Sun, 27 Aug 2017 14:37 CEST Rust Devblog 174 Fri, 25 Aug 2017 13:58 CEST

Bradley APC

Let me start this off by saying that it is not complete by any stretch of the imagination. It's going to have a bunch of bugs, especially with movement, and it doesn't have the right loot tables or damage or protection values. It's going to get stuck, and it's going to make bad decisions, and you'll probably find ways to exploit it. All that being said... it seems like it is ready enough for a trial by fire. I'll be watching every single bug video, and reading any reports posted on reddit and elsewhere. Please do your best to try and exploit it and let me know how it was done so I can improve the AI.

The loot tables are kind of slim right now due to the fact that I know it will be exploitable and I didn't want a bunch of free loot going into the economy.

The weapon systems are also not complete. It's missing its rocket pod and the side gun ports, but it does have the main cannon and coaxial machine gun active. It'll try its best to prioritize targets, and if you run away from it it'll try and search for you.

Not much else to be said. This was a lot of work and it's still not complete. Enjoy some of the media and I'll see you guys at the launch site.


Not much to report this week as I was way too busy with the APC. However, I did lower the horizontal recoil on the M92, so let me know how that plays out. The next step will be to polish the MP5 to get a baseline for how SMGs should function, as well as deciding on the best feeling pattern types for semi-auto weapons. Then we will roll it out to the remaining guns.

Server Gib Fix

There used to be an issue with server gibs (helicopter debris) that prevented people from being able to harvest them unless they were in some arbitrary "sweet spot". This is now resolved, and when the temperature has cooled off (no sizzling sound when hitting) you can harvest them from any position. This also applies to the new APC gibs.

Smoke Trails

Remember when a rocket was fired and the smoke trail disappeared as soon as the explosion happened? This is now fixed, and the game looks much better during raids and helicopter strafes. They'll stick around until they've completely faded out.


My work on the supermarket is coming to an end. This week I focused on setting up the scene to appear in the proc map, creating LOD and collision meshes and placing loot spawns. In addition, I polished the scene decor and added further damage to the supermarket floors and walls. With all that out of the way, all that is left is texturing the remaining newspaper stands, cash register and other store props. Since my work this week was mostly technical not much has changed visually since last week's devblog.

Gas Station

This week on the gas station I completed the final exterior and interior models for the main building and dressed the outside with a touch of overgrowth. What's remaining now is props work and polish. It looks like Damian's supermarket and this are on target for the next wipe cycle.

Garbage Collection Optimizations, Part 3

I made some huge progress on the GC optimizations this week. I've eliminated massive amounts of GC allocations from the networking backend and entity serialization that really hit us hard when entities were streaming in. I've also gone over dozens of commonly used utility methods that were causing GC allocations and optimized them one by one and eliminated the last remaining GC allocations from the effect recycling pipeline. Once that was done I tackled GC allocations from the foliage, renderer and collider batching systems and the foliage displacement system, which were particularly noticeable when moving around the world. I also continued with the elimination of GC allocations from string updates, which we're now doing a pretty good job with aside from the UI, and I took a stab at some remaining GC allocations from the skin application process, which now deals with the required material updates much more efficiently. Lastly, our internal memory pool is now prewarmed with some common class instances for better cache efficiency and less runtime memory allocations - which both helps with performance and makes debugging runtime GC allocations much easier.

The next big thing on my list is to optimize the paintable sign texture caching, which I'm hoping to get to next week. I'll probably have to move parts of this to native code in order to get it to perform well. Overall I estimate that I'll spend at least another week on these sorts of optimizations.

Material Memory Leak

While optimizing various things all over the code base I stumbled over a fairly significant material memory leak. The game would continuously leak materials whenever mining quarries, vending machines, flashlights, lasers and planter boxes were coming in and out of the networking distance. Needless to say, that's not a good thing. Thankfully it is now fixed, though we had to disable certain visuals that were causing the leaks until we find the time to rewrite the underlying code.

Sky Brightness

The sky isn't as bright anymore, big whoop.


This week I did a clean-up pass over all the systems I have been working on relating to general AI management and Navmesh, and in the process I got to improve on quite a few sub-systems, like how many Navmesh patches in a bake queue we generate async at a time. The last big piece of the puzzle related to the Navmesh Grid is linking the patches together. This is required for NPCs to be able to walk between patches of Navmesh, and it's a bit of a hassle to get it working well. When this is working properly, all the puzzle pieces should be in place for me to get back to Scientist behaviour.

The latest version of the Navmesh Grid has been merged to main, but it's not activated by default. If the Navmesh Grid is on, Scientists will spawn around monuments. This isn't working yet as intended, and is just for testing.

Rendering Performance

My week started and ended working on rendering optimization, some long overdue, across the board from CPU side material related bottlenecks to GPU overlay and post effects.

Total savings could range from 2 to 5 ms depending on the hardware combination. Overall, this will should translate into a decent FPS improvement. I've seen 8 to 12 fps improvement on my local test machines. The highest improvements were on lower CPU and GPU class hardware, and in cases where multiple effect overlays were active (e.g. hurt, cold, radiation).

Complete list of changes:

  • Fixed culling related runtime allocations
  • Fixed culling false positives
  • Fixed material related performance bottleneck (SetPassUncached)
  • Fixed large furnace lower LOD looking too dark
  • Fixed LOD transition popping in high external wall
  • Packed an additional 70 materials
  • Reduced texture footprint in some materials
  • Eliminated terrain splat texture related dependencies
  • Improved performance in materials using biome tinting
  • Improved overlay effect performance (e.g. water)
  • Improved performance for Tonemapping, FXAA, Sharpen, Vignette

Geiger Counter

The Geiger Counter materials are finished. All that I need to do now is the LODs and Unity Prefab setup, so it's ready for implementation. I enjoyed making this asset a lot, especially smaller details like the tags on the side and the top. Details like these that really bring an asset to life. Here are some images, and a spinny thing for you lot to spin. Enjoy!

Engine Sound System

I only had one non-vacation day this week (if you ever get a chance to go see a total solar eclipse, do it!), but I've continued working on the engine sound system today. At the moment I'm working on generating additional engine cycles for RPMs ranges that only have one or two cycles by slightly pitch shifting cycles that are close to the RPM we need to fill out. It's working pretty well so far, and if the last little bit of tweaking and testing goes well I'll be moving on to the rest of the sound design work on the tank shortly.

I also spent a little time hunting down and fixing a bug with effect recycling that was preventing the helicopter explosion sound from playing more than once.

August 24 2017
  • NEW

    Added Bradley APC to launch site


    Fixed culling false positives


    Fixed material related performance bottleneck


    Fixed large furnace lower LOD looking too dark


    Fixed LOD transition popping in high external wall


    Fixed a material memory leak


    Fixed ores missing partially broken stages on lower LODs


    Fixed only being able to harvest debris from certain angles


    Fixed smoke trails disappearing too soon after rocket explosion


    Improved performance for overlay effects (e.g. hurt, cold)


    Improved performance for Tone-mapping, FXAA, Sharpen and Vignette


    Updated multiple descriptions


    Paper map now despawn in 5 minutes down from 20 minutes


    Reduced sky brightness slightly


    Greatly reduced GC allocations throughout the game


    Optimized the internal memory pool


    M92 Horizontal recoil halved

Rust Devblog 160 Fri, 19 May 2017 16:54 CEST

Planner Leak

When AI was merged into main from pre-release it introduced a pretty big bug. We were checking out the dump files from a server and the 2nd highest entity count was invariably the planner entity. This is what is used when you go to deploy anything. How could this be? Well, it turned out that this bug has been in the game forever, but AI uncovered it for us. AI would eat food and seeds - seeds used the planner entity to figure out how they could be deployed. When the AI ate the seed, it just deleted the item which didn't properly clean up after itself, letting an entity leak each time. This also happened anytime two stackable, equippable items were merged in the world (e.g.: throwing bandages on each other), but as this happened so infrequently, we could not detect the bug. This is all fixed now.

Tl;dr entity counts on large servers should drop by about ~50,000, and you’ll see some memory usage reductions (after a wipe).

Shotgun Trap

I’ve added a new trap straight out of Concept Limbooo. This shotgun trap detects motion in front of it, and when it does it starts blasting homemade shells every second until it runs dry. You can place them on walls, ceilings, floors, etc. I’m excited to see how people use this for base defense moving forward. I’d eventually like to have actual pressure pads and stuff, but this should do for now. It’s worth noting that it is only triggered by people who are not authorized on your Tool Cupboard, similar to the flame turret. Enjoy!

Flame Turret Placement

Last wipe I had difficulty placing my flame turret in my airlock, so I changed it so you can make it hug the wall a little easier. Big whoop!

Invoke Optimizations

I moved over nearly all of the remaining Unity invokes to our optimized invoke handler. This generally eliminates overhead and makes our code more robust as I explained when I first added the system to the game. Nothing too exciting, but progress nonetheless.

Pickup Penalty

To prevent the abuse of the extended pickup mechanic on window bars and embrasures for unintended use cases I added a penalty when picking up those building pieces. They now lose half of their health whenever they’re picked up, and need to be repaired with the hammer after placing them again.

Decay Improvements

We want to rework decay to make it more intuitive and much more efficient at solving the problems it’s meant to solve. The first step for this was to optimize the decay computation on the server to lay the foundation for more complex decay behaviour in the future. Once this was done I enabled decay on all twig building blocks such that all parts that are left over from raids decay quickly within two hours, eliminating the need for the base owner to manually clean them up.

Floor Spikes

Floor spikes have been quite useless for a while, especially so after re-enabling twig raiding. I changed them so they now block foundation placement the same way barricades do. They’re still quite easy to destroy with metal tools, but can offer some protection for smaller bases and can be useful to block hiding spots around your base entrance. If they turn out to still be useless after this change we can adjust their health as needed with the next wiping update.

Rocket Factory Building

I continued work on the rocket factory building. I focused on finishing the ground mesh and did a dressing pass on the ground level. In addition, I have created a scaffolding around the rocket, polished the interior geometry, added damage to the walkways and began to playtest the layout. My next step for this area is to finalize all the paths throughout the levels, finish the jumping puzzles and add ladder access to open up different levels of the building.

Water Jug Sounds

I made a bunch of recordings for the water jug this week and have done most of the editing to get the final sounds ready to go in game. Should be finished next week!

Floor Grills

Floor grills have been rarely used since they offered little advantage over the normal building floors. To give them a purpose you can now build them closely above the large furnace as they allow for the needed air ventilation and therefore fulfill a specific purpose in the game.


I continued work on music this week, mostly working on polishing all of this stuff up now. I’ve got the remake of the classic theme set up in game, and although there are a few tweaks to make on the audio side still, it’s sounding pretty good so far. I’m particularly happy with how much smoother intensity changes feel with this one.

I was able to build the song up from much smaller audio clips because of the new playback system, so we’ll be able to save bit of disk space and memory too. The bassline, for example, is built up from 5 different 1 bar long clips now. In the previous system we would have needed 6 different clips and they’d all have to be 8 bars long, which would have been about 10x more audio data.

I’ve also started working on another song that I’m pretty hyped about so far and have spent a little more time fine tuning our other existing songs, particularly looking for spots where I can swap longer clips out for a handful of properly arranged shorter clips.

I’m getting pretty close to having this stuff wrapped up, but I think I want to sneak another new song or two in before I push it out. I’ll have previews of those up soon.

Scrap Pile

This week I finished off the LODs, gibs and prefabs for the revised dropbox that you saw last week. I also created the gibs for the single-shot gun trap, readying it for implementation. Then I moved onto a new asset: the Scrap Pile that Paul concepted. This is what you’ll now see when you break a barrel:

Player Preview Animations

Continuing with player anim feedback ideas. I went back to the player preview animations I concepted a while back. They now all have the required transitions to/from each state, as well as Unity animator states ready for implementation if/when it's desired.

Shading Revamp Progress

This week I went on to test and fix a bunch of integration issues introduced by the new physical-based shading. It's pretty much ready to deploy, but I decided to postpone it until after today's patch, so we can get a week's worth of player testing on Staging.

Below is a video showing off the new skin shader on the viewmodel hands. Please mind that some of the textures were tweaked by me and are still pending on a proper contribution from a real artist. Same goes for the player/worldmodel skins. Regardless, you'll be able to give it a spin tonight on Staging.

I also started building a new hair shader that I plan to unveil next week.

Melee Weapon Impacts

You know what sound I really hate? The salvaged icepick. Holy crap! I started working on polishing up the impact sounds for it this week. I took a piece of pipe from a speaker stand I’m not using and recorded some impacts with it. I ended up doing one set on concrete and another set on some packed down dirt.

The packed dirt kept the metal from ringing out really nicely without adding too much of its own character to the impact. I was careful not to strike at an angle and kick a bunch of dirt up, so there’s not really any debris sound, and it layers really nicely with our existing grass/sand/cloth/etc impacts.

A while back I did soft material impact variations for most of our melee weapons by editing the existing impacts, but the quality improvement from using separate recordings was pretty massive, so I’m having a go at re-recording other melee impacts in the same way.


  • add Added Shotgun Trap
  • fix Fixed distant see-through walls when using TSSAA or MB
  • fix Fixed AI “look rotation viewing vector is zero” error
  • fix Fixed Planner leak (50k entities saved on large servers)
  • fix Fixed some older item skins not working
  • upd Optimized building decay processing on the server
  • upd Decay now applies to all twig building blocks
  • upd Moved most remaining invokes to the optimized invoke handler
  • upd Can place floor grills and floor frames above large furnace
  • upd Floor spikes block foundation placement similar to barricades
  • upd Window bars and embrasures now store item condition
  • upd Window bars and embrasures lose half their health when picked up
  • upd Flame turrets can be placed closer to walls (viability in airlocks)
Rust Devblog 153 Fri, 24 Mar 2017 22:03 CET Binoculars

Shut your blinds! Binoculars have arrived! Not much needs to be said about these. You can find them in Purple Crates or craft them at a cost of 5 HQM and 1 Gear. The good thing about the Gear cost is if you don’t really want a pair you can recycle them and have a chance at retrieving the Gear. Right click to peer through the binoculars and Left click to cycle zoom levels. Enjoy!

Spinner Fixes

Some minor fixes to the Spinner. Firstly, I disabled occlusion on the spin sound so you’ll hear it through Chainlink Fences and Shop Fronts. Secondly, I fixed the issue preventing things from properly attaching to it. This means if you throw a Spear at it, the Spear will spin! So will bullet decals etc.

Map Fixes

A bug was introduced a few months ago where the map would not properly update its drawn sectors to other players due to an optimization. This is now fixed. Thanks, bawng.

Furnace Optimization

Furnaces have been being abused forever. Due to an oversight in the Furnace code (most) players quickly learned if they split the contents of the Furnace up into multiple stacks, each stack would cook separately, vastly increasing the performance of the Furnace. This is a bug and an exploit and I will be addressing it soon. The real reason I’m dealing with it now is because every time someone set a furnace up like this it would constantly be creating and destroying new entities as it threw Charcoal out into the world. This had an adverse affect on server performance, something we are looking into. So, for now, any time your Furnace spits something into the world it’ll turn off. This means you’ll lose a slot on the Furnace and Large Furnaces will suddenly seem far more attractive. More to come on this in the following weeks.

Crossbow Cost

I’ve removed the gear cost from the Crossbow. Let’s see if everyone bitches about this and I have to add 3x Tech Trash to the recipe next week.



Fuel Inventory

Objects that can hold fuel will now have a selection panel reflecting their contents. This panel can be used to load/unload the fuel.



Deployable Pickup

I’ve added the ability to pick up a bunch of items after they’ve been deployed.

  • Tuna Lights
  • Lanterns
  • Ceiling Lights
  • Flame Turrets
  • AutoTurrets

Due to the aforementioned fuel inventory, the light sources will simply have their inventory moved to the item. For the turrets, it will just attempt to move their contents into your inventory along with the item. As with decor deployables, you’ll need to have building access and have a Hammer equipped to pick these items up. I know this is sort of a weird mechanic, but it serves its purpose right now in preventing screw ups. We’ll have to come up with a “real” way to handle this soon.

Cost Reductions

The Holosight’s Tech Trash cost was reduced to 1, and the Silencer cost was reduced to 5 HQM. Maybe we’ll see a few more attachments these days? Oh and C4 requires one less Tech Trash too. I also reduced the cost of the Eoka, making it even cheaper to not craft. Enjoy!


I continued on my path to reduce frame rate drops and increase overall performance on the client. This week I added pooling support to a large number of client side entities, which greatly reduces stuttering when those entities are created. We’re now pooling nearly all common client side entities and the last remaining step is to optimize some of the lower level inefficiencies like network deserialization and network group management.

Next I optimized our runtime mesh building which is used by player colliders, building meshes, dynamic occluders and most server side colliders. As I mentioned before there are parts of mesh building that Unity forces us to do on the main thread, and I managed to reduce those costs down to around 0.1ms per frame even at peak times, which is a reduction by a factor of 10-20 depending on the task.

Workshop skins are still a bit of a performance concern, but I think I have an idea for how we can combat this. However, I might switch over to server side optimizations next since there appear to be some rather big areas of improvement that need to be dealt with on the high population servers.

Launch Site Grey Box

We’ve started work toward a new monument: a rocket launch site that’s fully equipped with the rocket, factory, office outbuildings, etc. The area will aim to provide a challenge to higher tier players, typically players who are into end-game content.



The type of loot spawns encountered should be higher tech than the rest of the game’s locations. We’re also trying to get a nice mix of indoor and outdoor areas to vary movement and player encounters.



On one end of the site is the rocket launch platform with its chute; on the other the factory where the rocket was manufactured and carried by a train to the platform. We want to offer interior segments inside the factory hangar and at least one office building. The launch platform already has an underground network, unlike previous monuments.


After finishing up on the Tier One Workbench I worked up a new asset: Binoculars! I managed to finish the model this week with LODs, so here’s an collage of images of the model, and as usual you can take a spin below!



I’ve made a start on the Tier Two Workbench, and will hopefully have images to follow by next week’s blog. Peace out till then!

Skin Cooldown Period

You can’t market your skins while they’re for sale in the item store anymore, which is usually about eight weeks after they’re initially made available.

This is something we’ve decided to try out after looking at the current system and talking to the skin authors. The issue has been that after the first week no-one buys their skins. So the whole system of increasing the skin prices over 2 months becomes useless.

Our hope ultimately is that this is more profitable for skin authors because this is their work. Our secondary hope is that when the skin leaves the store and is marketable, it retains or exceeds its original cost and is still profitable for people to market.

While we get that this might possibly “hurt” the people that have been buying skins to flip them in the relatively short term, we can’t encourage that behaviour. We’re trying to make sure that the item’s author is making the profit from it being sold, not the flip men.

AI Update

Unity is prepping to release 5.6 any time soon. Once it goes live and is stable we’ll be able to release the new AI system.

Right now the beta version has some UI bugs. If those are fixed and 5.6 is released properly, and we don’t have any more issues, it’ll be April 6th. If not, then it’ll be May 4th.

Clothing Standardisation

One issue I’m constantly running into when creating or updating armour and clothes is the fact that all our clothing items have quite drastic differences in terms of displacement. I touched on this briefly last week, but it means that layering items becomes a nightmare of clipping and floating where I have to accommodate for such a large range in offsets from the skin. I’m working on standardising some of these values a little, to minimise the clipping and floating as much as possible. It should also mean that complicated items like the heavy armour (or even the bone armour, but no promises as of yet) will be able to be equipped over clothing. You can check out a comparison of the floating and clipping below.

Viewmodel Animations

I went over the animations for the following weapons this week: AK47, M92, Spear, Sawn-off Shotgun, Double Barrel Shotgun. I tightened up some of the “floatiness” and made them feel more “chunky”, as well as fixed some clipping issues.



I also fixed a longstanding bug with the viewmodels clipping when the FOV setting was changed in the graphics options. The viewmodel now adjusts accordingly and there should be little to no clipping.

Footwear Specific Footsteps

Woohoo! This is done now! It ended up being a larger undertaking than I originally intended time wise, but I’m quite happy with how it all turned out so I think it was worth it. Hearing the light pats of your bare feet switch to clompy rubber when you pop a Hazmat Suit on feels great.

I may re-record a handful of the jump landing sounds, because some of the hard-soled shoe on hard surface jumps sound a little too sharp right now.

The code side of this is pretty minimal but it hasn’t been tested outside my local copy of Unity yet, so I’m going to hold off on pushing this out until next week just to be sure we don’t end up breaking something as important as footsteps.

World Model Skins

I’ve finished up fixing world models that were displaying skins incorrectly. As previously stated, in a couple of cases this was due to optimisation, and in the others these issues have been there since day one. We’re only now seeing issues due to finer details being placed into areas of the skin not utilized by our base textures. Going forward, we’re hoping to make models with these types of skinning considerations in mind to help we you create great content.


Bolt rifle world model re-created
Double barrel shotgun world model re-created
Revolver world model re-created
Fixed global anisotropic not forced with default config
Added batching support to foliage wind animation
Added player and animal ragdoll culling
Improved sleeper player culling
Fixed campfires sometimes hurting people even though they were not burning
Added client side entity pooling to a large number of common entities (performance)
Fixed climbing exploits that were using jump right after waking up
Fixed viewmodel bobbing looking weird since last week’s optimizations
Added instance position encoding to batched meshes (future optimizations)
Fixed plant skins sometimes being incorrect until the first network update was received
Optimized runtime mesh building (player colliders, building meshes, dynamic occluders)
Optimized server side player loot refresh
Spinner wheel sound no longer occludes
Fix for drawn maps not loading properly for other players
Lowered cost of Netting
Stuck objects/decals on spinner actually spin
Furnaces and Campfires will turn off if they overflow once (server perf)
Added Binoculars - right click to look, left click to cycle zoom levels
Removed gear cost from crossbow - but costs more wood/frags
Removed green t-shirt spawn from purple box
Lanterns/Candle Hats/ Miner hats now have a fuel inventory
Can extract fuel from Miner/Candle hats
Can pick up tuna lights
Can pick up lanterns
Can pick up ceiling lights
Can pick up flame turrets
Can pick up autoturrets
Holosight tech trash reduced to 1
C4 tech trash reduced to 2
Muzzlebrake has higher durability
Muzzlebrake further reduces recoil
Silencer cost reduced to 5 HQM
Cooked pork icon is darker
Rust Devblog 146 Sat, 04 Feb 2017 13:27 CET

Lots of changes this week: we’ve added Flame Turrets and Tuna Can Lamps, most ammo now stacks to 128, previously visited servers should load significantly faster, rocks can now spawn with a previously chosen skin, and lots more. This patch will wipe all the servers.


Video Update

Concept Limbo

For the next few weeks I’ll be going through Shadowfrax’s Concept Limbooo and implementing what I consider low hanging fruit that was pushed aside for other, more important, reasons. I figure if I spend some time on this everyone will have a bunch of new toys to play with, rather than weeks of bugfixes and minor balance changes.

Wall Lamps

Pretty self explanatory, and the people over at reddit cried about this a lot for some reason. Either way here you go:

Hopefully they don’t tank your FPS and I won’t have to spend all next week removing them.

Flame Turret

I had a lot of fun with this guy. It’s an area denial trap that uses Low Grade Fuel as ammunition. You’re going to want to place it around corners throughout your base to slow down potential raiders. When triggered, they will spray flames for 5 seconds, inhibiting player movement and causing damage. Do not place these inside wooden structures. We’re also doing something a little different with this turret as an experiment: instead of authorizing with it, instead it won’t attack people with Building Privileges. If you really want to let someone into your base just take the fuel out for now. Eventually this should work with pressure pads and stuff like that, but let’s just see how this goes. Check it out:

It’s probably OP; it’s possibly UP; and it probably lags the server to hell. I’ll fix any of these issues if they come up, though.

Radiation Changes

I had this little bit of code that let a tiny amount of radiation always leak through clothing. This was annoying in practice because even in a Radsuit you had to spam bandages. I think in the future I will just have radiation damage the clothing items instead if we want to limit how long you can spend in a Radtown when fully protected.

Building Privilege Light Restrictions

I know it’s magic, but right now I don’t care: I hated how absolutely no-one designed a base that had a ceiling light or a lantern or anything like outside, because someone would just run up and steal the Low Grade Fuel in 5 seconds. Now you can only access the Ceiling Light, Wall Lamp, and Lantern if you have Building Privileges. This may change in the future, but let’s try it out for now.

Water Filling Changes

You can now only fill up water containers from the tap part of a Water Barrel or Water Catcher. There’s also a really bad particle effect to accompany it!

Ladder Hatch Changes

You can no longer spam rocks at the ‘weak’ side of a Ladder Hatch. Sorry, but this was stupid. A hatch is now completely equivalent to a Sheet Metal Door in all respects, and neither are vulnerable to being broken down by using 347 rocks on them.

Planting Changes

I’ve modified things so that plants take damage and can be chopped down. They also stick around a lot longer when they are dead, so that you have a chance to see your shitty dead crop that you neglected instead of an empty planter box. You’ll also require less trips with a bucket to completely saturate the soil of planter boxes. More work needs to be done on planting, but I’ve given it a rest to implement some other things…

Ammo Stacks

Most ammo stacks to 128 now.

Signage Cost Reductions

Wow! A large banner used to cost over 750 Metal Frags, Wood, and Cloth. No wonder I haven’t seen one of these crafted in forever. Virtually all the exotic signs have had their costs reduced to ⅓ or ¼ what they were.

Arrow Trails

The Arrow trails were using the wrong shader and did not take lighting information into account. This meant that the trails were bright white, even in the dead of night, making stealth operations very difficult. This has since been fixed.

Stripped Ownership

I stripped the ownership code out this week. I know: you liked it, you want it back, it was fun to see the origins of an item; but it was adding unnecessary overhead to the whole item system. We can look at storing an item’s creator at some point — I can see some kind of value in that — but I’ll leave that up to Helk.

Player Model Fixes

The player model’s new angles weren’t updating when the player was standing still. This meant that the player could be looking in completely different direction and you wouldn’t know until they attacked. This is fixed now.

The player’s lower half is now a dead zone, so the top half of the body can rotate within that dead zone and the bottom half will stay still, until the angles get uncomfortable and the legs will start to spin around. This looks a bit less robotic than the whole model spinning around on the spot.

I manipulated the player’s spine slightly, to avoid looking so hunched over when aiming down slightly. When looking up, the player’s upper spine bends more when aiming down the lower spine comes into play.

Skin Changes

I changed how we apply skins. The old way was dumb, and I can’t even be bothered to explain it. Long story short: the new way means we can better define which objects are skinnable, and which materials are to be replaced. This means that we can make more items available for skinning.

While I was in the zone, I managed to get a few long requested features done: Quick Craft will now craft items with the last chosen skin. Crafting queue shows items using the chosen skin. Player’s will spawn with a skinned rock if they chose one previously.

Win32 Errors

If you’re on a 32bit version of Windows, you probably have bigger problems in your life than not being able to play Rust, but this week I investigated and found a problem with our Steamworks implementation when launching on 32bit Windows.

You should now be able to launch properly. There’s not a lot of you guys left, but we’ve got your back.

Modular Pipes

I’ve been working on a set of modular pipes, electric installations, air ducts, valves, gauges and so on. Some of them were shown in the last week update on the bunkers, but they were just rough grey boxes. The idea is to create a bunch of variations, including straight, curved and broken pipes and place them inside existing interiors to add a bit more depth and interest, meaning you will spend less time staring at empty walls when exploring. The highpoly and bakes are finished, but I’m still working on texturing and setting up all variants.

In addition, I spent some time this week helping Diogo with occluder meshes for construction deployables.



Loading Times

The first iteration of the world serialization system is now live. This means the world is generated and cached the first time you join a server. Consecutive joins can then simply load the world from the cache. This means you should see vastly reduced loading times. Here’s a comparison.

Server Physics Crash

Alistair and I are still investigating the server physics crash. Since all servers wipe today it shouldn’t be a massive problem for at least another week, but so far we haven’t found a definite answer to where this is coming from. We’re essentially seeing a really random low level server crash in Unity’s physics system when there are somewhat many colliders and at least one rigidbody in the world. I’ve also contacted Unity and we’re trying get this solved as soon as possible, either in a Unity update or by finding a workaround on our end.

Physics Optimization

While investigating the physics crash I found some physics inefficiencies and optimized them as needed. The server is now using vastly fewer rigidbodies as I removed all rigidbodies from ceiling lights and the client does a better job at culling those rigidbodies in the distance.

Server Load Entity Leak

Another thing I found while investigating the crash was a small entity leak that occurred whenever the server loaded a save. This only concerned two entities on every server start, but since many community servers do daily restarts and those entities are networked to the client it’s still good that we found and fixed it.

Combat Log ID

I made the combat log more useful by adding a unique ID for both the attacker and the target. This makes it much easier tell players apart in group engagements.



Building Downgrade Exploit

In the earliest days of the hammer tool, you were allowed to downgrade building blocks while in your own building privilege. This was quickly removed as it opened up exploits when you took over someone’s cupboard. However, only the client side code was updated. Naturally once hackers found out they added the option to downgrade building blocks when inside your own building privilege. This is now fixed.

Cave Ambience/Reverb

I added ambience to caves this week. I did a lot of the design for this a while back, but it’s been tweaked a bit and actually implemented now. The ambience system is aware of the environment volumes that we use to darken ambient lighting underground now, so we’re also using those to stop things like birds from playing in the caves.

I also set up a way for us to store reverb settings in a centralized place, and did a pass over the reverb in caves.

Deployable Placement Sounds

I’ve started a polish pass over deployable placement sounds this week, and started working on sounds for some objects that are missing them still (locks, water purifier, etc).

Heavy Plate Armour

I’ve finished up the baking and texturing of the heavy plate armour added a bunch of extra plating in the legs to make it feel a little bulkier. Other than a final texturing pass, I’m ready to get it LODded, rigged and to whip up some world models.



Player Animations

I redid a bunch of third-person animations so they accurately display the direction the player is actually facing. I also made new animations for when the player is aiming down the sights. There is now a noticeable difference between the two states, making it easier to tell if other players are aiming at you or just hip firing. I also redid a bunch of reload and deploy animations to better match their viewmodel counterparts. I managed to do a lot of weapons this week but there’s still a lot more to go, so it’ll probably be another couple weeks before I have all of the weapons animating exactly as they should.

World Model Optimisation

Work continues on the long list of weapons. There’s also been clean-up on the prefab side (strange connections and values) which has made this task a little more time consuming. We’ve settled on budgets that hopefully retain quality but help performance. All models have three LODs, the highest detail being 4-6k triangles, the lowest being 100.

Metal Chestplate Skinning

The chestplate has now been updated to remove the elastic/stretchyness that’s been around for so long.


Fixed player model angles not always being broadcast properly
Player models standing rotation have a 80 degree dead zone
Added player ladder animations
Fixed player model feet slipping on jog/run animations
Fixed player model hitching when changing between looking up and down
Player models look less hunched
Fixed steam startup errors on Win32
Removed redundant ownership system
Fixed pumpkin helmet getting culled too early
Optimized console system
Quickcraft uses last chosen skin
Double Barrel Shotgun is skinnable
Satchel Charge is skinnable
Spawn with rock skinned to previously chosen skin
Icons in craft queue use skin icon
Steam inventory resources (like cloth) are stacked
Hammer guide is blue instead of red
Eoka is skinnable
Player skulls are named after the player they're from
Fixed orientation on several 3rd person animations
Ambience system distinguishes between environment types (underground)
Added Cave ambience
Added a way to store reverb settings in a central place
Polished reverb in natural caves
Minor mix tweaks
Torch world model & prefab optimisation
Salvaged sword world model & prefab optimisation
Mace world model & prefab optimisation
Salvaged icepick world model & prefab optimisation
Thompson world model & prefab optimisation
Double barrel shotgun world model & prefab optimisation
Satchel charge world model & prefab optimisation
Salvaged axe world model & prefab optimisation
Semi-auto pistol world model & prefab optimisation
Metal chestplate skinning updates
Fixed weapons culling too early when thrown
Optimized client side rigidbody distance culling of ceiling lights
Fixed duplicate community and resource deposit entities in saves
Removed ceiling light rigidbodies from the server
Added timescale and gravity server convars
Added corpses, events and dropitems server convars
Added respawn_groups and respawn_populations server convars
Fixed building block downgrade exploit when inside building privilege
Added missing physic materials to various junkpile assets
Added unique ID of attacker and target to combat log
Added world caching (vastly reduced loading times)
Added world.cache convar (toggles caching)
Reduced serialization overhead from harbors prefabs
Added collider state to dump files
Removed 60 second suicide time limitation for admins/developers
Disabled shell protection for ladder hatch
Ladder hatch now identical to Sheet Metal Door
Ladder hatch/sheet metal doors no longer vulnerable to rock spam
Thrown water now equally distributed payload between objects
Water Planters require less trips to saturate their soil
Can only fill buckets/bottles from the tap portion of Water Barrels/Catchers
Cleaver does slightly more damage and has a higher attack radius
Minor constant Radiation Damage even though fully protected removed
Added Wall Lamps
Light Sources can only be looted/turned on/off if the player can build in that area
Most Ammo stacks to 128
Bone armor cost reduction
Can now place lanterns on small boxes
Dead plants stay around longer
Can chop down plants
Drastically reduced cost of exotic signage
Added Flame Turret
Rust Devblog 140 Fri, 16 Dec 2016 23:01 CET

Planters, Santa, and more.


Video Update

Farming 1.5

I redid some aspects of farming, but we’re not all the way there yet. This patch you will notice that we have added Planter Boxes to the game. They’ll come in both a small and large variety, though only large made it into this patch, and can be placed on the ground or inside buildings. They have easy to use placement guides for plants, so you can sow seeds at their optimal distance. They will also make plants grow 3x faster than if they were placed on the ground outside! Also, all plants must now be placed at least a foot away from each other. Next patch I’ll make it so plants get a bonus from being watered and an even greater bonus from the usage of ceiling lights above them. Seeds also have a small sapling guide to help you visualize where your plants will grow. Enjoy!

Holiday Content Enabled!

Happy Holidays everyone! We’ve re-enabled the holiday content! For those of you who missed it last year, here’s how it works: every day in game day you’ll hear some jingling bells and a Gift Box or two will appear not too far from your current position. Run outside and smash them to retrieve presents! These presents can be unwrapped immediately for something small, or collected and upgraded to larger ones for a chance at a better gift. If you’re lucky, you’ll find a stocking. Hang it by a campfire and the next time you hear the jingle bells ring your stockings will be stuffed with goodies!

This year I’ve made some modifications so that stockings will only refill if they are empty, and each refill costs it 10% of its health until it’s destroyed. Have fun everyone!

Decal Culling

The caves added a lot of static projected decals to the world and unfortunately none of them were being culled with the rest of the caves. This had a huge impact on performance, especially on servers that were using bigger maps. I added culling scripts to all of those decals to address those issues. The fix already went live in a small update after last week’s devblog.

Exploit Fixes

I’m continuing my efforts to fix exploits and hacks. I’m aiming to get to a point where we have server side checks in place for all weapon functionality before the holidays.

This week I fixed some minor outstanding issues with the server side line-of-sight verification, added verified periodic position updates for projectiles, and addressed some projectile ricochet verification issues. I also tracked down a building exploit inside the natural caves that was allowing people to build inside some of the cave walls.

Updated Santa Hat

The old Santa hat was really terrible, so I spent an evening making a new one so you can spread your festive cheer in style. Or murder people wearing it, whatever.

Bear Rework

I’ve started reworking some of the animals in preparation for the updated AI. There’s been talk about looking at some of the animations, so I want to make sure I can get some blockouts going early on, so that any potential adjustments to the rig can be done before a whole new load of animations are done.

Here’s where the bear is right now. It’s still just a blockout, but it’ll mostly be covered in fur (which is a whole challenge in itself) so I’ll be mainly focusing on detailing the face and paws going forward.

Dynamic Occlusion Culling

It’s long been known that Rust has poor visibility culling. The problem is mostly because we can’t use Unity’s own occlusion system simply due to the fact that our maps are procedurally generated. However, there are some solutions out there that work with dynamically generated worlds, and I’ve been working on implementing such a system.

The new occlusion culling recognizes occluders, like terrain, and allows for fully dynamic occludees. The first version of the system just landed on Prerelease and can be toggable using the console command “culling.enabled 1”. Please note that it’s not improving performance just yet as we’re still testing and validating results. Do expect improvements over the coming days, however.

The image below shows how the system working on our procedurally placed rocks and cliffs:

On the bottom left you can see our current distance-based culling, while on the bottom right you can see the new system working that can cull objects which are not within the camera view or are occluded by terrain.

Rendering Optimizations

We’ve been getting a lot of reports of poor performance. We’re very aware of the issue and working hard to improve it. I’ve made a couple of changes this week to help improve the situation:

  • Re-enabled Unity’s built-in dynamic batching
  • Optimized deferred mesh decal visibility culling

Nuked Virtual Texturing

You may notice that the virtual texturing performance option is gone this week. Terrain shader optimizations, in the past couple of months, have made the regular shader efficient enough to make virtual texturing not worth the runtime cost. We also save development and maintenance time that will be useful for other, more critical, features.

Grenade Viewmodel Animations

This week I’ve been chasing a few bugs. I’ve also set up both the F1 and Beancan grenades to play specific animations when dropping or attaching. It still needs some code love so you can actually see this in game, but the animations and state setup is all in place. Here’s a video until then:




I’ve been continuing with the truck model shown in the last update. I spent some time earlier this week creating a simple interior. Since then I’ve been working on the lowpoly and preparing the mesh for baking. Once that’s done I will begin texturing.

Harbor Level Design

After completing most of our prop art last week, I moved on to completing the harbor levels. While Harbor_1 is almost ready, Harbor_2 still needs quite a bit of work to reach the same stage. I have been working toward that over the last few days.


I’ve just been plugging away at the second pass over animal sounds this week, and working on music a bit when I need a break from that. I’m really happy with how the updated animal sounds are coming along so far!


Fixed water occasionally not visible when exiting caves
Fixed billboard shadows in OSX/GL
Added culling to projected cave decals (performance)
Fixed some minor server side line of sight verification issues
Fixed pumpkin and santa hat being invisible
Fixed partially harvested ore nodes showing up as fully intact
Fixed cave building exploits
Reduced networking MTU size from 1430 to 1400
Added periodic position updates with server side verification to projectiles
Fixed projectile ricochet verification issues
Fixed parts of the bear corpse not being harvestable
Tweaked weapon reload verification
Fixed endless vm bandage bug
Fixed vm flamethrower flickering hand bug
Added clothing world models
Updated santa hat art
Added Large Planter
All plants must be placed atleast 0.5m of eachother
Plants now have a placement guide
Enabled Holiday Content
Rust Devblog 134 Fri, 04 Nov 2016 13:50 CET

XP is out, components are in, and radiation is back.


Component System

The component system is now live. This represents a fundamental shift into how Rust will be played. The XP system is gone. Congratulations to everyone who bitched and complained about how awful it was. You’ve succeeded! Just kidding. We knew the XP system was shitty about a week after releasing it, and funnily enough, not for the reasons everyone was attempting to illustrate.

The XP system mainly sucked because it completely changed the feel of Rust as a sandbox. It was no longer about new encounters and enjoying your time in the game world, but instead about how to level up as quickly as you can. And when that finally happened, the game immediately became boring. It was also unsustainable going forward. New items we haven’t even thought of yet would need to be hacked into certain levels, which would cause a never ending balance nightmare and item bloat (it was already ridiculous when you’d reach a level and have 12 things unlocked). Eventually we’d like to never have to wipe and just have decay and resource management take care of the server, and XP was not compatible with this goal without all kinds of workarounds and hacks forced in like some sort of prestige system. And lastly, it removed the “making lemonade out of lemons” feel Rust had, where you’d stumble across a bucket helmet and crossbow blueprint and that would be your load-out for the foreseeable future.

tl;dr: Blueprints were too random, XP was too linear and took Rust in the wrong direction.

So I’ve done my best to combine the best of both worlds with the component system. Here’s what you need to know:

  • No more locked items, no more blueprints, everything craftable from the start
  • Items beyond basics (bow/burlap/furnace/eoka etc) require some kind of component
  • Components are items which are uncraftable and only found in the world
  • Radiation is back (albeit in a minor fashion)
  • North/South division is NOT a thing (yet)

When you first spawn in, you’ll be able to play the game like you have in the past: getting a spear and a bow, setting up a 1×1, etc. When you’re ready to move on to bigger and better things, you’re going to have to search for components for more complicated items. This means going to Radtowns, barrels on the roadside, or, if you’re lucky, encountering the newly added junkpiles while harvesting resources. Virtually all of the components you find are going to be used in a great deal of recipes, meaning you’ll have to make choices. Do I make a better axe or a sword? Do I make a crossbow or a ladder hatch? Combat armor or radiation protection? Bolt-action or AK? I’m hoping this proves to be a sort of best of both worlds scenario. where you can go out and keep stockpiling components for your linear progression, but also based on the components you’re finding have a bit of emergent gameplay based on what you decide to do with them.

I feel it necessary to point out that, even though we’re launching this onto Main, it’s still a work-in-progress. Not all components are implemented yet, and there’s going to be too much or too little loot. Radiation will be unbalanced, though I’m sure for some it’ll be perfectly balanced. The game will be a grind, or maybe it won’t? Maybe clans will hoard everything and we’ll have to add North/South after all? Maybe the penalty from dying will feel too much as there won’t be any progression between deaths/raids. We’ve done our best to mitigate all of these issues preemptively, but things change after 20,000 people play it vs the feedback we get from 200. Just know that we’re quite obviously going to be monitoring the responses, playing the game ourselves, and adjusting everything until it’s perfect. I sincerely hope this is the last time we have to revisit item distribution so we can move on to adding more fun or desperately needed things to the game, like rideable horses, or pooping.

Recycler Refresher

Now that we’re merged into main I feel it necessary to repost the information about the Recycler as it’s a pretty important feature with this new component system.

Image via Rustafied.

You can find Recyclers at most Radtowns. Throw any item into it and turn it on and it’ll go to work chopping it up. After its complete, you will receive about 50% of the items constituent components/resources, e.g., if you throw some armor inside you’ll get cloth; if you throw something like sheet metal or a propane tank in, you’ll get metal fragments.


Radiation has been reprogrammed from the ground up and works entirely differently than it used to. However, I’ve had little time to test my implementation, so I stayed on the conservative side until we have time to make some procgen adjustments. Basically each radiation zone specifies a radiation level from Minor, Low, Medium, High. These correspond to a RadPerSec value (2, 10, 25, 45).

The Radiation value from your clothing indicates the RadPerSec subtracted from your exposure. So, if you are in a Low radiation zone (10 rads per sec) and you have radiation protection of 8, you’ll receive 2 rads per second. All you need to do is ensure your radiation protection from your armor/clothing is higher than the zone you are entering and you’re good to go. Here is an example of the kind of things you’d need to wear to survive in some of the Radtowns (low/medium)


In addition, radiation no longer increases to its maximum along a linear path towards the center, but rather is its maximum value for the whole radius, minus a falloff range at the outer edges. This means we have more radiation coverage for an area and it can get dangerous very quickly, while still letting players probe the outer boundaries. As before, your radiation exposure will be indicated by a geiger counter sound, and you’ll know immediately if you aren’t protected enough.

I haven’t bothered to implement any High radiation areas yet in case it somehow breaks the game, but if you go into a radzone unprotected you’re basically screwed. After taking 100 Rads you lose the ability to sprint, and radiation deals damage much quicker than it used to. It should be impossible to do naked Radtown runs now. You’ll need to commit some armor resources to it.

I’ve also added Radiation Pill spawns in the food boxes you sometimes find around monuments, but I’ve reduced their effectiveness to -25 rads. They’ll also eat away at your hydration, so ensure you’re carrying water if you plan to take them!

I’ll observe how this is received over the next while and hopefully when we can ensure procgen always spawns at least one of each tier of monument, we can amp up the radiation significantly. I’ll also take a look at ensuring cold/hot zones are far more brutal, making it so you need to dress for the occasion in those zones as well.

Junk Piles

When adding the component system I thought it might be a good idea to bring back some of that fortune and reward for exploring, I had our artists do some concept art for junk piles.

Meh, close enough!


Art takes time so please don’t laugh at my programmer art cobbled together from other assets. Hopefully it’s passable until we get real versions made.

Here’s how they work: if you go exploring, you will encounter them in fields, forests, under powerlines, that sort of thing. The contents are procedural, so you’ll find anywhere from 1-4 barrels and if you’re lucky, a crate. One thing I’d like to do is add a similar system as sort of harvestable decor inside Radtown buildings. Eventually I’d also like to replace the ‘barrels’ with actual components and junk you can rip out of the pile. Either way people seem to enjoy these so far so we’ll keep improving the system.

Loot Scaling

Now that loot is so integral to the core of Rust, I realized we may have a problem on servers such as Rustafied who boast 400 slots, where there might not be enough loot to go around. I asked André to look into this and he’s added loot scaling with a few server convars to control how it works:

spawn.player_base (default 100)
spawn.player_scale (default 2)

With these default settings, with up to 100 players, nothing changes, however when players increase beyond 100, things start respawning quicker so that when it reaches 200 players, the respawn time is halved. Fingers crossed!

Performance Issues

There appears to be a bizarre performance issue affecting some users, which looks like this:

Framerate appears good, but the game is sluggish and pauses intermittently. If this happens to you please press F7 and send us a report, mention that you’re experiencing the same issue highlighted in the devblog. This will automatically send us your system report so we’ll have an easier time diagnosing it.

This issue is not present in the DirectX 9 version, so if this happens to you feel free to relaunch selecting that option (but F7 us first!).

Melee + Tool Changes

Melee in Rust sucks. We know this and when we get time we’ll work on improving it. For now, I’ve increased the damage of most melee weapons by about 30-40%, so let’s see how this plays out

I’ve also made the salvaged tools require components and gather about 30% more than they used to, making them far better than the pickaxe/hatchet.

Map Fog of War

Maps no longer have fog of war. Craft one and you’ll be able to see the whole map. This should hopefully make them a lot more useful, and a lot more common.


The new Workshop is available in the main menu. Click the button and explore what’s out there. We’re working with Valve to get a few things working, so if something is broken then that’s probably why.

We have an issue/request section on the RustWorkshop repo on Github, so if you find any problems please check here.


The way we approve and ship skins is different now. We download them from Workshop on demand. This allows skin authors to tweak them after they’ve gone live, removing the burden from us and putting them in complete control. This has other advantages to becoming more moddable. In theory server mods could force unapproved Workshop skins on certain objects. I’m hoping this opens the door to us becoming more moddable in the future. This also means we can add new skins to the game without actually releasing an update.

We’ve added some of the skins created with the new system during pre-release to the store page, expect a lot more in the future.

All the attention on the skin stuff might seem like it’s motivated by our greed. I want to explain our motivation here: compared to how much we make selling the game, skins don’t make that much money for us. It’s not insignificant, but it’s not company changing. Our Workshop authors,however, have made over $250,000 from their skins sales since we started doing this. I think back to when I was 20, how much a cheque for $2000 would change my life, especially if it was earned by doing something that I enjoyed and wanted to be a bigger part of.

And that’s the big motivation behind making it more accessible for more of the community, encouraging their contributions, their efforts, giving people new career options and aspiration

Hazmat Suit

I’ve all but finished texturing the Hazmat Suit. I’d like to tweak a few things on the texturing still, I think it’d benefit from having a bunch of decals for example, but those types of things I can add after I’ve skinned and LOD-ed this guy. I’ll be moving onto skinning and LODing today, and setting the suit up in-game next week so it’s reasonable to expect it in next week’s patch.

The main suit will be setup to accommodate any colour variations we might want, so I’ve included a few examples of how that might look.


Networking Fixes

I’m still working on overhauling parts of our networking backend to make things more robust and ultimately more optimized in terms of memory allocations and network traffic. While a couple more smaller fixes related to network group subscriptions are going live this week, the biggest chunk will start testing on the staging servers next week since I thought it would be smart not to add something like this with a big gameplay content update.

Prefab Pooling 2.0

I optimized some inefficiencies in our prefab pooling system and added pooling support to the building conditional models and our renderer batching, which should help reduce framerate drops when entities are streaming in. We also started testing the new optimized prefab pooling mode that will help us work around a huge chunk of internal Unity overhead related to game object activation and deactivation. There are still some outstanding tasks, but I’m hoping to enable it for everyone next week.

Satchel Charge Viewmodel

This week I’ve been working on a viewmodel for the satchel charge. As the code it uses effects a couple of other deployables (and I’ve had to add to it) this won’t be live until the others are playing ball with the new code.



Graphics Performance – Part 4

Took a break from my current ongoing tasks to work on some optimizations due to high demand. Most of my focus this week has been rendering where there’s still a huge margin for improvement. Had a few ideas during the weekend that panned out better than expected.

  • Improved water rendering and culling
  • Minor improvement to deferred lighting
  • Optimized terrain and terrain-blended rock/cliff shaders; now 2x faster

The terrain optimizations are hard to quantify, but on my test machine (GTX 960) it can save up to 2-4 ms per frame depending on resolution, anisotropic and parallax settings. Most notably, setting anisotropic sampling to 4-8 has barely an impact now.

Hapis Island

The Hapis Island tunnels and Radtowns have seen some changes. Likewise, a few regions that felt a bit too barren have been fleshed out some more.

Harbor Update

We started the production of what’s needed for the harbors. We have a few sets done: the dock walls, mooring bollards. We’re now working on the tug boats and the dock crane as well. As most of the progress goes towards the bigger picture, we’ll show you some of it when there’s more done rather than individual props. Stay tuned!

Beretta M92 Pistol

Helk and I discussed the need for a high capacity pistol in the Rust arsenal, so we decided upon this bad boy. It’s a Beretta M92 pistol. This is the low poly model, and I haven’t gotten around to doing the smoothing groups so please excuse the jagged polygon look.

Sound Occlusion

Sound occlusion is on by default now! In case you forgot, this means that some sounds like campfires will be muffled if they don’t have a clear line of sight… er… hearing to you. It provides a nice bit of sonic separation between the inside and outside of your bases.


I’ve been working on some new hitmarker sounds this week, which aren’t in yet. I’ve done a few versions that get more weighty and brutal/crunchy as they progress so we can try out different hitmarkers based on how much damage you do. A shot in the hand would be a light click and a shot to the neck a nice crunchy thump. Some of the source material for this came from recording screws and bolts being shot at various pieces of cloth and leather with a slingshot.

I’ve also added something to allow us to disable melee hitmarkers on objects, which means no more gnarliness when you’re smashing barrels.

Other Sound Stuff

Unique silenced shots for the LR300 and MP5 are in now, along with adjusted bullet flybys. The flybys have a sweet, supersonic crack now, which I think makes them a lot more intimidating.

I’ve been working on placement sounds for deployable building parts this week, and I’ve also started taking some of the deployable sounds we added last week, creating inventory UI sounds to match (out of the same source recordings).

I’ve done a little bit of small polish this week too from a list I built up while playing last weekend.



Added new lighthouses to Hapis Island
Added a new radtown to Hapis Island
Changed the Hapis Island tunnels to mineshaft networks
Fixed player eyes looking glossed over
Fixed players not blinking
Fixed players not looking around
Added integrated workshop
Maps no longer have fog of war
Fixed clothing backfaces having weird lighting
Added collared shirt
Added tanktop
Added shorts
Sound occlusion enabled by default
No more hitmarkers when meleeing barrels
Added silenced lr300 and mp5 gunshots
Updated bullet flyby sounds
Misc minor sound polish
Improved water rendering and culling
Optimized terrain and terrain-blended rock/cliff shaders
Fixed incorrect network group subscriptions of players before spawn
Disabled a few irrelevant warnings for non-developers
Optimized prefab pooling (more to come next week)
Added prefab pooling to building conditional models
Added prefab pooling to renderer batching
Spawn group respawn rates are now scaled with the player count
Disabled rain until we can re-enable its particle collisions
Removed XP System
Added Component System
Added Recycler
Added Junkpiles
Added Radiation
Added loot scaling
Rust Devblog 133 Fri, 28 Oct 2016 19:03 CEST

The first look at the new harbour, a step closer to the new component system, and more.


Component Update (Prerelease)

Okay, that’s it! All the items in the game that I feel should require components now have them! I’ve tried to do a decent balance pass on them as well. I’ve also finally changed all of the drop tables so that you will no longer find completed items, only components or resources from barrels and Radtown crates. You’ll still find completed items from airdrops. This really makes components feel very valuable and rare, providing a fresh and fun experience.

Aside from adding radiation back, this whole next week is going to be about balance so when we push it out it’s fun for everyone and we aren’t encountering zero day issues. So please opt in to the prerelease branch and give it a shot. I’ll also be checking reddit periodically and listening to feedback there.

Harbor Design Phase

We’ve started the work on two medium sized harbors. The idea is to offer an easier place to traverse for fresh spawns, where they can find loot for early game crafting, without the constant clash against equipped players. That also means no sniper’s nests in here, so buildings that usually grant you access to those floors won’t.

Harbor 1

This one is a condensed version of the concept art we started from. The idea is three piers with two pockets of interest on land, and one pocket spread on the ocean across barges and tug boats.

Harbor 2

The second harbor features largely flat terrain enclosed by cliffs on the back. The area is is a maze of shipping containers you’ll be able to explore for loot, or hide in if things get too tense for your fresh naked.

All that you see today is obviously work in progress still, and we’re still refining layouts. As you can see there’s a lot of greyboxed art present, we have a pretty decent list of assets left to produce, and we estimate another month and half before these hit main. We’re going to try to minimize the amount of untextured assets that make it to main when we patch it in. We’ll keep you posted with our progress as time goes on as usual.

Ambient Light Volumes

You may have noticed that the lighting inside buildings, caves and sewers was much brighter than in the screenshots our artists usually post in their devblog sections. This was caused by a regression that broke our dynamic ambient light darkening from buildings, rocks and environment volumes. This is now fixed, so you will once again see darker building interiors and close to pitch black sewer systems, just like our artists intended them to appear.

Memory Usage

Every Rust server owner is probably aware of the fact that entities are using a lot of server memory right now, which can cause some problems on lower-end server hardware. While looking for ways to reduce this I found that a legacy deployable component that’s used by a lot of our entities (wooden boxes, external walls and doors just to name a few) was using up a fair amount of memory on each of those instances. The fact that there are usually tens of thousands of those entities on one server turned it into a significant problem. Long story short, it is now fixed.

Prefab Pooling 2.0

I’ve been talking to a couple of Unity guys about some of the performance issues we’re facing in Rust, one of them being the fact that game object instantiates and activates are still causing significant issues for us. This is a problem since even when we eliminated the instantiate overhead with prefab pooling, the activate overhead has largely been unchanged by those optimizations. After some back and forth it looks like it’s caused by Unity freeing the native component memory when for example a game object with an animator on it is deactivated. This is a problem since it triggers a fairly slow memory allocation the moment you reactivate the game object, making prefab pooling much slower than it would have to be. It looks like it’ll be down to us to work around this, so I’ve started prototyping a new way of prefab pooling that does not have to change the game object state when the pool is entered or left. This will also eliminate some overhead that scales with the number of child objects and components on a game object, which is nice. I’m not completely done with the implementation yet, but I’m hoping to be able to test it on the staging branch starting next week.

Vegetation, Hair and Fur – Part 1

After clearing some bugs left over from last week, I was finally able to start working on support shaders for hair and fur materials. These shaders usually require some sort of opacity and anisotropic highlight control, both of which aren’t directly supported in our current deferred setup.

The sort of opacity we need is a special case so we can get away with temporal alpha-to-coverage, which is essentially means it’s still cutout opaque, albeit dithered. This feature can also be useful to achieve more fitting anti-aliasing on, among other cases, vegetation:

The purpose of this purely aesthetic feature is to prevent aliasing/flickering on your character’s future neckbeard to avoid ruining your experience.

Cave Deflooding Fixes

Last week’s cave deflooding wasn’t fully bug free and completely missed spectating and debugcamera mode. This week these should no longer be an issue. Fixed a bug causing water to disappear on relogging and and added proper water visibility for spectate mode. Please feel free to give it a try on the Prerelease branch.

Pistols/Revolver Deploy Animations

I figured sidearms should have more of a use beyond that of a primary weapon. I asked Minh to change the animations up so they deploy in about 0.5 seconds. It’ll always be quicker to switch to a sidearm instead of reloading now.



Bolt Rifle Animations

After watching some Battlefield 1 videos, I was inspired at how they did their weapon animations. It prompted me to redo the Bolt-Action Rifle animations since they were the first ones I did for Rust and looked far too “floaty”.




Helk wanted me to adjust the LR300 ironsights so they’re more usable. I took the rear sight and enlarged the circle then thinned out the edges.

Map Worldmodel

This week I added a worldmodel for the map, as well as LODs, setting up the holdtype stuff, worldmodel drops, etc. I also added some holdtype animations for the player.

Female Clothing Variants

Some clothing items available in the upcoming workshop were lacking female variants resulting in some hilarious but unwanted results.

This is now fixed.

The Tank Top, Shorts and Collared Shirt now have proper female variants, and I took the opportunity to clean up some geometry and smoothing group issues, as well as adding some missing lods.

Hazmat Suit

I’d hoped to get the majority of the Hazmat Suit textured this week, but the female variants took longer than I’d anticipated. Here’s a shot of the finished (well, almost) respirator though. The rest of the suit is well on the way and texturing will be finished up this week.

Junk Piles

This week I’ve been focusing on the junk piles from which you can scavenge loot for your components. There isn’t much to show for now but Pauls’ concept should show what we’re aiming for! In the meantime I’ll be constructing the bits and bobs you see scattered about so we can have a some nice rusty junk piles.

Deployable Placement Sounds

The first pass at deployable placement sounds is finished and in this week! Doors, window bars, and other building pieces still need to be finished, but everything that’s a standalone deployable item has sounds now.

Sound Occlusion

I made a few little tweaks to sound occlusion after playtesting a bit this weekend, so I’m going to leave it off for one more week for more testing.

Gunshots & Bullet Flybys

I’ve started working on silenced gunshots for the LR300 and MP5 this week, and spent some time adjusting and improving bullet flybys.

Right now all of our bullet flybys variations have the same layers in them, and it feels a little bit too homogenous when a bunch of bullets fly past you in a row. They’ve all got almost the same high end wizz to them, so I’m working on adding more variation, accentuating the midrange instead of the highs in some of them. I’ve also been exploring adding a more realistic supersonic crack to them and I’m pretty happy with how that’s sounding so far.


Environment volumes now eliminate ambient light when underground
Eliminated UI canvas overhead from grass displacement camera
Converted some component getters to pooled lists (less GC)
Stripped deployable component from entity instances (reduced memory usage)
Removed client missing gib warning when not running in dev mode
Removed server building privilege warning when not running in dev mode
Muzzle Brake has less of a aimcone penalty
Fixed skin lighting related issues
Added opacity anti-aliasing to grass when TSSAA is enabled
Improved LR300 iron sights
All Pistols have drastically reduced draw time
Improved bolt action animations
Added map worldmodel + LODS
Now drops map model
Planner/map player anims
Rust Devblog 127 Sat, 17 Sep 2016 17:51 CEST

Semi-Auto Pistol changes, optimisations, what we’re doing with recoil, and more.


Semi-Auto Pistol Nerf

I was made aware this week, via several channels, that the Semi-Auto Pistol was far too overpowered. I went in-game and witnessed it myself: a clan of three people in an armored base were attempting to snipe me with it instead of rifles. Yikes. I’ve gone and reduced the damage for this weapon to 40 (was 50), which should make it less appealing to use over rifles.

Projectile CPU Optimizations

While on a Battlefield server I noticed significant slowdowns. I opened the profiler to check it out and it appeared between 200-400 projectiles were being simulated at any given time! Part of this had to do with the max lifetime of the projectile being set to 60 seconds, so projectiles shot into the sky or into the water would fall forever and eat up CPU until their lifetime expired. I reduced the max projectile lifetime to 8 seconds to compensate for this and saw some improvement. There was also a slowdown introduced last week by the first-person tracer stuff I added. This is also resolved and in total gains us a few ms during heavy gunfire. tl;dr gunfights are slightly less performance intensive and your frames wont dip as much.

Recoil Adjustments (Coming Soon)

I’ve been working on adjusting how recoil works in Rust to bring it in line with traditional first-person shooters and make it less annoying. This ended up being a lot more work than I expected, so it won’t make it in this week. Basically I’ve changed it so when you stop firing your weapon, the vertical recoil is compensated for (brings it back down to where you were aiming). Instead of that annoying horizontal recoil, I’m increasing the conefire/randomness of the bullet paths with each successive shot. All-in-all you’ll get the same kind of groupings you would before, but the weapon won’t randomly fly around on your screen. This ended up being a lot more difficult to implement than I thought, because we have to take into account that people will be adjusting their aim while trying to stay on target and the vertical compensation cannot ever be noticed by players, i.e. when pulling your mouse down to compensate, ceasing firing should not lower your view by much. This is something that will need a lot of testing to get right because it will be a large departure from how the weapons currently work and I want to make sure it’s headed in the right direction and not another XP system.

Component System?

I’m still hammering out some details and solving some edge cases, but I hope to start work on a location based component system next week. We’re going to run it on prerelease and actually make sure it’s not a piece of garbage before we push it out to everyone. Next week I’ll post an outline of how it’s going to work. Stay tuned.

Cloth Sash

I’ve textured, skinned, and LOD-ed the cloth sash ready for Helk to do his thang (when he’s got some time). Here are some shots of it in game, although you guys won’t be able to access it till it’s functional.

Desync Fixes

There was a semi rare issue that could make players show the wrong name, gender or skin tone to other players until they either died or left the networking range. The reason for this was that the server placed sleepers of newly joined clients at world origin and sent them to all clients within networking range before updating and sending their correct position. This also could have been contributing to some other related desync or world origin leaking issues and has now finally been fixed.

Interpolation Fixes

There were a number of issues with the client side network interpolation that could lead to weird snapback issues when players respawned very close to their corpse. Those are now fixed.

Frame Rate Stuttering

I continued my efforts to fight frame rate drops when walking around the world. First I eliminated a 150+ millisecond spike that happened whenever bigger structures despawned by optimizing our entity destruction event handling, which was the last big slowdown from entity despawning. Then I sat down and wrapped up the player model pooling implementation, which is now enabled by default, and optimized various other components of the player mesh building pipeline. These measures combined eliminate 20+ millisecond spikes that happened whenever a new player entered the networking range.

There are still a few things that can be optimized in this department, but I think we’ve come a long way from the state we were in a month ago.

Pistol Ammo Range

In the current projectile model every ammo type has a default maximum and minimum damage distance. Individual weapons like the bolt action rifle then adjust those default ranges to mirror their unique properties. Rifle ammo starts losing damage once it traveled 20 meters and slowly drops off until it reaches its minimum damage at 100 meters. Pistol ammo does the same thing from 10 to 80 meters. However, we felt like pistols and SMGs were still a bit too powerful at long distances so I reduced the minimum damage distance of pistol ammo from 80 to 60 meters. This should help widen the gap between rifles and pistols while keeping pistols powerful enough in close quarters.

Lighthouse Polish

This week I have focused on finishing the interiors, fixing various mapping and geometry issues. I have also made proper collision meshes which means that the lighthouse is now fully functional. I will be spending some time playtesting this area as well as making LOD meshes. Once that is done, the building will be ready to be made accessible in game.

Natural Caves

I have worked on a few props sets since last time, some stalagmites/stalactites, glowing irradiated sacs. I’m carrying on the cave room work as well, if things go according to plan I could have something to show by next week.

Explosion Sounds

This week has mostly been finishing up the explosion sound stuff I’ve been working on. Everything explodey has unique explodey sounds. Distant explosions sound a lot more natural, and things like rockets and C4 sound a lot heavier than Landmines and Beancan Grenades, so it’s easier to tell if that boom is something you should be trying to counter-raid. I added extra variations for things that go off a lot in a short period of time, like the C4 and Satchel Charges.

I also discovered a sound player that a lot of explosions use attached to one of the smoke particle effects, which was triggering an extra C4 explosion, and fixed that.

Sound Polish

I’ve made a few minor polish tweaks this week as well. Footsteps got cleaned up a touch more. The bolt pull on the AK deploy/reload is tweaked a bit (less sharp) and has been broken out into separate sounds, so it won’t play when you quickly cycle past the AK in your hot bar

Flame Turret

This week I finished off the Zbrush sculpt model, finished the Low Poly, and baked out the base textures! Now onto the fun part: the texturing! I’ve slapped on a quick metal texture so you all can see what it looks like so far.

I’m off to Japan tomorrow for 10 days, so it won’t be finished for next week. Sorry about that guys and gals, but in the week back I’m it’ll be ready for implementing fo’ sho’!


Better explosion sounds
Misc sound polish
Old bone armor no longer drops( will be removed next wipe)
Projectile CPU optimizations
Semi auto pistol damage nerfed to 40 (was 50)
Pistol ammo effective distance nerfed to 60 (was 80)
Fixed players sometimes appearing with wrong name, gender or skin tone
Fixed various small client side network interpolation issues on respawn
Added stabilityqueue server convar (building stability update time per frame)
Added surroundingsqueue server convar (surroundings refresh time per frame)
Fixed various issues with player model pooling
Enabled player model pooling by default on 64bit systems (pool.players convar)
Drastically improved entity destruction performance (less stuttering)
Optimized player mesh building and refreshing (less stuttering)
Fixed exception when trying to upgrade building block after it was destroyed
Fixed exception when trying to rotate building block after it was destroyed
Rust Devblog 121 Fri, 05 Aug 2016 21:47 CEST

We’re listening: this patch has a heap of community requested tweaks and balances, from the crossbow de-nerfing and armour and weapon re-balancing, to building rotation and the revive mechanics. A lot has been done. We’re working on making the game less of a grind, and have news on upcoming XP changes and item researching returning to the game. Additionally, the Double-Barrelled Shotgun and the Satchel Charges are now in. This patch wipes the maps.


State of the XP System + Researching

Before we released the XP system it had universal praise and I was on Cloud 9. Shortly after it was released people started to say that it was a grindfest. I figured it was a vocal minority, as I had played the game for hours and had a blast which mirrored the feedback we had been receiving thus far, but as time went on I heard more and more people complaining through more channels. What started out as a few reddit posts ended up filtering into in-game chat and many other channels. I realized it was time to really figure out what all the fuss was about. Seems like most of the complaining happens after level 20, which few of the testers actually bothered to get through. This is why they were happy with the XP system. The other big problem is the lack of researching. I knew we would add this back in at some point, but I did not realize just how fundamental it is to a lot of people’s playstyle.

To that end, I’m going to add Researching items back into the game next week. I tried very hard to get it ready for this patch, but late last night I had to concede it wasn’t going to make it. It’s not going to be exactly the same as it was before; I want people to be able to research items to create a stack of one time use blueprints where each use is a crafting session. I’m still ironing out the details, but something like that is what we’re going for. If that doesn’t work we’ll try something else until it does.

We’re also going to have to take a look at replacing XP earning from hitting trees and rocks with something else. It’s literally the most inefficient and unfun way to level, and I think the perception that that is what you’re supposed to do to level up has lead to a lot of bad reviews and unhappy people. Perhaps if we simply removed it people would find the other ways of earning XP more enjoyable and more efficient?

Either way, whatever changes we make the goal is to make the game more fun and less of a grind, not the other way around. If you seriously thought we released the XP system so people would click on trees and rocks for 60 hours so they could get a gun, you are sorely mistaken. We’re working on making the XP system preferred by almost everyone. That’s our goal.

Crossbow De-Nerf

Yeah yeah, we nerfed it too hard. You can once again sprint with the crossbow and the headshot multiplier has been increased from 1.25 to 1.5. Enjoy!

Crafting Time Reductions

I’ve gone through and reduced the crafting time for a bunch of items that were far too long and didn’t make any sense: Ladder, Bed, Campfire, Ceiling Light, Tool Cupboard, Bow and Crossbow have all had their crafting times halved. I also reduced the crafting time for Gunpowder and Explosives to 2 sec and 5 sec respectively. I know, right?! The more I go ahead and do this, the more I realize crafting times in general can be annoying and I think we’re going to end up doing a lot more reduction and streamlining in the future.

Satchel Charge

Arrow raiding was a broken mechanic that had to be removed, however its removal did leave a gap in the game: you virtually could not raid anyone until you had C4. Some changes last week were made to make Beancan Grenades a bit more viable in this regard, but that was just a stop-gap for this weaker version of C4. I give you the Satchel Charge! A new mid-game raiding tool, it’s made of a Small Stash and a bunch of Beancan Grenades and is mainly useful on Wood and Sheet Metal Doors. It is available at level 15 and can be rarely found in tool crates.

Explosive Rounds Exploit

There was an issue that allowed Explosive Rounds to deal almost double-damage to objects it was hitting, making it a far more viable raiding tool than it was supposed to be. Just so everyone knows, explosive rounds have a very large radius meaning that they score hits a lot easier – in addition they deal radial damage in a small 2m radius from the area of impact. This allows you to hit people behind, cover or windows similar to an airburst round. The bug was that both the radial damage and direct damage was being applied to the object being hit. This is now fixed.

Raiding Changes

When adding and balancing the Satchel Charge I did a very small pass on the cost of explosives and therefore the cost of raiding. I decreased the cost of C4 by 20% so that rockets are no longer the only way to go, and I increased the cost of Beancan Grenades (and therefore satchel charges) by about 15%. I’ll have to watch this one closely and listen to your feedback, but things should be in a better place now in terms of how much you have to risk to get inside a base. I’ve also lowered the unlock level for the Armored Door to level 17 instead of level 20, which will allow you to defend against the Satchel Charge a bit sooner.

XP For Healing Others

I’ve added XP earning to bandaging and syringing other players, but it is limited to 1XP per person healed to prevent group abuse. This applies to you actually applying the bandage/syringe to another person via right-click, as well as giving them the item and having them use it on themselves or someone else. Consider giving some bandages to newspawns now!

Quicker XP From Others

One thing I noticed with the whole sharing mechanism was that when you gave out tools to a newspawn they would likely die quickly or not play for long enough for you to take advantage of the XP gains they were offering you. To this end, I’ve removed the diminishing value from others gathering for you. What this means is instead of someone having to harvest for 20 minutes using your tool for you to earn 3XP total, they now will only have to do it for a few minutes. I’ve also reduced the max XP you can earn from any one person who gathers for you to 2.

Item Unlock Levels Reduced!

The big one is Shelves. These unlock at level 5 and are 80% cheaper to craft. I don’t know why we didn’t do this sooner as they are a functional, required item for base design. Ladders are now unlocked much sooner, now at level 10

I’ve also severely lowered the cost of Wood, Wood+Wire, and Metal Barricades by about half the metal cost, and also lowered their unlock levels to 8, 12, and 14 respectively (about 3 levels sooner each).

The Waterpipe Shotgun is available at level 13 (to make room for the new weapon).

Double-Barrelled Shotgun

A progression from the Waterpipe Shotgun, the Double-Barrelled Shotgun allows you two shots before having to reload. While the damage output is slightly less than the Waterpipe per-shot, as well as its accuracy reduced, landing both shots will yield a higher damage output per second than you could achieve with the Waterpipe even multi-stacking them. Available at level 15 and found in Radtown crates. Enjoy!

Loot Table Buffs

You know what sucks? Climbing to the top of the Dome to see those green crates waiting for you, opening one up and seeing… a Torch. Or a Stone Pickaxe, or a Water Bucket. Welp, that’s not going to happen anymore. I’ve hand-crafted the loot tables for the two Radtown crates. This means you’re going to find a lot more useful items and tools, as well as good armor. I’ve also set them up to drop stacks of ammo from 8-20 (depending on type), so you can actually use the weapons you find! You’ll also see more drops of low/mid tier weapons, like Revolvers and the Double-Barrelled Shotgun

Auto Turret Buffs

The Glass turret is now less Glass… It protects 50% more against explosions from Beancans and Satchels, and its health has been increased to 1,000. I’ve also increased its damage output by 50% and made it slightly more accurate. P.S.: You can very rarely find them in loot crates now :)

Max Condition Visualization

A while back Garry did the baseline for the visualization, so you could see how much a tool has been repaired (and thus its max condition) but it remained unimplemented until now. Yay.

Armor Balance

I did a full balancing pass on armor to get the damage numbers on geared players back in-line. Armor now adds up from all clothing pieces that cover a certain body part, so wearing a hoodie and a metal chestplate will be better than just wearing a metal chestplate. To compensate I reduced the protection values of various pieces of clothing. Overall this means that hits to the body of a fully geared player will now do 15% more damage than before.

In addition to this nearly all clothing now offers more protection against arrows than it does against bullets. For body hits on fully geared players the difference between arrow and bullet protection is 10% which should help make low tier guns more attractive.

Weapon Balance

I did a fairly significant change to how headshots on Bows and Crossbows work. I reduced the projectile radius of arrows, so getting headshots with them requires a bit more skill. However, the arrow headshot damage is now significantly higher, meaning that crossbows kill naked players at full HP with one shot when taking bleeding damage into account. The projectile radius of Slugshot, Buckshot and Explosive Rounds was also reduced to bring them more in line with the standard rifle and pistol ammo.

Speaking of Pistols, the Semi-Auto Pistol now holds 10 shots in its magazine and the Revolver cylinder once again has a capacity of 8 shots. This should boost the usability of those weapons without going too far overboard. And most importantly the Semi-Auto Pistol now deals 40 damage instead of 39.99 – you’re fucking welcome.

Bleeding Reboot

I completely rewrote the bleeding damage calculations since they were barely doing any damage in their old state. From now on bleeding is displayed as the total damage that will be applied over the entire bleeding duration, so you will always know exactly how much damage to expect from your wound. The bleeding rate was increased to 20 damage per minute and weapons now do 20% of their applied damage as additional bleeding damage, which gives all weapons a decent damage boost over time.

Revive Reboot

Reviving a player now requires you to hold down E for 6 seconds without moving. Revive attempts that are interrupted will still increase the time it takes for the player to die from his wounds and players will never die from their wounds while someone is trying to revive them. To balance this, bandages and syringes can no longer be used to revive but players will be in the wounded state for 40 to 50 seconds (instead of 15 to 30) before succumbing to their wounds.

Object Rotation

Yes, the #1 item on the reddit changelog wishlist actually made it into the game! You can now rotate the placement guide of deployables and building blocks by pressing the R key. For most objects this rotates in increments of 90 degrees, but building blocks rotate by varying amounts to fit their sockets.

Projectile Pickup

I think this one has been annoying literally everyone for ages. Projectiles used to be locked for 10 seconds before you could pick them up when they got stuck in another entity. This is now no longer the case – you can pick up arrows and throwables the second they stop moving.

Projectile Anti-Hack

This was my personal passion project over the weekend. Projectile movement is now verified on the server using a checkpoint system. This makes the server side projectile movement verification much more robust, especially against false positives. Let’s see if it fucks everything up.

Graphics Performance – Part 3

Kept working on rendering this week, shaving off another ~2 ms from our frame time:

  • Optimized HUD UI rendering
  • Optimized motion blur effect; around 20% faster
  • Optimized bloom effect again; around 25% faster
  • Optimized sharpen and vignetting; around 30% faster
  • Optimized terrain rendering; around 40% faster

Terrain rendering is one of the main contributors for our high frame times. I’ve disabled far splats for regular/default rendering (PVT off), reducing bandwidth drastically. A full featured terrain now requires VT to be enabled.

While on the topic of virtual texturing: while it’s one of the most powerful optimizations we have – improving performance not only on the terrain surface but also on all terrain-blended rocks/cliffs – it’s been fairly unstable. I’m planning to take some time to work on it again soon, to address general instability and micro-stutter, as well as blurriness issues when walking on cliffs, among others.

I’ve identified a bunch of areas in need of optimization work and I’ll be looking into CPU-side graphics performance as well this week.

Single Shot Door Trap

Door traps! I’d made some pretty good progress on one of them already before Helk and I decided that we really wanted to make this one (sketch 3). So as Paul finishes up on fleshing out the concept for that one, I decided to work my way to completing the Single Shot Door Trap. You can check it out below in both 2D and 3D!

It’s a single shot trap, which means you would have to go back to reload whenever it’s triggered. Probably best for low level/tier players to add some sort of basic security.

New Assault Rifle

Helk and I discussed adding some more real-life military guns as rare loot drops (similar to the M249 Machine Gun). A couple of guns he suggested are the LR-300 Assault Rifle (basically a tricked out M4) and an MP5. I started work on the LR-300, so here’s some progress on it so far.


After this is done, I’ll make the high-poly version and then bring it into Mudbox to apply dents scratches to it.

Graphics Overhaul

We could have YOLO merged the graphics update in today, but we decided that it’s best to give it some time on pre-release, so expect to see it up and running there within a few days.

Also we have been neglecting to fix Savas Island for a long time now, so you’ll see that too when the graphics update goes live. More meds, more guns, more good stuff.

(Pictured: Procmap.)

Dungeon Art Branch

The progress from the dungeon branch will not merge into main this update. Some of the implementations still need to be made for the art, and rather than releasing half working features I’ll keep them on hold there until working.

Military Tunnels

The military tunnels represent one of the last parts of the new dungeons that is still in a greyboxed state. I started to transform this into its final form this week. First by completing the dungeon that is in the game, and then adding more pieces to the set so we can craft more interesting underground places, including mergers with natural caves.

Bone Armour

I made a start on the low-poly for the updated bone armour this week. Generally speaking, the simpler the shape of an object, the easier it is to recreate in 3D and arrays of small, complicated shapes tend to be a pain in the butt. I initially wanted each bone as a separate element but the polycount started ballooning pretty quickly, and it wasn’t even looking that great due to triangles being wasted in areas no one would ever see. I’ve ended up going for a bit of a hybrid approach andgrouping clusters of bones into elements which looks pretty good and is way, way more efficient.

Here’s a shot of one of my test bakes, hopefully you shouldn’t be able to tell I’ve used any workarounds!


Full clothing and armor balancing pass (15% more body damage when fully geared)
Protections from clothing and armor now add up (all slots required for max protection)
Bleeding is displayed as total damage that will be applied over the bleeding duration
Increased bleeding rate to 20 damage per minute (instead of barely any at all)
Increased bleeding from weapons to 20% of the applied damage
Revive takes 6 seconds to complete (holding down E)
Cannot move while reviving
Revive attempts delay player death
Bandage and syringe no longer revive players
Increased player wounded time (now 40-50 seconds)
Reduced projectile radius of slugshot, buckshot, arrows and explosive rounds
Increased headshot multiplier of throwables and arrows to 1.5 (from 1.25)
Pressing R rotates placement guide of deployables and building blocks
Server now verifies projectile path between checkpoints (anti hack)
Projectiles can be picked up immediately after they hit something
Combat log now correctly displays the last 30 entries
Combat log now includes the ammo type
Semi auto pistol now holds 10 rounds (from 8)
Revolver now holds 8 rounds (from 6)
Fixed semi auto pistol doing 39.99 damage instead of 40.00
Fixed being unable to bandage other players
Fixed feet hitboxes being outside of the collision bounds on wounded players
Fixed rock box stacking exploits
Fixed grenade viewmodel sometimes getting stuck in throwing animation
Fixed layer toggle with no name in F1 tools
Fixed player jump animation not playing
Added hurt admin console command (takes amount of damage as parameter)
Improved rendering performance again
Improved player preview lighting; added anti-aliasing
Fixed flow around player preview
Fixed Hapis lake waves
Fixed TSSAA flickering when switching items
Fixed revz not defaulting to 1 when client cfg is missing
Fixed rock/cliff texturing, female skin and other glitches introduced a couple of weeks ago
Can sprint with crossbow again
Halved crafting time for ladder, bed, campfire, ceiling light, cupboard, bow, xbow
More than halved crafting time for Explosives and Gunpowder
Added Satchel Charge
Fixed explosive rounds dealing double explosive damage
Slightly increased cost of beancan grenades
Reduced cost of C4 by 20%
Armored door available at level 17
Added XP earners for healing other players
Removed Gathering diminishing xp from other players (more xp sooner)
Shelves unlock at Level 5 + 80% cheaper
Reduced metal cost of woodwire, metal barricades
Reduced level requirements of wood, woodwire, metal barricades + spike trap
Added Double Barrel Shotgun
Autoturret health increased to 1000
Autoturret damage increased 50%
Autoturret protection from satchels/beancans increased 50%
Loot tables for radtowns handcrafted and contain less junk
Ammo stacks can be found in radtowns
Max condition of items is shown as a red bar
Fixed weapon viewmodels sometimes being partially see-through (exploit)
Rust Devblog 118 Sat, 16 Jul 2016 00:33 CEST

Changes to the XP system means the Official servers will be wiping XP and maps to get everyone back on a level playing field. Community servers can revert if they choose to. Apologies, but it needs to be done. Aside from the XP stuff, we’re rebooting gunplay, building sexier airfields, and more.


XP Changes + Fixes

There was a very, very bad bug in the code when the XP system was introduced. 100% XP earn was given to each owner regardless of their ownership fraction. This meant that even if you owned <1% of the tool you still got 100% XP. This lead to some players earning ridiculous amounts of experience points. We’re talking one level per minute. This has since been patched thanks to André. We’ve also made the following changes to the XP earner system:

  • Maximum XP you can earn from any single player is limited to 6XP
  • No more XP gain from the usage of resources
  • Each time you craft an item for the first time you will earn 0.5XP
  • XP diminishing is in effect: the more an action is done, the less XP it yields

These changes will mostly affect groups boosting each other. All your friends can go out and harvest for you all they want, but you will be met with diminishing returns and a maximum. It’s better to meet new players as the first XP a player earns from you will come quickly.

Wipe Hype

Due to the exploits, bugs and oversights, we had people reaching level 50+ in a matter of hours, fully unlocking all equipment and running around the server with C4 and AK47s. Now that we’ve patched all the exploits and nerfed some of the XP gains any ‘regular’ player–or someone just joining the server–would have to compete against that, and we don’t think that’s fair. Also, we have no way of tracking the speed at which players are legitimately earning XP and leveling up, so we can’t really make any adjustments in the future based on this XP cycle. Because of these problems, we’ve made the decision to wipe the game and start fresh. This also includes a map wipe to remove the stacks of AK47s and other items being hoarded that would provide an unfair advantage to everyone starting new.

I know this sucks and I’m really sorry, but we need to get it out of the way now so we can improve the game. I want everyone to know that this is absolutely not standard practice and we never intended for XP to wipe at a frequency higher than blueprints. Please understand this was not supposed to happen for months, and as I expressed on reddit, I’d like to extend my sincere apologies to you all. These things do happen from time to time, and it’s part of the reason why we still have the Early Access tag on the game, but we will do our best in the future to mitigate any situations like this arising again.

That being said, we have added a way for server owners to backup and restore their XP database, effectively giving them the option to skip an XP wipe like this one.

Server owners can update their servers, and then take the following action to restore the XP database and savegame in the server folder:

  • Rename “xp3.db” to “xp4.db”
  • Rename “UserPersistence.db” to “user4.db”
  • Rename “0.sav” in the “save/Procedural Map_3000_1234” folder to “proceduralmap.3000.1234.132.sav” and move it to the server folder such that it’s next to the “xp4.db” and “user4.db” files

Note that in this example 3000 is the world size and 1234 is the world seed. The number 132 is our current internal savegame protocol, which is the same for every server after the update.

What’s Next for XP?

Next week I’d like to add the ability to set an XP multiplier on players. Once this is in place we can do things like have double XP weekends from time-to-time, or add a feature that gives you an XP multiplier bonus if you’ve been offline a long time (giving casuals a bit of help against no-lifers). We can also then limit the XP earned when offline if this becomes a problem. We’ll be watching and making balance and tech tree changes, and adding new ways to earn XP. We’ve also got to start looking at something that will allow you to forfeit all your XP for a worthwhile bonus, effectively allowing you to play again (think prestige mode from Call of Duty), further limiting the need for XP wipes.

Airfield Cont’d

After the first release of the new airfield last week, I moved on to improving or finishing the area to a good standard. I can polish it further in the future, but it’s now a lot better. That included redoing hangar models from two years ago that did not reach the quality mark I want the environment art to sit at. Here’s the new ones:


After this I’ll add a power sub-station ground to the Airfield, in the brick-walled section of the area that’s empty as of last patch. This little substation will connect with procedurally-generated powerlines in the future and make a neat end-of-line connection for those instead of an abrupt stop.

Server Performance

We have a Staging server that we were doing all the testing on, and the performance was great. When we released we realised that the server performance was shitty. Really shitty. After some investigation we found that the servers were stalling when saving XP data to the database on disk. We didn’t notice this on our test server because it has super fast hard-drives, but most game servers don’t have them because they generally don’t need them.

So I made a bunch of changes, a bunch of optimizations, and got it working relatively well. To stop this from happening again we’ve got a bunch more staging servers running on regular hardware.

Network Performance

Servers were using a lot of bandwidth, so I added a bunch of diagnostic tools and unit tests and optimized it. If you have a low bandwidth connection you should find that things are a bit better now. If you’re a server owner you should find your bandwidth usage is less.

Gunplay Reboot

The rebooted gunplay systems are now live. Gunplay has been one of the main concerns of the community for a while and we’re thinking we’re finally on the right track now. I explained most of this with a fair amount of detail in devblog 117, but here’s the gist of it:

  • New hitbox system (clothing no longer affects hitboxes)
  • New weapon damage model (more predictable body damage multipliers)
  • New projectile weapon hit detection (best-fit hit detection for reliable results)
  • New clothing and armor protection system (less random protective properties)

The aim of all those changes is to make gunplay feel more precise and predictable. While it’s certainly not perfect yet it should be a huge step in the right direction and offer us various tools we can use to improve it even further in the future.

Building Blocked

This one has been around forever. In rare cases people could be building blocked everywhere on the map until they died and respawned. We’ve never been able to reproduce this reliably so it wasn’t easy to track down, but it should finally be fixed now – make sure to let us know if you’re still encountering it.

Exploit Fixes

Moving on with my continuous efforts to combat cheating and exploiting, I took on a number of long standing issues this week. I fixed a building design exploit that made the outer walls of a tower immune to rocket damage. Next I tracked down another exploit that allowed object placement through rocks and enabled people to build rock bases. Lastly I fixed a helicopter exploit that utilized glass windows around the new monuments to be almost entirely immune to damage from the helicopter machineguns.

Anti-Hack Fixes

I took on a few false positives from our in-house anti-hack system this week, both of which could lead to the server rejecting legitimate bullets from the clients. One of them was caused by some legacy code that should have been removed a while ago–this is the one that showed the “AntiHack!” message in chat–the other one was simply due to the projectile speed verification being too strict under certain conditions. This should all be taken care of now.

Server Branch Enforcement

Servers can now set a “server.branch” startup parameter to force all clients that try to connect to be on a certain branch of the Rust install in Steam. We’re using this to keep new players from connecting to the official staging servers just to be unable to connect the next time we increase the network protocol or to be confused when they are restarting, breaking or wiping more often than expected.

Bone Armour Rework

Work continues on the bone armour rework. I’ve been working into the details a bit more, adding a lot of straps, ties and small bones. I’m trying to make it look really authentic in its makeshift assembly. They’re small details, but I think they go a long way, and it’s definitely something that makes the existing bone armour feel a little lackluster.

More Anti-Aliasing Options

This week we’ve introduced a few new anti-aliasing options. We had only two options, either off or on. When enabled, it used our default implementation which was based on subpixel morphological antialiasing and while it’s robust it can also be a tad slow. We now provide two extra options: a low-end FXAA or fast approximate anti-aliasing, as well as a mid-to-high-end solution TSSAA aka temporal supersampling anti-aliasing. Combined, these should make anti-aliasing affordable for GPUs at any price range.

A higher resolution comparison for more a more detailed analysis:

Please note that TSSAA is a work in progress. You may expect the results to be a bit blurry, especially in motion. It’s based on Unity’s implementation and certainly will improve over time. If you see a black sludge spreading through the screen until it all becomes dark, don’t panic, just disable TSSAA. This is a known issue and should be mitigated over the coming weeks.

Graphics Performance

There was already some fine work done by Andre in the past few months to improve draw call batching and we now have to complement that work by looking at runtime shader, texture memory bandwidth, latency and footprint. This week I started looking at performance from top to bottom as well as actually addressing it. I’ve already identified a few bottlenecks besides those we already knew about. The first change we’re introduced was a slight reduction in arithmetic computations in the shader lighting computations. Just is just a drop in the bucket and we need a bunch of drops to actually make a difference.

I’ll be aiming for a solid 60 FPS experience at 1080p on a NVIDIA GTX 960 (and comparable cards from other vendors), assuming the CPU is not the bottleneck, while keeping aesthetically pleasing visuals. We’re likely ending up with a combination of optimizations and default setting tweaks. There’s a ton of work ahead of us that should span across several weeks. I’ll keep you posted on developments.

Crossbow Animation Update

First thing I worked on this week didn’t come off, so after that I looked at fixing some issues on the crossbow we’ve had for ages. These included:

  • Deploy anim not being triggering properly
  • Shearing of the wrist due to too much twist during the reload anim
  • Anim length not matching the reload time, causing clipping if using ironsight
  • Idle loop bumps
  • Shaking of model & bow near end of reload
  • ‘fire’ anim not feeling satisfying



Shotgun Stock

I finished up the LODs and textures on this. I wanted some visual difference to the default grip i.e lighter colour to the wood and with some saturated colours to tie it in with the rest of the gun. I am planning to make more variations of our weapons so you can have some fun customising your stuff when they are implemented (check the bicycle stock below).

Bicycle Stock

After finishing up on the stock variation for the Double-Barreled Shotgun, I thought it would be a good idea to make more variations for the SMG, which will hopefully be useable on other weapons such as the AK47. Now obviously the programmers are focusing on more important stuff at the moment, but my hope is that we will have a good amount of variation when these (and more) can be implemented.

The idea with the bicycle seat stock is to reduce the recoil with the springs. If there are any ideas you guys and gals think are cool and practical, let us know!

Player Animations

I noticed that some of the player animations were holding the weapons in such a way that they weren’t pointing in the direction the player was looking. I believe the bug was caused by a recent update to Unity, so I went through all of the offending animations and corrected them.

I also tweaked some of the gun fire animations so they look more violent and abrupt. I went over the hunting bow animations and improved them a bit by tweaking the position of the hand that held the arrow as well as fixing up the head rotation so he actually looks like he’s aiming the bow.



I also added pre-throw animations for the rock and spears so people will know when a player is about to throw them.


A new Unity update came out that’s sorted the crash issues we were having with the build server, so music stuff is ready to go out now (much love to Andre and Garry for the time they spent helping me try to track that down before the update). We’ll be playing it safe and waiting until next week to push it out though since we cocked the game up last week already.

I did a few little tweaks to how music plays back in the main menu, fixed up a few things that got overwritten in the bullshit crash chasing we did last week, and added a console command “” that will print information about the current song, section, and intensity level to the console. Once we push this out I’d love it if you guys use to tell me about anything that feels off or feels awesome next week!


New hitbox system (clothing no longer affects hitboxes)
New weapon damage model (more predictable body damage multipliers)
New projectile weapon hit detection (best-fit hit detection for reliable results)
New clothing and armor protection system (less random protective properties)
Animals now also use detailed hitboxes with damage multipliers
3rd person pre-throw animations for rock and spears
Fixed bug with eyeballs popping out when holding construction planner
Large furnace no longer placable in water
Fixed dropped weapons not changing ownership
Fixed flamethrower particles bouncing around
Small water catcher uses tap collider for +use (instead of entire object)
No more double xp from breaking objects you have looted
Added xp.reseteverything command for server owners to reroll characters
Crossbow vm anim updates
Fixed head clipping through Wolf Head Dress
Fixed base design exploit that was immune to rocket damage
Fixed rare cases where building could be blocked everywhere
Fixed an exploit to place objects though rocks
Fixed helicopter exploit using glass windows of monument buildings
Fixed water purifier interaction issues on server restart
Fixed rare AntiHack false positives from legacy code
Fixed rare AntiHack projectile verification false positive
Added server.branch convar (forces certain branch for connecting clients)
Updated EAC
]]> Switch To HTTPS Fri, 08 Jul 2016 23:42 CEST
Our API can still be used without HTTPS for compatibility with third parties.      

Here are the most notable benefits of this change:

  • Improves global security of the server list
  • No more problem to use our embedded content on external websites that use also HTTPS
Rust Devblog 117 Fri, 01 Jul 2016 00:19 CEST

No patch as we’re focused on the XP update for next week. On the prerelease branch you can try the new UI, the quick crafting menu, and the level-up animation. The blog also has details on making gunplay great again, upcoming armour, and more.

XP System

We’re on track for merging prerelease into Main and launching the XP system on the 7th. This doesn’t mean it’s going to be perfect, it just means it’s good enough to be part of the main game while we improve it.

When we merge prerelease into Main, we’re going to fork the existing version of Rust off into a separate branch, so you can opt into it and continue playing that version of Rust “as is” in case you want to. It will not be maintained or improved upon similar to Legacy, but should be fun to revisit and play in the future.

Regarding progress, I finally merged “Item Ownership” into prerelease and so far it’s been a blast. There were, however, many bugs and crashes that have since been resolved. I’ll spend the next few days writing code that takes advantage of the system a little more than it currently does. Such as earning XP from using up resources, when you drink water you ‘created’, using your deployables (furnace/repair) etc. I’ve also got to solve a few annoying problems, such as implanting items on downed players and reviving, and giving ownership to you when looting a dead person (it was really annoying to kill someone and then not want to use their tools because you didn’t want to earn them XP). I’ll be watching and listening for more exploits and fixing them as we go. If you can’t wait until next Thursday you can always opt in to the prerelease beta and give it a try.

Quick Craft

There’s a big space free on the right of the inventory menu since we moved the crafting stuff to its own menu. I filled it slightly with the quick craft menu.

This shows only items that you can craft, based on what you have in your inventory and what you’ve unlocked. It still needs a bit of love–to give feedback when you’ve actually clicked on it–because right now all the crafting stuff is hidden behind the spawnmenu, so it’s not that clear.

Hitscan Projectiles

Previously, when you shot a bullet it came out of your gun and traveled at a certain rate, had gravity and drag applied to it, then slowed down. It’s as you would expect in real life, except in Rust the bullets travel a lot slower than in real life to emphasise this effect

This felt like shit at short range, but it worked over long range. The shitty feeling was made worse by the fact that the bullet doesn’t move until the frame after it has been fired, which means firefights were client side frame rate dependent. Which is terrible, really.

So now when you shoot your gun, the bullet immediately travels a set number of meters (this is ammo dependent), and then it carries on as normal. The end result is that close quarters gunplay is effectively hitscan, but long range retains the effects of gravity that we originally implemented.

Build Times

I wasted a day-and-a-half trying to get our build times to not suck. At the moment it takes just under an hour from us committing to the build uploading on Steam and playable by millions of people. A few years ago this would have been a pipe dream, but now it’s not good enough.

It is feasible for this to come down to about 5-10 minutes, if we compile Linux, Mac, win32, win64 and asset bundles in parallel. The issue with this is that multiple Unity instances can’t compile from the same project file at the same time. So we need to mirror the project file. Which is fine, it’s 20gb a project file, so we’re talking 100gb for all the platforms, double it for debug and release mode, so 200gb.

Except that’s bullshit, because when you open a project Unity likes to mirror the contents of it to its own bloaty Library folder, so we’re talking 40gb a project, so 400gb. Which is okay if you can spare it, and didn’t spend a ton of money on super fast but super small PCIE SSD hard drives.

But then it turns out, after a day of programming, that Unity 5.4 hates running in parallel anyway, so it was all a big waste of time and effort. For some reason, when multiple instances are compiling it keeps losing its license, so I have to manually log in and activate it. Then there’s some port conflicts when compiling shaders, so it just hangs indefinitely.

It would have been nice to get it working, to make us more agile, but fuck it for now – I’ve already wasted too much time on it.

UI Tweaks

We’re entering a fix and polish stage of the prerelease branch at the moment. The basics of it are done, so it’s about going back over stuff now and improving.

The pie menu got some performance enhancements. I also updated the animation to make it a bit more fluid, so when it closes you can move your view immediately instead of waiting for the animation to finish.

I went through the UI fixing the scroll speeds of various panels that were scrolling too slow when you moved the mouse wheel. I improved the look of the crafting queue, and made it more obvious that clicking cancels.

Level Up Notices

There wasn’t any feedback on levelling up, beyond the level number increasing. It should be a song and dance. I added a new HUD system for notices, so we can queue shit up there. Now when you level up it pop up a notice and play a sound.

It’ll then list all the new shit you just unlocked.

The sounds are hilarious and placeholder. I’m sure Alex will find his way to making it some eagle sound or something… just as soon as he catches one.

Lone Wolfs

We do listen to you guys, and I know we were a bit dismissive and rude about lone wolfs last week, so I wanted to surprise you guys and prove that we really do pay attention to what you want.

So from now on all of the wolves in the game do 10 times more bite damage. This doesn’t affect bears. Hopefully this will put an end to this “lone wolf vs group of wolf” discussion we’ve been having a lot lately.

Sentry Costs

Sentries aren’t used as much as they should be and because we wanted them earlier than the AK47. I’ve changed their crafting recipe to only require 75HQM instead of 50HQM + Ak47. Hopefully we’ll see them used a little bit more.

Throwable Weapons

This week’s been about getting all throwable weapon work onto prerelease, as well as some balancing. Have a play and let me know what you think:



Airfield Rework

I have been working on the go for the past week and managed to get stuff done at a decent pace between trips and flights. Progress on the airfield is good: I do not have many close ups shots to offer as some buildings are still work in progress, but I took some overall shots for you guys, though they’re from my laptop and a not at the highest quality settings. It’s getting there and most of the buildings fell into place like I wanted.


Double-Barreled Shotgun Artwork

I’ve made some good progress on the Double-Barreled Shotgun. The change from the concept to include the screwdriver handle seems to have really added to the makeshift look. Take a spin and see for yourself!

I have a couple of materials to create, like the pin trigger for the springs, but that should be done in no time at all. Then onto the LODs.

This weapon, like the SMG, will be customisable. If you notice on the concept Paul drew, there’s two versions: one with a longer barrel plus sights and an actual stock, so I’ll work on those when I can.

Heavy Armour

I’ve finished up baking down the lower half of the heavy armour. It still needs skinning and lodding, and I’d like to dull the metal a little – I think it’s looking way too shiny for rust at the moment. It’s nice to see it looking suitably bulky though, especially when you see its component parts.

Bone Armor Rework

Some of our armors definitely suck at the moment, and you see this stuff a lot so they deserve some more attention and refinement. We hate the Bone Armor the most: it’s goofy and janky, mainly because it was originally designed to fit over existing stuff and protect practical areas, which made the aesthetics suffer. Now we’re just making something that looks way cooler and not worrying about it fitting over other things. We will explore light/medium/heavy types of armor, so for the bone were gonna go with something that fits a light armor type, and has a more primitive feel with a mix of hide/leather and bone. Shoutout to da9L88 for his awesome bone helmet concepts the other week, I couldn’t help but take some inspiration from those!


The beta version of Unity we’re using right now has been crashing a TON on OSX so I’ve been spending a lot of time working on a different FP game this week, but I’ve made some progress on the music system and finished chopping up the rest of the existing songs. I ended up ditching one of them that just wasn’t feeling right in game, and will continue to write more as we move forward. Since we’ve only got a handful of songs right now they’ll all play in any environment/time of day but as I write more we’ll start separating them out more too.

I added the ability to allow/disallow individual clips fading in and out in the middle of a section of music on a per clip basis. Previously we would only fade clips in if the intensity was increasing, or fade them out if the intensity rose above their max intensity. This worked pretty well but I wanted more fine-grained control. This is really nice for things like preventing a melodic line from starting in the middle of a phrase or making sure a drum part will always play in full once it starts and won’t fade out.

I did a bit more cleanup and made some final tweaks to prep the music system for launch. It’s disabled by a convar by default right now. Tomorrow (or I guess today once you’re reading this) I’ll be giving everything a final once over and then merging into prerelease so I can test this stuff out in a live server, and assuming that testing goes well this will all go live when the XP system is released.

Make Gunplay Great Again

There’s been a lot of talk about the current state of gunplay in Rust, and we mostly agree with the common opinion on this: it feels random, unsatisfying and sluggish. This week I sat down with Helk and discussed what has to be changed to make things better. It all seems to boil down to this:

  • Predictability
  • Precision
  • Feel

To me, personally, the lack of consistency is probably the biggest issue right now. Things simply feel far too random to be enjoyable. This is caused by a number of things, so let me explain what I’ve been working on this week and our reasoning behind it all. Everything in this section is still under active development, but I’m hoping to get it onto the prerelease branch either next week or the week after.

It all starts with the damage and hitbox system Rust has been using ever since the reboot. We’ve tried various variations of this but none of them seemed to work out the way we wanted, so it’s time to let go. At the moment hitboxes use the exact player model and clothing meshes as their colliders – if you hit a piece of metal you’ll do far less damage than when you hit skin or cloth. This is neat in theory, but it completely breaks down in hectic firefights since nobody intentionally aims for the tiny vulnerable spots between clothing items, essentially leading to completely random damage multipliers being chosen. I’ve replaced this with a much simpler hit area system. Clothing now specifies the body parts it protects and damage is reduced based on which body part has been hit rather than the exact visual mesh. This means projectiles never randomly bypass protective gear. It also means that gloves can add to the overall body protection instead of only protecting the hands, which makes them far more useful.

The second issue caused by using clothing meshes as colliders was that clothing affected the size and shape of player hitboxes. Things like the bucket helmet, and to some degree even the metal facemask, made the head hitbox so huge that they were essentially useless. I threw this out the window so now the body part that was hit is determined by a player collision mesh that doesn’t change with clothing. We still have the option to apply reduced damage when hitting the bigger clothing hitbox and not the player hitbox, but I won’t add it solely based on guessing. We’ll see how it all works out first.

Next I added the option to use per-weapon damage multipliers for certain body parts. This can for example be used to increase the headshot multiplier of a weapon type that’s very precise (sniper rifles) or reduce it for weapons where they occur more randomly (shotguns). We’re not entirely sure in which direction to take this yet, but it made sense to add support for it while reworking the underlying systems.

Lastly I started working on best-fit hit detection for projectile weapons – similar to what I added for melee weapons a couple of months ago. The thinking behind this is that hitting a hand that’s directly in front of a head should really count as a headshot since players cannot control their exact animation state. I still need to figure some stuff out, but this should make things feel less random and more predictable once it’s done.

Overall the changes I’ve been working on this week should help us get some much needed predictability and precision back into the gunplay of Rust. Next on the list will be weapon feel, but Helk might be better suited to tackle that.

Rust Devblog 111 Thu, 19 May 2016 23:29 CEST

More fixes and tweaks this week: decay has been added to cupboards, bags, and traps. Crop life has been adjusted. There’s also a peek at a new aiming system for throwable weapons, word on the upcoming XP system, and more.



Here’s a preview of one of the tunes I started last week and polished up this week. I did a bit of recording specifically for this as well, which was fun. Some of the echoey, high-end percussion was made from bits of a disassembled door knob moving around (which also makes great gun foley sounds!), and some of the metallic swells in the background are pitched down recordings of me playing some metal mixing bowls and pots that were partially filled with water with a cello bow. There’s a few things I want to tweak with this one still, but I’m pretty happy with it so far. Listen to it and enjoy the blog!

Prerelease Branch

I’ve merged the past month’s changes into Prerelease and got it up and running again. I’ve also set the price of the new items in the XP system and adjusted their unlock levels. Next week I’m going to do some gamefeel stuff, so it’s more obvious when new items are unlocked. I’ll also be going through each level and making sure we aren’t getting too many unlocks at once (some levels unlock 8 items!), as well as a standardized pricing scheme (common tool = 5 XP, very rare weapon = 50 XP).

Deployable Decay

I added decay to a number of deployables this week. All sleeping bags, tool cupboards, barricades and traps will now slowly decay when inactive. Opening or closing nearby doors resets the decay timer the same way it does for building blocks, which means those things should be safe inside occupied bases, but will decay fairly quickly out in the wild or when a base is abandoned.

The things I’m hoping to achieve with this is to cut back on the sleeping bag/trap/floor spike spam in bushes, and to make tool cupboard griefing less effective. Another interesting aspect could be the possibility to move into an abandoned base once the cupboard is decayed, since it will break down faster than the higher end building tiers. I didn’t go too crazy with the decay rates for now (~2-3 days for most of those deployables) so we have some time to get feedback and balance it in the upcoming weeks.

Server Stats

We now track some interesting stats for server admins that can easily be accessed with the “stats” or “stats ” console commands. The reason for doing this is that I’m interested in the number of projectile hits with or without a direct line of sight between the attacker and the target. While there are legitimate reasons like ricochet that can lead to hits without a direct line of sight between two players, things get suspicious once they are happening at a high enough frequency.

For now this feature is mostly there to evaluate the performance of those kinds of checks and see what the data will tell us. It’s also useful for server admins to look into hacking accusations, which is why I decided to make this early development version available to them.

Farming Tweaks

There’s much work to be done on the farming system, but I just wanted to address some low hanging fruit (hue hue) this week. I increased the time the fully grown plants stick around before they start a new season or die, so you’re less likely to miss the right moment to harvest them. Domesticated hemp now gives 20 cloth when fully grown and can be harvested when the plant is still small for a portion of that maximum amount of cloth.

Server Crashes

There was a fairly serious issue with the water bucket that could make the physics system of a server crash entirely. After a painful debugging process this is now finally fixed – sorry to any server owners who experienced this.

Entity Parenting Fixes

There were some issues with the water purifier caused by a fairly low level bug in our entity parenting system. I implemented a workaround over the weekend and starting today you should no longer run into invisible water purifiers or ones that cannot be interacted with. I’ll probably have to put some more work into the entity parenting system in the future if we decide to use it with more objects than just quarries and water purifiers, but for now everything should be working as intended.

Throwable Weapons

Something I’ve wanted to return to for a while is throwable weapons. The current system results in a lot of accidental throws & hads only a small sense of accuracy, so what I’ve looked at this week is adding an aiming state. Holding down right-click will keep you in this state until you’re ready to throw, releasing the button will execute the throw.



Now, this system involves code changes to baseMelee & will effect third-person anims too. Once the code is updated it will be looking for this new aiming state on all throwable weapons, which means I’ll probably need to get them all working before committing. This is only worth doing if players feel they will use this aiming feature, so let me know what you think of the idea.

Holosight Adjustments

Some of the holosights were a little off, just enough to be annoying. They should all line up now:

Face Randomisation

I’ve added a female component to the randomised faces script, there’s limited variation due to it only sampling three blendshapes (and one set of textures!) at the moment but we’ll be able to get some unique faces when more are added.



New Eye Maps

When I first made the eyes I used photos to create the textures and although they look fine, they’re a pain in the ass to edit or do anything with. I’d like to introduce randomised eye colour at some point so I figure now was as good a time as ever sculpt an eye and have some nice, flexible maps to work with.



Physics Sounds

I’ve continued working on physics sounds this week. I’m almost done with the world items now (which is actually most of the physics-enabled stuff in the game at the moment). I’ve got a couple more things to record still, but I’m planning on doing that tomorrow and merging this stuff in over the weekend so we can test it a bit and release it next week. After this first round of this is done I’d like to work on more item-specific sounds to give everything a bit more distinct flavor.

Item UI Sounds

I’ve started on a few more item UI sounds this week. Paper, small plastic objects, and water bucket/bucket helmet. I’ve also been hunting for something that will work well for the big scrappy metal tools, like the salvaged axe, but haven’t found anything that’s giving me quite the right sound for those yet. All the metal objects I’ve got that are rattley enough are too thin so I’m going to take a trip to Goodwill and/or the hardware store next week.

Harbor (Concept)

I’ve been working on this harbor Rad Town concept. New players who spawn on the shore need a more reliable way to find roads and by having rad towns like this with tall cranes it would give players a clear target to aim for.

Third-Person Weapon Animations

I started animating the weapon models in third-person–as seen from other players–which will better allow you to visualize what other players are doing with their weapons: reload, shoot, etc. The early results already add a lot to the visual impact of the weapon handling, but they’re too janky to show off right now.


Added deployable decay to sleeping bags, tool cupboards, barricades and traps
Tool cupboards can be repaired
Added server side stat tracking (separate for every server instance)
Added projectile line of sight tracking (no enforcement yet)
Added lineofsight_protection server convar (only toggles tracking for now)
Increased available time to harvest plants before they die
Hemp can be harvested for reduced cloth when small
Ignore projectiles from stalled players
Take player lag into consideration for server side projectile speed verification
Projectile entity distance verification takes entity speed into account
Include player and target names in server side projectile logs
No longer give anti hack violations to players that are stuck behind doors
Improved fly hack detection (fixed a potential false positive)
Fixed overly bright clouds at night
Fixed blurry Facepunch logo on low quality settings
Fixed issue that could render the water purifier invisible
Fixed issue where the water purifier bucket could not be interacted with
Fixed potential server crash caused by water bucket
Fixed line of sight loot exploits
Fixed exploit to disable gunshot sounds
Fixed survey charge particle effect rotation
Added decay.tick server startup parameter (specifies decay tick interval)
Fixed estimated player velocity being extremely inaccurate during server lag
Player animation tweaks
Fixed offset Holosights
Fixed issue with revz not being set causing rendering problems
Fixed revz darkening environment
Fixed revz player preview
Fixed revz deferred lighting and reflections
Fixed revz missing decals, player tags, holosight dot, lantern glass
Fixed revz missing heli body and heli interiors
Fixed revz painting signs
Fixed revz greyboxes not visible
Fixed revz horse hair, helicopter glass seen through objects
Fixed revz menus darkening water
Fixed horse hair discoloration
Fixed teddy bear mesh + material
Fixed water simulation issue causing seams in shore blend
Fixed speedtree billboards in d3d9
Fixed pitch black shadow on grass when shader level < 300
Fixed pitch black horse lowest LOD mesh
Fixed ocean and rivers not showing specular highlights for secondary lights
Fixed research table glass shader
Rust Devblog 110 Sat, 14 May 2016 00:32 CEST

Water purification, farmable hemp, new clothing, decay fixes, and lots more.


Water Purifier

A new form of hydration is here! This deployable will generate clean, fresh water from salt water. Just place it over a campfire, load the tank up with salt water, and give it a bit of time. Soon enough you’ll have clean water to drink. I think this is an important addition which will make living away from lakes and streams a lot more viable.

Hydration Tweaks

I’m going to have to go through and make water-loss far more aggressive soon, but for now I’ve limited the maximum amount of water you can keep in your body from drinking to 250 instead of 500. This should make it so you have to drink more frequently and can’t just load up at a river and forget about it for four hours.

Silencer Tweaks

I’ve made a first pass at adjusting the silencer due to public outcry. It has 2.5x the durability, and only lowers damage done by 25% instead of 30%, I’ll revisit this in the future if it still sucks, and probably reduce the cost.

Roadmap Update

I’ve been on a bit of a roll with the metabolism and water improvements and haven’t taken the time to give some love to prerelease. With Garry out of the picture for a while this is now my responsiblity and I guess it was sort of wrong of me to neglect it. Because of that we’re way behind on the roadmap at this point, but on Monday I’m going to merge everything into prerelease and get the ball rolling again on the XP system. We really need to get this sucker merged into main as it will solve a lot of the early game problems that are currently in Rust.


The feminine hide clothing is in. They don’t do anything the existing hide clothes don’t already do, but if you want to cover yourself up with something a bit more feminine now you can.


Decay Reboot

Decay hasn’t really been doing its job. The main reason for this was that the timer reset whenever the server restarted, which for many community servers with semi-daily restarts meant nothing would ever decay; even official servers would often decay the higher building tiers slower than the wipe period. This is now fixed. While I was at it I also optimized the memory usage of the decay system. This allows us to add it to many more entities if required. I’m hoping this change will help with long-term client and server performance and allow servers with high player populations to stretch out the wipe periods further. I’m sure the decay rates will need some tweaking, but I didn’t want to guess numbers given that decay was barely working at all until now. We’ll figure it out after observing the servers for a while.

Viewmodel Spasms

This has been around for what feels like an eternity. Whenever you switched weapons the viewmodel flickered up in the incorrect pose for one frame, which made the game feel like it was written by a high school student for his first programming project. It is now finally fixed.

Repair Fixes

The repair system allowed you to repair every building tier with just wood, which was really unbalanced and could fuck over people who weren’t aware of that fact and used their high quality metal to repair their base. This is now fixed and repairing objects now requires the same resource types that were used to build them.

Plant Fixes

I came across a number of bugs in the farming system. The biggest issue was that plants could get stuck in the invisible seed state forever if their happiness was hovering around zero. This leaked plant entities on the server, which is never a good thing. On the client side plant skins now use prefab pooling for better performance and the planting and harvesting particle effects are rotated correctly.

Farmable Hemp

This should be an interesting change to make the farming system a bit more relevant. Wild hemp now gives 10 cloth and 1 hemp seed. The hemp seed can be used to plant hemp, which gives another 10 cloth when harvested. This not only adds another gameplay layer, but it also means we can check whether or not people are actually planting their hemp seeds and decide whether or not the amount of wild hemp in the world is too high or too low. This is just the first of a number of planned additions to the farming system, let’s see how it plays out. Rustafied took a nice shot.

Cave Fixes

Lots of things were broken in caves: World models, ragdolls, debris, rockets, deployables and turrets. Those are all fixed and working correctly now, so go out and enjoy your caves for the dark holes that they are.


We saw an uptick in the damage done by hackers recently due to some standing exploits in the game code. We kicked off the week by fixing a remote looting hack (“noclip”) that went viral last week.

Furthermore we improved the server side fly hack detection. This fixes a number of ways people were getting over perimeter walls or onto buildings. We also made the automatic anti-hack kicking a bit more aggressive.

Lastly we spent some time investigating projectile hacks, the most notorious one being a way to make projectiles instantly hit their target with no projectile flight. We came up with a way to detect and prevent this on the server, which will be enabled by default on all servers.

Depth Precision Improvement

After a couple of unexpected challenges, I finally managed to roll out a working solution to drastically reduce z-fighting across the board and the results are phenomenal.

I ended up switching to the popular reverse-z technique instead of pure logarithmic depth for performance.

We can only see it in certain situations because most of the problems occur further away and fog hides them. Now we can safely push fog further without worrying about these issues. One area where artifacts are very visible, and completely eliminated, is on the shore around shallow water where ocean and terrain intersect.

In some cases it will be very obvious. For example, when using a very wide screen resolution:



This feature is disabled by default for the next couple of days to ensure that we convert all the necessary materials to take advantage of it. Feel free to give it a spin by using the “graphics.revz 1” command. Please mind any issues with it, we’ll have them sorted out by the weekend.

Mix Tweaks

I played for a bit on Thursday and Friday with a notepad next to me to test the new mix tweaks out in the wild. It was apparent pretty quickly that the ambience was a bit too loud and footsteps were a bit too heavy, so I fixed that along with a handful of other things I wasn’t happy with yet.

Fish Trap Sounds

I’ve added some new sounds for the fish trap for when it’s caught a fish. It was kind of tricky to find the right thing to record to get the leathery wet flapping element I was looking for, but I ended up getting the right sound out of a banana peel (and getting bits of banana all over the place). I layered those flapping sounds with some water splashes to get the final sound. I also recorded myself sawing at and cutting some meat, which will be used for fish gutting next week.

Physics Sounds

I started working on impact sounds for in world physics objects this week. I’ve been working on the implementation side of this mainly so far, tuning which sounds play when so we don’t get huge bonks when you lightly toss something on the ground.

I’ve started recording and putting some of the sounds together too. I’ve actually been able to use a lot of the recordings I did for our item UI sounds for these, but have had to record harder impacts with a lot of the objects since the item UI recording sessions were just picking up and setting things down.

I’m focusing on impact sounds first but I’d also like to add the ability to fade in a short loop if while an item is sliding across the ground.


I’m digging back into music this week too. I spent some time writing more material (not quite ready to show that off yet, but next week!) and spent a bit of time experimenting with bringing separate music layers in and out instead of just switching between short clips so that we can react to intensity changes a bit more quickly.

Player Preview States

Some more animation ideas for state changes this week:



Player Animations Optimizations

This week I went over all of the third-person player animations and improved them to look more natural when walking/running. I also finished up the optimizations on the way the player animation system works.

I ran benchmarks comparing the old animation system vs the new one (on a scene with about 100 player models visible): there’s a noticeable improvement in the amount of memory the animations use and also the performance. When lots of players are on screen at once, the framerate should be much better than before.

Wood Armor Rework

I tried a different approach to some of the current armor this week. These are wood, where it would be sort of more of an armored vest, with sections that allow for more articulation and not bendy wood. This should allow it so fit better around other clothing items without all that crazy clipping and hovering sections. Being able to wear it over a thin underlayer like a t-shirt seems to make sense, but you couldn’t wear it over something like a thick winter jacket.

Washed-up Food rations

Another idea I worked on this week is some kind of loot that could be found washed up or floating in the sea: a food supply/ration box that players could used to give them a few provisions to help them along slightly in the early game. I’ll do another pass at these to tweak them slightly so you can more easily see them from a distance if they’re floating in the water, but these design are pretty close.


Optimized and improved 3rd person player animations
More sound mix tweaks
New fish caught sounds for traps
Decay states save and load on server restart
Decay uses less server memory
Building block decay timer correctly resets when fully repaired
Fixed viewmodels spazzing out for one frame when deployed
Client load balancer pauses other work while network packets have to be processed
Fixed roof side conditional models occasionally missing on the client
Fixed entity pool warning when certain pine trees were destroyed
Repairing now requires all types of resources an object costs (instead of just one)
Fixed plant entity leak when their happiness was stuck around zero
Plant skins use prefab pooling for performance
Plant server convars actually do what they claim to do
Fixed planting and harvesting particle effect rotations
Added hemp seeds and hemp farming
Wild corn and pumpkins always spawn next to rivers
Reduced driftwood decor object density
Dialed back tint randomization of wild hemp
Fixed possible server side NaN / infinity positions of physics entities
Tightened valid cupboard placement angle
Fixed world models, ragdolls and debris ignoring cave triggers
Fixed server projectiles like rockets ignoring cave triggers
Fixed floating deployables in caves
Fixed turret line of sight check in caves
Fixed patrol helicopter and turret not seeing and firing through fences
Added anti hack kick counter to admin status command
Added another layer of fly hack protection
Added server side projectile speed verification
Powerline cables now cast shadows
Powerline cables are now affected by fog
Fixed seam in river transition to ocean caused by fog
Added halterneck and skirt
Silencer durability increased
Silencer damage reduction slightly reduced
Added water purifier
Can no longer codelock fish traps
Rust Devblog 109 Fri, 06 May 2016 18:21 CEST

Today’s update wipes the servers and brings some major changes to the procedural maps: there’s a snowier north, new mountains, and the power plant dungeon has been updated. We’ve also added fish traps, made cannibalism less appealing, and lots more.


Dungeon Art

The accumulated updates from April are going in this week, this includes quite a few of the buildings on the map. There’s a bit of them left to do, which will come end of may beginning of June. Performance in dungeons is likely to be a tad slower until I do a pass on LOD distances, hopefully for next wipe.


Some of you heard of the door barricades this week from the Twitter bot. This isn’t (yet, and maybe never will be) something players can place themselves. It will be breakable entities that we will place around dungeons loot rooms to seal them, and have them respawn with the loot after some time. Like a good indication that a room hasn’t been looted yet.

Stack Size Increases

Remember how you used to have to throw away cans of food and charcoal because you simply didn’t have the storage space? Well no longer! I’ve went through and increased the stack size to 10 for most food items like Chocolate, Granola, Cans, and even Empty Cans. Charcoal stack size has been doubled to 1000 units, and 5.56 now stacks to 100. Enjoy!

Reactive Target Changes

The Reactive Target was kind of a bust. I checked out Rustafied’s main server and with 200,000 entities deployed, only nine were reactive targets. They just aren’t being used as much as expected to test out weapons, and part of that probably has to do with the cost and the usability. So what I’ve done is reduced the cost by 100 Metal Fragments, and I’ve also changed it so it auto resets six seconds after being knocked down. Maybe they’ll be a little more fun now.

Survival Fish Trap

While the survival changes have been very well received, there is still the potential for people to be unable to find food of any kind. I saw some pretty cool videos onYoutube and decided to go ahead and add our very first form of fishing to the game! It’s a default blueprint, and to use it you deploy it on the shoreline and add bait to it. Bait can be any type of food, but the important thing to know is the more bait in the trap the more likely it is to attract bigger fish. This is a good way to recycle things like mushrooms into higher quality food.


Salty Human Meat

Human Meat has long needed a negative attribute to discourage eating it. To this end, I’ve made it reduce your hydration by 40. It is still possible to survive on it, but you had better have a good water supply. I’m excited to see how this changes the game. Please stop eating new spawns.

Peacekeeper Mode

This is kind of an experiment to see if we can give players a place to meet up or trade. Basically if you own a sentry gun, it has an option to be put into ‘Peacekeeper Mode’: it will only target players who have a weapon out, or have dealt damage to another player recently and nearby. This means you could use sentry guns to make an outpost or area of the map where random, non-aggressive people can interact without worrying about being randomly killed or attacked. I’ll probably build a couple of these after the wipe on a few official servers to see how it goes.



Snow is back. There’s more snow at high altitude and even some fairly large patches of snow in the north. It’s not the vast, samey arctic biome we used to have, but I think it’s a good compromise and a lot closer to what we want the north of the island to look like.


Speaking of altitude, Petur and I combined forces to get some more mountain variety into the maps. What goes live this week is only part of our efforts since thebiome specific mountains we initially wanted to release need some more work, both in terms of optimization and visuals. That being said, you’ll definitely see a lot more variety than you did last week. Expect even more of this to come with one of the next wipes.


I continued my efforts to rework resource gathering. Ores spawning around rock clusters turned out to work pretty well, so I’m now doing something similar for mushrooms since food is starting to play a bigger role in the game. Mushrooms now only spawn on non-grassy ground inside forests. This means you can identify the general area where mushrooms could be found from far away instead of walking around aimlessly and having to hope for luck. Wild corn and pumpkins also work a bit differently now and should be easier to find and more common overall. This step also prepares us for some much needed balancing of the resource amounts, but more on that in a future devblog.


To help with performance I tweaked the bush and clutter rock spawn densities a little bit, which, depending on your hardware, should shave around 1ms off the frame time. Since I mostly got rid of bushes and rocks in parts where they weren’t very noticeable it shouldn’t decrease the visual quality of the world all that much either.

Last but not least, our testers spotted a loading time regression related to non-uniform collider scaling of cliff meshes. This is now fixed, which reduces both client and server load times by multiple seconds.

Audio Mix & Polish

I’ve been putting the finishing touches on the mix and polish changes I’ve been working on. I recorded 5-10 minute long audio reference clips from some games that I really love the audio work in and spent a lot of time listening back and forth between those reference recordings and Rust, making tweaks as I went.

We’ve got more variations for some common sounds now: each footstep type has eight variations instead of the four we had previously, bows and crossbows have multiple attack variations, raising and lowering ironsights has more variations, etc.

Gunshots and explosions will take over the soundstage in the game a lot more. We’ve been dynamically dropping the volume of background sounds and quieter world sounds for a while now, but I beefed this up a bunch and I think it sounds fucking awesome with the whole reverb tail spread thing we’ve got going on.

And on top of all this I’ve done a lot of small EQ and level tweaks and general cleanup to a LOT of sounds. Most of this stuff would be hard to notice on it’s own, but it all adds up and helps everything sit together a lot better.

There’s definitely still more we can do here, and I’ll continue refining all this stuff moving forward. I’m quite a lot happier with how everything is sounding now though and most of the sounds that have been bugging me for a while are fixed now, which feels great!

Female Clothing

I’m texturing the female clothing I started next week. The skirt is pretty much done, but haven’t got it in-game just yet. I want to really push the frayed look a bit more before calling it finished, in line with Paul’s concepts.


Player Preview States

So it seems that people like this idea. Thanks for all the positive feedback so far. I was chasing a few bugs this week but here’s couple more anim ideas:



I still want to try others like dehydrated, fatigued, etc.

Someone pointed out they’d like to have an option to shuffle through idle stances in the preview. Although that sounds cool in theory, it’s kind of the opposite of what I want to do. Instead of showing random stances, I’d rather the anims give you a heads-up on how you’re surviving, so you can take appropriate action.


Lots of audio polish & mix tweaks
New footsteps w/ more variations per surface type
More bow & crossbow attack sound variations
Bear/wolf footsteps are audible from farther away
Fixed movement being faster when walking diagonally
Fixed metal facemasks not always protecting against headshots
Procedural Map: Dungeon updates
Procedural Map: New powerline meshes
Procedural Map: New mountain types
Procedural Map: More distance between huge mountains
Procedural Map: Reduced water wave clipping
Procedural Map: More aggressive altitude based snow
Procedural Map: Snow patches of various sizes in the far north
Procedural Map: Micro cliffs can no longer spawn on roads
Procedural Map: Wild pumpkins and corn spawn more reliably
Procedural Map: Mushrooms spawn inside forests on ground patches with no grass
Procedural Map: Overall mushroom, pumpkin and corn populations are higher
Procedural Map: Airfield walls no longer float slightly above ground
Procedural Map: Fixed rivers sometimes intersecting with dungeon sewer systems
Procedural Map: Loading time optimizations (mostly cliff and monument placement)
Procedural Map: Reduced overall bush and clutter rock density slightly
Procedural Map: Tweaked the size of driftwood spawn patches
Procedural Map: World size is now clamped between 1000 and 6000
Many food items now stack to 10
556 stacks to 100
Charcoal stacks to 1000
Fixed helicopter gibs being destroyed by fire
Human meat reduces hydration
Added new Waterbarrel art
Reactive target cost reduction
Reactive target automatically resets after 6 seconds of being knocked down
Added Fish Trap
Added various fish meat and constituent products

Rust Devblog 107 Fri, 22 Apr 2016 22:56 CEST

We have a huge devblog this week: the first look at our upcoming facial expressions (grr, whoops, and serial killer*), water usage is expanded, and you can share benchmarks now from in-game. There’s balancing, clothing, deployables, puking, and loads more.


Facial Blendshapes

In an ongoing effort to make the players in Rust seem like living, breathing people I’ve been working on some blendshapes. These blendshapes combine normal maps and morph targets to try and get the realistic feel of skin and muscle moving over bone.



Primarily these will be used to indicate the state your player is in: if someone’s hungry and cold they’ll look depressed, or if they’re alone in the dark they might look terrified. There’s a lot of scope with this stuff, like the possibility of advanced emoticons or even your avatar displaying emotions of the words you’re typing in chat.

HairTaylor Reynolds

This is something that goes hand in hand with the blendshape work I’ve been doing. It’s also not necessarily an indication that beards and hair will be in any time soon, but it’s more a case of ensuring anything we do now with the player model will be compatible with hair in the future. These are early tests, mainly for checking that the hair works with motion on the face, specifically combining head variations with emotive blendshapes in an efficient way.



We’re using a rough mesh that Matt worked on a while ago and it’s still subject to performance checks so a lot could change. It’s worth noting that this work encompasses all hair, not just beards, so don’t worry if you’re female: you’ll get cool stuff too.

Salt Water

Further to last week’s introduction of the water barrel and bucket, I’ve extended the water system significantly. I’ve added Salt Water, which obviously comes from the ocean and is not for drinking. You can still put out fires with it, but taking a swig will damage you and make you spit up some of your water/food.

Fresh Water

Fresh water can be found at lakes and streams… basically any place above sea level. It works like the old water did: replenishing your hydration and giving you some health benefits. However, it has been nerfed not to provide any additional health beyond 40hp. I’ve also added a new item, the Water Jug, which is basically a larger version of the water bottle.

Survival Aspects

Further to the aforementioned changes, I’ve gone through and made some changes to the metabolism, specifically that you will lose a lot more calories by running through the world and using tools. You’ll also use up a lot more water from prolonged high activity levels and from being in the heat. If your hydration level drops too low you won’t be able to sprint anymore until you take a sip of fresh water and beat the heat. I’ve also halved the amount of calories/hydration a player can store on their body. These numbers might be off and may need some rebalancing, but you shouldn’t have too much trouble finding a source of fresh water as you can now drink directly from the world by looking down on any body of water and pressing E (avoid the sea, though).

Bota Bag

I’ve gone through and changed the Bota Bag to work similarly to the water bucket. This means you can fill it up at any water source and drink directly from it with left click, you can also pour it out to put out fires. It has a lid so you can store it in your inventory for later! I’ve also reduced the crafting cost to 15 cloth (instead of 100 and 30 animal fat, wow). As a default item it shouldn’t be too difficult to find the resources to craft one and stay hydrated. Swig on!

Bleeding Nerf

One of the things I didn’t like about bleeding was how quickly it killed you. Bleeding out in a matter of seconds isn’t really what I was aiming for, so I’ve gone through and nerfed this to do about a quarter the damage it did before. If you’re injured you might have time to actually craft a bandage or find help before you succumb to your injuries. We’ll have to see how this plays up and will probably need some more balance tweaks, I’ll be listening.

Water Capacity 

With the introduction of the Water Jug and the Bota Bag, I’ve doubled the storage capacity of the water barrel and the bucket to make them more viable for holding/transporting very large amounts of water. This will be more important in the coming weeks when we add a desalination deployable to the game (see Howie’s section).


When we think we make performance better, we don’t have any way to prove it. We’re blind firing into the dark, hoping we hit something. That’s terrible. I’ve been talking for a long time about how we need to have a benchmark, and we need to run it on the same computers, on every build, over and over again. That way we can compare a changeset to a previous one and have hard evidence that one set of code is faster than another.

So this is what we’ve started doing. We set up a bunch of servers with hardware points we want to target (out of whatever was lying around). So we have a low specone, a mid-range one, an iMac, and a couple of others all running the benchmark on every version of Rust we build and posting the results to the website.

Then we can go on and see if results are consistent across builds.

So if we update Unity, we don’t need to ask around on reddit if performance is better or worse, we already know if there’s any change.

Share Your Benchmarks

You can get involved too: just open the game, open the console and type in benchmark. It’ll run a bunch of tests then open a webpage with your results. You can share the URL with your friends or with us to see what kind of performance you’re getting. Here’s my work PC. If you keep your results together you’ll be able to compare your results across versions, and flag up any performance changes with us.

The game’s performance has been totally shitty recently, and has gotten worse. This system was important for us to add– not only because it tracks positive changes–but it should also allow us to identify and rollback changes that make stuff worse.

The results of the tests are shown in milliseconds, where lower is almost always better. We’ll add more benchmarks over time: when we want to prove something to be slow, when we want to see if an optimization has worked, etc. Here’s a quick explanation of the current tests.

Player Model

Render and animate hundreds of player models. This speed tests our animation code, rig and mesh skinning.


When a player model is shown for the first time, or when a player changes clothes, we have to rebuild the model. This could be a potentially slow process, especially when a bunch of sleepers spawn in, so we want to keep an eye on the performance of this.


How long it takes to generate the procedural map? This is the huge majority of loadtimes on Rust right now. We want to improve this, we don’t want it to get worse. This is also very hardware specific in terms of times, ranging from 30 seconds to 3 minutes.


Render the procedural map with grass and decor, but no trees. It’s surprising to me how slow this is, because we previously assumed that bad frame-rates were down to the buildings. If it’s slow even without buildings, then we have problems.


Lots of people complain that the grass is the cause of performance issues. This test is to prove that right or wrong once and for all.


Decor is things like bushes, flowers, driftwood. This test is similar to the grass test, we want to see how much these things affect performance, and whether they should be enabled or not.


Does the rain lower frame rate? It has historically, is that still the case? This test seems to suggest that having rain on improves the frame rate… which might be because of fog.


This test shoots a bunch of invisible bullets at a bunch of player models to test the speed of the hitbox generation. This is a potentially slow operation, and the same code is used for a bunch of different things that can potentially be called every frame.


I did some more work on performance this week. I fixed an issue where extreme frame rate drops could occur when looking at or near players in certain situations, which could even happen from far further away than the allowed interaction distance. There’s still some room left for optimization in the skinned mesh collider that’s used by players, but this was certainly the most extreme performance issue. I also eliminated frame rate spikes caused by our player mesh building and collision initialization whenever sleepers or players were being streamed in from the server, which happened pretty much all the time when walking around.

Self Interaction Menu

I added a new interaction concept called the ‘self interaction menu’. Up until now only networked entities could provide interaction menus, which could be used by pressing or holding down E. For drinking we also needed networkable interactions for static objects like rivers, lakes and oceans and the way I solved this was to add a self interaction menu to the player that can be accessed by pressing E whenever you’re not looking at another interactable entity. The self interaction menu options can be conditional as well, so for drinking we can do things like only showing the option when you’re near water.

This is currently only used by the new drinking mechanics, but we may find some other use for it in the future. Maurino’s section has info about the new drinking system.

Deployment Annoyances

I fixed some issues with our deployment system. The most annoying one being the fact that certain deployables were extremely difficult to place right, like storage boxes on shelves. I also fixed some exploits that could allow you to place deployables at angles that were far too extreme to make sense.

Looting Exploits

There was an issue with our looting line of sight check that allowed people to loot through tiny slits between building block colliders. This is now fixed.

Projectile Refraction

I’ve been wanting to add this for a long time now and finally got around to doing it this week. Projectiles now change their path in a fairly realistic way whenever they penetrate objects. How much their path changes depends on the surface and projectile.

Resource Collider Offset

I debugged an issue that made client side colliders of certain resource entities slightly offset compared to the server. This was the most noticeable on ore nodes, which occasionally made you rubber band when crouching on top of them, but could have been an issue for some other resource entities as well.

Chat Issues

There were a couple of issues with the way we rendered and recycled chat messages. This could cause performance drops when the chat was very busy and on certain modded servers people could exploit it to intentionally fuck up performance for other players or even cause their game to crash. All of that is now fixed.

Vomit Sounds

I’ve made some vomit sounds in case you’re dumb enough to drink salt water. I made a bunch of retching sounds with my mouth and recorded them, and then poured some chunky soup back and forth between a couple bowls and recorded that. I then took those sounds, chopped them up and layered them together. I also added a bit of water being thrown on grass (which I recorded for the water bucket last week) and some extra wet plops from me dropping a mashed up cantaloupe on the floor that I recorded a couple months ago.

Working on this made me really glad that I don’t have a weak stomach because they’re pretty disgusting.

Footstep Polish

I’ve recorded a few more footsteps this week. I’m pretty much done updating the regular shoe footsteps. Barefoot is next. There’s a bit more weight and clarity to them and a lot more consistency between different surfaces. I’m also expanding the number of variations we have for each surface type. We’ve got four per surface right now and I’m aiming to at least double that.

I’m working on this alongside the mix changes so you can’t hear these in game quite yet, but here’s a little preview of some of the new ones vs the old ones. They sound a little weird presented this way since the pauses between sounds are a little bit too long, but you can get a feel for them at least. You’ll hear the old dirt footsteps, the new dirt footsteps, old grass, new grass, old sand, and then new sand.

Audio Mix & Polish

I’ve been chipping away at the mix work again this week. I’m getting pretty happy with how everything is sitting together right now, so there’s a good chance I’ll merge this to the main branch next week and continue refining things as we move forward.

Dungeons Buildings

I just completed these buildings today and it feels good! It was representing a huge chunk of the dungeons greyboxed material (that some of you still believed was our final art). Some buildings are left to be done, such as the water tower and a few medium sized structures. Overall this is helping greatly with the look of most dungeons.


Player Animation Overhaul

I finished converting all of the old player animations over the the new system I started working on last week. The new player animation system uses far less memory and is also much more optimized. This new system also fixes some issues where it wasn’t displaying where the player was actually pointing with 100% accuracy.

Bow/Crossbow Arrowheads

I set up the bow/crossbow to display different arrowheads depending on the type of arrow the player has equipped. The arrow heads were modeled by Tom Butters and come in five different flavours. Here’s a sample of what some of them look like.


Horse/Bear Animation Improvements

I went over some of the animations for the horses and bears and made some improvements to their attack animations. The new animations are much smoother and have more weight behind them.





Water Dispenser and Desalinator (Concept)

I’ve been working on some concepts for some of the upcoming player structures to handle water.


Water Dispenser

This week I’ve been working on the water dispenser that Howie concepted. It’s a deployable, so you’ll be able to stock up on as much water as you want. Thanks to Vincent for his awesome textures.

You can take it for a spin below too!

Weapon/Tool Harness (Concept)

I’ve been working on a primitive solution for attaching tools and weapons to players. We’re considering having the player spawn with a simple harness, so right from the get go they can sling spears and hang tools visibly off their body.


Female Cloth Clothing (Concept)

Now we have Taylor’s kick-ass new female models I thought we should look at adding some more female-styled wearables, starting with low-tier tribal type stuff that can be crafted quickly from hemp cloth.


Added benchmarks
Added projectile refraction when penetrating objects
Added player self interaction menu (currently only used for drinking)
Improved the performance of player and sleeper streaming from the server
Fixed huge performance drops when looking at or nearby players in certain situations
Fixed deployment of boxes on shelves being annoying
Fixed certain deployables being placeable at unrealistic angles
Fixed a rare issue that could make code locks float when opening or closing doors
Fixed being able to loot through tiny slits between building block colliders
Fixed an issue that could make client side colliders have slightly incorrect positions
Fixed an issue that could make two C4s stick to each other and get stuck in the air
Fixed inconsistent bone scales between the player preview model and the player model
Fixed an issue where chat messages could overflow and use tons of memory
Chat message UI objects are now pooled (less garbage collection)
Fixed glitch causing glow on monument decals in OpenGL
Fixed sun flicker pattern on the horizon in OpenGL
Max Hydration halved
Max Calories halved
Bleeding damage quartered
Bota Bag can be filled from the world
Bota Bag cost reduction
Water does not provide health above 40hp
Moving around uses lots more calories/water
No sprinting when fully dehydrated
Increased storage capacity of Bucket/Barrel
Added Salt Water
Can drink from any body of water by looking at it and pressing E
Flamethrower finds ammo if put on belt

Rust Devblog 106 Fri, 15 Apr 2016 23:09 CEST

A packed blog this week: we’ve added flame-throwers (and water buckets) to the game, and we have the first look at the tech tree, the wrecked Powerplant tower, and our new musical instruments. Plus optimisation, sound tweaks, and more.


Flame Thrower

I really wanted to give you guys something extra to play with, so I stayed up until 6am getting this baby done. This was an interesting and difficult task to get right, but I’m quite happy with the end result.



It’s somewhat rare, it eats Low Grade Fuel like candy, but boy is it devastating. It’ll take out wood blocks no problem, it’ll also damage stone (for now) albeit at a very high fuel cost. It’s also great at cooking other players. Next week I’ll probably have to make a bunch of balance changes and fix some bugs as well as add some new functionality (like people actually catching on fire with damage over time), but I felt it was complete enough to push to the main branch just in time for this patch.


Please enjoy.

Water Bucket

The water bucket is now live as well. It’s found commonly in barrels and is in the BP frag tier. Use it to gather water from the world or to transport water from point A to B. You can also use it to splash an area in front of you with water, which will put out any flames. This should be useful when your base is under siege by Flamethrowers or Incendiary rockets. In the very near future it will play a major role in gardening.


Water Barrel

I’ve added a simple deployable to help with storing water. It doesn’t gather any from the world like the water catchers do, but it does give you a place to bank water for use later. It can be placed indoors or outdoors and is pretty cheap resource wise. The art is WIP and will be replaced with something a little better soon.


Barrels and buckets via Rustafied.

XP Branch

I cranked away at the XP branch this week: we have a working search now, the skin selection box scrolls, the craft queue scrolls, and the cancel button works. I also did a lot of work in making sure you could only craft stuff when the parent was unlocked, and trying to explain that to the end user. The search shows all items, even those that you haven’t unlocked, so hopefully you’ll be able to search for an item you’re thinking about and be able to find out what level you need to be to get it, and what you need to unlock to get there.



There’s still a decent amount of work to do here, but we’re edging forwards. The people on the prerelease server seem to be enjoying the new system, and Unity is doing a good job of getting 5.4 relatively stable. So we’re getting there.

Performance Improvements

We did some profiling and found a couple of bugs that could have caused the lower framerates experienced since last week’s patch. We aren’t sure exactly how much of an improvement you may see, but the CPU side of things was improved by several milliseconds due to a few regressions from last week’s procgen merge. There were some issues with thousands of ambient sounds updating constantly, and part of how the water reflections got access to the main camera was extremely slow. Both of these have been fixed. Fingers crossed you guys see an improvement!

Tech Tree Visualization

I fucked around with the tech tree visualization this week. One of the things with the new XP system is that blueprints are organised in a heirachy, so you have to unlock one item before you can unlock another. For example, you need to unlock the wooden spear before you can unlock the stone spear.

The problem is how to visualize this? How to show the player that they have to unlock these two items before they can unlock the item they want to? Or how to show the player that an item they want to unlock will unlock at level 7, and needs this item unlocked first?

I started off with a timeline looking system, where levels were expressed on the X axis.

This worked to a certain extent, but it ended up being too spread out. It didn’t scale well at all. So I thought, fuck the level on the X axis, bunch them all together and blue the icons out that we can’t spawn because they’re level locked.

This works from a technical point of view, but I can’t help but feel it is way to busy visually, which makes it pretty tricky to read. This is only going to get worse when we have to add indicators for stuff being locked etc.

So right now I’m leaning towards having the second mode, but only showing the tree that contains a selected item. It’s going to take a bit more experimentation to get right.

Tree And Mesh Quality

A while ago I added convars to ramp up the tree and mesh quality much higher than the default settings, but they were hidden from the user and only very few people knew about them. The tree and mesh quality sliders in the options menu now go up to 200, which unlocks some of that additional visual quality. I’ll see how this goes, but we’ll probably end up allowing even higher settings when we replace all those confusing sliders with more descriptive quality settings in the next options menu overhaul.

Light Scattering

Finally got around to push the light scattering updates I’ve been working on a couple of months ago. This includes directional light occlusion, which fixes fog being lit through mountains around sunrise and sunset. I also used this opportunity to fix a couple of scattering related issues with our cloud assets.


I fixed a regression that could make it rain without any clouds being visible and adjusted the cloud visibility during extremely foggy weather. I’m also using a new equation to calculate the fog density, which not only makes terrain fogging look a lot nicer but also makes it harder for people on sniper towers to spot people on the ground during foggy weather.

Entity Streaming Performance

I took some time to investigate the framerate drops people have been experiencing when entities spawn in from the server. I found and fixed a number of issues and things are starting to perform better again, but there’s still some work left to do in that department.

Dungeons Art

With the cooling towers art now over, I made a start on the remaining buildings. As I mentioned last week, one tower stands intact in Powerplant, while the other one has collapsed after what looks to be rocket damage from helicopter patrols. You can oversee pretty much half of the dungeon from the collapsed tower, but you can be seen from the central building as well. Overall the addition of the collapsed tower spot makes the central spot less OP.


This will be part of the next wiping update.

Audio Mix

I’ve been working on the mix a bit this week, which has been awesome from a work-flow standpoint because the prep I did previously allows me to edit everything from one place. This essentially consists of making tons of tiny changes to the majority of our sounds to help them gel together better and sound more consistent. Like they’re really all part of the same world. I’ve also been putting final touches of polish on sounds that need it, beefing up some explosions, adding a bit more punch and low end to some gunshots, adding detail to localized ambient loops, etc.

Since I’m changing so many files I’m holding off on committing this stuff until it’s closer to being done, otherwise the rest of the team would be repeatedly downloading gigs of audio files which wouldn’t be very fun for them.

Water Bucket Sounds

I recorded a bunch of raw material for the new water bucket–literally playing about with a metal bucket I bought online–and then chopped, layered, and polished the sounds up and got them in game.

Footstep Recording

I also recorded some footsteps this week. I’m working towards replacing some of our weaker footstep sounds (like the overly clicky wood footsteps), adding barefoot/shoe variations, adding materials that we don’t have sounds for yet (gravel, wet ground, etc), and adding some accents that will be played rarely (twigs breaking in the forest, wood floors creaking, armor jangling). I’m adding these in as I work on the mix, so expect some of this to hit when that’s finished.

Player Animation Optimization

I’m doing a massive overhaul of how the player animations are done. The current system is really bloated and uses a lot of animations (which require a fair amount of memory). For each weapon the player can hold, I had a set of walk/crouchwalk/running animations, which drastically increased the number of animations required. To solve this, I’m going to use a single set of walk/crouchwalk/run animations and combine them with an upper-body animation depicting what weapon the player is holding.

I’m also making some changes to the way the mecanim layers are set up by combining multiple animation layers where possible. This should have a positive effect on performance and we should see a FPS boost when several players are visible simultaneously.

To give an idea of how complex the current animation system looks, here’s a before and after look at the mecanim chart.


I still need to add some more states, but the important thing to note is the simplification of the layers. The end result should mean a reduction in memory usage + improved framerate.


This was something I was hoping I could hold off for a while and cover all hair in one fell swoop later down the line, but everyone looked a bit weird eyebrow-less so I took some time to give each variation a set. It’ll actually be a good indicator of how real facial hair will react to some of the systems we implement going forward, such as expressive morph targets on the face!

Racial Variations

I brought the Asian male variation into the engine, although you won’t be re-rolling your character just yet. We’ll probably sync a re-roll with a wipe to avoid the confusion of everyone’s face changing every week.


I worked on making planters after Howie masterfully concepted them. As the image above suggests, there’s two types: A 3×3 meter planter which would sit nicely on top of a single foundation, and a single row 3×1 meter planter. I still need to work on the LODs, but it’s pretty much done!

Take a whirl of them here!


Remember this post on reddit? Well it inspired us to push the instruments further. Thanks, Dresdom! And so I’ve made some headway last week and this week on the instruments.

So far we have the Jerrycan guitar, the flute, and I’m almost finished on the horn. I was maybe thinking about doing another version of that in the same vein as Dresdom’s reference, but I thought we could probably utilise the bone resource more here.


Optimized entity streaming performance
Optimized performance of entity parenting (especially door locks)
Optimized runtime performance in PVT and water related scripts
Optimized ambience system (especially in densely vegetated areas)
Optimized rock performance on d3d11 (disabled far terrain splats in blending)
Fixed light clone shadow unsupported format error
Fixed low quality skin shader level-of-detail
Fixed water frame delay causing black edges when rotating camera
Fixed variable luminance in player model preview on Hapis
Fixed terrain shader issues on some drivers
Fixed parallax (q=1) on blended rocks placed on steep hills
Added eyebrows
Tree and mesh qualities in options menu now go up to 200
Added directional scattering occlusion (more realistic fog lighting)
Added new fog density computation for better terrain fogging
Fixed a number of scattering related cloud issues
Fixed that it could sometimes rain without any clouds
Fixed that extreme fog wouldn’t hide the clouds
Added frame time when perf convar is set to 5
Driftwood no longer spawns on rocks
Fixed items being unlootable when rolling inside certain clutter objects
Added Flamethrower
Added Water Bucket
Added Water Barrel

Rust Devblog 105 Fri, 08 Apr 2016 01:10 CEST

The new player models–including females–are now in, and who you are depends on your SteamID. This update wipes the servers and your blueprints. Have fun!


Player Models Added

The new player models have been merged in less painfully than we’d imagined. This update brings aboard the new female models.


We understand this is a sore subject for a lot of people. We understand that you may now be a gender that you don’t identify with in real-life. We understand this causes you distress and makes you not want to play the game anymore. Technically nothing has changed, since half the population was already living with those feelings. The only difference is that whether you feel like this is now decided by your SteamID instead of your real life gender.

This is really just the first pass of an ongoing rework of the player model. I’ll continue to add variations over the comings weeks which means you’re probably not stuck with your new face forever. We’ve got a decent synced workflow between the assets I make in Zbrush and the assets you’ll see in-game now, so it opens up a lot of scope to easily add or change features without a great deal of technical faffing in-between.


Ceiling Light Improvements


Some people were saying the ceiling lights weren’t bright enough and kind of useless because of how little light they cast. I tend to agree, but the solution isn’t an easy one. You see, in real life the light would bounce off the floor and light up the walls making the whole room appear brighter. The problem is we can’t really do bounced lighting in real-time, so we have to settle for some hacks. To that end I’ve increased the spotlight angle significantly and increased its max range so it doesn’t fade out as quickly. There is also an unshadowed omnilight placed about a metre below the emission point which does a good job at faking bounced light and illuminating the walls. We do have to be careful with this because the wider the angle and the longer the beam, the more objects have to be rendered twice for shadow purposes. I think I’ve found a sweet spot so we’ll try it out like this and if it proves too slow we’ll have to dial back the max shadowed spotlights or come up with another solution.

Protop: Placing the lights higher up will illuminate an even wider area

Armor Fixes

Well, that was a disaster.

My armor changes last week kind of completely screwed with the game and it took me a while to figure out why. This also allowed for some open discussion about PvP and some further balance changes to be made to the Facemask. For the record we never actually intended the Metal Facemask to block all but 3-6 damage! The mask was supposed to protect about 80% of incoming damage,

Here’s what was supposed to be happening:

AK Damage( 40 ) * Headshot Multiplier( 2 ) * Protection( 1 - 0.8 ) = 16

Here’s what actually happened:

AK Damage( 40 ) * Headshot Multiplier( 2 ) * Protection( 1 - 0.8 ) * Protection( 1 - 0.8 ) = 3.2

Oops! We were applying protection twice by accident.

After I fixed it I realized it was still messed up, so we’ve reduced the Metal Facemask protection down to 0.5, effectively eliminating the headshot multiplier. The other helmet protections have been brought down to bring them in-line with this change and I think it’s a very good starting point. I’ll be listening for feedback, but so far so good. Another thing to note is I’ve increased the durability of the metal armor pieces so that they can absorb 10-15 shots before breaking.

Medical Fixes

I kind of hate the medical syringe. I think healing should require you to be out of combat or vulnerable for a bit, instead of pumping your arm full of Low Grade Fuel(???) on the run and blasting kids no-scope MLG style 5 seconds later. With that said, nerfing it down to only giving 5hp was not the solution. We need to come up with something else so I’ve kind of reverted this change a little bit. What I’ve done is increased the instant heal ability of the syringe to 15hp, but let it be stacked to 2. When I get some time I’ll revisit how the medical items work and come up with something better.

Grenade Usability

Remember how grenades used to suck ass in Rust? Well not any longer! I’ve done a pass on them and made them much more snappy and quick to throw (similar to what you may find in other first-person shooters) and their landing positions should be a lot more predictable. In addition to this I’ve tweaked the dud chances on the Bean Can Grenade so it fails a lot less often. I’m excited to see if people actually use these now

Grass Changes

The grass was a bit fieldy. It looked a bit too uniform and smooth, like this:

So I went in there and made it all messy and scraggly. We’ve always been inspired by STALKER, and I think this pushes us a bit more in that direction.

Transparent Surfaces & Fog – Final Round

I spent most of the week fixing all sorts of bugs, most graphics-related. This one really broke immersion in heavily fogged environments. The image below shows decals, which are semi-opaque in this case, being completely ignored by fog:

I fixed a few bugs like this in the past but for very specific shaders, like glass or particles. This time, however, a more complete fix will affect all semi-transparent shaders across our entire standard shader set.

Resource Gathering

With this week’s map updates I drastically changed the way you should go about gathering resources. Up until now ore nodes were scattered all over the map, with no particular place to look for them. This made resource gathering mostly luck, and the fact that they were pretty hard to spot didn’t help. Now ores are only spawning around other rock formations, so when you want to find them you can look out for a huge rock formation from far away, go there and check it for resources.

I believe this is how all resources should work eventually. You identify a place to scavenge/farm/gather a certain type of resource from afar, go there, and have a decent chance of success.

Map Updates

The next version of our procedurally generated worlds is now live. For a full list of improvements check the changelog at the bottom of the blog. Here are some screenshots.

Screen Shot 2016-04-07 at 16.27.40
Screen Shot 2016-04-07 at 16.31.45
Screen Shot 2016-04-07 at 16.38.11
Screen Shot 2016-04-07 at 16.42.39
Screen Shot 2016-04-07 at 16.48.18
Screen Shot 2016-04-07 at 16.50.44
Screen Shot 2016-04-07 at 16.51.59
Screen Shot 2016-04-07 at 16.53.55

I also added the procedural vegetation and rock clutter to all the handmade maps.

Lighting Improvements

Our lighting model has been missing environment reflections for a long time, which made all metals, skin and cloth look pretty horrific. The reason we couldn’t boost environment reflections until now was that they didn’t really play nice with indoor scenes. This week we took the first step towards changing that and brought back back environment reflections in the process.

To help mitigate some of these issues we added shader knobs for artists to simulate reflection occlusion by coarsely approximating the object’s self-shadowing.

The next step will be to add screen space reflections to our lighting pass, which should help us make the lighting in indoor scenes far more convincing.

We’re also researching the possibility of implementing a world-space large scale occlusion system, to complement screen-space ambient occlusion and reflections, that would effectively allow us to smoothly darken interior areas like caves and buildings, as well as fade reflections. If proven effective, it would help us solve a few problems.

Door Weak Side

Let’s talk about the melee attack weak side of doors. This was removed with last week’s patch and we’ve decided to leave it like this. Our reasoning is that the only scenario in which the weak side mechanic would actually be relevant was when someone didn’t know about it and accidentally placed a door the wrong way around. This was an easy mistake to make since for most doors both sides look basically identical. Unlike for walls where the weak side mechanic makes griefing significantly harder, it didn’t really have any purpose on doors other than fucking people over who didn’t know about it. So that’s why it’s gone.

Water Stuff (Next Patch)



As per the title, this will not be in game this week but hopefully next week. I’ve done some work on water in preparation for making fire a more important part of the game. You see, I can’t really buff incendiary rockets, or let you set people on fire, or let fires really spread in wood buildings, or have fire arrows, etc. until there is a way for people to put fires out. This also prevents us from taking farming to the next level (or actually usable in any way, shape or form) because we have no way of actually watering plants. To that end I’ve worked on a bucket item that lets you transfer water around and throw it on objects. It’s a little rough around the edges–the particles are sort of ugly and it’s missing some sounds and a few other features–but once this is in it will open the doors for us to work on a bunch of mechanics that have been missing from the game for too long.

State Of The XP System

We had some Unity related crashes last week which made it hard to get much of anything done on the XP branch. Given the fact that we were away at GDC and working on the XP system the past few weeks, we felt that the main game of Rust had some weakish patches. So we’re going to split our resources and I’m going to give some love to the main branch for a week before going back to work on XP.

It’s taking longer than we thought, but we don’t want to push something out that is half-baked. It needs to be completed and tested for a long time before we put it on Main, so we think it’s only fair that we give you some stuff to play with while you wait. Right now we’re looking at improving water as a resource, and as many quality of life fixes we can muster. More next week.

Dungeon Art

I started work on our dungeons buildings as promised last week. I first had to create the texture sets I was missing for the first couple of days, additional concrete, corrugated metal walls, etc.

What you can see here is one of the cooling towers that will replace the greybox models in ‘powerplant’. I am also working on a collapsed cooling tower (since we have two). The collapsed tower will possibly be harder and trickier to explore, but also easier to hide into during gunfights. More on that next week.


Grass is rougher
Grass uses physically based shading
Added new player models
Added 30 minute idle kick if server is full
Fixed ragdoll stretching
Fixed player model being visible for 1 frame when ragdoll becomes visible
Ragdolls legs don't bend backwards anymore
Fixed local player sometimes holding multiple weapons
Fixed double deploy warning
Added specnet convar (for admins)
Fixed weapon firing etc when map is open
Fixed disappearing holosight
Switched back to post/overlay-based ambient occlusion
Improved reflection occlusion
Made reflection probes less dark
Fixed viewmodel shadow shader errors in legacy OpenGL/Linux
Faster water simulation
Thirdperson camera doesn't go through stuff
Thirdperson camera rotates with the target
Thirdperson camera mouse wheel zoom
Fixed bug where looking down above water could clip and show ocean floor
Added soft-particle fade to highest quality version of rainfall
Signs can be edited by the locker
Signs can be unlocked by the locker
Signs can always be unlocked/edited by admins
Train carriages and sedan vehicles updated in dungeons
Fixed pumpjack body disappearing in the distance
Player models blink
Player model eyes move
Fixed rockets only dealing half their damage to building parts
Fixed overly bright footprints and bullet decals on sand
Can enter codelock codes with keyboard
Codelock dialog doesn't show entered code (shows ****)
Fixed slight differences in projectile behaviour with varying frame rate
Fixed anti hack failing to detect players clipping into river rocks
Fixed rocks sometimes disappearing before buildings and players
Hemp plants and ore nodes are bigger and easier to spot
Ore nodes now always spawn around other rock formations
Tweaked the scale of bushes and small trees
Procedural Map: New forests
Procedural Map: New terrain texturing algorithm
Procedural Map: Better cliff mesh placement and more variety
Procedural Map: New clutter vegetation and rocks
Procedural Map: More natural looking beach terrain
Procedural Map: Better river generation
Procedural Map: Road width varies slightly
Procedural Map: Fixed rivers occasionally failing to be detected as water
Procedural Map: Optimized road and river vertex count
Procedural Map: Fixed occasionally visible hard edges on roads and rivers
Procedural Map: Mountains let other objects spawn around their lower parts
Procedural Map: Fixed midair rocks around river mouths
Procedural Map: Better rock cluster vegetation
Procedural Map: Fixed terrain lighting artifacts around certain rock formations
Added the new clutter vegetation and rocks to all handmade maps
Grenades are much snappier and predictable
Beancan grenades are more reliable
Fixed shelves being able to be placed inside eachother
Fix for being able to freelook while aiming
Item attachments are refunded when a weapon is used for crafting (sentry)
Ceiling light placement/floating bugfixes
Fixed metal facemask protecting too much
Lowered other helmet protection
Syringe heals 15 instantly and 20 over time
Increased emission of ceiling lights
Rust Devblog 99.1 Sat, 05 Mar 2016 00:34 CET

We’ve finally reached triple digits! Devblog 99.1. There’s more on the upcoming XP system and tech trees. We’ve added sexier tunnels, made some proc-gen tweaks, shrunk the default world size, and made lots of fixes and tweaks. This update wipes the servers.


XP System

Helk has done a first pass on the tech tree this week. This is the order, and the chain in which stuff unlocks as you level up. This is just a first pass, and at this point just shows intention. We’ll need to do a lot more playtesting to balance it out.

I had to go through an refactor a bunch of code this week. I wanted to add a stats system so we could trace when people were getting XP and how, and what they were spending it on. This helps balance out the system.

I spent a bit of time working on the UI too. I added a tool-tip system, which is proving to be useful. There’s still a lot of work to be done, but it’s getting to where I want it to be. Crafting is on its own window now instead of being crammed on the right of the inventory.

Timeline wise, we’re looking at 1-2 months to being able to ship this to the main branch. We’re determined not to push it until it’s done, we’re happy with it, and it’s polished.

There was talk in the week about the skills system, and a worry that people are going to level up and have 1000 health and 500 jump height. We’ve actually talked ourselves out of the three-pronged skills system as mentioned in the roadmap. We want something a bit more bespoke, that we can get real specific about.

Lock Changes

You know what sucks? When you open your door but you accidentally look at the lock and unlock it. Then you forget to lock it. And people get in your house. And then you email us about all the hackers that fly into your house and there was no way they could have gotten in without hacks.

So now when you look at a lock the default action is to control the door, to open or close it. If you hold down USE it’ll show menu options to change the code.

Websocket RCON

A lot of people are confused about the websocket RCON stuff I mentioned last week. They’re under the impression it’s a new UI for people to control their servers. It’s not. It’s a new way to talk to servers, a way that can be done in the browser.

This week I put a repository up on github with the source of a test client I’m making. This isn’t anything special right now: I’m mainly using it as a tool to visualize data from the XP system to easily spot problems, or just to query where someone got all their XP from.


Feel free to get involved and make pull requests. Especially if you’re a web developer and can make it not look like shit.

Item Specific Inventory UI Sounds

I’ve added some new pickup/drop sounds to items in the inventory screen. Loot is one of the biggest parts of the game, so I wanted to make handling your loot a little more fun and physical, and add another distinguishing layer to items. Right now these sounds are all material based and not actually specific to individual items yet, although I may do individual sounds for weapons.

I’ll be continuing this by adding sounds where this first pass doesn’t feel right yet (we only have a high-pitched metal sound right now, which feels wrong with things like the rocket launcher, for example).

Dungeons Art

I spent the end of last week reworking train yard and water treatment plant level design. To me, they suffered the same issues as powerplant (that I have reworked too) if not more: unbroken long line of sight with hardly any cover. Trust me, it won’t be perfect in this iteration as there’s still fairly long line of sight without cover on the WTP, but I have tried to put more thought into how I offer cover when transitioning from one side of dungeon to another. Most of it came through creating pockets in which you will feel more safe/self contained, until you decide to transition to the next one. There’s still a big advantage in all dungeons to the players who can reach vantage points. I’ll be observing these and if they do need a nerf I’ll balance them out.


I also finished for good my first pass on sewers, after last week I still had two big rooms to finish, they were a bit more unique than the rest of the kit, so I kept them for the end.


Explosive Round Damage Fixes

There were a few bugs with explosive rounds that have been fixed. Firstly, they were doing double damage to some objects, namely the double doors. Secondly, they were not dealing splash damage to the target they directly hit, which meant you had to sort of aim away from something to deal explosive damage to it. Both of these issues have been resolved.

Decay Repair Fixes

Let me explain how decay works (for objects it applies to): basically there is a Decay Duration and Decay Delay. Let’s say something has a Decay Delay of 8 hours, and a Decay Duration of 24 hours. This means that after 8 hours, it’ll start decaying and over the course of the next 24 hours be reduced to 0 health. Opening or closing doors resets the Decay Delay in a radius of 40m around them. This way a base that is frequently used won’t have things decay around it. Unfortunately this isn’t enough, and decay really needs to be redone soon, but for now I’ve also added it so when you repair an object it resets its Decay Delay just like doors do. This should help with maintaining external walls.

Lagged Out Weapon Issues

For the longest time, when someone’s connection was interrupted (perhaps on purpose, perhaps just from a CPU hang) and then re-established, the server would go ahead and process all sorts of data in one go. This means you may have seen someone running and shooting, stop for a second, and then all of a sudden a shotgun-like blast of bullets comes out of them when their connection is re-established. I put an end to this today! We’re now tracking weapon re-fire rates on the server properly, and if you try and fire faster than you should we reject those packets.

Character Rework

One of the biggest issues with the current character is no-one really feels like a living, breathing person. A big step towards that is having some believable facial animation, even just having some subtle eye movement can go a long way. I had to make some amendments to all the heads this week to account for the new teeth meshes, so I took the opportunity to throw in some eyelid bones and properly align the old eye bones. The result of this means the eyelids will follow any eye movement in a realistic manner. I’m no animator, but some quick tests already look quite convincing, and give some indication of what a more fleshed out facial rig could achieve.



Smaller Default Map Size

I reduced the default world size from 16km2 to 9km2. Server owners can of course still set the world size on their end and go back to the bigger maps if they prefer those. The reason for this change is that we ran a few official servers with 4km2 maps and quite liked the gameplay they offered. I think with the old map size most people never actually got to see all parts of the server they played on within one wipe cycle, and the smaller maps feel a lot more engaging due to the higher frequency of player encounters. Anyhow, this isn’t set in stone and will probably be tweaked some more in the future, but let’s give it a shot and see shall we?

Rock Improvements

I took another stab at our procedural rock group spawns. They’re now more clustered and spawn small clutter rocks around the bigger ones.

Screen Shot 2016-03-03 at 13.46.24
Screen Shot 2016-03-03 at 13.26.25
Screen Shot 2016-03-03 at 13.27.22
Screen Shot 2016-03-03 at 13.27.52
Screen Shot 2016-03-03 at 13.30.43
Screen Shot 2016-03-03 at 13.32.25

Procedural Map Fixes

I fixed a decent amount of bugs in the procedural maps.

  • Fixed floaty arid/beach trees
  • Fixed rocks sometimes spawning on warehouse
  • Fixed rivers sometimes intersecting warehouse
  • Fixed occasional sawtooth terrain glitch around monuments
  • Fixed rivers sometimes starting at insane slopes
  • Fixed a number of rock formation prefab issues
  • Fixed missing icebergs
  • Fixed small static rocks occasionally spawning midair

Invisible Forcefields at Dungeons

We had some reports of people being able to take out the helicopter by staying in the dips and valleys at the dungeons without taking fire. Turns out the trigger that is used to let players go beneath the terrain was on the wrong layer and was blocking all server projectiles. This also meant that rockets would not pass through these layers. This is now fixed.

Water 2.9

We’ve had some issues related with ocean tessellation for over sometime now: fog mismatch with the rest of the environment, lack of wave displacement further away and z-fighting. To support all kinds of hardware our mesh tessellation had to be static, which is fine for what we need. The problem is that we weren’t getting the most of it due to our simplified model.

To address those issues I decided to switch to a better mesh distribution that uses camera as reference. All detail is now concentrated within the visible area and better laid out across the frustum so we can now get displacement all the way from beginning to the end of the camera view. I also toned down the simulation to reduce single direction waves.

Unfortunately, it didn’t do as much for z-fighting as I hoped for and we’ll have to take more drastic measures to solve this problem.

Rad Boar Concept

Tom’s begun work on sculpting up the rad boar. This week I took his starting base model and painted over it, developing the idea a bit further as to how the skin should look and overall anatomy of the thing. We don’t want these looking like cartoony MMO mobs; we want realistic tumours/skin diseases and warped skeletons/bones. I like the idea of creepy, expressionless eyes. We’ll probably bounce back and forth on this solving problems until we get an awesome (disgusting) end result.

Next Week

You might not see much from us next week. We’ve decided to start doing 20% time studio wide. We’re starting this with a week-long break from our main projects to experiment on anything we want. This will probably turn into a day every week in the future.

Some people are using this to make prototype games they’ve had idea debt over for a while, some of them are using it to sharpen their tools by learning new skills. These are previously things that people have been doing secretly at night or on weekends, to avoid the guilt of abandoning their main project. Which is bullshit.

Either way this shouldn’t be seen by the community as something that is done to the detriment of Rust, as I’m sure it will be regardless of what I say here. This is us making ourselves better.

Oh also, the week after we’re all going to GDC, so we probably won’t get anything done in that week either. But don’t worry: I’ll post about why you shouldn’t freak out about that in next week’s otherwise empty devblog.


Fixed fuel not being refunded when overspill when dropping on items
Now force disconnects from server when trying to join another from UI
Lock inherits door options
Default option on lock is to open/close the door it is attached to
Fixed ragdoll head stretching
Linux dedicated server creates log files properly
Rcon responses aren't printed to the console/log files
Added admin.bans (returns json list of bans)
console.log, respond with json
Asserts show up red in the server console, have a log file
Updated to Unity 5.3.3p1
Added Impact sounds for chain link fence building parts
Overflowed large furnaces shoot items out of the chimney
Tweaked volume of bush/tree ambient sounds
Fixed building privilege sometimes staying after death/server restart
Added item specific pickup/drop inventory ui sounds
Conditional colliders once again update on server restart
Dungeon art and design update
Reduced default map size to 3000 (from 4000)
Improved procedurally generated rock clusters
Tweaked road and powerline generation
Fixed floaty arid / beach trees
Fixed rocks sometimes spawning on warehouse
Fixed rivers sometimes intersecting warehouse
Fixed occasional sawtooth terrain glitch around monuments
Fixed rivers sometimes starting at insane slopes
Fixed a number of rock formation prefab issues
Fixed missing icebergs
Fixed small static rocks occasionally spawning midair
Updated HapisIsland

Rust Devblog 99 Fri, 26 Feb 2016 22:24 CET

Reactive targets, sexier dungeons, the upcoming XP system, a closer look at female player character, and lots more.



More music this week. I’ve been looking at screenshots of sunrises in Rust while writing this one. I’d still like to add another melodic element that can switch off with the main lead sound, spice the drums up a bit more, and expand the higher intensity sections, but I’m pretty happy with where it’s headed so far!

Websocket RCON

By default we use an RCON system that works a bit like the Source Engine protocol. This was done this way so we could use existing tools. It’s a well-used, well-documented protocol, and everyone knows how to talk to it.

Websocket RCON is the future. It works pretty much the same, except any browser can communicate directly with it. The benefits of this are pretty self explanatory. You can make a comprehensive RCON tool in your browser with a single html file. No need for a server back-end.

This new system doesn’t sit side-by-side with the old one, but replaces it, so it’s disabled by default. To start your server with websocket RCON add “rcon.web 1” to the command line.

My hope is to have a simple, open source web app on githubpages that the community can contribute to, which anyone will be able to use from their browser on any device or OS within the next couple of weeks.

Reactive Target

The reactive target deployable is in. It’s not a game changer or anything, but it should be a fun addition for those who want to set up killhouses or target ranges. It has the added bonus of needing to receive the same damage as a player to be knocked down, and the bullseye does headshot equivalent damage and has a special particle effect to notify you. After it’s been knocked down simply press E on it to raise it back up and use it again.



XP System

I’ve made the XP system live on the pre-release branch. It’s a bag of shit right now, so don’t bother trying it yet. It’s running on Unity 5.4 beta, so it’s particularly crashy. My guess is that they’re looking to release 5.4 in time for GDC next month, so it should hopefully stable up by then. Having Rust running on it and highlighting the crash problems should also make both products better.

One thing I want to address this week is the fear that you won’t have to loot anymore. Players are concerned that they’ll no longer have to explore and loot because they can learn blueprints by gaining XP. This is true for the most part.

Our intention is to make loot more relevant in other ways. Right now a lot of the stuff in Rust is crafted out of raw resources like wood, metal etc. We want to make that more logical. Say you want to craft the Tuna Can Wall Lamp: you’ll need to find a fork and a tuna can. You can’t just magic those up, you need to find them in loot. This would serve to make the sophisticated late game items more precious, because you’ll have to find rarer components.

Linux Server

The guys in Slack got the Linux server working, and I applied their changes to main. You should now be able to download the Linux server and get it working right out of the box.

We’ve had one of our official servers running for a week on Linux now, and it seems just as stable as Windows. I can’t confirm any other memory or CPU benefits to running the server on Linux, since it was a fresh server it’s hard to compare.

The biggest benefit to running a Linux server is that it’s free, which can be a significant saving depending on how many servers you’re running, and where you’re hosting them.

Dungeons Sewers

Ready for more progress on the dungeons? This week I have sewers for you (see the header image, too):


Some aspects in these screenshots still require more work: the decals in particular. We need to write a decal shader that can read shadowing information from the scene to avoid the odd lighting showing on them. Such a shader should also help with reducing the Zfight that the decal meshes currently produce (when the picture depth buffer lacks precision surfaces start to flicker). We also need to work out some kind of vis-area volumes soon in order to cull the exterior meshes when we are in tunnels because direct light goes through the terrain into tunnels and it looks like horseshit. Once we get all that sorted out, we’ll be able to lay some more interesting atmospheres in interiors.

Dungeons Pipelines

I also completed the pipeline set art this week:


Load Balancing Improvements

In Rust we use a load balancer on the client to do any work that can be delayed in a way that it doesn’t take too much time per frame and instead tries to distribute the workload over multiple seconds. Over time more and more stuff was thrown at this system and we ran into problems where the backlog queues would grow too massive on old hardware, especially when flying around in admin mode. To fix this I made the load balancer a bit smarter this week. It now takes more time per frame the longer the work item queues are getting, which should make huge backlogs a thing of the past.

Stability Warmup Retirement

I pulled the trigger on completely retiring the stability warmup on server start. If you remember I added stability serialization a couple of weeks ago which made the server startup a fair bit faster, but we kept an initial stability check around to make sure everything was working correctly and allow people to load up old savegames that haven’t stored any serialized stability values yet. With this check now being gone the server restart time should improve quite a bit.

Kill Means Kill

This one really got Twitter excited. The idea behind making the kill command injure you the first time you enter it and kill you the second time was to disencourage people from using it all the time. However, it really didn’t change people’s behaviour at all and was simply annoying. From now on when you enter kill in the console your character dies immediately. To those of you who now think it’s the end of the world as we know it because they liked to enter the wounded state to annoy people: There’s been a command to enter the wounded state for a while, it’s called injure. While I was at it I also fixed the issue that your active item didn’t drop when you died without entering the wounded state first, which has been bothering me because it meant you sometimes had to look for a weapon on the ground and sometimes you didn’t.

Player Model Variations

I finished a female Asian head variation. I might make a few tweaks in the texture, and I’d like to take a look at how I handle the eyebrows across all of the heads eventually, but it’s close to being ready for now.

Player Model Teeth

The new player model’s got a new set of teeth. Should have them finished and in game by the end of the day.

Ambient Occlusion Improvements

I made some changes to the way screen-space ambient occlusion works to integrate it better with Unity’s physical-based lighting and avoid overshadowing in direct lit surfaces. Screen-space AO is now merged with texture-based AO in the appropriate stage of lighting since they represent essential the same effect just at different frequencies. A nice upside is the elimination of that persistent grass darkening we’ve had for a while:

Female ClothingTaylor Reynolds

Garry implemented the female clothing system, so female players have their own sets of certain clothing items. It’s only a subtle change but it can make a lot of difference recognising player silhouettes, plus it won’t look like they’re wearing body armour under their t-shirts.

Icebox (Concept)

If we take food preservation in a more realistic direction I think some form of keeping your food cold will be necessary, so I did a few concepts for an icebox.

Wall Mounted Spinner (Concept)

Players are creative and often create their own games inside Rust that were never intended. This idea is meant to act as a tool to facilitate that. I’ve imagined a few ways I could see players using a paintable wall spinner, but I’m sure people will come up with many more creative uses for it.

Entity Destruction Tracking

If you’re not a programmer you can probably skip this section or read it when you’re having difficulty falling asleep.

Something most people find weird when they get started with Unity is the way you tell the engine to destroy stuff. There’s one destroy method for everything, no matter if it’s a game object, component, script or in some cases even a prefab or asset. You can call it directly in any MonoBehaviour or ScriptableObject or, since it’s a static method, on any of the Unity component classes. The problem with this is that you really have no way of getting any sort of errors when doing things you shouldn’t do. You can call Texture.Destroy(gameObject) and nobody will complain, because what you’re really doing is Object.Destroy(gameObject), you just might not be aware of it. You can also do GameObject.Destroy(this), which won’t actually destroy the game object but the current script component. And then one day you’ll write a huge project with networking and custom script events instead of the built-in Unity ones, and at that point you might need to do some cleanup before OnDestroy() is called so you add your own Kill() method. Everything’s awesome until someone, somewhere calls Destroy() instead of Kill() on one of those entities. Even if you detect this in OnDestroy(), you won’t have the stack trace to check where the error originated from since OnDestroy() is actually delayed until after all frame updates have been executed. This is pretty much what we ran into last week and debugging it wasn’t exactly the most fun we ever had.

To make this easier in the future and most of all get some sort of error the second we commit incorrect code to the dev servers I added our own destruction methods that can tell us when we’re doing silly things. Let’s hope this will save us some time in the long run, and if you’re a game developer working with Unity seriously consider doing this sooner rather than later.

Bigfoot (Concept)

This week I was thinking about types of creatures that might be cool in Rust–apart from animals–and thought that stuff based around urban myths. So I worked up an idea for Bigfoot, but with a bit of a different spin from the usual ape look.

He is more of a humanoid mutated to be larger and hairless from radiation and toxic chemicals, maybe even a science experiment gone awry. I like the idea of these irradiated creatures having some kind of inner glow visible only at night that shows the weakpoints needed to take them down.



Added websocket rcon
Fixed Thomson skin icons
Updated EAC
Rcon things during load
Linux server now works (!)
Added reactive target deployable for target practice
Added entity destruction tracking (error when destroyed incorrectly)
Fixed armored foundation steps removing the sides of attached foundations
Fixed game object hierarchy errors caused by pooling when disabling player models
Completely retired stability warmup on server start (much faster startup time)
Load balancer takes more time per frame when working off large queue backlogs
Made the kill console command kill immediately (instead of entering wounded state)
Fixed active item not dropping when killed without entering the wounded state first
Removed dynamic memory allocations from the deferred decal refresh
Added decal.cache convar (refresh every frame vs. only when marked as dirty)
Fixed trees, ores, barrels and collectables sometimes spawning midair near rocks
Fixed cargo plane propellers not fading into fog
Rust Devblog 98 Sat, 20 Feb 2016 00:30 CET

The long wait is over: we’ve added server queues! We’ve also been revamping Hapis, adding right-click to the inventory, concepting rad animals, and optimising. Always optimising.



Spent more time on music this week! I’ve always had a tendency to write darker, moodier music, but that sometimes doesn’t feel right in game if you’re strolling through a green grassy field on a sunny day, so this one’s trying to get away from the super dark vibe without losing the hint of tension and mystery that feels like Rust to me.

I’ve been playing Rust a bit with the songs I’ve been writing playing in the background and most of them feel pretty good. Some are a bit too busy and feel like there’s a little bit too much going on once the game sound comes into the picture too, so I’m steering the music in a slightly sparser direction now. I’ve started cutting the fat from some of the other songs, pulling atmospheric elements out of the tense drum sections and things like that.

XP and Levelling

I’m hitting a roadblock with the development of the XP and levelling system. It’s getting to where I can’t develop any further without playing it properly. So pretty soon — maybe this week — I’ll be pushing it to the pre-release branch.

It’s still pretty rough, as I’ve been fighting with the internals, but it’s very important to see how it plays and iterate on that. So if you do join the pre-release branch and think it’s a big, stupid mess, please appreciate that it’s not always going to be a big, stupid mess.

Connection Queue

Since we got popular again a lot of people have been asking for a connection queue, so they don’t have to keep spamming the join button to get on their favourite server. This now exists.

This comes with a couple of extra benefits to server owners: Maxplayers is now somewhat dynamic, and you can change it while the server is running. Making it lower than the number of players on the server will mean that anyone else that joins will be put in the connection queue until the player count is lower than maxplayers.

Another benefit is that server admins jump the connection queue. So if you’re running a 200 player server and you want to join to check on some suspicious activity but it’s full, you still can. The server will just be 201/200.

Right-Click Inventory

You know how you can right-click loot to automatically copy it to the inventory? Wouldn’t it be great if you could right-click items in the inventory to automatically copy them to the loot? Well now you can do that.

If you don’t have any loot open and you right-click something in the clothing/belt bar, it will try to move it to the main inventory. This is particularly useful if you’re dragging something with the left mouse button, because you can right-click to move items in the belt without dropping it.

Shoreline Improvements

Between helping to get Rust ready for Unity 5.4, I made improvements to shoreline interaction. Objects like rocks and driftwood now feel wet and more connected to the surrounding water. Every bit helps.

A larger problem I’m also working on, which should be ready next week, is the very distracting z-fighting happening between the shore terrain and ocean surfaces.

Conditional Models 2.0

The new conditional model system is finally done and it seems to be working really well from what I could see on the staging servers. To recap, the conditional model system is the thing that changes the appearance of building blocks depending on what other building blocks they’re connected to. The old implementation used physics queries quite excessively which led to reduced performance and caused quite a few glitches. It didn’t support batching, couldn’t run on the server, and was only evaluated on objects that were very close to the camera since it was too slow to process and render for all building blocks.

The new system fixes all of those issues and should allow us to do some really interesting stuff in the future. The fact that it supports batching and doesn’t rely on physics queries improves client side performance around huge player-made structures. The fact that it can run on the server allows us to update the roof collider together with the roof visuals, which fixes the invisible roof side walls. The fact that it’s much faster to process and render means we can run it on all building blocks rather than falling back to a generic mesh in the distance. All of this also means we can, for example, remove the sides of foundations where other foundations connect, which reduces the overall vertex count of buildings quite noticeably. A number of building meshes, like the wall corner pieces, will need updating to get the most out of this new system visually, but until then you can simply enjoy it for the fixes and performance improvements.

Hapis Revamp

Hapis Island, while never being perfect in the first place, has unfortunately been degenerating into a mess over the last few months. There are a number of reasons why this happened, things like us changing the way the terrain materials blend, and retroactively changing the already-placed rocks that were all over the map.

On top of that, the map always suffered from ugly, under-spawned areas, because the sheer size of it means it is a massive time sink to flesh out.

I am tackling all those things at the moment, so expect an overhauled Hapis map after the next wipe. It still won’t be perfect, but it will be a lot better. Here’s some before and after shots.

Entity Destruction Lag

Entering and leaving networking groups has always been one of the primary causes of stuttering in Rust. Things even seemed to have gotten worse over time, so I decided to sit down and profile it all this week. The first thing I noticed was that especially leaving networking groups seemed far too slow for what it did. The good news is that I was able to eliminate the major reasons for that by getting rid of a bunch of entity destruction callbacks and balancing the load of massive entity counts in a networking group over several frames, making the process of leaving a networking group orders of magnitude faster (think milliseconds per frame rather than seconds in some cases). I’m not even close to being done with all the potential optimizations we can do in this area, but at least I made some good progress this week and the results should be quite noticeable.

Building Streaming

A long standing issue with the way we stream buildings into the world was that there could be situations where certain walls were invisible while their skin was loading, which could potentially be abused to look inside buildings. Since buildings tend to get more complex the more stuff we add, I felt like I should address this now rather than later. I added efficient placeholder geometry to all building blocks, which is rendered until their correct skin and conditional models have been loaded.

Dungeons Art

Sets of smaller objects done this week: I have the industrial ladders and staircases/overhangs done. I also took a couple of days to better the road textures and models, and add a few longer segments to avoid repetition and to reduce drawcalls. Overall the roads should look more real in the way they are broken up, less like the result of an earthquake (as it was looking like before).


I’m working on the pipelines set, and I should have that done by the end of this week. Nothing to show on that for the moment though.

Potted Plants (Concept)

More decoration ideas. I thought it would be nice to bring a little life indoors.

Pets (Concept)

After giving one of the potted plants a name (in the concept above), I thought why not have caged pets to give names to?

Placeholder Sounds

The placeholder seed planting sound is finally gone so you can stop having a heart attack every time you plant a pumpkin now. Same with the spear.

Player Rework

I’ve mostly been working on the LODs for the character this week, so there’s not a lot to show. You might have noticed that currently all the heads look the same from a distance, this is because there’s only one set of LODs for all the head variations. The heads now all share LODs, but retain the differences in shape which is easily applied to any new variations I’ll do. The new ones are also a lot cleaner, so no more partially severed hands or gaping holes in the neck!

Rad Animals (Concept)

I’ve been working on some more early stage ideas for rad animals. Rather than have them as lumps of walking meat, with some random pool of health that you whittle down, we thought it would be cool to explore different behaviours and methods of killing them that would provide advantages to taking them on in groups, but also reward skilled solo players. One idea is there’s weak points on the animals, where their skin is thinner and so emanates a radioactive glow, with larger spots on the back/sides that would enable teams to attack them. There’d be smaller, harder to hit spots on the front that accurate solo players could exploit. A feature of these weak points is that might also become more visible during the night, meaning that the time of day that you hunt or are hunted by these things plays a factor in how easily you can see and target these weak points.


Radiated Boar (Concept & Model)

Paul concepted this beast of a boar/pig and I took stab at it: take a look!

Paul concepted a newer, more menacing version of it (above). The idea is that the glowy radiated pustules are weak spots (no pun intended) where most damage will be dealt. We want to push more of the deformed, asymmetric limb look to the irradiated creatures. I’m working on the newer version as you read this, and progress is going well. Looking forward with more updates soon!

Crafted Mortars (Concept)

Another idea that I wanted to explore was disposable, one-time use weapons that enables players to utilise higher tier ammo–such as rockets–with limited resources. It’s something that could potentially give weaker players the edge in a fight against a more prepared enemy. First idea that I thought would be cool for raiding is mortars made from some basic materials. These could fire rockets, or even their own kind of improvised ammo.

Tree Improvements

Our trees also suck right now. You know it, we know it. A lot of it has to do with how crappy the billboards look, but that will be improving somewhat after the next wipe, as billboards will then have proper canopy translucency, instead of just glowing in the dark like I don’t know what.

Wood Hammer View Model Animation

The main pose for the hammer had annoyed me for while. It seemed really ‘wooden’ & upright, so I went in and changed it. I also tweaked the rest of the other animations while I was there, including a new deploy (complete with new SFX).




New seed planting sound
New spear throw sound
Added connection queue
Right clicking items with loot open moves them to loot
Right clicking items in clothes slots moves them to the inventory
Right clicking items in the belt bar moves them to inventory
Fixed unreliable saving
Improved and tweaked terrain shore wetness
Beachside objects, like rocks and driftwood, now getting wetness
Updated wood hammer vm anims
Added new building conditional model system (performance, reliability, visuals)
Reduced stuttering caused by entity despawning when leaving networking groups
Added placeholder geometry to buildings while their skin is loading
Load balanced worker items are processed by priority
Made mesh batch refreshes faster in certain situations
Made external walls and window bars use the simplified building block entity
Converted entity events from OnDestroy to DoEntityDestroy (modders beware)
Retired “Construction Skin” physics layer (modders beware)]]>
Rust Devblog 97 Fri, 12 Feb 2016 18:57 CET

Lots of balance tweaks this update: external walls and masks are no longer OP, while the Code Lock takes a buff in damage dealt. There’s the first look at the flamethrower in-game, though you’ll have to wait a little bit longer to get your fingers burnt.



More music this week! This one’s most of the way there, but needs a little bit more work still. The brass part needs some love, and the drums could be a bit more tense in the later parts (which would be the more intense parts when this is dynamically arranged in game).

Code Lock Brute Force Exploit

Some brute force codelock guessing scripts have made their way around the cheating community and there’s been quite a bit of noise made about it. We looked into it and found several exploitable problems, so these holes are now sealed. You can no longer do anything with locks while dead, and every time you guess wrong you will take a bunch more damage: first time is five, then 10, then 15, etc. If you stop trying for a while the damage will reduce back to five. This should make it virtually impossible to brute force guess a combination in a remotely reasonable amount of time. If it’s not enough we’ll adjust the values, but I think we’re good for now. Sorry about that everyone!



Metal Facemask Nerf

Well… this was enlightening. I guess when we adjusted the skeleton damage multipliers we forgot to take some armor into account. I’ve lowered the bullet protection value of the Metal Facemask by about 20% to bring it in line with the chestplate. This should mitigate the “taking six headshots without dying” issues with armor until we add per-attire health values in the near future.

External Walls & Gates Balance

I took a look at the health and armor values of the external gates and walls and to my surprise they were completely out of whack. They had no building shell protection and their health seemed to be artificially inflated with temporary numbers to compensate for that. It should not take eight C4 and 16 rockets to destroy these things. Their entire purpose was to be able to build a compound without having to place foundations and walls. To that end, I’ve drastically reduced their health and added building shell protection to them. What this means is you won’t be able to pick through them as effectively, but Stone will also take only three C4, and wood will take 1.2 C4. I think these are far more appropriate values, but I’ll listen for feedback and adjust as we go. I’ve also slightly inflated the cost of wood gates.

Skin Material Tweaks

I’ve brought myself in line with the main branch ready to start merging the new player models into the game. This means I’ve been able to use Diogo’s new skin shader on the updated model. Results are looking nice so far, and I’ll be working with Diogo to further tweak it.

Conditional Models 2.0

I’m finally done with the last part of the new building conditional model system. It was a lot more fucking around than expected, mostly due to performance and memory usage concerns, but conditional models now run on the server as well and performance on both the client and server seems to be good. I won’t throw it into this week’s patch due to the lack of testing, but you can expect it next week so I’ll post more details on everything it does in it in the next devblog.

Decay Improvements

Decay has been pretty annoying for a while. The decay points that should be used to disable it on internal foundations didn’t work reliably and checking them was pretty slow on the server side. This is now fixed, so foundations will decay slower when there are other foundations attached to them. This uses the same entity socket linking backend I implemented for the new stability and conditional model systems – it feels good to get some good use for a wide range of building related stuff from it.

Dungeons Art

So far I’m getting things done at a good pace on dungeons. This week I finished the art for:

  • Brick/Plaster walls set
  • Concrete slabs set (used on the ground)
  • Rubble piles set (junk, concrete, bricks, coal piles or various sizes)
  • ‘Glue’/Dirt Accumulation textures (used where walls meet the ground)

I plan to release all this new content on the next wipe cycle now as it makes more sense due to the long list of changes to the dungeons themselves.

Powerplant layout has changed, and it’s now more compartmentalised. Before you could pretty much see from one side to the other; now several pockets open/reveal to you as you progress through. I’m planning to give the same treatment to the other dungeons. There’s a technical reason behind this as well: when we will have occlusion culling volumes, we’ll cull a lot of shit that’s not visible, for the best.


Culling Improvements

Something that’s been bothering me for a while is that we’ve always had to cull all objects pretty early since the performance overhead for any object, no matter how low poly, was pretty significant. Thanks to the batching improvements we rolled out a few weeks ago this overhead was eliminated almost entirely, so I got rid of the super early culling of barricades and you can once again use them to hide from far-distance observers.

Flamethrower Animations

I rigged and animated the flamethrower, and created sounds and special FX for it. Hopefully Helk can have this in game by next week.



Prefab Pooling

I re-enabled prefab pooling this week. If you remember I added this several months ago, but we ran into issues with the sound system and had to disable it. I sat together with Alex R to fix these issues since bringing this back will be a huge contributor towards keeping the frame rate more consistent.

Deployable Placement

I updated all deployables to use the newer version of our object placement system which features a number of quality of life improvements over the old system. While I was at it I also fixed a number of potential exploits with object deployment. Aside from that the biggest advantage from a player’s perspective is that deployable placement guides no longer immediately turn red when they are too close to another object but instead remain at the last valid placement position that has been found, which makes the alignment of boxes much easier. This also means we can soon get rid of a bunch of ancient code, and the best code to maintain is no code at all.

Automatic Violation Kicking

I enabled automatic kicking when high anti hack violations have been detected by a server. We have tested this on our servers for a while and as far as we’re aware there aren’t any unresolved false positives with it at this point, so it should be smooth sailing. Server owners can of course still configure this behaviour with the anti hack convars.

Racial Variations

Worked on some more racial variations, this time an Asian female head.

Melee Concrete/Rock Impact Sounds

We’ve gone through a handful of different versions of these now, but since they’re one of the sounds you hear most often, I think it’s worth really spending time getting them to feel right, and I’m a lot happier with where they’re at now.

I’ve been recording a bunch of other things that will end up in game over the next few weeks too (physics/pickup/place sounds for items, better/more varied footsteps, more birds, etc).

Graphics Improvements

Was all over the place this week in regards to graphics. Fixed and optimized a lot of shaders, fixing bugs, and making changes based on player feedback we’re getting from multiple sources. Just a bit of much needed performance and aesthetics polish before I get back to new features and bigger tasks.

Tyre Structures (Concept)

Continuing on with more ideas for stuff players can place in the world, I tried coming up with a few different uses for tyres. I know some of these would function similarly to a few of the items we already have, but I don’t think it hurts to have more visual variety. For some reason I got pretty tired after doing these.

Reactive Target (Concept)

The self resetting target design I had from last week was probably a bit over-designed, so I came up with some simpler variations. Instead of the target coming back up on its own we want players to have to reset it themselves, after doing these we settled on the version all the way to the right.

Reactive Target (Model)

I loved the idea of the reactive target concept by Howie, and the idea of having to manually set it up. After settling on the far right version, we made it. Take a spin of it here!

Trap Spawns

There was a little bit of a problem with traps spawning quite commonly in barrels and in radtowns, and this meant new players would just randomly deploy them leaving the world littered with useless traps. That only meant frustrating random deaths for other players. This has been fixed by only allowing the blueprint for traps to drop instead of a deployable version. If you want to use the traps you’ll have to spend the resources to craft them now.


New rock/concrete melee impact sounds
Enabled server violation score kicking by default
Re-enabled prefab pooling (performance)
Made pool.prefabs and pool.assets console commands take an optional filter argument
Fixed invisible external wall gate doors in the distance
Tweaked external wall gate LOD ranges
Fixed invisible barricades in the distance
Converted all deployables to the planner system (quality of life)
Fixed decay points on interior foundations being buggy and unreliable
Improved server side building decay performance
Fixed various deployable placement exploits on walls and rocks
Allowed tree.quality and mesh.quality convars to be > 100
Made mesh and tree qualities > 100 push back billboard and cull distances
Wall frame inserts do the same construction layer checks as walls
Removed hand snapping into view on hatchet vm attack & hit anims
Fixed some shader bugs in large monuments
Fixed low resolution terrain rocks
Fixed runtime shader errors causing invisible objects on Linux
Fixed culling not working properly on some objects
Fixed helicopter windows and rotors now fade into fog properly
Fixed horse hair to not fading into fog properly
Improved and optimized rainfall shader
Improved anti-aliasing
Tweaked important textures to work with trilinear filtering and anisotropic
Increased resolution on some props with extremely low resolution textures
Improved skin shader
Brought back and improved shore wetness
Metal facemask protection levels lowered to that of chestplate 
Codelock does higher shock damage for wrong codes
External wall health balance
Removed traps deployables from common loot table (bp only)
Added skins
Fixed DDOS amplification exploit in steam query
Updated weapon mod icons
Added "ent who" command for admins (echos entity creator)
Fixed calling some RPCs when dead
Added command "clear" to clear the console
Added command "copy" to copy the console to clipboard
Updated EAC
Updated to Unity 5.3.2p3
Rust Devblog 96 Fri, 22 Jan 2016 18:26 CET

Ladder hatches are in. As well as adding floor frames, this now makes the game 666% more sinister. This is a server wiping update, so we’ve tweaked Proc Gen a little. There’s info on the upcoming XP and levelling system, and lots more.



I spent more time on music this week. I polished up the second tune I had started last week and started work on another piece too. Enjoy!

Physics Updates

I updated more physics code to use Unity’s new physics API features. This is all invisible to you guys, but the gist of it is that a bunch of stuff got more memory efficient, reliable and faster.

Editor Server Testing

We’ve been in kind of a horrible situation to test certain things lately because we couldn’t load savegames from servers directly in the editor. This pretty much meant the easiest way to test the server startup or a savegame was to commit, let the build server do its thing, download the update and run a dedicated server. For the new conditional model system and stability serialization this really started to piss me off, so I fixed everything that didn’t work when loading a savegame in the editor. Now we can load up any world from a server directly in there, which is useful for lots of stuff from performance testing to making sure things are working before throwing them at the dev branches.

One thing I’d like to do with this is some sort of reproducible performance testing using real savegames, as that would be a great indicator of the actual performance gains we can expect from an optimization. It would also allow us to compare performance when upgrading to a new version of Unity in order to detect any regressions or improvements on their end before pulling the trigger.

Floor Frame Usability

Since floor frames will go live today, we tested them on the staging branch this week and I did some usability improvements, balancing and fixes for them. You can now rotate the floor frame hatch by looking at different edges of the floor frame when placing it. The main thing to be aware of when designing your base is that you cannot use pillars to increase the stability of floor frame inserts. The floor frames themselves aren’t a weak spot compared to floors, so you shouldn’t be held back by safety considerations.

Dungeons Art

I’m back producing the art for the dungeons. Done this week on my branch are the chainlink fences that I have adapted from the player blocks I made last week, as well as concrete walls. I also produced a first type of rubble pile, it’s all kinds of junk in this one, and truth be told it won’t work everywhere the old greybox was placed. I need to add some other types of piles, like charcoal, concrete boulders only, brick only, etc. The good thing is high poly meshes are done and it’s relatively easy now to throw another pile of something, bake it and place it in-game.

None of this goes in this week, the layout of dungeons is changing as I adapt the looks and level of detail in places as I go. Patience.

Stability Serialization

Building stability serialization is now in, which for you means much faster server restarts. It also improves the performance of stability refreshes at runtime since I got rid of a bunch of overhead and made the stability calculation terminate quite a bit faster. The effect on the building stability percentage is negligible, so your old base designs will still work.

Conditional Models 2.0

I did some more work on the conditional model system I talked about last week. The only things left to do are to support prefab pooling and add conditional server side colliders. Since it doesn’t require a wiping update to go live I’ll take some more time with it. There will be more details next week.

Linux Server

Don’t get excited: it isn’t working. But I’ve been working with some guys on Rustafied’s server slack on getting it working. This included some non-trivial work to get the dependency on OpenGL out of our native library, which I did by splitting them up into separate libraries (so the server doesn’t even need to load the rendering one). It works to a certain degree right now, but we’re having problems with getting Steam to cooperate – so players can’t join.

If you can get it working or have any pointers as to why it isn’t working, let me know on Twitter by clicking my name on the top right of this post.

Clothing Tweaks

I’ve gone through the last of the clothing pieces and tweaked them to match the new player models. All 40+ pieces and their LoDs are finished now, with the majority of them having some extensive reworking of how they deform.

Standard Shaders 2.0

Finally refactored our entire standard shader codebase. There are a number of advantages to the new approach, such as: dramatically reduced compilation times (60 times faster in some cases) which will help our iteration times, eliminate some constraints we had before allowing us to fix problems like the tire mark decals in the warehouse building, and hopefully an improvement in rendering performance due to the elimination of unwanted or redundant shader clutter.

Procedural Generation Tweaks

Only a couple of minor changes to the world generation this time around since I was busy with building related work for the last month. I tweaked the amount of forest bushes in the various biomes and made sure that field bushes and rocks are clustered together a bit more tightly. These changes are meant to give the whole thing less of a “rocks and bushes everywhere” feeling, let’s see how it works out.

Tuna Can Wall Lamp

Lamps are awesome! They let you see in the dark without having to squint real hard and wish you had night vision. Paul concepted some artwork for this a while back, and with a few tweaks here and there and with the help of Matt (who works on Deuce, and who gave me the idea to put a chunk of shiny metal at the back to act as a reflector) it’s now made! I guess the idea is that you can place it anywhere on your walls. Which is awesome. You can have a spin of it here!

Placeable Objects (Concept)

I’ve been trying to come up with more objects for players to place around their base that work within the current mechanics that we have.

Resetting Targets (Concept)

Helk suggested another idea for a target that would flop over when shot and then after x amount of seconds it would reset itself

XP System

One thing I’m keen to try with the new XP/Crafting system is moving the crafting menu from the right of the inventory menu to its own screen. It’s a constant struggle trying to get everything on one screen, and that’s only going to get harder as we add in skills, unlocks and tech trees.

Right now I have it wired up so that TAB opens the inventory menu, and Q opens the crafting menu. Pressing TAB while in the crafting will switch to the inventory, then pressing Q will switch to the crafting. This has to feel really snappy so that you can quickly switch between them to easily determine how much of a resource you have etc. Don’t worry though, I’m planning on having a list of “quick crafts” on the inventory screen too, so you’ll be able to start a craft from there should you want to.

The good thing about XP system is that as developers we can use it as a tool to indirectly change behaviour. We never want to say “hey, you killed a player -10xp”, but we can find ways to reward the opposite. As an example, what would happen if when you craft an item and give it away, you get XP when the person uses it. Suddenly the nakeds who can’t craft are useful to you. You want to keep them alive and give them items to earn you XP.


Added sounds for all the new building parts
Fixed cupboard gib errors
Item icons + data now build to the right folder
Removed cui.test
Network backend optimizations
New floor frames (grill and hatch)
Fixed water rendering error when screen size is reported as zero
Fixed warehouse floor decal
Reduced video memory overhead by 144 MB
All collectables now use the load balanced LOD system
Updated some remaining physics calls to the new Unity physics API
Removed a worst-case second raycast in the game trace code
Fixed foundation stair placement being blocked next to triangle foundations
Fixed triangle foundation placement being blocked beneath floors
Added building stability serialization (faster server restarts and stability refreshes)
Fixed potential signage NRE when server database was deleted
Tweaked distribution of rocks and bushes
Rust Devblog 93 Fri, 15 Jan 2016 19:46 CET

Higher player counts means more servers everywhere, and we're now hosting the Battle Royale mod, too. There's also damage tweaks, player skin alterations, the first look at the new female player model in-game, and more.


  • Updated crash reporting 
  • Announce to other players when admins give items 
  • Fixed missing texture on key lock 
  • Fixed rock smash particles colliding with player collider 
  • Fixed invisible collectibles (rock, wood etc) 
  • Fixed being able to use blueprint as ammo 
  • Large water catcher is researchable 
  • Don't receive voice chat when dead 
  • Can now use steam connect protocol 
  • Moved debug keys to console commands 
  • Added new model for holosight 
  • Added new model for silencer 
  • Dungeons: railroad and roads art added 
  • Dungeons: fixed missing pipes collision 
  • Dungeons: fixed missing concrete wall collision (military tunnels) 
  • Better mesh batching for improved client performance 
  • Fixed bed exploit to get inside rocks 
  • Fixed bed placement issues 
  • Made white skinned players more apparent 
  • Tweaked how server list is refreshed to avoid overload 
  • Fixed exploit using disconnect during loading screen 
  • Added Semi-Automatic Rifle. 
Rust Devblog 90 Thu, 10 Dec 2015 22:32 CET

Lots and lots of bug fixing in the run up to the holidays. But there’s also sleeping bag spawn tweaks, some sexy new rocks, music, and more.



Sleeping Bag Radial Reset

I’ve implemented a much needed improvement to the way sleeping bags work. Basically when you use a sleeping bag, all sleeping bags and beds in a 50m radius that belong to you will also count as being ‘used’ and their timers will be reset. This means no more spamming of sleeping bags enabling the player to instantly respawn as if it’s Quake, and if you kill someone you can be reasonably sure they are actually dead for a while. This affects both raiding and defending, but in different ways. Beds have always had a much shorter refresh time than sleeping bags so they should be far more viable for defenders to use, and attackers will have a harder time getting back into the fight, which is how it should be. Some balance may be needed to further restrict the bed placement rules, but we’ll try this out like this first.

Stuck Projectile Loss

Don’t you hate it when you kill an animal with arrows or spears and it rolls over so you are unable to retrieve them? Then if you harvest it they just disappear? Well no longer! I have some checks in place so that if an item is going to drop in the world it spawns it above the terrain so you should always be able to get all of your spears and arrows back!

Barrel & Trashpile LOD range

We had a very low LOD range for both these items, which meant the landscape looked kind of bare until you stumbled across something that you should have been able to see from far away. This has been fixed and the view distance increased by about 300%. This wasn’t a lot of work, but it was an important change and should give people a reason to explore the landscape a little more.

Swim Changes

After Andre tweaked the swimming parameters, I went in and unified the game code to use his values and added some additional checks. This means you can’t eat food or use medkits, syringes, or bandages while you’re swimming.


  • Fixed healthbars sometimes showing 0 hp (we round up now)
  • Fixed locks fading out way too early, making doors look unlocked
  • Removed Blood, Note, and Battery from spawn tables
  • Can no longer throw melee weapons/tools underwater
  • Updated stone worldmodel/physics to be less low-res
  • Fixed rockets going through building parts
  • Removed ability to place locks on some items:
    • Auto turret
    • Lantern
    • Research Table
    • Repair Bench
    • Both Jack o Lanterns
    • Small Furnace
    • Small Stash


I took a day off this week to get some desperately needed end-of-the-year accounting done. Then I crunched through our bug report system, fixed some minor and major exploits and checked out the new Unity 5.3 release.

Weekly Updates

Since our focus for the rest of the year will be optimization and fixes we decided to release weekly updates this and next week.


We’re aware that performance is shit for some of you right now. We’re working on it.

Unity 5.3

The next major Unity release is out and we started looking into what changed and what it’s going to take for us to upgrade. Here’s the gist of it:

  • Some math methods changed which look like they affected our world generation, meaning should we decide to upgrade before Christmas we might have to do another forced wipe.
  • The memory leak we reported is fixed and they’re working on a backport to the 5.2 version – we’re hoping this will happen soon.
  • Unity 5.3 contains a number of improvements we’ve been wanting for a long time, but there are also some known issues with it.
  • Upgrading Rust itself appears to be fairly smooth, so we can decide when it makes sense for us to pull the trigger.

Water Movement

I fixed a variety of annoyances with our swimming movement. Hitting the water now properly slows down your current movement and dampens your fall. You can no longer hop out of the water for a short speed boost by holding down spacebar and you can no longer stay too far out of the water by tapping spacebar.

Lag Exploits

There’s been a fairly significant exploit going around that involved people intentionally lagging out for a short period of time and using that lag to do all sorts of evil things like temporarily getting into rocks or placing things where they shouldn’t be allowed to. This is now finally fixed


  • Fixed foundation steps being unplaceable in certain situations
  • Fixed LODGroup errors on the keylock
  • Fixed lantern stacking/hiding exploit
  • Fixed nighttime water reflection highlights
  • Fixed floor/foundation overlap exploit
  • Fixed floating doors when placed next to stairs
  • Fixed embrasures and shutters randomly collapsing
  • Fixed being able to block monument entrances using signs

Next Week

Optimization, specifically the higher building LODs and trees.


I fixed a few bugs on my backlog this week, and carried on with the new rocks. I have one big rock left to sculpt. We’ll save a lot of disk space once this is over. Even in-game, I believe we should see improvements in Vram used at the very least. I already converted the dungeons to use the new rocks, that was the easy part. The hardest part is getting procedural map to spawn them in a way that looks nice. It’s gonna take some work.

Next Week

More rocks work, some terrain splats rework if I have time (textures used on terrain).


Mostly focused on bugs and performance this week and will continue doing so crossing over to next week.

I’m dealing with the remaining issues some folks are having with oceans and rivers running on some AMD hardware in DX9. For now I recommend using DX11 until next week, which is when I expect all problems gone. These are being taken care of right now.

Most of the bugs I fixed were shader or material related. Some related to some skin tones ending up too dark due to subsurface scattering. Some monuments were losing too much detail (e.g. satellite losing rust) when a low shader level was used. Also optimized these shaders to be more lightweight on lower quality levels.

Unity 5.3 came out this week so I took care of porting our custom shaders and working out any kinks in advance.

Other Changes

  • Made some modifications to the Terrain-Mesh Blend shader in time for Vince’s new rocks
  • Fixed some horizon flickering issues
  • Removed global fog (barely noticeable)
  • Slimmed some parts of water rendering
  • Fixed SSAO ordering in relation to water
  • Fixed Water refraction backprojection in OSX
  • Made some modifications to the Terrain-Mesh Blend shader in time for Vince’s new rocks
  • Fixed some horizon flickering issuesRemoved global fog (barely noticeable)
  • Slimmed some parts of water rendering
  • Fixed SSAO ordering in relation to water
  • Fixed Water refraction backprojection in OSX

Essentially, I’m done adding features for a while until we get performance under control again.

Next Week

Close remaining bugs, optimize as much as I can before the holidays


I got around to do a polishing pass on some of the player animations this week, as I noticed some of them looked particularly awful. I went over the way the look up/down animations work. Currently, the way aiming is done involves applying an overlay animation (of the player looking up/down) on top of a “base animation” (standing/walking/running/crouching). This saves a lot of effort on my part as I only have to do one set of aim up/down poses and just apply those to any of the base animations. Unfortunately, the end result is that the player looks fine when he’s standing/walking/ crouching. It’s when he does a run that it looks ridiculous.

This video illustrates the problem well:

Video Player

To fix this I added another set of aim up/down poses specifically for when the player runs:

Video Player

I also tweaked some of the attack animations for the pickaxe and two-handed weapons, as well as adding a stab animation:

Video Player

I also added a water treading animation:

Video Player

Last but not least, I started work on a new wounded animation for when the player gets shot in the groin area:

Video Player

Next Week

I’ll continue working on the aim up/down poses for the rest of the weapons.


I’ve been working away on the texture of the new semi-auto rifle and here it is so far. Take a spin in the viewer too!

Next Week

I’ve started on the LODing process already and should be well into it if not finished by next week, hopefully!

Alex Rehberg

I’ve been sick (hi reddit ;D) and working on some stuff for Deuce, another one of our games, so I haven’t spent tons of time on Rust. I have worked on music a bit, and I’m excited about where it’s heading.

Right now my focus is gathering ideas and getting a palette of sounds together, not writing complete songs. Here’s one of the sketches I’ve worked on that’s in more of a song form (This is really really WIP still, though).

I’m thinking I want to take things in a little bit more of a crunchy, gritty direction than this, but I do like that the cleaner sounds will contrast with our in-game sounds well (meaning it’ll be easier to pick in-game sounds out). We’ll probably end up with the music being more ambient and spacey too.

I want Rust’s music to be really dynamic and heavily impacted by what’s going on in the game around you (happier music when you’ve got building tools out, sadder music when it’s raining, tense music when you’re sneaking around, scary music at night, etc). I’d love to be able to do things like play a different drum track if you’re being chased by a wolf vs when a player is shooting at you. Ideally we’ll figure out a good way to arrange music from a bunch of smaller loops dynamically, but I’m not sure if we’ll be able to get the level of polish that I want if we go that route, so the implementation for this is going to take some experimenting.

I’ve also done a few smaller things this week. There was some inconsistency in our melee weapon impact sounds. Sometimes we were getting most of the low end in a sound from the weapon’s impact, and sometimes we were getting most of it from the dirt/wood/whatever being hit. I made this more consistent and made most of the low thump come from the thing being hit, which has made a the soft target impact sounds sound a bit better.

I also…

  • Tweaked the m249 fire sound
  • Tweaked the metal hatchet impact sounds
  • Tweaked fall damage sounds
  • Made fall damage sounds only play when you take 20+ damage
  • Fixed a couple little bugs with sound playback
  • Made sure the sounds on the lights in the new dungeons don’t play when you’re half way across the map (this should help perf a bit)
  • Fixed footstep sounds not playing on surfaces with a generic material
  • Set up voice limiting for some of the helicopter sounds so we don’t play a million explosions at the same time when rockets hit.


Next Week

Next week I’ll be working on music some more, and I’d also like to start working on ambience for the new dungeons.

Alex Webster

Back on throwable weapons this week. The salvaged axe & icepick are now in-game. They pack a bit more punch than their one handed counterparts, but don’t expect to be able to throw them as far.

Video Player

Next Week

More of the same


I finished the skinning this week and made some adjustments to the overall mesh. I also started on one of the new head variations. I felt like it was quite important to get the foundations right, ethnicity is generally more than just skin colour and everything right down to the shape of your skull should be modelled to reflect that.

Because of the new workflow this stuff is really easy to get into game too, it only take a few clicks to have a fully rigged version working in game (still very work in progress though, don’t worry!). The goal is to have each player recognisable from their face alone, so making sure Zbrush and Unity are in sync goes a long way towards that.

Next Week

Finish up this head. I’ll need to go through each item of clothing and make sure there aren’t any issues with clipping due to the adjusted proportions. I wanted to have at least one variation before I started to get some kind of visual guide of how much leeway would be needed for the head items.


This week I came up with some more ideas for frame fillers.


And I also worked up some concepts for our natural environments


Next Week

More of the same, more frame fillers ideas and I want to do a few more environment concepts one being a swampy area.


This week I worked up a concept for a rusty shipwreck to add some interest and exploration to our beaches, which at the moment are very barren. It also doubles up to help player navigate the coasts and give newbie spawning in something to go and explore for some
early loot. I also finished up some more armor tweakings for taylor’s new character model


Next Week

more environment stuff for beaches. I had idea for some larger, ominous looking abandoned ships that are further off the coast that players could sail out to explore.

Improved water movement
Fixed various lag exploits
Fixed foundation steps being unplaceable in certain situations
Fixed LODGroup errors on the keylock
Fixed lantern stacking / hiding exploit
Fixed nighttime water reflection highlights
Fixed floor / foundation overlap exploit
Fixed floating doors when placed next to stairs
Fixed embrasures and shutters randomly collapsing
Fixed being able to block monument entrances using signs
Missing footsteps on generic surfaces fixed
Building parts door frames see through fixed
Fixed ladders and painting frames clipping inside walls
Fixed rockets going through building parts
Removed ability to place locks on some prefabs
Updated stone world model/physics
Fixed lock LOD distances
Fixed barrel/trashpile LOD distances
Removed blood/battery/note from spawn tables
Radial reset for sleeping bags/beds
Can no longer throw melee tools underwater
Stuck projectiles spawn ontop of corpse if would fall through world
Healthbars (player and world objects) now round up instead of down
Can no longer heal underwater
Made impact sounds more consistent
Tweaked the m249 fire sound
Tweaked the metal hatchet impact sounds
Tweaked fall damage sounds
Made fall damage sounds only play when you take 20+ damage
Fixed a couple little bugs with sound playback
Disabled the sounds in the new dungeons when far away (perf)
Fixed footstep sounds not playing on surfaces with a generic material
Set up voice limiting for some of the helicopter sounds

Source :
Rust Devblog 89 Fri, 04 Dec 2015 22:16 CET

Patch day is here, with lots of changes. The servers are wiping so the new dungeons can loom over the landscape. There’s also procgen changes, you can rebind keys, the Eoka has had a buff, reloading is much snappier, and lots more.



I’ve been trying to sort out long-standing bugs before we embark on adding a bunch of new stuff. My goal is to get the game to a place where the bug reporter is filled with nonsense and spam instead of real issues. To that end, I’ve ironed out a few.

Reload Improvements

Man, I don’t know how some of this was in-game for so long. There was a bug where you could start reloading a weapon, and then switch away, and it would still be reloading in the background so when you switched back to the weapon later it would have a full clip. Fixed.

Also, for some reason, when switching ammo types you would close the menu and it wouldn’t reload for you, you’d have to press R to reload again anyway. Fixed.

Lastly, we had an input bug that affected some users. If you held the reload key down for longer than 0.15s and had two ammo types the ammo selection menu would appear, right? Well what if you only had one ammo type? Oops! Nothing happens. This meant that if you had only one ammo type (most new players) and you missed that 0.15s release window you wouldn’t be able to reload. Reloading is now far more responsive and happens instantly if you only have one ammo type.

Eoka Viability

Haha! I can’t tell you how many times I’ve seen people laughed at for even attempting to use this weapon. It did barely any damage and was too easy to miss people. I’m hoping it’ll be a little bit more viable now. I’ve made the following changes.

  • Spread doubled
  • Handmade shell pellet count doubled
  • Handmade shell damage per pellet halved
  • Bug fixed where Eoka was doing half the damage it should have been due to velocity
  • Cost reduced

This should change the weapon to have a nice scattershot that ensures doing a small/medium amount of damage in a wide cone, and makes it deadly at point blank range. I’ve also removed its ability to use other ammo types (as no one did), so it can only use handmade shells and shotgun shells for now.

Melee Range

Once again I’ve played with the melee ranges. This time I’ve made them the same across the board at 1.5m. The only weapon with a higher range than this is the spear at 2.2m range. This should help with melee combat feeling more responsive and satisfying

Everything else

  • Fixed rockets sometimes detonating against the shooter during times of lag
  • Fixed being able to repair doors by removing them and placing them again twice
  • Fixed key lock fading out too early (doors appeared as unlocked until you got close)
  • Fixed shelves being too strong. You can easily destroy them with melee now
  • Fixed rapidfire bow exploit
  • Fixed size of quarry hopper interaction collider so you can’t lose items under it anymore
  • Shotgun Shell has +2 pellets

Next Week

Still about 100 bugs to fix. In 2 weeks I hope to have 90% of them eliminated, but you never know. I’m also going to be fleshing out some of the new improvements on the roadmap so we’re ready to add them


You might have noticed that we haven’t been adding new stuff for a couple of weeks. I mean, yeah we have, new art content, but not really new programmed content. So what’s the deal? Why aren’t we adding shit?

We’ve reached a different point in Rust’s development. Previously we’ve been at a stage where we could all work ad hoc and just throw stuff in the game. Because fundamental stuff was missing. That’s changing now. We’ve got to a stage where we need to start getting things more structured. Where we have to plan our features. Where we have to look at the systems we’ve added an iterate and polish them.

So that’s what we’ve been spending a lot of our time on. Building a roadmap and planning our ascension out of early access. It’s important to say that leaving early access doesn’t mean the game is done and no more updates. Leaving EA means that the game is generally finished, and updates won’t be messing with the larger ingredients of it. We’ll be revealing our plans later on this month in a special post.

Input System

The new input system is in. You can read some of the technical details on this wiki page. Hopefully everything should pretty much work the same, except to reconfigure keys you do it via the main menu options instead of the Unity game launcher.

Bug Fixes

We decided that since we’re spending this time to plan out the future, we can spend the downtime to fix bugs that the future changes aren’t likely to fix.

So a few significant things I’ve done here. A well known, well abused bug… cancelling crafts exceeding the stack size. People were queueing a bunch of crafts then cancelling them so they’d get a HUGE stack of a resource. This isn’t possible anymore.

Weapons were playing their shooting effects twice. I’m pretty sure this has been going on for a while, and it feels great to have fixed it. It makes a big difference in how the weapons feel.

Steam inventory was shitting out if you had more than 128 items. I never thought anyone would have more than 128 items. And now some people have a lot more than that.

Memory Leaks

Fucking memory leaks. Every devblog I make. Memory. Fucking. Leaks. So this week I’ve been working with Unity support to look at why the hell we’re using so much memory. There seems to be two major things right now.

On the server we have a shit-ton of game objects, physics objects, components. And the more we have the more memory they use. And it grows all the time because the physics system is querying all those items and allocating memory. And with the new batching system, that’s kind of worse because it’s creating new objects, but we have to keep the old ones around (but disabled), which uses memory too. So this is just a theory – but after all the profiling and bullshit around that seems to be what’s happening on the server. So our best bet would be to create less shit. We’re still experimenting with this.

On the client, I think we have some better news. I noticed that the leak seems to happen when escaping into the main menu, and going back to game. It seems to leak about 10mb each time. So I tried to recreate it in Unity.

Video Player

BAMMM! Being able to make a minimal sized project that recreates the problem is like getting a gold medal. I sent it along to Unity, they’ve confirmed it, and we should hopefully have a solution within a couple of weeks (Unity time).



It’s time for a new version of our procedurally generated maps! The change everyone’s talking about is certainly the addition of the new dungeon environments. My contribution towards those was all the backend and toolset work and everything that makes them integrate with the world around them. There are some issues left to solve in that department, but we didn’t want to make you wait any longer – so enjoy this first look.

However, dungeons aren’t the only thing that changed about our worlds this week. I’m pretty late with my devblog section this week, so I’ll keep things short and only post a short list of all the new stuff.

  • All-new coastline generation
  • Big water streams towards the outer realms of the main island
  • Landmass bias towards the center of the island
  • Chance for small isolated islands off coast
  • Highland cliffs and canyons
  • New underwater environments (placeholder art)
  • Revamped tundra environment (placeholder art)
  • Snow biome is restricted to mountain tops
  • Rock material improvements
  • More natural mountain, hill and lake blending
  • Less artificial prefab terrain blending
  • Occasional barrels around powerlines
  • Slightly improved river-ocean transition
  • Better prefab mountains
  • Better lighthouse spawn rules
  • Better player spawn positions

Environment Ambient Light

I did some experiments this week to get our ambient light situation in buildings, tunnels and caves under control. Up to today we’ve been using pretty much the same lighting for both exterior and interior environments, which forces us to all sorts of compromises. A first batch of lighting improvements will go live today, but there’s more to come.


  • Fixed various building exploits
  • Fixed various deployable exploits
  • Fixed various LOD and batching issues
  • Fixed missing building gibs in certain situations
  • Fixed roofs being cheaper and more stable than walls (now identical)
  • Fixed admin cheat noclipping (antihack.admincheat convar)

Next Week

Time for bugfixes and optimization to get things running as smoothly as possible over the holidays. I’ll also get started on addressing any issues with the new world generation and dungeons as soon as they come to our attention such that the next iteration is ready in time for the first wipe of the new year.


Dungeons are here! Like I said last week (go see it), it’s a first iteration, so it’s gonna be broken in places. The goal here is to use you guys to improve it.

As for the week, I started it off using all of Andre’s new terrain tools that helped laying a nice polish on the scenery around dungeons.

Over the course of the week we talked of things that suck in the current visuals. We came back to the rocks, mainly, and some of the biomes textures. The visual potential of procgen and the game in general would benefit tremendously from better environments. I won’t redo all of our rocks at this stage, as I first wanted to the toy with the system and see how far I can push it without requesting new stuff from our coders. Turns out I need a few additions to shaders, and once that is done can probably push out a few good replacements for the claydough rocks around.

Next Week

I have a lot of art to do. And surely improvements to dungeons.


Skin Shader

Taylor is working on some new player models and textures, so I took the opportunity to anticipate something I had on my backlog for a while. I revamped our standard skin shader and added subsurface scattering, transmission and improved specular. You’ll notice the human models now look a bit better. These shots are using the previous model and textures.

I’m making additional changes based on Taylor’s feedback over the coming week.


Fixed a ton of bugs this week. Mostly stability issues left over from past week’s changes. These bugs were happening for those of you running DX9, and affected all GPUs. These are all now fixed. If you had any of these, please feel free to try out the latest patch and let us know if you still have any issues.

Another serious bug I fixed last week was causing a massive performance hit in quality modes 1 and 2. It is no more.

Today I added a mask to clip Scott’s new underwater effects above the water. Thanks to the hard work these past weeks, it only took me half an hour.


Other changes this week:

  • Tweaked water quality handling
  • Fixed rotated particles having wrong lighting
  • Fixed Virtual Texturing causing washed out terrain bug
  • Fixed a tiny memory “leak” in riverless maps
  • Fixed terrain carving precision to help avoid holes in wrong places

Next Week

Finish skin shader, a couple of PVT optimizations, improve terrain-mesh blend shader for Vince’s new rocks, tackle some bugs unrelated to graphics.



Thanks to Andre and Diogo, I managed to get the main underwater effects working. When you submerge/dive underwater you now get full bubbles, when you swim around there will be a couple of bubbles coming from your mouth, and there is now a kind of plankton/debris effect when you swim around which helps you get a sense of the direction and speed your swimming.

Video Player

Full-Screen Rain Effect

This is the effect that makes water run down and hit the screen when it’s raining. It was a bit underwhelming for its cost so I did a new set of textures and tweaked the values. I also ended up doing another set of textures for when you emerge from water, so the screen is super wet. These aren’t plugged in yet but you can see how they work in the underwater video above.

Video Player

There are still affects needed to get drowning to feel nice. This will probably be a combination of VFX, screen shake and sound effects.


Our snow effect was old and rubbish so I took some time to buff it up. With the current set-up I can’t get it to feel like a snowstorm, but I have some ideas that might work and not require me to spawn thousands of particles which will just kill framerate.

Video Player

Clouds And Storms

Did some more work on clouds, mostly trying to get storm clouds to look nice. Nothing to show yet. Also started looking at the best way of doing lightning. This isn’t just a case of doing an FX that you just see in the sky because ideally lightning will have game world consequences.

Next Week

The Goosey/Helk water bucket needs some effects. Continue with the lightning stuff. Finish off the clouds. Work out how and if I can make use of the screen shake functionality for explosions, drowning, etc. I am also going to start exploring the sweet new dungeons and compiling a list of effect that are needed/would look good.


I took a break from the player animations this week to work on a last minute request from Helk. He wanted a waterbucket model that would show the player scooping water up from a source, and dumping water out as well. This required some thinking and a lot of trial and error, because the water inside of the bucket needed to be pretty dynamic. The water level would rise/fall depending on how full the bucket is, and the level also needed to adjust its angle according to whether the player looked up/down. Helk wanted to introduce a neat gameplay mechanic where if you looked too far up/down the bucket would tip and water would pour out. Also, when the player ran around, the water needed to slosh around.

All of this required me to set up the water in such a way that it would animate dynamically according to various player states.

This is what I have so far.

Video Player

I’m pretty happy with the results considering the water is animated using bones, and not some complex fluid simulation.

Next Week

Finish up the waterbucket and get back to work on some wounded animations I started last week.

Alex Rehberg

Lots of random smaller fixes and new things from my list this week :)

  • Finished the last few little polish touches on the M249 sounds
  • Added snow and sand impact sounds for melee weapons and guns
  • Tweaked grass impact sounds
  • Fixed some impacts playing the wrong sound or no sound at all
  • Fixed some melee impact sounds not playing or playing the wrong sound
  • Added sounds when a player takes fall damage
  • Added new player body fall sounds (falling while enter wounded state)
  • Fixed external gates not playing sounds reliably
  • Tweaked wood external gate sounds
  • Added new stone external gate sounds
  • Added window shutter sounds
  • Tweaked large fire sounds
  • Tweaked bandage sounds
  • Tweaked stone hatchet soft target impact sound
  • Updated tree impact sounds
  • Polished and adjusted some ambient sounds & ambient sting timing
  • Added sounds to the corpse fly swarms

Next Week

Jenny has been sending me some music ideas and it’s got me inspired a bit, so next week I’ll be spending a little time working on some music. I also want to work on ambience and local reverb for the new dungeons, and I’m going to explore some alternate gunshot reverb tails for closed spaces like the dungeons.


I’m back after taking a break from Rust to work on one of Facepunch’s other projects. I picked up where I left off and have been working on some more ideas to expand player building options.

After working through these ideas it was clear that we needed a more consistent way to place parts like this, and also one that didn’t require making a separate version for each tier. Instead of the pieces standing completely on their own, they could fit inside a frame, similar to how the window and door frames work. So the frame would go through the tier/upgrade system but whatever it gets filled in by only needs to have one version, the strength of the piece of as a whole is reliant on the level tier the frame is at.

These frames could also be used purely on their own and replace a lot of what pillars offered before, such as awnings and other open air rooms.

Next Week

If this frame system works out, I’m going to keep coming up with more ways to fill them, and maybe have another version of the frame more appropriate for large windows. I also want to do some paintovers of the desert and snow biomes, since I think we’re gearing up to revamp these areas in the near future.


I’ve spent this week looking at the rig and skinning the player model to the existing bones. Skinning is a delicate process and things can break really easily. Luckily there weren’t too many catastrophes and it’s mostly done now. There are a few areas where the old bones don’t properly fit the newer proportions, and these are causing some issues. It’s mainly the collarbone/shoulder/neck area, but I think with a little brute force they can be fixed. Obviously hands aren’t done yet.

There’s not a lot to show other than a bunch of animations you’ve all seen a hundred times before, on a new model:

Video Player

Next Week

Skin the hands and fine tune those problem areas I mentioned. Diogo’s been working on a new skin shader which looks awesome and I can’t wait to try it out. Other than that I’d like to integrate the new model into the game and go through fixing seams and other broken things on the mesh. If that’s all relatively easy I might have time to work on some racial variations.


So the Scientist concepts I did last week seemed to get some notice. We hope it’s a step in the right direction for some PVE type threats as well as adding some kind of mystery to the world. I decided to work up an armed version of the hazmat scientist and, looking at him now, I’m almost tempted to use this guy as a ‘light’ bodyguard and give him an SMG or a pistol. Then I can do a more heavily armored one with kevlar protection over the top and have him wielding a shotgun or the AK – something fairly brutal. There were a few comments about them not being creepy or threatening because they’ll get pwned by guys with AKs. That’s valid, but I also think that you’ll have to wait and see the context to how you encounter these guys first and how they move, behave and sound. I saw a comment about the suit deflating when they are killed, or them taking an unusual amount of punishment, which I think is really cool. Something that suggests they might not be completely human, but we’ll have to see how that sort of fits into the tone of the world, which is fairly grounded in reality.

Next Week

I have a bunch of stuff which is like 60-70% done that I can throw that stuff up next week when it’s done. It includes the armor to fit taylor’s new Rust body, some paintovers with ideas for interesting scenery around our beaches which at the moment I think are very plain and lifeless. Things like rusted remains of boat, abandoned ships off the coast, and some more life on the beaches themselves would go a long way.


I’ve been working away on the game res of the model. I’ve been baking out the normal map and ambient occlusion map, which basically means transferring all that lovely intricate detailing into the texture maps (the normals and ambient occlusion) to fake those details for the main body of the gun and the barrel section. Next up is the grip and magazine which should be super quick. Below is a progress shot with the normals and AO applied, and also a wireframe shot.

But if pictures aren’t enough then you can take a closer look and move around in the previewer below (lower res)!

Next Week

Finish the bakes and the grip/mag and start texturing the whole thing! The barrel and the grip/mag should be fairly quick to texture.


Added soft target impact sounds for a bunch of melee weapons
New m249 sounds
New snow and sand impact sounds
Lots of impact sound adjustments and fixes
New player body fall sounds
New player fall damage sounds
New stone external gate sounds
Cancelled crafts don't break the max stack rules
Pie menu sounds obey volume controls
New key bind (input) system
Fixed real player names showing in corpse loot during streamer mode
Fixed steam inventory breaking with more than 128 items
Fixed weapons effects firing twice (!)
Fixed external gates frequently not playing open/close sounds
Fixed water bugs in DX9
Fixed water performance issues in quality 1 and 2
New window shutter sounds
New corpse fly swarm sounds
Adjusted bandage sounds
Adjusted ambient sounds
Adjusted large fire sounds
Improved skin shader
Added underwater world FX.
Improved snow FX.
Improved rain fullscreen FX.
Erm, dungeons greybox.
Reload happens automatically when switching ammo types
Reloading with only one ammo type is more responsive
Fixed unlootable items if thrown under quarry hopper
Shotgun shell has +2 pellets
Eoka spread increased
Eoka damage increased
Handmade shell pellets doubled
Handmade shell damage per pellet halved
Melee range increased across the board
Fixed rapidfire bow exploit
Fixed rockets detonating on shooter if fired while moving forward
Fixed repair door exploit
Fixed shelves being too strong (can now melee them)
Fixed key lock LOD causing it to disappear too soon
Lowered eoka cost
Ambient light improvements
All-new coastline generation
Big water streams towards the outer realms of the main island
Landmass bias towards the center of the island
Chance for small isolated islands off coast
Highland cliffs and canyons
New underwater environments (placeholder art)
Revamped tundra environment (placeholder art)
Snow biome is restricted to mountain tops
Rock material improvements
More natural mountain, hill and lake blending
Less artificial prefab terrain blending
Occasional barrels around powerlines
Slightly improved river-ocean transition
Better prefab mountains
Better lighthouse spawn rules
Better player spawn positions
Fixed various building exploits
Fixed various deployable exploits
Fixed various LOD and batching issues
Fixed missing building gibs in certain situations
Fixed roofs being cheaper and more stable than walls (now identical)
Fixed admin cheat noclipping (antihack.admincheat convar)

Source :