Rust Marque Logo

CCTV Update

This update brings CCTV Cameras and Computer Stations for all your surveillance needs as well as various optimizations and improvements.

05 March 2020
Devblog
CCTV Cameras are no longer just a crafting ingredient for turrets. They are now functional surveillance devices you can deploy in and around your base and view them from a Computer Station. After you place a CCTV Camera, you must have a hammer equipped to configure it. First you must give it an identifier - This is a unique name for the camera allowing anyone who has it to access the camera, from anywhere. You can use up to 32 characters so be creative and don't use 'lootroom'. You can also hold E and select 'Set Direction' which will manually rotate the camera to face you. The computer station is available at the compound and is researchable. Once you have obtained one, have a seat and begin adding identifiers. Simply clicking on the name will display that camera's feed. There is currently no range restrictions.

A recent incursion at a Cobalt security station lead to the discovery of a set of encoded identifiers and a screengrab has been propagating around the island through back channels.
You can now equip a trumpet in an Auto Turret! The trumpet will play random notes while a hostile player is detected.
Server admins can now change their server's ocean level to mix things up or whatever they want. Just enter "sv env.oceanlevel 1" into your console and the ocean will instantly be one meter higher for everyone on the server. Some things don't quite work properly when you go crazy with this so I expect it to be more of a custom map/modded thing. I'm sure some interesting ideas will come out of this.
If you've ever thought you needed more keys to bind various commands to then you'll be happy to know you can now bind a combination of keys to a command so it only triggers if all keys are pressed at the same time. To do this you can specify the keys in square brackets with plus symbols separating each key. For example, if you're sick of accidentally killing yourself you can switch that keybind into "bind [leftshift+x] kill" so it's a bit more work to do. The new meta.add command is useful for making adjustments to any convar you want by adding a value to it. So now, instead of binding different values to half the keys on your keyboard, you can just do "bind [leftshift+i] sv meta.add oceanlevel 0.1" and you will be able to raise the ocean upon command. There's also some slightly less interesting commands for content creators to adjust weather, change the cloud rotation, and disable underwater effects. More details about that hidden in the change list.
I spent a fair amount of time on debugging and fixing exploits with all sorts of fairly recent gameplay elements:
  • Fixed horse leaning exploits
  • Fixed sleeper parenting exploits
  • Fixed a seemingly endless amount of scrap transport helicopter exploits
  • Fixed even more explosive ammo, fire arrow and incendiary rocket exploits
  • Fixed various projectile trajectory exploits
  • Fixed exploits to create tool cupboards that belong to external / faraway bases
Some of these could be exploited without hacks, others required hacks or could be abused far more drastically using hacks.
The new ring road introduced some unforeseen problems with monument placement which are now fixed:
  • Road meshes now use several LODs (performance)
  • Roadside monuments can spawn next to both main roads and side roads
  • Place roadside monuments after all other monuments so they don't take space away from large monuments
  • Removed ring road from maps smaller than 4k since it takes away too much space
  • Default world size is now 4250 (from 4000) to give monuments slightly more space to spawn in with the new ring road
  • Fixed cargo ship sometimes spawning out of world bounds and immediately killing its scientists
There are more improvements in the pipeline to get us ready for larger map sizes, for example to improve the navmesh generation at server start.
Garry upgraded our build server hardware this month and I've been working on some build process optimizations. These measures brought our build time from 60 minutes down to less than 30 minutes (admittedly two thirds of which due to the hardware upgrade). You don't really have to care about this, but since build server delays are one of the main reasons for late updates I thought I'd briefly mention these unsung heroes of our development cycle.
I solved a few problems with the localization this month. The team dock on the bottom left was failing to show CJK player names and the item name wasn't showing in CJK. I went through and made a few elements localized that weren't localized before. Some of the options screen and the achievement list should now appear in your favourite language.
This month I cleaned up and made our netcode more modular, which allows us to have multiple netcode systems and be able to choose which one we use. By default it'll still use the default Raknet netcode we've used forever, but if you add -swnet to your dedicated server launch it'll use Valve's new ISteamNetworkingSocket system. Clients should be able to join like normal and switch to the right netcode automatically. There's two reasons why I'm keen to try this..

Raknet Is Old

It took a lot of work to get Raknet working in an acceptable way. I wrote a blog where I explained some of this a few years ago. The short version is that Raknet was paid middleware, all supported, all awesome, really widespread used. Then facebook bought it and kindly made it open source. It's my guess that as part of this they had to rip out some code, and when they did that it left a ton of bugs in. It becomes obvious when you try to use the code in their repository that it has problems. It hasn't been updated in 5 years and has 63 open, unanswered, unacknowledged issues. It's not good. Valve has an open source alternative that works without Steam - which seems like a much better choice if you're considering Raknet right now.

Steam Relay

Although we're not using it right now, Steam's networking code has a mode where it connects via SteamId instead of IP address. In this mode no IP addresses are visible at all which means that servers can't get ddossed. This means we (and you) can put servers in regions where we can't currently get the attack protection - and can get them from hosts without the extra costly ddos protection. In this mode all traffic is routed via the huge worldwide backbone Valve have built up over the last 15 years. This gives a better connection and better pings. The Steamworks site is hard to parse - but Valve did a good talk explaining the benefits here.
Electrical items now show information about themselves in your inventory such as power required and power generated.
This month Layla, Jarryd and Rohan helped put together some additional tools and server admin convars which are useful for cinematics and video content creation. I've started documenting most of our existing tools and commands on the cinematics section of our new Rust Wiki. Here are some of the new features added in this update:

Camera Parenting

Use the F key in debug camera mode to parent the camera to an entity being looked at. Once parented, you can orbit around the entity and cycle between different target bones using the TAB key. You can also move the camera in/out from the targeted entity by using the mouse scrollwheel. Here's an example of the debug camera orbiting around a parented player:
debugcamera_bonerotation "1" applies the target bone's rotation to the debug camera:
Learn more about camera parenting here.

Camera Guides

debugcamera_guide "0-4" - enables different types of overlay guides for the debug camera, particularly useful for more accurate framing and compositions. 1 = Rule of Thirds
2 = Golden Ratio Spiral
3 = Custom Aspect Ratio
4 = Crosshair Guide
Learn more about camera guides here.

Demo Playback HUD

Use the command demo.hud 1 during demo playback to view a HUD displaying the following information about the current demo file: timecode, timescale (playback speed), demo filename and date + time of the recorded demo. Additionally, you can bind the command demo.togglehud to easily show/hide the HUD with a single key.

Demo Browser

View a list of all your demo files by clicking the demo playback icon on the main menu's top-right section. Here you can play or delete your demos and open the local directory where they're saved. The browser currently lists fields with the following information:
  • Demo filename
  • Date and time of demo recording
  • Length of demo recording
These fields can be sorted in ascending or descending order by clicking the column's field name.
Learn more about demos here.
add_circle

Features

  • Can equip a trumpet in Auto Turrets
  • New optional UI when playing demos (see demo.hud convar)
  • New admin/content creator commands to control weather effects on their client (adminclouds, adminfog, adminwind, adminrain)
  • New convar to set the cloud rotation (cloudrotation)
  • New admin/content creator command to disable underwater bubble effects (underwater_effect)
  • New replicated admin convar to change the ocean level for everyone on the server (oceanlevel)
  • New console command to add a value to a convar (for example, meta.add oceanlevel 0.1)
  • Add support for binding key combinations (for example, bind [leftshift+x] kill)
  • Added experimental Steam netcode
  • Added CCTV Camera support
  • Added Computer Station
  • Added Electrical Item information panel
arrow_circle_up

Improvements

  • Shotgun traps now work in underwater caves.
  • Can now switch between multiple demos on the same map/seed without having to disconnect
  • Show a more helpful message when trying to build in a monument or too close to another building
  • Pressing escape now closes the report dialog
  • Road meshes now use several LODs (performance)
  • Roadside monuments can spawn next to both main roads and side roads
  • Place roadside monuments after all other monuments so they don't take space away from large monuments
  • Default world size is now 4250 (from 4000) to give monuments slightly more space to spawn in with the new ring road
handyman

Fixed

  • Fixed blur effect staying on screen during a demo if the demo was playing back in slow motion
  • Fixed hostility flag being reset when you die and disconnect from the server
  • Fixed custom map markers disappearing when you die and disconnect from the server
  • Fixed some item info labels disappearing at odd window resolutions
  • Fixed demos failing to load if you have previously connected to a server without restarting the game
  • Fixed gun aim jumping after you finish shooting while mounted in a vehicle
  • Fixed igniter not igniting candles
  • Fixed downloading models from the workshop item editor when there's more than one model file
  • Fixed not being able to use demo.skip command once a demo has finished playing
  • Fixed exception when looking at entity that is returned to the pool
  • Fixed horse leaning exploits
  • Fixed sleeper parenting exploits
  • Fixed a seemingly endless amount of scrap transport helicopter exploits
  • Fixed even more explosive ammo, fire arrow and incendiary rocket exploits
  • Fixed various projectile trajectory exploits
  • Fixed exploits to create tool cupboards that belong to external / faraway bases
  • Fixed "changing network group to null" server warning spam
  • Fixed a number of IO entity networking glitches
  • Fixed AI weapon usage throwing lists from the memory pool to the garbage collector
  • Fixed several small client side projectile pooling issues
  • Fixed cargo ship sometimes spawning out of world bounds and immediately killing its scientists
  • Fixed cjk player names not showing in team dock
  • Fixed item name not showing in inventory under cjk
remove_circle

Removed

  • Removed ring road from maps smaller than 4k since it takes away too much space

Newsletter

Recieve monthly updates straight to your inbox