Rust Marque Logo

Polish and Progress

The big quality of life update with over 60 improvements and fixes. Rust is turning 11 years old, and Christmas is coming! 

05 December 2024
DEVBLOG
We can't believe it either.

It feels like just yesterday that we were celebrating 10 years of Rust, getting emotional over our recap video, but it is true - Rust turns 11 years old on Wednesday the 11th of December! 

It's been another incredible year for Rust, with record player numbers, Twitch events, and monthly content updates bringing some of the most significant changes to the world of Rust in the past 11 years.
Here are just some of the key gameplay additions we've delivered as we look back on 2024:
  • World Update
  • Backpacks
  • Tutorial Island
  • Digital Clock
  • Night Light
  • Harbour Monument Rework
  • Cargo Ship Docking
  • Minigun + Flamethrower
  • Seismic Sensor
  • Handcuffs + Prisoner Hood
  • Motorbikes + Pedal Bikes
  • Travelling Vendor
  • Tin Can Alarm
  • Metal Detector
  • Wallpaper
  • GCO Attachement
  • Hand-held Diver Propulsion Vehicle
  • Refreshed Divesites
  • Radtown
  • Radioactive Water
  • T1 SMG + T3 SKS
  • ...and much more!
To celebrate Rust turning 11, next week, you'll find a cake and balloons in-game. And your friends can enjoy 50% off Rust for 10 days, starting on Monday! 

On behalf of everyone at Facepunch, we'd like to thank you for a great 2024. In January, we'll release a full end-of-year blog in which we'll discuss how 2024 has gone, with highlights, learnings, and our plans for 2025.  

Peacekeeper Turret Hostile Indicator
A turret icon now appears next to the usual hostile indicator when you are hostile and near a peace keeper auto turret.
Workcart Storage
A small box has been added to all Workcarts so you can store that extra loot.
Waterpump Depth Change
Waterpumps now work with a smaller depth of water, perfect for the new rivers.
Propane Tank Stack Size
Propane tanks can now stack up to 20.
Dropbox Input Increase
Increased to 4 input slots.
Junkpile Despawn
Junkpiles will now be eligible to despawn after they are partially looted.
Fridge Storage
Fridge storage increased to 48 slots
Homing Missiles
Homing missiles have been added to Bradley and attack helicopter loot crates
We spent this month bug fixing and improving the counter-plays to the wolves, as we want them to feel challenging but not unfair.

The problems

Using fire against wolf sometimes felt less impactful than expected, especially when wanting to avoid the fight. Even though wolves wouldn't attack as long as you kept distance and a lit torch, they would follow for a very long time.

This was especially aggravating when driving wolves away from your corpse to get back your loot, but then having them still follow you and potentially cause a death spiral.
Furthermore, when jumping on an elevated position to escape the wolf, it would ignore the lit torch and rush to jump up.

The wolf could do very fast huge jumps sometimes up to your base's roof. The jump motion also looked weightless and not really believable.

Another problem was packs of 4+ wolves. They didn't appear all the time, but players that had to face them had a really hard time. Even though packs never spawn with more than 4 wolves, they could sometimes merge. That's because wolves always come to investigate when their hear a howl, even if it comes from a wolf that does not belong to their pack.

Once the player shot a wolf or they got close enough, wolves would give up stalking and weave at high speed towards their prey. For players that only had a bow, this made it hard to land more than one or two shot as the pack of wolves closed the gap. And once enough wolves were in melee range, while it was possible to prevent a single one of them from attacking thanks to hit stun, you easily got overwhelmed.

Lastly it felt harder than it should have been to crouch and sneak around wolf packs, forcing players to take very long detours if they didn't want to fight.

Closing words

You can find more details about how we addressed those issues in the patch notes at the bottom of the page.

Congrats to the players who found some of the hidden features that could be used to get the upper hand on wolves!
Tesla Coil
Reduced tesla coil maximum power usage from 35 to 25 (no difference in time to kill)
Storage Monitor
Added a passthrough slot to the Storage Monitor
Elevators speed
Increased speed of player placed elevators by 50%
Battery full charge indicator
Added an output slot for when your battery is fully charged
Modular car radios are now in Rust!

This means that you can now craft a radio to place in your modular car for 120 metal fragments if you own the Voice Props Pack. If you don't, it's on sale at 40% off from the 9th - 19th! 

Simply craft the radio and then deploy it onto the cockpit of your modular vehicle. The radio will only be operational whilst the car engine is switched on. Once the radio is deployed, anyone will be able to interact with it.

Anyone with authorisation to the vehicle will be able to pick up the radio with a building hammer.

The radio comes with all the same built-in and internet streamed radio stations you find in the Boom Box

Purchased Helicopters can now be picked up by the magnet crane and shredded at Junkyard. You will receive Scrap based on the helicopter type and it's current health (50% health = 50% of the Scrap).
  • Minicopter - 200 Scrap
  • Scrap Transport Helicopter - 300 Scrap
  • Attack Helicopter - 500 Scrap
Stolen a helicopter from your neighbours? Why not destroy the evidence and get paid at the same time!

Wooden high external walls and gates can now be upgraded to their stone versions via the hammer context manner, similar to regular building blocks. Each piece you upgrade requires a Stone high external wall or gate in your inventory.
Additionally, high external walls now craft in batches of three. The stone high external walls requiring 1 sheet metal per craft. 

The stone high external gate has also been adjusted to require 1 sheet metal and only 3 gears, with its crafting cost reduced to 4000 wood/stone (down from 4500) for improved inventory management.
You are now able to see a bunch of statistics about your vending machine. This includes:
  • Transaction History
  • Highest Revenue Items
  • Best Sold Items  
You can browse these stats in a wide variety of timescales: from the last 30 minutes to all-time.

Some 'long term stats' are also available (all anonymous), these are:
  • Total Sales: The total number of items purchased from the vending machine
  • Total Unique Customers: The total number of individual customers who have made a purchase
  • Total Repeat Customers: The total number of instances where existing customers have returned to make additional purchases.
  • Best Customer: The customer who has made the most purchases (total count of their transactions)
These stats are processed on the Serverside then communicated to clients.


Here are a few Server Convars to help server owners:

vendingmachine.max_returned - Specifies the maximum number of entries to return when fetching purchase history or aggregated stats (e.g., best-sold items, most revenue-generating items, etc)

vendingmachine.max_processed - Limits the maximum number of sales records to process when performing operations like filtering or aggregating data, even if more records are available

vendingmachine.max_history - Defines the maximum number of purchase records that the vending machine will store in memory (on Serverside) before removing older entries to make space for new ones

Server owners can also run:  vendingmachine.clearallvendinghistory and vendingmachine.clearallvendingcustomerhistory to clear all Vending Machine stats and long term stats respectively.
Once you placed your Legacy Shelter, it was possible to die and then be unable to place another. When placing down another shelter, your first one is now destroyed.
There's one trade off: Shelters now take a few seconds to place (just like high external walls). This gives enough time to warn you that your old Shelter is going to be destroyed, as well as preventing them from being used in PVP.
The 16x scope was significantly under-used considering it's intended to be military loot. This seemed to come down to it being too high of a zoom.

This scope has now been renamed to the "variable zoom scope" and supports 3 zoom levels: 4x, 8x & 16x. This makes it better than both of the old scopes combined & adds in a new zoom for quick target acquisition.

The default keybinds are 'Page Up' to increase zoom and 'Page Down' to decrease zoom, however I fully expect more experienced players to rebind these. 

Try scroll wheel (if you aren't using it to switch weapons) or mouse 3 & mouse 4 (if those aren't already bound).

Now that we've reached a point where we are happy with the dynamic pricing behaviour when purchasing items with Scrap, we've decided to apply the same logic to items being sold for Scrap. Starting this month, you will notice that items that you sell to NPC vending machines for Scrap have a dynamic price applied to them. It will start the wipe with 50% less value per item sold, and can increase to an extra 100% value per item sold if no items are sold.
This will hopefully make it more valuable to sell items as a wipe goes on. As with the previous changes, we'll be monitoring these and making changes as needed.
We recently tweaked this, but your feedback made it clear there was further room for improvement. So we did just that. Underwater visibility is now nearly doubled, allowing players to see further and more clearly underwater.
Additionally, we've slightly increased the depth of water players can sink to before the oxygen level starts to tick down. During swimming, you are now less likely to drown to high waves.
Landmines now have a 15% chance to explode when being disarmed by another player, so be careful when clearing out minefields!

This was always meant to be the intended gameplay behaviour for landmines, but I discovered an old bug that prevented this from working as intended.

We've slightly modified the behaviour when hitting nodes this month. Nodes will no longer show a sparkle before they are hit for the first time, once they are hit the sparkle will appear underneath the first hit. This first hit is considered a sparkle hit and will reward the appropriate amount of resources, so it's a very slight buff to ore collecting.

We did this for a few reasons:
  • This brings their behaviour in line with the tree X marker minigame
  • Finding the sparkle at first was slightly awkward, this feels smoother
  • Each sparkle was a networked entity that had to be streamed in and out as the player moves around
  • We had a sparkle per node in the world, so an average server will now have around 4.5k less entities in the world
While I was at it I made some slight memory improvements so each node will take up less client and server memory.
While looking at collecting some data around queues, we decided to do a few minor improvements to the queue system.   Up until now, the client was unaware of being in a queue, it was simply using server messaging to show the queue.  Now the client knows when it has entered and exited a server queue, and can act accordingly. We now display Steam rich presence for waiting in a queue and connecting to a server.   This also opens us up to do more client side related queue features in the future.
The other change to queues we made impacts modded server owners specifically.  The queue messaging system was being leverage by modded servers to implement loading screen messages via a plugin.  These loading screen messages would often fight with the client messaging, and generally didn't look great.   As a nice compromise, we've implemented the ability to change the "menu tip" message displayed in the loading screen.  This can allow modded server owners to implement their own tips that may be more relevant for the particular game mode and changes specific to the server.  To keep things backwards compatible, the same network message sent before will continue to work with one caveat. 

// Old

var net = Net.sv.StartWrite();
net.PacketID(Message.Type.Message);
net.String("Top Text");
net.String("Bottom Text");
net.Send(new SendInfo(conn));

// New

var net = Net.sv.StartWrite();
net.PacketID(Message.Type.Message);
net.String("Bolt");
net.String("This server has instant craft!");
net.Send(new SendInfo(conn));


Instead of having top and bottom text, you can change the menu tip icon displayed.  Existing loading screen plugins will continue to function, but won't display a top message as that field is now used for an icon.  A list of available icons names has been published on our Community GitHub repository.   

Only servers clearly listed in the modded section may utilize this feature.
Another one for all the server owners out there. We've started updating the security around RCON.   The server will output very prominent warning messages if you're using an insecure RCON password.  In some cases, the RCON server will fail to start if the password is bad enough (i.e. "password" or "changeme")

We've also added some safeguards against brute force attacks.  Now when a RCON client attempts to connect with a bad password, after 5 attempts the IP address will be banned for 5 minutes.  These values are all configurable through a number of new convars.   There are also a few convar commands that allow you to permanently ban both IP addresses and networks.

  • rcon.banduration (default: 300)
    Number of seconds to apply to any automated ban.
  • rcon.maxpasswordfailures (default: 5)
    Number of failed password attempts before applying a temp ban
  • rcon.logfailedattempts (default: true)
    Debug.Log all the various failed password / ban connects. Defaults to true, but large servers may want to disable due to spam
  • rcon.permanentbanfailedips (default: false)
    Permanently ban IPs that exceed the failed password threshold
  • rcon.ban_ip <ip / network>
    Permanently bans an IP or network
  • rcon.unban_ip <ip / network>
    Removes an IP or network ban from both the permanent bans, and any temporary bans/attempts
  • rcon.print_rcon_failed_logins
    Prints out the table of attempted logins that failed and if they resulted in a ban or not
  • rcon.clear_rcon_failed_logins
    Removes all of the temporary failed login history/bans (does not remove permanent bans of any kind)
  • rcon.print_rcon_bans
    List the permanent IP/network bans
We've been waiting for a while for all of our third party software to natively support ARM64 hardware. This has now finally come to fruition and as the first platform to test this on, we've switched the Mac version of the game to use our native ARM64 build on Apple Silicon hardware. At the moment, Intel hardware is still supported on Mac as well and remains unaffected by this change.

If this works out well, we will investigate native ARM64 support for other platforms in the future. The next most important one would likely be to natively run on ARM64 hardware in Windows laptops, but we are still waiting for some third party software to fully support this, so this will stretch a good amount into the next year at least.
That's right, Twitch Rivals - Team Battle V is almost here! 

Starting Monday 9th of December and finishing Friday 13th, up to 150 Twitch creators from around the world will compete in our yearly global Rust PvP competitive event, with a prize pool of $100,000

Last year's event saw some incredible plays from some rather understated competitors so be sure to tune in every day at 1900 GMT / 1400 EST to watch as tensions rise and the teams find their feet while they gather their resources, build to protect themselves, then raid, loot, and fight it out to be crowned victorious!

This year's Captains include Team Battle IV's winning team captain, Blooprint, as well as Oilrats, NoraExplorer, Willjum, and more! Full schedule and teams list from Twitch here.

As usual, there are some incredible looking Twitch Drops available to collect by watching the competitors, and by tuning in to the official competition broadcast from Twitch Rivals.
Sync your accounts and find links to all channels at twitch.facepunch.com.

And don't forget, there are generic Twitch themed Drops that you can grab by watching your favourite creator on Twitch not participating in the event too! 

As always, we'd like to thank Rustoria for working with us and Twitch to make this event possible. 

Up to recently we've been focusing on server performance health via tracking aggregating performance telemetry. It allowed us to have a general overview of a server's performance from birds eye view. There are point where high-level overview is not sufficient to identify where exactly slow-downs are coming from.

This past month I've been working on a built-in profiler for the server. If used, it allows us to see all the code that is executed for a particular frame - allowing us to see more detail about what & how things are going wrong.
With this, we can now combine our high-level telemetry as an "hotspot-warning" system, while using the built-in profiler will allow us to investigate what those hotspot consist of and which parts are the most worthwhile to optimize. This will help guide our efforts in optimizing the server performance while also validating that we have successfully optimized a particular block of logic.

The profiler comes with an extra benefit: this feature is going to be available for public use. Any server owner will be able to trigger it and take a look at the data. You'll be able to see both what vanilla server does, as well as if there's anything that Mods are actively doing.

How to Generate a snapshot

Note 1: This is currently only available for servers hosted on Windows machines. Linux support is next to come.
  • First, the feature needs to be activated when starting the server. You must launch the server executable with `-enableProfiler`
  • Once the server boots up, you can run the following console command: `profile.perfsnapshot [delay] [name] [frames]` (all parameters are optional)
  • delay is in seconds, by default set to 15
  • name is the name of the snapshot file, by default is "Profile"
  • frames is the number of frames to includes in the snapshot - default is 10, has a max of 10
  • Once the delay expires (you'll see messages in global chat), it will record the requested number of frames, generate and compress a snapshot - you will find it in <server-dir>/server/<identity>/profiler/<name>.json.gz
Note 2: if something goes wrong during generation the file won't be created(youl'l can it in server log file). I'll be continuing iterating on the profiler, so I'll iron out any left-overs.

Note 3: Taking a snapshot causes server to take a performance hit for a couple seconds. Make sure to give enough delay to avoid disturbing the server population too much. When not taking a snapshot, the impact is none/unnoticeable.

Exploring The Snapshot

You can extract the compressed snapshot using any utility that understands GZip (Windows11 explorer, 7zip). The snapshot uses Google Event Format, so you can use any tool to view it. For example, I've been using Perfetto UI to visualize the data - just drag and drop the json into the view and you can start exploring. 
We've added more prefabs for the mapping and modding community this month.
Below is a list of the additions and changes:
  • Additional concrete, charcoal, gravel, ceiling, roof and plaster tiled cube prefabs
  • Coloured wood panel tiled cube prefabs (pictured above)
  • Road and tarmac tiled cube prefabs
  • Cold and heat volume variants (low, med, high)
  • Radiation cube volumes - minimal, low, medium and high rad levels
  • Toxic/radiation water cube + cylinder prefabs
  • Admin spawnable invisible 3x3 cube + wall
  • Static xmas light string prefab
  • Static fire prefabs
  • Static spraycan decals
  • Birthday cake prefabs (from previous years)
  • Invisible static PressButton
  • Fixes for material changes to glowing cubes and glass cubes
We'll release a mandatory update at 19:00 UTC on December 16th to enable this year's festivities.
 
add_circle

Features

  • Added native ARM64 support on Mac for Apple Silicon
  • Modular Car Radios
  • Added 24x7 Bandit Town and Fishing Village radio stations
  • Added server.homingMissileTargetsHab convar to enable Homing Missiles to target Hot Air Balloons (off by default)
  • Added new IoEntity.infiniteIoPower convar to power everything on a server
  • Can now pick up and shred player purchasable helicopters in the Junkyard
  • Added Built-In Server Profiler
  • Added "invis" admin command that makes the admin invisible to players and NPCs
  • Added Vending Machine statistics
  • Added RCON IP ban system
arrow_circle_up

Improvements

  • Wolves have a better animation to jump up or down elevation
  • Wolves will give up on jumping at elevated players if a torch is swung at them
  • Wolves give up after following the player for a while, this happens a lot faster if the player is mounted or holding fire
  • Wolves speed is reduced and fluctuates more organically
  • Wolves are more likely to stop charging if one of their pack members gets hit near them
  • Wolves only respond to howls from their own pack, making it less common for packs of more that 4 wolves to form
  • Wolves won't see crouched players unless they are very close, allowing for melee attacks from the back
  • Wolves sight is reduced at night
  • Increased speed of player placed elevators by 50%
  • Added new express buttons to player placed elevators that go all the way up or down
  • Surgeon scrubs can now be crafted without a workbench
  • Added a passthrough slot to the Storage Monitor
  • Changed Tin Can Alarm recipe: 2 empty tuna cans -> 30 metal fragments
  • Ore nodes will no longer show the sparkle until they are hit for the first time
  • Slightly increased the depth in water players can sink to before the oxygen level starts to tick down
  • Wooden high external walls & gates can now be upgraded using the Hammer
  • A turret warning icon now appears next to the hostile warning indicator when you are hostile and near a peace keeper turret.
  • Scrap received when selling items to NPC vending machines is now dynamic
  • Updated Tutorial island with new cliffs
  • Dying to the junkyard shredder now shows an icon and proper name in the death screen
  • Added a "Fully Charged" output to all batteries which outputs 1 power when the battery is 100% charged.
  • Enabled rotation before deployment for the following items: Electrical Branch, Splitter, Button, Blocker, Root Combiner, Memory Cell, HBHF Sensor, Audio Alarm, RAND Switch, Simple Light, Siren Light, Flasher Light, Laser Detector, Pressure Pad, Tesla Coils, Sound light, Sprinklers, Igniter, Water pump, Debug power generator
  • Vendor listing now uses standard item icons
  • TriggerRadiation now supports BoxColliders
  • Added small box to Workcart
  • Legacy Shelter can now be revoked
  • Waterpumps can now be used in shallower water
  • Propane tanks now stack up to 20
  • Modded servers can no longer change the status messages in the loading screen, instead the tip line and icon can be changed
  • Better Azure analytics error messaging
  • Vending Machines now display if they are drone accessible or not
  • Improvement to Underwater Visibility
  • Disco floors can now be rotated and deployed while snapped to another disco floor piece
  • Homing missiles have been added to Bradley and Heli loot crate
  • Automatically set CPU affinity for AMD X3D CPUs
  • Anti-Radiation Pills buffed: Decreased hydration reduction from 10 → 5, Increased scrap per trade from 1 → 10 and Increased radiation reduction from 25 → 75
  • Fridge storage increased to 48 slots
handyman

Fixed

  • Wolves being able to jump on 2 storey bases or very tall cliffs
  • Wolves hovering above ground
  • Landmines now have a 15% chance to explode on being disarmed
  • Fixed tesla coils being deployable under the terrain
  • Fixed some deployables saying 'Not enough space' instead of 'Cannot build this close to X' when building in a monument no build zone
  • Fixed repair bench UI not displaying the required ingredient amount when the quantity is 1
  • Fixed research table UI showing the incorrect phrase when attempting to research broken items
  • Fixed a crash when adding and removing a lot of slacked points to a wire
  • Cutting the power of a broadcasting RF broadcaster will now stop its signal
  • Fixed oxygen remaining readout starting at 3s (there is actually 4s of oxygen when going underwater)
  • Fixed oxygen readout showing incorrect amounts if multiple diving tanks are in the inventory
  • Fixed case where a second reload could be triggered if a player hit the reload key near the end of the reload animation (affected many guns)
  • Fixed case where the crossbow reload would sometimes play an extra 0.25s animation when the reload finished if latency was high
  • Fixed some floating grass and foliage on Tutorial Island
  • Fixed fingers not rendering on some leather glove skins
  • Fixed weapon reloads not reliably working at very (<15fps) low frame rates
  • Fixed campfire water purifier not accepting freshwater in the propane tank section
  • Fixed Travelling Vendor sharp LOD changes
  • Fixed ocean water Z-fighting with terrain at the shore
error

Known Issues

  • Wolves can sometimes suddenly die even though they didn't take damage
  • Server Profiler can sometimes fail to generate a performance snapshot
  • Investigating an on-going Server memory leak, which can result in server crashes
  • Rich text end tags (e.g. </color>) used in the menu tip message are erroneously escaped
  • Custom modded server icons used in the menu tip don't correctly reset back to the default info icon

Newsletter

Recieve monthly updates straight to your inbox