You are viewing a potentially older version of this package. View all versions.
stormytuna-The_Relay_from_Deep_Space-1.8.0 icon

The Relay from Deep Space

Allows players to chat on the Deep Space Communication Relay in-game

Date uploaded a month ago
Version 1.8.0
Download link stormytuna-The_Relay_from_Deep_Space-1.8.0.zip
Downloads 41
Dependency string stormytuna-The_Relay_from_Deep_Space-1.8.0

README

The Relay from Deep Space

A mod for the game The Message from Deep Space that allows players to communicate over the Deep Space Communication Relay in-game.

Before you install, it is highly, highly, recommended you complete the game first! The Relay will not show up until you have, to prevent your playthrough of TMfDS being spoiled.

Basic Usage

After installing the mod, you will see a new RELAY button on the main tabs view. This is how you access the Relay.

image

The RELAY MANAGER, RELAY INPUT, and RELAY screens are how you interact with the Relay. Enter a callsign, in base 8, and then click SET to begin chatting.

image

After you enter a callsign, the RELAY screen will populate with messages. You can input your own Meteor0ese message into the RELAY INPUT screen, then click SEND to send it. When you're finished chatting, you can click LOGOUT to leave the Relay.

There is another button on the RELAY screen, RECOMPILE. Whenever you define a new signal, you'll need to RECOMPILE the output to update older uses of it.

Features

You need to set a callsign to access most of the RELAY MANAGER features. After entering a callsign, you can open the the RELAY MANAGER screen by clicking the MANAGER button, and you can return to the RELAY INPUT screen by clicking INPUT.

Hotkeys

TRfDS attaches hotkeys to many of the buttons it adds. When hovering over a button, you can see if there's a hotkey attached to it on the left hand side, underneath the currently playing track.

  • RECOMPILE: CTRL+T
  • LOGOUT: CTRL+L
  • MANAGER/INPUT: CTRL+R
  • SEND: CTRL+E or CTRL+ENTER

Sending signals that aren't defined

Sometimes, you will want to send a signal you haven't defined in your dictionary yet. You can do this by entering |-<signal>. For example, if you define -2 as "STOP" in your dictionary, sending |-2 will appear (for you) as "STOP". Similarly, if you haven't defined -246 and you enter |-246, it will appear (for you) as @-246_UNDEF.

This is useful for when you are learning a new word and aren't sure what to call it yet, but you want to ask a clarifying question without creating a temporary definition.

Adding new signals to the dictionary

image

Under the ADD NEW SIGNALS text, there are 2 text entry fields and a MAKE button. The ID text entry expects a negative integer, corresponding to the ID of the new signal you want to create. The NAME text entry expects a plaintext name, no more than 18 characters, that the new signal will be called. After entering these, press MAKE to update your dictionary with the new signal. You can then press RECOMPILE to update the Relay messages with your new definition.

This signal persists with your dictionary like every signal from the game does. You can edit it, add formatting, add notes, etc, just as you can with any other signal. If you want to permanently remove a custom signal, hold control and click the delete button in the dictionary menu.

Message actions

image

You can use this section to copy the text of a message, copy the signals of a message, and view visuals in a message. Before clicking any of the buttons, you need to select a message by entering the ID of it. The ID is the gray number to the right of the callsign in the RELAY window.

To copy a message's text, simply click COPY. To copy a message's signals, hold CTRL and click COPY.

To view a message's visual data, click VIEW. Messages with visual data are shortened by default, as you aren't supposed to read and understand the contents of them, your computer is!

image

Image created by astro (callsign 1574)

There is another type of data that messages can contain. Huge thanks to electraminer (callsign 3544) for allowing me to reference their implementation of this feature when I was writing mine. The protocol was created for the Relay specifically, and isn't something you'd receive from Meteor 0. If you wish to find out about it on the Relay (which I highly recommend you do), please skip this section.

Spoilers lie here, beware!
You have been warned!! image

Music is able to be transmitted over the Relay. The grammar is not documented here as to preserve the creators' intentions. Once you define -577, a new PLAY button appears.

If someone sends a message with a song, you can enter the ID and click PLAY to listen to it. The PLAY button becomes a STOP button while Relay music is playing, and you can see the track's total length and your current position. Additionally, TMfDS's music will pause while you're listening to Relay music, and begin again once it stops.

Similar to messages with a visual, messages with songs are shortened to remove the contents of the song structure. You can see a song's structure by COPYing the message, then pasting it into the INPUT window or another text editor.

Channels

image

Channels allow people on the Relay to communicate in isolates spaces, usually so they don't clog up the main channel. Adding and removing channels requires defining 2 custom signals, if you wish to find these out on the Relay, skip this section.

How to join and leave channels

You will need to define two signals, -65534 and -65533 for joining and leaving respectively. Name them however you wish. Once you have them defined, you can join a channel by entering JOIN SIGNAL, where JOIN is what you named -65534 and SIGNAL is the signal corresponding to the channel you'd like to join. You can leave channels in a similar fashion with LEAVE SIGNAL, where LEAVE is what you named -65533 and SIGNAL is the signal corresponding to the channel you'd like to leave.

After you join channels, you can cycle through ones you're active in, and the RELAY output will update with the messages in that channel.

Channels you're in are saved and loaded from disk. You can find this file by navigating in-game to MENU -> HANDLE SAVE FILE -> SHOW WHERE MY FILES ARE STORED, then opening that path in your file manager of choice. All files this mod creates are stored in the TRFDS folder in this path. It's recommended you don't change the enabledChannels.save file, but you may view it in any text editor. If you modify it and break something by accident, it's safe to delete, the mod will save a new one when you join a channel again.

Configuration

Many aspects of this mod are configurable, you can find details on each config option in the config file that BepInEx generates. Note: It is only generated after launching with the mod enabled, so you will need to launch once to see the config file at all.

Limitations

TRfDS will fail to parse any Relay message that has a negative number lower than -2147483648 (AKA the signed 32 bit integer minimum value). This is because the Relay allows signals to be sent as 64 bit integers, while TMfDS's compiler expects all signals to be 32 bit integers. This shouldn't matter in practice, as people should never be creating signals lower than this number, but it is worth knowing about. TRfDS can parse positive integers of any value, even larger than the Relay can send.

Messages with visual data are shortened as the player isn't supposed to read the contents of the visual and understand it. However, the message is not verified as a parse-able visual before being shortened. If you find a visual on the Relay that cannot be VIEWed, it's likely either a mistake by the person creating it, or TRfDS shortened it when it shouldn't have. You can view the contents of such messages by COPYing the text and pasting it into the INPUT screen or any other text editor.

CHANGELOG

v1.8.0: It Radiates

This release is entirely quality of life focused, but contains lots of great features!

  • Added hotkeys to the most used Relay-related buttons
  • Added a COPY button to the message actions
    • You can copy a message's text, or copy a message's signals while holding CTRL
  • Added the ability to send any arbitrary signal by sending |-sig. No more temporary definitions just to ask a clarifying question!
  • Added a scroll to the INPUT screen and removed the character limit
  • Added a sound for when a new message is sent, it uses the same audio as receiving a new transmission from Meteor 0
  • Access to the Relay is now locked behind finishing the game
    • Why: I, along with many other Relay participants, believe that it can ruin the emotional impact of TMfDS
    • There is a config option to bypass this, provided solely for debugging purposes. Please do not use this to access the Relay before finishing the game!
  • Most of the RELAY MANAGER screen is hidden until a callsign is set
    • Why: Most of it didn't do anything unless you were logged in, so it prevents people from having strange issues like trying to switch channel before even joining the Relay
  • Fixed not being able to parse very large numbers

This is the final major release, unless anything big happens.

I would like to give a huge thanks to Applesinmypants for creating this wonderful game, and to all the lovely people on the TMfDS discord who've helped me create this.

v1.7.0: It Sings

Adds music playing!

  • You must define the signal required to create music to listen to it, someone on the Relay will be able to teach you if you don't already know it
  • Removed color palette and confetti toggles, those are now in The Colors from Deep Space
  • Updated how visuals hide the bulk of the message, they no longer cut off anything after the visual

v1.6.0: It Gleams

Various small fixes and quality of life features. Nothing major, but it should feel a lot nicer to use!

  • Added callsign colors with compatibility with the official Deep Space Communication Relay and astro's client. Thanks to astro for letting me reference their implementation
  • Added a custom icon for the RELAY button
  • Updated how compilation errors display to give some more info about the issue
  • Made dict sort by key order
    • New entries are still appended to the bottom, but when the game is re-loaded it's sorted by the signal ID
  • Fixed not being able to delete a dict entry, then add a new one
  • Fixed the callsign entry field allowing you to enter incorrect numbers and enter more than 4 characters

With this, the project is finished!

But... can you hear that on the horizon?

v1.5.0: It Compartmentalises

Adds channels! Spoilers for some signals. If you'd prefer to find them out on the Relay, don't click below!

You've been warned...
  • To join and leave channels you must define the following signals:

    • -65534 to join
    • -65533 to leave
  • Once you have them defined, type join signal to join a channel with that name, and type leave signal to leave that same channel (of course, you must type whatever you defined for join, leave, and the signal)

  • Another signal to know about is -65535, this is not necessary but is what allows messages to be sent to different channels. The standard usage is -65535 signal message, which would send message to the channel called <signal>

    • You do not need to define this! Behind the scenes, The Relay from Deep Space prepends the message actually sent to the Relay with the correct signals if you're chatting in a specific channel
  • Channels are saved and loaded to your computer. You can find the file from in game: Menu -> Handle save file -> Show where my files are stored. The file is under the TRFDS folder, named enabledChannels.save. It's recommended you don't touch this unless you know what you're doing
  • Currently, you can only join channels with signal names. You cannot join channels named after numbers. This may change in the future
  • Renamed to The Relay from Deep Space (sorry Taco!)
  • Added a config option to allow users to show the initial 10 Relay messages instantly
  • Fixed an issue causing the last line or character of a message to not display

v1.4.0: It Observes

You can now view visual data that people send over the relay!

  • Allows players to view message visuals!
    • Enter the ID of the transmission you want to view and click "VIEW"
    • Watch the beautiful creation render
  • Allow sent and received relay messages to display their signals on the oscilloscopes, toggleable by a config
  • Added a config option for dict label rendering
  • Added a config option to re-enable multicoloured confetti

v1.3.0: It Camoflauges

Many new small quality of life features and fixes!

  • Relay messages can now be recompiled for after you define a new signal
  • Monitor colour themes can now be customised in the config
  • Relay messages are printed char-by-char or line-by-line or instantly, depending on message length and the config
  • Relay websocket source can now be configured
  • Confetti cannon can be turned off (but you would make me very sad :( )
  • Fixed dictionary saving signals incorrectly
  • Fixed an issue causing relay scrollbar to not be set when first loading messages
  • Removed line numbers on relay and hidden scrollbar (scrolling functionality remains)

v1.2.0: It Speaks

You can now add new entries to your dictionary!

  • Dictionary update
    • Add new dictionary terms via the Relay Manager screen
      • Left input is the signal ID
      • Right input is the signal name
      • "MAKE" button creates it, saves your game, and populates your dictionary accordingly
    • Dictionary terms can now have up to 18 characters
    • Dictionary terms with signal IDs longer than 3 characters are budged over so they don't overlap
  • Randomly generates an example callsign on load
  • Confetti canon no longer fires if you haven't defined the custom signal for it

v1.1.0: It Crawls

Marginally increases user experience

  • Renamed all instances of "DSCR" to "Relay"
  • Added callsign error handling, including player-facing error messages
  • Added a barebones signal compilation error message
    • It will tell you some things are wrong, but not what exactly
    • This will be improved in future

v1.0.0: It Lives

  • Release