Rust Marque Logo

10 Years Of Rust

This month we celebrate Rust's 10th birthday. Birthday event, throw back items to Rust Legacy, new weapon, twitch drops, 20 QOL features, and much more!

07 December 2023
DEVBLOG

This month marks Rust's 10th birthday. We’ll celebrate from today till the 16th of December with in-game birthday cake, hats, throwbacks and some new items.

Rust has undergone significant evolution since its launch in 2013. It initially began within the Unity Engine 4, playable in a web browser. Later, a standalone version launched on Steam early access, the beginning of which is now known to most as Rust Legacy. With rocky foundations, a complete overhaul was done to what we have today, known as Rust reboot, or just Rust nowadays.

Over the past ten years, Rust has sold over 16 million copies (not counting console).
Rust exceeded everyone's expectations and has grown yearly for ten years. We have delivered monthly updates for ten years straight, as we continue to expand the Rust development team, we have no plans to stop providing you with guaranteed monthly updates.
Below are some exciting metrics we've achieved over the past 10 years.
If you're interested in learning more about Rust's history, you can view the timeline here: https://rust.facepunch.com/rust10

On behalf of everyone at Facepunch Studios, we'd like to wish you a Happy Holidays. In the January end-of-years blog, we'll discuss how 2023 has gone, what we've achieved, what we learned, and our upcoming plans for 2024.
Take your best shot at the new Pinata deployable, available to be crafted for 500 wood. Destroying the Pinata will drop a random selection of goodies, remember to share with your teammates.

Mark the occasion with the Confetti Cannon! Simply light the fuse and sit back while the confetti rains down.


Remember those first few hours of Legacy Rust? Farming resources for your first big base, and needing a place to call home in the meantime?  The shelter was the answer. Now it's back! 
The shelter comes with an included door, key lock and even a small radius of building privilege! The perfect start to your Rust journey.
Shelters will decay naturally, provided the door isn't interacted with (by someone with a key or ownership of the shelter) at least once a day. Make sure you keep using your shelter in order to keep it! Shelters placed within a tool cupboard radius will use TC upkeep as normal. They can also be repaired with the hammer, the same as any other deployable.

Hello!
I'm Ian, the new Gameplay Programmer! I remember cowering in my shelter back in 2013 Rust. It's incredible knowing I'm giving new players the same experience I had back in the day by bringing Vincent's awesome model to life.

I can't wait to bring you more in the future.
The legacy bow is a limited-time only store item which is only purchasable during the month of December. This bow skin pays homage to the first-ever bow model in Rust. 

Available now from the Rust store
Available now from the Rust store is the new Legacy Wood building skin, the first Wood building skin. Owning this skin will allow you to change the visuals of your wood tier base.
This skin is for sale at the Steam store. To use, simply equip your hammer tool, display the wheel, and enable building skins. This should reveal the skin's wheel on which you may choose Legacy Wood upgrade.

The M4 shotgun was first introduced way back in Rust Legacy in 2013. To celebrate 10 years of Rust, we've decided to revive it. The M4 is an uncraftable military-grade shotgun; unlike other shotguns, the M4 has a much stronger range attack.


The M4 shotgun is a rare drop in high-end loot crates.

The Legacy Furnace is a free skin for the furnace based on the original model from 2013.

To earn the Legacy Furnace, simply play for 3+ hours during the month of December.  The furnace will be automatically issued to your Steam Inventory to use!
Fun Fact - The original furnace was made of starter rocks copied and pasted together in the shape of a furnace.


The paint UI has been in need of an overhaul for a while and that's what it got this patch! Not only does it look way better than before, it also has a lot of new features and improvements.
New features:
  • Eraser tool for all types of signs
  • Colour picker tool
  • Made the brush size and opacity options sliders (instead of buttons)
  • Added a brush spacing option as a slider
  • Added a more natural looking paint brush
  • Added two air brush types
  • Button to reset the camera to face the object straight on
  • Button to switch the preview lighting on or off (removes glare at some angles)
  • Allow chatting while in the painting UI, with a button to hide it
  • Bound Ctrl+S to the save button
  • Added a button to download the image currently being edited to your desktop
  • Added bindable convars for controlling the tool and brush options while painting
    • paint.selectedtool lets you set the current tool (as a number starting from 0, wrapping around at the end)
    • paint.selectedbrush lets you set the current brush
    • paint.brushsize sets the brush size slider
    • paint.brushspacing sets the brush spacing slider
    • paint.brushopacity sets the brush opacity slider
    • Note: These function as convars so binds like "bind L meta.add paint.selectedtool 1" will switch to the next tool
    • Note: You may need to re-open the paint UI after adding a bind when the paint UI is open
Improvements:
  • Fixed ugly UI, made it easier for us to maintain the three different types of paint UIs
  • Added canvas scaler so UI isn't tiny at large resolutions
  • Fixed gap visible between preview and right UI at some resolutions
  • Clicks on top of UI will now never paint on the sign
  • Added tooltips to all buttons so it is clear what they do
  • Optimized 2D painting implementation so long, quick strokes don't kill framerate
The Contact Shadow option has been in the Experimental section for some years now. I believe the main reason for this is related to a very obvious over-darkening of Grass/Foliage shadows. Foliage materials have a shadow intensity option that allows artists to control penumbra darkness, making it a bit more realistic. Contact Shadows, basically, ignore that parameter.

Last month, I decided to go over it and fix the problem, while tweaking and optimizing the effect in the process.
It should now look a lot more seamless when toggling on/off, respecting shadow intensity while still grounding the grass.
Continuing with the theme of throwbacks to celebrate Rust's 10th Birthday, you've asked, we've listened, Hapis Island is back.. again! This map version is community-made and based on the 2018 version. If there's one thing the Rust community doesn't lack, it is passion.
We plan to host Hapis Island until at least March 2024.

We're hosting two servers of Hapis Island across different regions. These can be found in the official server list by searching "Hapis"

US - 54.39.130.95:28015
EU - 51.210.222.218:28015

If you're unfamiliar with Hapis and feeling lost, you can find a map here.
Player ragdolls - the floppy state a player's body enters after being killed - have been revamped this month.

They can now collide with all vehicles in the game (trains, cars, boats, helicopters etc), where previously they simply fell through. Issues with ragdolls stretching out unnaturally have also been eliminated. If you ever saw a corpse where the interaction wasn't lined up with the visible ragdoll, that's fixed too.

Old Behaviour

When a player died, a corpse entity used to spawn that was basically just a pelvis-sized collider, which was physically simulated on the server. The position of that "corpse" would sync with every client.

On the client side, a separate "ragdoll" object would spawn, that was a whole visible person with a full set of physically simulated limbs. That ragdoll was attached to the server-side-simulated corpse basically by a tight spring.

The corpse object controlled the actual loot interaction.

Essentially the intention was:
  • Let the client do the work of simulating a whole body. We don't really care how their arms and legs are positioned, on the server. If it's different between clients, also don't care.
  • Keep the loot interaction consistent between clients by simulating just that part on the server.
  • Keep the (client-side) ragdoll and the (server-side) corpse together with the spring.
In reality, things were not perfect:
  • If a player died somewhere like the top of a wall, the corpse might fall down but not the ragdoll, or vice versa. Since the collision setup was quite different between (server-side) corpse and (client-side) ragdoll - only the pelvis area matched - this was relatively common. The result would be a mismatched position between corpse and ragdoll, sometimes putting the interaction in a strange place.
  • The client-side ragdoll joints really did not like working with the pelvis position data that was coming from the server. If movement was sudden, rather than just ending up in the wrong place, the ragdoll would sometimes stretch out unnaturally.
  • If a ragdoll was on a moving vehicle, things were especially bad, to the point that we couldn't enable ragdoll collision with vehicles at all. Things would happen like a ragdoll dangling under a scrap heli because it had fallen out but the "corpse" hadn't.
    This was exacerbated by the fact that the client-side ragdoll physics simulation didn't work well with the fact that the vehicle was being moved on the server, rather than simulating on the client like the ragdoll was. Although the physics did work, they acted like the surface had zero friction, so the ragdoll would tend to slide around while the server-side corpse wanted to stay put - and the spring kept trying keep them together.
I also discovered a bug where if a player entered a network area where a ragdoll was parented to something else, it would tend to stretch out wildly. I think that one was causing a lot of the ragdoll issues seen on the Cargo Ship.

New Behaviour

My first instinct for the simplest fix was to try just locking the ragdoll to the corpse, rather than using a spring. That would force them to stay together.

Unfortunately locking the pelvis to a position that was coming from the server, whilst simulating all the connected joints on the client, made the physics system very unhappy. Trying Unity tricks like using 'rigidbody.MovePosition' versus '.position', projection on or off, more solver iterations etc didn't really help. The limbs would really want to stay where they were while the pelvis pulled them around, and you'd just end up with a horrifying stretched-out ragdoll instead of one that was simply in the wrong place. Plus the limbs still had some of the old problems, like the zero-friction-on-vehicles issue.

The pelvis also didn't always simulate well for a full body, since it didn't have any of the connected torso/legs/arms/head, so it'd try to go places the full body didn't want to go. The spring allowed for that kind of leeway, but a fixed connection didn't.

So ragdoll-on-vehicle support was going to require either writing a custom physics solution for simulating the limbs on the client plus making something better for the pelvis simulation on the server side, or moving the whole ragdoll simulation to the server.

Ultimately the custom physics solution was going to require most of the same work that a fully server-simulated ragdoll was, on top of being difficult to code on my own in a way that came out superior to what Unity has already managed with 7,700 employees. So server-side ragdolls was the winner.

The new ragdolls work like this:
  • A corpse spawns on the server, and that corpse is a fully simulated ragdoll with limbs etc.
  • The base position of that corpse syncs to the client like it did before, but now the limbs also sync, in an efficient way that's packed into a couple of 32-bit integers.
  • The client no longer has a ragdoll object that's separate from the corpse. The corpse is the ragdoll, and it's simulated only on the server.
That basically eliminates all the problems at once, apart from the performance cost on the server of simulating more than it did before. To handle that, I've made sure that ragdolls stop simulating as soon as they've settled down, including when they're on a moving vehicle. Overall the performance cost on the server is low, and behaviour is much improved.

Reverting

If anything does go wrong, there is a new 'serversideragdolls` console command that can be set true or false. It's now true by default, but setting it to false will immediately revert to the old system.
Industrial Pipe Colors
Added teal, orange, pink & purple
Sprinkler Water Fix
Fix sprinklers wasting up to 40% of water (4 or 9 planters)
Fixed Tugboat FPS
Tugboats were rarely causing a large FPS drop when coming into range
Car Lift Pickup
The car lift can now be picked up when not in use
Hot Air Balloon
Fixed Players falling out of the hot air balloon
Heli Crate Remodel
Updated patrol heli crate
Fixed Explosive Ammo Splash
In some situations, explosive ammo was not correctly applying splash damage
Square Sun
Did you ever notice the sun was square sometimes? No? Well, it's fixed
Controls Search
Added a search box to the binds sections of the options menu
Drone ID
Drones now show their ID inside the player's inventory
Ore Harvesting
Ore collection tools now have a slightly further attack, no longer have to duck/crouch to harvest
Bandage Revive
You can now revive players by using a bandage on them, restoring a small amount of health
Exactly 1 year ago we increased the respawn delay of oil rigs from 30min -> 1 hour. 

We noticed something strange though... the monument was sometimes taking hours (plural!) to refresh. After looking into it we realized some players were staying on Oil Rig & blocking the respawn for a number of reasons; ranging from farming resources to sitting afk in vents to grief the monument.

Radiation will now appear on oil rig 30 minutes after the hacked crate unlocks. It will apply low but consistent radiation (regardless of what armor you are wearing) forcing players to leave oil rig after the event is over.

We also resolved the issue of players leaving a single item inside the hacked crate to keep the crate's map marker on the map when it was "empty".

To communicate this new change with radiation there are multiple danger indicators when it starts:



Note: that the alarm sound has changed what danger is signifies: it has changed from "heavy scientists incoming" to "radiation starting".

These changes should ensure the Oil Rig event keeps refreshing & you always have loot to fight over.

As the year ends, we look back at what has and hasn't worked well, we have decided to make the following changes:

Hardcore

Hardcore was released in August 2022, a game mode aimed towards veteran players, with creature comforts such as safe zones, team systems and maps disabled. Since its release, hardcore has seen a declining player base, and we feel now is the right time to retire Hardcore from official servers.

It was an exciting game mode for us to experiment with, but we missed the mark on its implementation.

We have collected a lot of community feedback for if and when we choose to revamp this gamemode in 2024.

Hardcore can still be enabled on community servers.

Barren

Barren was introduced as a map to cater for the low-end system and before the introduction of custom maps. We've made some advancements in performance since, regular community use of custom maps, and declined user base on Barren servers, we feel now is the right time to retire Barren.

We also think Barren looks ugly and not a good representation of Rust.

On December 16th at 19:00GMT / 14:00 EST, we'll be releasing an optional server and client update to enable the Xmas event and some festive features!
Beginning December 7th till December 31st 2023 we will be hosting our very first Twitch - Support a Streamer Campaign!
During this period anyone that purchases 2 (two) subscriptions from any participating Rust Streamer will earn an exclusive Creator Computer Station to use in game!  Participation is open to any Partner or Affiliate on Twitch, streaming Rust.
There are some qualifications and steps involved to redeem the Creator Computer station please inquire the FAQs on our website for more info!

On December 11th at 8:00 pm GMT a team of 150 well-known Twitch creators from around the world will compete in this massive global Rust competition, taking place over 5 days with a prize pool worth $100k.
During the Twitch Rivals event, Rust Twitch drops will be enabled for 5 days from selected participating channels, and well-known streamers such as hJune, Welyn, Willjum, Panpots, Buddha, DisguisedToast, Mendo and many more. 


We'd like to thank Rustoria for working with us and Twitch to make this event possible. 

Learn more about this event at Twitch Rivals
Learn more about drops at twitch.facepunch.com
Another monthly round-up of data that we've captured in the last 30 days. We've got a lot of data at hand but we're trying to pick out the more interesting bits to share.

The data shown below is only from Facepunch official servers, we eliminate data from community-run servers to ensure accuracy within the data we share.
add_circle

Features

  • Player corpse ragdolls can now collide with all vehicles in the game
  • Added Pinata
  • Added Confetti Cannon
  • Added radiation to Oil Rig
  • Added Legacy Shelter
  • Added M4 Shotgun
  • Added Legacy Furnace
arrow_circle_up

Improvements

  • Birthday event now runs for over a week (7th of December to 16th of December inclusive)
  • Birthday Hat now randomises between 8 colours
  • Fixed splashing water from held entities would hit planters through solid construction, particularly the floor above
  • Added DDraw.hideDDrawDuringDemo, hides any DDraw from appearing while playing demos
  • Node hotspots can now be hit while standing further away, should no longer have to climb onto the node and crouch
  • Moved the Industrial Adaptor slot on the top of the Tool Cupboard closer to the centre to make pipe placement easier when TC is flush against a wall
  • Added search bar for keybinds
  • Changed model of heli crate from military to elite crate
  • Added "deployable" filter category to industrial conveyor
  • Changed HBHF from radial menu to user-friendly dialog
  • Optimized team update server performance for high player count servers
  • Added convars to configure player state cache (player_state_cache_count, player_state_cache_size, player_state_cache_evictions)
  • Don't show compass when the map is open
  • Show server's version in F8 menu
  • Show drone's id when selected in your inventory
  • Increased stacksize of HBHF from 1->5
  • Increased despawn from 5->20min (basic tea)
  • Increased despawn from 5->40min (roadsign gloves, tact gloves, advanced tea)
  • Increased despawn from 5->60min (diesel, spas12, pure tea)
  • Contact shadows respecting shadow intensity (foliage) and no longer overly dark; tweaked settings
  • Terrain base pyramid texture block compression to save ~80MB of VRAM and reduce bandwith
  • Made an experimental setting for GC Buffer
  • Made car lifts able to be picked up
  • Bandages now revive downed players in the same way a syringe does
handyman

Fixed

  • Fixed player corpses sometimes stretching unnaturally
  • Fixed player corpse interaction not always lining up perfectly with the visual corpse
  • Can no longer loot floating corpses from inside a submarine
  • Fixed some issues when reloading Snowball Guns while a snowball is wrapped in a gift
  • Fixed being able to swap weapon to skip the Chainsaw reload, the animation now needs to mostly play before the reload is applied
  • Fixed Vampire Stake worldmodels missing a highlight
  • Fixed two MGL’s dropping on one of the Advent Calendar days
  • Fixed Computer Stations and Auto Turrets requiring components to repair and displaying as 0/0 in UI
  • Fixed PTZ cameras repairing themselves when picked up
  • Fixed Electrical Switches not calculating passthrough correctly
  • Fixed mounted Trophies not respecting streamer mode
  • Fixed player attire in inventory not appearing after assigning a player to a Wanted Poster
  • Fixed multiple popups appearing on top of the Health Bar when using Teas
  • Fixed Head Bags getting a power icon after being placed in a Horse storage
  • Fixed Fish Trophies sometimes appearing mid animation
  • Fixed button to hide team leader's map markers not working
  • Fixed exploit to float concrete barricade above wall with a floor
  • Fixed inability to enter main code after authing as guest
  • Fixed desync in center of the map on certain servers due to industrial
  • Fixed binds repeating
  • Fixed modded servers not working with tags in cached browser
  • Fixed exploit to connect two TCs together with a wall
  • Fixed dropped item container showing the name "james" in streamer mode
  • Fixed "ent setgrade" not working with grades (brick, adobe, etc)
  • Fixed sprinkler wasting water when not watering 1,3 or 5 planters
  • Fixed server not saving ownerid immediately after adding / removing it
  • Prevent setting max fps below 20
  • Prevent storing rockets in turret
  • Fixed waterguns not correctly applying the last burst of water
  • Junkpiles will no longer spawn under boats
  • Horses will no longer hover if they're standing on a junkpile when it despawns
  • Fixed sunlight scattering in clouds looking square and not matching actual sun direction
  • Made large furnaces, oil refineries and water catchers unable to be shot through
  • When inside a tugboat with privilege: 'Building Privilege' will now be displayed