10 YEARS OF RUST
Posted on December 7th, 2023 01:46 PM EST
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 Legacy 2013
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.
Rust Reboot 2015
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:
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.
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 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.
- 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
- 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
- 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 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 - 22.214.171.124:28015
EU - 126.96.36.199:28015
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.
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.
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.
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 siting 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:
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.
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 http://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.