Rust Marque Logo

Devblog 75

We redesigned the menu, fiddled with decay, added bullet penetration, and lots more.

27 August 2015

Menu Screen

I started playing around with the menu over the weekend. I made some changes and I liked them, so I decided to keep going and it got out of hand. I didn't want to leave half the menu done and half the menu not done while I worked on something more important, so I thought I'd push on and finish it. It consumed most of my time this week, which I know there will be bitching about, but it's what I wanted to do so fuck ya'll. I was going to go through each section posting about all the shit I did and how awesome it is, but it probably isn't worth it. It's a menu system. I stole the layout from CS:GO. It looks alright. Big Woop.

Server Info

Along with the new menu system is something that server hosts have been asking for: server info. Servers can specify information to show a user before and while they join their server.
  • server.headerimage - a 512x256 png or jpg
  • server.description - a text description, server rules etc
  • server.url - your server webpage
I know this is the kind of stuff server hosts want and I'll try to add more stuff like this in the future. I haven't allowed colours/font changes in the description because you can't be trusted.

Delayed Aim

I've added delayed aim. This is something that is barely noticeable, but it changes the feel of the weapons quite a bit. When you turn using the mouse there's a deadzone in the middle of the screen where just the viewmodel aims and the screen doesn't turn. This has the bonus effect of making it practically impossible to draw a dot in the middle of your monitor and use it as a crosshair. This doesn't apply to ironsights. Have a play with it and let us know what you think.

Collider Limits

I looked into the collider limitations this week with Andre. We think we've got a plan on how to skip over the problem, which will mean that wipes won't be required every month. Which would be nice.


Ladders no longer ignore the building permissions. This is a game changer, and might be temporary, or might be permanent. We're testing it. Let me explain where we are with ladders. These ladders right now are serving two purposes. They're a raiding tool and they're here for people to use in their builds. We're switching the usefulness as a raiding tool off and focusing on them primarily for builders.
The problem is well documented: they're overpowered and they force people to build in a certain way to counter them. Our intention is to bring them back as a raiding tool, but in a different way. The idea is that instead of pulling them out of your inventory and placing them, when you craft them they'll be on some kind of crafting mat - and you'll have to physically carry them and lean them up against a wall. Which means the height they'll reach will be limited too.

Next Week

Enough menu, enough skins. Time to get some shit done. Weapon mods.

Decay Changes

Decay right now exists to clean up old, unused player built objects in the map, so it shouldn’t be some constant annoying thing active players have to battle with. To that end I’ve changed it so while objects will decay faster than they used to in some cases, you’ll never have to worry about it as an active player. Any locked door which is opened or closed will reset the delay before something starts taking decay damage. Here are some stats:
  • Twigs
    • 6 Hour Delay
    • 6 Hour Duration
  • Wood
    • 12 Hour Delay
    • 24 Hour Duration
  • Stone
    • 12 Hour Delay
    • 48 Hour Duration
  • Sheet Metal
    • 12 Hour Delay
    • 72 Hour Duration
  • Armored
    • 24 hour Delay
    • 120 hour Duration
So if you place a twig wall and run away, after 6 hours it’ll start taking damage, and after a further 6 hours it’ll be fully destroyed. With Armored walls, it means after 24 hours it will begin taking decay damage, and after 5 days it’ll be destroyed. If at any point a locked door is opened or closed, the delay resets and objects in a 40m radius will have to wait for their decay delay again before taking decay damage. If you haven’t played in a few days and your base is half destroyed from decay, you’ll still have to repair it but maybe next time have a friend log on and open a door and check the base out so it counts as active and doesn’t decay!

Crafting Speed

I was playing the game this week and I realized that some of the durations for crafting items seemed arbitrarily long when getting started. Then I realized this was because they had never been changed since the items were first implemented! Most starting items take 30-60 seconds now instead of 2 minutes. Enjoy!

Next Week

I’ll be back at full steam next week and will work on attempting to make the game less grindy, helping out Garry with weapon attachments, and cleaning up some long-standing half implemented features

Character Colliders

Players and animals in Rust have been using skinned mesh colliders for a long time now. They offer some nice advantages over classic hitboxes, most notably the fact that their collision checks can be almost pixel-perfect. However, as development progressed more and more issues with our current implementation became clear.
  • Both refreshing the animation state of a skinned mesh collider and the process of checking the collider for intersections were quite slow.
  • Colliders only refreshed their state between 4 and 10 times a second.
  • Collision checks were lagging behind the current state of the player animation.
  • Intersection tests could only detect the first hit and were quite slow, which made projectile penetration and multiple hits on the same collider impossible.
  • If the first intersection happened to be a hand, the projectile barely did any damage, even if a more significant hit would have followed.
  • The assignment from collider intersection to bone was distance-based, which for example made hits to the upper thigh count as hits to the crotch.
All of those problems are now solved.

Projectile Penetration

Gameplay-wise the biggest improvement the enhanced hit detection brought is the fact that we can now simulate projectile penetration.
  • Surfaces can specify a projectile penetration resistance.
  • Projectiles have a certain penetration power that depends on the weapon and ammo.
  • Entrance and exit wounds can behave differently.
  • Hands, arms and feet no longer block all damage for any body parts behind them.
  • Damage is scaled by the remaining projectile integrity, which is decreased with every hit.
In this week’s update the only things that allow projectiles to penetrate through them are certain body parts of the player. I want to make sure everything is working perfectly before I allow certain weapons and ammo types to penetrate through objects like barricades or possibly even walls. There are many possibilities for this new system.

Projectile Ricochet

So here's a secret. Up until now projectiles were checking every frame whether or not they will ricochet in the current movement step. If they were, they adjusted their velocity and used the new velocity vector for the position update. This means that projectiles that traveled very fast could detect a ricochet event for the current time step, even if it was multiple world units away from their current position, and immediately update their velocity vector. Here’s what it looked like when that happened: Obviously this isn't the correct behaviour. The projectile should first move to the point of intersection, then ricochet from there. I implemented this sort of movement segmentation by splitting the projectile movement simulation tick at the exact time the change in direction happened. Now ricochets behave exactly the way you would expect them to: Before this week's update a ricochet would almost never hit an object directly behind the reflection spot, even though that is commonly what happens in real life when you fire at the ground right in front of your enemy. This new way of handling things also allows us to refract projectiles as they pass through objects as well, which might be quite useful.

Next Week

Fix the server side collider limitation once and for all.
Made some strides last week regarding water reflections, but I had to switch priorities after I noticed some crash reports and instability issues regarding the changes that went in over the last two weeks. It took me a while to address these issues and I even set up a couple of extra machines to ensure stability across different hardware configurations. It seems fixed for now. Changes will be up on next patch. I’ll be doing more testing throughout the week and on the lookout for more user reports. Thanks for everyone taking their time to report the issues on the bug megathreads and providing detailed information. You’ve been really helpful.

Bugs and Changes

  • Fixed ghosting but in SSAO
  • Fixed DX11 black terrain happening on DX10.0 class hw (e.g. geforce 9 series); compression.
  • Fixed potential DX11 hang during pvt toggle and/or terrain initialization; compression related.
  • Removed PVT resolution scaling based on available video ram; now only based on quality level.
  • Rewrote compression and PVT related GPU handling for stability.

Next Week

Would like to get back to previous tasks but might end up having to fix more bugs
I spent the entire week working on various wounded animations. I managed to get several done. I finished up the left arm wounded animation from last week, and I also added a couple new ones: a shot in the head animation, and a shot in the stomach animation. I still need to come up with a smoother transition for the wounded animations when the player gets up. [embed][/embed]

Next Week

I’ll work on some more wounded animations and also some idle relax gestures for some weapon holds that are missing some.
I got some work done on a pair of pants for players who want to make custom skins. There’s still a lot of work to do to make them ready to put in the game, but they should be finished in time for next week’s update.

Next Week

I have some ideas for a few clothing items to work on next week that should also lend themselves well to custom skins, so that’s what I’m going to be focusing on.
I have created several industrial structures, factories, warehouses, silos, pumping stations, etc. I also added some greybox models of hero structures as seen in our concepts. We now have a massive power plant cooling tower which will be explorable, and a tall water tower with an enterable loot room at the top and a 360 view over the landscape. And this cool little structure that I called the pigeon nest: I now have enough greyboxed assets to start to design at least two or three completely new town/dungeons such as the powerplant, the train yard, or an old silo factory complex. I will design these on three different levels every time: underground, ground and above ground, with as many paths as possible to keep options varied.

Next Week

Before producing residential sets of buildings,I will focus on designing a few dungeons. There’s quite a bit of discovery left to do on that task and as I go I will add to the list of objects to be modelled.
I’ve been working on some more remnant details this week, I did another sample town as well as a detail for a prop I imagine will go towards a wastewater treatment plant. Next week I’d like to work out some more details for the water treatment plant and think of more ideas to help add more variety to each radtown.
Worked on some radtown stuff did up a sketch exploring some diff building looks and ideas placed along a road, looking at lots of broken and damaged parts that could create different entry points into buildings, also worked on a mockup of an example for a larger more epic type of factory building that could introduce some larger scale focal points into some town, and be big enough to almost be mini ‘maps’ themselves.

Next Week

I'll be working on my tan… I'm on vacation.
Going to be spending all my time working on VFX from this week on. I spent some time learning the FX pipeline and creating some new FX that should get implemented soon. Things like frosty breath when you're in the snow biome, wispy smoke for when your weapon barrels are hot, and a new version of the smoke signal. I also started moving all the impact decal FX across to the new deferred decal shader. The shader doesn’t work correctly due to a Unity bug that makes the decals only 100% visible when they are being hit by a directional light, but 5.2 may fix that.

Next Week

Once all the impact FX are converted I’m going to look at creating any FX that are missing and improving/optimising any that need love.
This week was really fun! I did some new explosion sounds for the C4 and Beancan Grenade (and rockets, since those share the beancan sound right now). While I was working on these I fixed an issue where the very start of a sound that has reverb tail spread would sometimes play fully spread, which was creating some nasty clicks. I also added some Perlin noise to the reverb spreading, which really makes it feel like the reverb is wandering around you and bouncing off the surrounding landscape. Sounds fired from the same spot will always wander the same way because the Perlin noise takes the sound location into account. I have it in my head that you might be able to learn to tell when your neighbor shoots from their house with the spread patterns, but they might not be quite unique enough for that. I also made it possible for us to use more than two sounds when we’re doing distance crossfading, and added super distant variations of all the gunshot sounds. Now, when you’re really far from a gunshot, you’ll hear a mix of the super distant sound and the distant sound. I really like the depth this creates. Controlling the number of simultaneously playing sounds is a pretty important piece of the puzzle in games. Building gib sounds are one spot where this really becomes an issue for us. Previously, we were loosely controlling the number of gib sounds by giving them a 15% chance to play. This kind of worked, but it was lame when you broke a single building piece and no sound played. This week I set up a system to keep track of the sounds that we’re currently playing and to limit the number of specific sounds playing within a certain radius of each other. This means we can skip building gib sounds if there’s already one nearby that was recently started (or we can stop older sounds to start new ones depending on how we set the limiting up). I made new building gib sounds this week too. I also recorded some more leaf rustle variations and set those up on different bushes, cleaned up the pie menu sounds, and added a small sound when you raise/lower ironsights.

Next Week

I want to start out by spending more time on environment specific ambience, and then spend some time working on rocket launcher sounds.
I've been spending some more time with the female character model, focusing on the forms and generally improving the sculpt all over. We've increased the boob size; not for reasons of taste, but so she is distinguishable from the male character.

Next Week

I'm on holiday until Tuesday and I'll be back on form on Wednesday. Refreshed and raring to go! Have a good week, ya'll.
So, the idea was to unleash a whole bunch of things for you guys this week, including improved atmospherics and lighting -- buuuut as is sometimes the case, a few issues came up at the last minute, and for the sake of not forcing a wipe on everybody, we are going to save most of those for next week. We cherrypicked in some minor stuff though, such as trees now having branches again, yay. So very next-gen. Also, for a few days now I've been working on a small no-build combat map. I made it symmetrical as well, so that it can serve as a testbed if we ever feel like exploring some focused team vs team gameplay. Expect it next week.


  • Added news feed to menu
  • Added server history to menu front page
  • Added friends who are playing to menu front page
  • Added player stats to menu
  • Added global stats to menu
  • Added server info popup (instead of viewing in panel on right)
  • Added inventory screen to menu
  • Added store screen to menu
  • Added server.headerimage (url to image, 512x256)
  • Added server.description (shown in server info panel)
  • Added server.url (shown in server info panel)
  • Added bandana
  • Added balaclava skins
  • Added lazy aim
  • Added new and improved hit detection
  • Added projectile penetration
  • Added a small sound when raising/lowering iron sights


  • Reorganised server list
  • Connection screen shows info about the server
  • Kill suicides instantly instead of being wounded
  • Server history join date is recorded properly
  • Boots require leather instead of cloth
  • Longsleeve TShirt requires more cloth than shortsleeve
  • SQlite handles database corruption better
  • Ladder placement no longer ignores building permission
  • Ladders health increased
  • Improved projectile ricochet
  • Item skins now work (ie the one sleeping bag skin)
  • Updated item descriptions
  • New c4 explosion sound
  • New beancan grenade sounds
  • Reverb tails wander more naturally
  • New building gib sounds
  • Changed cupboard building zone shape
  • Location based voice limiting for sounds
  • Crossfading between more than two distant sound variations is supported
  • New super distant gunshot sounds for all guns
  • New leaf rustle variations for different plants
  • Cleaned up pie menu sounds a little bit
  • Rocks have spec reflections again. (Maybe a bit too much.)
  • Trees have branches again
  • Improved terrain reflections
  • Color grading reworked from scratch for upcoming changes
  • Glossy mushrooms slightly reflect light (!)
  • Elephant grass (near water) animation no longer acts all buggy
  • Made pumpkin plants slightly harder to keep alive
  • Tweaked weather parameters


  • Fixed error reporting (was reporting too much)
  • Fixed connection exploit
  • Fixed pumpkin plant colliding with players walking