Rust Marque Logo

Bags To Riches

This month's Rust update brings you backpacks, player remains, metal detector, weapon changes, QOL, performance improvements and much more!

01 February 2024
DEVBLOG
Backpacks have been one of Rust's most highly requested additions for several years, and what is a survival game without backpacks? This month, we're excited to bring you the small and large backpack, allowing players to carry more loot.

Inventory space has become more scarce as more items have been added to Rust over the years.

Small backpack

The small handmade backpack provides 12 slots & can be crafted for 50 cloth and five sewing kits at a T1 workbench. It is a default blueprint and will take 30 seconds to craft.

Large backpack

The military-grade backpack carries a whopping 28 storage slots and is uncraftable, found in military loot. 

How TO Use

Both are worn in the backpack slot and drop off your character on death. They can be looted on the ground (be careful if dropping one in a safe zone!) or from inside your own inventory. They take 3 seconds to pickup off the ground and despawn slower when filled with valuable items (up to 2 hours) .


Currently, there are no negative effects from using a backpack.
To help differentiate regular player remains from the new backpack models we’ve given the player remains a visual refresh. This new model has a new open and closed visual state so you can tell at a glance if a bag has been opened by anyone. There is also some visual debris around an opened bag if the bag has more than 3 items in it.



The new metal detector allows you to find metal objects hidden beneath the ground.


Use the green lights to find the general area of an object, then when the green lights are all fully lit, hold the right mouse button to start sweeping the ground more closely and illuminate the yellow lights.

When all the yellow lights are also lit up, a flag will be placed. Dig this flag up with any melee tool and grab your treasure!

Different areas of the world will yield different types of loot, for example, what you may find on the beach will be different than what you find at the roadside or fields.
I've modified the animations for the SAP/SAR and they should feel a bit less floaty and more snappy when reloading and aiming. I've also reduced the additional recoil added while moving when using the SAP. 

Over the coming months I plan to take a look at each and every weapon and do another pass at balancing them. This means timings, handling, recoil, and aimcone. I'm not saying the changes will be drastic but I'm aware there are elements that need changing. Stay tuned.
Legacy Shelter Limit
Players can now only have one shelter placed at any one time
Safezone Warning
When attempting to log out in a safe zone a warning now appears
Compass Death Marker
Death marker now appears on the compass UI
Repair Cost Fix
Some deployables such as the autoturret were unintentionally expensive to repair, this is now fixed.
Rotate Doors
Doors, hatches and embrasures can now be rotated while being deployed using R
Ripe Ripeness
Increased all plants ripe stage duration from 4h to 14h
A recurring community comment is the on-screen hurt, cold, warm and radioactive post-processing is harsh, it impacts the screen too much. To address the comments we have made the post-processing more mild.
Above are a few examples, with the new look on the left. You can find more here.
As mentioned in our start of the year blog post, memory usage is a key area of concern this year. One aspect I’ve been looking at lately is entity counts. Anything that gets networked in a Rust server is an entity, so every tree, building block, player, vehicle, etc. What might seem counterintuitive is that many Items in your inventory are also entities, specifically an entity we call a Planner. This is the blue sheet your player visually equips when they are deploying something (eg. a sleeping bag). Any Item that can be deployed in your inventory will have a corresponding Planner entity. This entity is created when the item is created, and will exist on the server (typically in the players hands or at the world origin if they are in a container) until that item is used or destroyed. We need this entity as it handles all the logistics of spawning the deployed version of the item.

To illustrate how many entities this creates we looked a list of entities on Facepunch EU2 towards the end of the November wipe last year. Out of 362,299 entities, 32,455 of them were Planners and are the largest count of entity (the next largest was Walls at 26,015). Since Planners are technically only needed when the player has the item equipped on their belt, this is a big waste of memory and processing time as well as needlessly bloating server save files. 

This month we’ve rolled out a change that will only spawn a Planner for these Items once the Item is in a players inventory, then delete the entity when it is moved back into an inventory. This should dramatically cut down on the number of entities taking up memory for no real reason. 

We also applied this change to Syringes and Bandages, specifically because these item types also don’t need an Entity if they aren’t in the players inventory and are often stored in large quantities (5,769 and 1,206 respectively in the above EU2 sample). Syringes in particular have been a performance bottleneck for the Industrial system due to the need to create and destroy an Entity every time the item is moved, so this change should have flow on server performance improvements there as well.

We think this change should reduce entity counts on the server by roughly 6-9% but we’ll be monitoring the results over time.
We received reports from several servers this month with Industrial performance issues. After investigating we found some extremely complex conveyor systems moving large amounts of Syringes as the culprit. The above changes to Entity counts will largely solve the issue, but I’ve also added a new convar (Server.industrialTransferStrictTimeLimits) to better handle time budgeting in these situations. While the Industrial system is time budgeted per frame (eg. Only process three conveyors per frame) it struggled if one conveyor took an excessive amount of time (eg. One conveyor takes 15x the allocated budget). 

This new convar will allow the conveyor system to stop half way through a transfer if it is taking too long. Crucially it will then resume the transfer from where it left off on the next tick, so the final results should be the same, they may just take longer in real time. From the players perspective, this may result in conveyors splitting things in unintuitive ways (eg. a conveyor splitting into three boxes might do 2 on the first tick, then the last one on the last tick) but it should eventually produce the same result. Therefore we’d recommend turning this on selectively if a server is experiencing Industrial performance issues.

As well as this new convar some general performance optimisations were made, so things should be a little faster across the board in the Industrial system.
Despite having some guards in place, asset memory can easily run out of control. We keep adding awesome new content and, unfortunately, it keeps increasing our memory footprint. In order to be able to sustain this rate of content expansion, memory usage has to be low and stable, regardless of world complexity. Until we can implement more aggressive and effective streaming, every once in a while we have to sit down and look at what we missed and make the necessary corrections.


On this update we nuked almost 3 GB of memory usage in shader assets, plus a few hundred MB on textures and meshes. This is a bit of a soft start, in regards to textures and meshes, but we expect to reduce memory usage by a few more gigabytes in the coming months.


We do care about memory and performance, and we're actively working on it. This is just the first stage of many that will target not only improving memory usage but also frame rate.
Modern games universally depend on asset compression to maximize the efficient utilization of available system memory. To justify the efforts invested in compression, developers often turn to lossy techniques, which, particularly in the realm of textures, frequently lead to a compromise in image quality. Rust was long overdue for a texture quality review. Below is a before and after.
The improvement in detail and color fidelity can be striking in some cases (right). This is an ugly texture but it's a good example of how compression can ruin a high frequency image. Regions of pixels get merged together and color shifts slightly (left).

Texture compression was being used quite aggressively and, after tweaking some settings, we were able to significantly improve image quality without sacrificing memory. In the end, because a lot of textures had untapped potential for savings, we actually ended up saving runtime memory, at the cost of disk space, while still improving overall image quality.
These were quite mis-aligned while wearing NV Goggles, especially near the screen edges, where they would sometimes float above seemingly nothing. This has now been fixed.
Doors and Gates have been cancelling their open/close animation when hitting a vehicle since Modular Cars were introduced, however that would sometimes lead to cases where the animation cancelling would crush vehicles if they hit the Door/Gate from the opposite side. This has been improved this month and colliding with an animated Door/Gate in the direction that it is moving will no longer cause the animation to cancel. This should lead to less cars getting crushed.
add_circle

Features

  • Added Metal detector item
  • Added Small Backpack
  • Added Large Backpack
  • Added Shovel (Currently not useable, for future implementation)
  • Added white variation of Lunar New Year lantern for more neutral ambient lighting connoisseurs
  • Added option to show death marker on compass (can be disabled in UI settings)
  • Added an indicator to guns on the Belt Bar when burst mode is toggled on and off
  • Added Server.industrialTransferStrictTimeLimits to more accurately control Industrial performance on busier servers
  • Legacy Shelter can now be limited by server owners (default of 1) set by 'server.max_shelters'. Map marker is now displayed if kept at the default
  • Added option to have map button as toggle instead of hold
arrow_circle_up

Improvements

  • Reduce server side entity counts by selectively spawning Planner entities
  • Add a tooltip on the hostile indicator in the inventory
  • Improved behaviour of doors and gates when hitting vehicles while animating
  • Passing ‘teleport2marker’ a -1 argument will now teleport to the last placed marker
  • Improved client performance when excessive amounts of Laser Lights are deployed
  • Improved client performance when the player is getting shot
  • Improved client performance in the Main Menu
  • Improved server Industrial performance on some complex Conveyor setups
  • Refreshed visuals on loot barrels and some background props
  • Ladder hatches can be repaired without ladders
  • Convar to disable the fade in the death screen 'server.skipDeathScreenFade'
  • Legacy Shelters are now easier to place
  • Doors, hatches and embrasures can now be rotated while being deployed using R
  • Warning popup when logging out in a safe zone
  • Increased all plants ripe stage duration from 4h to 14h
  • Launch site monument static SAM sites will no longer shoot down MLRS rockets
  • Eoka more likely to shoot after every failed strike
  • Reduced memory footprint for textures, shaders and meshes
  • Improved texture quality
  • Weapon Racks can now hold Instruments
  • Updated rocket launcher handling sounds
handyman

Fixed

  • Fixed locker displaying incorrect specular values when using workshop skins. Community Skin-makers can now include their own specular maps when submitting workshop locker skins.
  • Fixed incorrect repair costs for Auto Turrets
  • Fixed team markers being mis-aligned while using Night-Vision Goggles.
  • Fixed player clothing sometimes not updating properly when scrubbing in a demo file
  • Fixed Bar Doors sometimes loading in the incorrect orientation
  • Fixed being able to deploy other entities onto a specific Rustige egg
  • Entities reskinned with the Spraycan will no longer lose their OwnerId for admin purposes
  • Fixed ‘teleport2marker’ command not working when assigned to a key
  • Fixed incorrect behaviour when a Water Pump was connected to a barrel via a Combiner/Splitter
  • Fixed Smart Switch not calculating passthrough properly when Turn On/Off inputs are changed
  • Fixed Chainsaw continuing to consume fuel if a player disconnects while it’s in use
  • Fixed the Skinning Knife not producing player heads when the server has server side ragdolls disabled
  • Possibly fixed an exception some players were receiving when attempting to assign a player to a Wanted Poster
  • Fixed server-side ragdolls flickering briefly invisible when entering and leaving parenting triggers
  • Fixed rare bug where a door can't be picked up until a lock is placed and removed from it
  • Fixed player being incorrectly dismounted from rowboat
  • Fixed animals camping the Legacy Shelter
  • Fixed NRE whilst reloading and swapping weapons
  • Ensured all neon signs now stack to 5
  • Fixed unpowered turrets turning on their attachments
  • Fixed Legacy Shelter grass displacement not working properly on certain terrains
  • Fixed third person speargun being offset when held, and when holstered
  • Fixed missing bottom on the Storage monitor
  • Fixed boneknife & vampire stake disappearing from view when cancelling a throw animation (viewmodel)
  • Fixed locomotives being able to get stuck on railings in the train tunnels on certain seeds
  • Fixed Scientists sometimes dying to Cacti
  • Fixed EAC backend auth issue kicks
  • Fixed M4 shotgun playing the incorrect gunshot sound with a muzzle break attached
error

Known Issues

  • Cameras / Entities at Oilrigs resulting in error messages or nullref error kicks when a player interacts - We have identified the cause and fixes are currently undergoing testing.

Newsletter

Recieve monthly updates straight to your inbox