Stormworks: Build and Rescue

Stormworks: Build and Rescue

communication system (banani-messenger)
42 Comments
som0307 Mar 11 @ 7:38am 
Just, chef's kiss
som0307 Mar 11 @ 7:38am 
it is so fast, has a nice user interface, and is compact
som0307 Mar 11 @ 7:38am 
I love it
som0307 Mar 11 @ 7:37am 
I made this using your thing
Hinge Sep 25, 2024 @ 8:54am 
what if 2 people enter the same username, will the second 1 gets declined?
Aquatic Star Lines Sep 21, 2024 @ 8:57am 
We got Stormworks America Online before GTA 6
habanero7715 Sep 12, 2024 @ 5:14pm 
we get discord in stormworks before gta 6
мы получили дискорд в штормворксе до гта 6
AVUMP Aug 4, 2024 @ 12:19pm 
Неймовірно. 5 зірок!
hostbanani  [author] Jul 22, 2024 @ 6:15am 
the addon has been updated as well.
hostbanani  [author] Jul 22, 2024 @ 3:49am 
The protection's in place. No more interference can break it!
it's gonna take time to fix the addon.
if you need to download the repeater here: https://steamcommunity.com/sharedfiles/filedetails/?id=3294510057
powder Jul 21, 2024 @ 11:08pm 
hostbanani  [author] Jul 19, 2024 @ 4:14am 
One of the simplest ways to conceal communication is by obtaining a key using the Diffie-Hellman protocol and connecting users on the frequency they receive. While an attacker is brute-forcing the keys, the communication between the sender and the receiver will already have ended. However, this method disrupts the entire signal relay system.

If you prefer, you can use your own secret frequency for your private communication, making it nearly impossible for an uninitiated person to brute-force the frequencies.
hostbanani  [author] Jul 19, 2024 @ 4:14am 
Ugh so many things :)

Once again. the problem with encryption is mainly related to the width of the data channel. it would be much easier if the system had a centralized server storing all messages, but the difficulty here is in limiting the amount of data that scripts are able to receive every tick. And of course nobody canceled the limitation of 4096 characters in each script. I know everything about the theory of asynchronous encryption.

Regarding video. to see errors you need to point the camera at the controller itself. then it will show errors even in those scripts that are not connected to the screen. Better even send me a link to the jammer itself and I will see how it breaks the controller.
powder Jul 19, 2024 @ 1:50am 
Once the jamming stops, all machines become happy and reconnect.

Lemme know your thoughts! <:

I spent an hour writing this I think, butt- I see potential in this system!


I HAD TO USE MULTIPLE COMMENTS, STEAM HAS A 1000 CHARACTER LIMIT ;C
powder Jul 19, 2024 @ 1:50am 
Additionally, if two players using encryption are in range of each other, the anti-jammer local frequency should be used to re-encrypt both sides seamlessly, to reduce the chances that an interceptor can capture their keys.

To reduce the number of antennas needed to fulfill this, the "system" and "encrypted" frequency should be used simultaneously. Meaning that every five seconds, it will quickly switch to the other frequency, receive data it needs, switch back to the encrypted frequency to receive messages, and switch back to system to start sending data. Before switching back to encrypted

Fallback and anti-jam are more simple, if comms are jammed, switch to anti-jam. This is triggered when the system/encrypted antenna still receives corrupted data at a stupidly fast rate.
powder Jul 19, 2024 @ 1:49am 
If both machines successfully anti-jam, an icon should appear to indicate it. The username is switched to yellow, and a title is added to the window to state "Local-Communications only" or something similar. The repeater network should not support this frequency.

If both connections are truly jammed, than the offline status is used. The receiving machine is treated as offline.

If the local system detects that the entire repeater network is getting screwed by a jammer, than oof.

Anti-jammer communications will use plain messaging, because supporting multiple anti-jammed communications at once is not possible, probably.

If the repeater networks is being jammed ONLY on encrypted or system frequencies, it should disable the fallback option, instead using the fallback signal to send a "halt" packet to every machine it can reach. This is to prevent new joining players from forcing every player in the lobby to make new keys, so they can collect the keys.
powder Jul 19, 2024 @ 1:49am 
I know this encryption idea will probably be hell to implement, but I think that theoretically this system could work. It's not meant to be perfect, it is possible to intercept keys. And it is still possible to jam it. But the system should sustain itself after a jamming and "re-connect"

Alternatively, if both players are in range of eachother, and do not require to use a repeater, the system should instead switch to a "anti-jammer" frequency and communicate directly. If the "anti-jammer" frequency is jammed. Than RIP

If both players are not in range, than anti jamming will fail. The anti jammer idea is solely for close range situations, where the jammer is uninvolved.
powder Jul 19, 2024 @ 1:48am 
If "no" - nothing happens, both users are alerted via the chat that someone attempted to tamper with it.

If "yes" - It's deleted on both ends

If no response or "what the hell are you even telling me", the chat is kept. User is alerted something went wrong, they can manually delete it if necessary.

If player is confused, they will manually reset anyways



WOWIEE I TYPED A LOT

I know this encryption idea will probably be hell to implement, but I think that theoretically this system could work. It's not meant to be perfect, it is possible to intercept keys. And it is still possible to jam it. But the system should sustain itself after a jamming and "re-connect"
powder Jul 19, 2024 @ 1:48am 
Should the encryption fail entirely, a second option should be presented to switch to "fallback mode", which sends all messages on the fallback frequency as plain readable data. Fallback contacts should have a red username with a symbol to indicate it is unsecured.

The option to delete a contact could also exist, to reset the encryption entirely. When a user deletes a contact, it sends a system packet to indicate the chat has been terminated. Which will than delete it on the recipients end. If an encrypted chat is deleted, this packet is than encrypted and sent over the encrypted frequency.

If an encrypted chat is deleted, but the receiving machine is unable to verify the validity of the request, it will instead send out a "hey, did you do this?" packet over encrypted, the machine will either say "yes" or "no" in encrypted computer beeping.
powder Jul 19, 2024 @ 1:48am 
This is an unsecure approach, as it is possible for another machine to intercept the private key. However given the complexity of adding "truly secure" encryption. This is ignored.

Most players wont even bother to make a whole system dedicated to receiving every message and collecting each private key. This is solely to make it more difficult to intercept chat's.

The encryption should be seamless and almost-unnoticeable for the user. However when the encryption fails, and the receiving machine confirms it received unreadable data via a system packet, the user should also have the option to: re-generate a new key, and resend that key to the receiving machine. The receiving machine should have the option to decline this, in the event a player tries to manipulate it.
powder Jul 19, 2024 @ 1:47am 
For verifying the identity of players, a randomized, hidden ID could be added. Which binds itself to the machine it is contacting. If a user has the same username as another, but a mismatching ID, the system with the originally registered ID should send a system packet indicating the username is reserved. The new machine would than be prompted that the username is taken, once the user presses a button, it will reset itself.

For encryption, it could be possible to leave some data unencrypted, Machines and repeaters should support two frequencies

Encrypted, Fallback and System. The system frequency will tell the receiving machine to prepare to receive a private key, necessary to decrypt contents of messages it receives, once the receiver pings back with confirmation, it will send a randomized private key over the encrypted frequency. This key is used on both ends to decrypt message content.
powder Jul 19, 2024 @ 12:51am 
There is no error message, after a jammer has been used, and after despawning the jammer, the communications system stops. Affected devices will always error

I've attached a video to demonstrate the issue: https://e.pcloud.link/publink/show?code=XZcAbgZFsgjp7YqMPX7Q4a4hCDIWVHmNiX0
hostbanani  [author] Jul 18, 2024 @ 10:34am 
It is necessary to significantly modify the system to achieve proper encryption. I even have ready-made algorithms, but still, it is easy to intercept and substitute the recipient. Additionally, this requires creating a communication channel between the sending and receiving scripts. The only way to do this involves narrowing the data channel used for transmitting the messages themselves.

I would really like the developers to add the ability to rewrite property texts with a script. This would create the possibility for unlimited communication between scripts within a single controller. Currently, sending a composed message to the sending script takes up to 2 seconds, which is quite long...

As for the interference, I checked and there were no problems. I am not sure what it is related to; I would like to know what specific error message appears when you hover over the controller.
warppioneer Jul 18, 2024 @ 10:02am 
good ideas powder
powder Jul 17, 2024 @ 11:19pm 
I've also just tested it for radio jamming resistance, and uuh... jammers seem to bonk the whole system, even after the jammer is turned off. It breaks the chatting capability.

A "hard reset" button could be added to repeaters and chat microcontroller to reset any data within it manually, that ways the vehicle doesn't lose the ability to talk if it gets jammed temporarily, or if some other wonky error occurs <:
powder Jul 17, 2024 @ 10:01pm 
It's a very great idea, I already used the add-on for my personal multiplayer server <:

It would be pretty neat if this got picked up as a standardized text communications messager, that can be deployed on multiplayer servers for private chatting.

I know encryption is rather... boring, but.. if it's possible, could you add a VERY BASIC form of encryption to make it harder to interpret messages, and upload a seperate microcontroller only version for the repeaters and chat system, so that other builds can be encouraged to use it?

Personally, I think an idea like this has potential to be adopted into some kind of standard within stormworks :winterbunny2023:
hostbanani  [author] Jun 29, 2024 @ 2:48pm 
for about three days. Most of the work is thinking through the idea itself, how things should work and how they should interact. It's especially good to think about it while walking with the dog :)
colerg20 Jun 29, 2024 @ 12:39pm 
How long did this take you to program?
metformin1 Jun 7, 2024 @ 5:35pm 
is it possible to deploy buoys to act as network extenders?
DingusWolf Jun 7, 2024 @ 2:20pm 
Awesome Man! this is hilarious and is kinda like an oversimplified chat!
hostbanani  [author] Jun 7, 2024 @ 1:09pm 
Sure:) I'll be glad if you don't change the frequency so they'll be compatible on any build.
bruharkmoon Jun 7, 2024 @ 10:55am 
what the hell bro this is awesome, can i use this for a build? (with credit)
Hotdogs Jun 6, 2024 @ 3:59pm 
I misread it as banana massager...
hostbanani  [author] Jun 6, 2024 @ 2:48am 
It's pretty easy to do. the only hope is that everyone will be too lazy to intercept them)
Goshawkets Jun 6, 2024 @ 12:29am 
Can you somehow intercept these messages?
ALLONIT Jun 5, 2024 @ 9:19pm 
make the internet next
The_MJF Jun 5, 2024 @ 2:23pm 
Love the hidden texts and poems:steammocking:
Rilliam Jun 5, 2024 @ 12:40pm 
This is revolutionary
warppioneer Jun 5, 2024 @ 6:33am 
Incredibly cool! must have taken a while to figure out how to encode multiple characters as a composite signal. There is a in-game chat but.. whatever...
I.R.S Jun 4, 2024 @ 3:33pm 
very underated
Gimacal Jun 2, 2024 @ 5:08pm 
Underated