arrow-left

All pages
gitbookPowered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Distance based channels

Distance based channels are channels used to simulate talking without a headset, shouting, whispering ...

*Describe specific channels here*

Department specific channels

Department specific channels all require specific headsets to use. Each department have its own headset to communicate exclusively with fellow members of its department.

*Describe specific channels here*

Channels

Channels allow a player to communicate with a specific group of other players only, or to listen to only specific messages.

Channels have many properties associated with them to differentiate them. You can find a description for them in the tooltip on Unity. We only describe some important properties of channel in the following.

A channel with all its properties as of march 2024

hashtag
Distance based channels

When entering messages in some channels such as "shouts" or "whispers", only player in a given radius receive those messages.

hashtag
Headset required

Some channels such as engineer, science, medical, all require to wear specific headset to emit and listen to messages coming on them.

hashtag
Role required

Some channels ask for some specific rights, such as admins right, to be used. This is necessary so only admins can use channels sending visible messages to everyone.

Chat

SS3D has two types of chats available: the lobby chat and the in-game chat.

hashtag
The lobby chat

The lobby chat is useful between rounds and for players that haven't embarked yet. The only channels that can be used there are the OOC channel and the System channel.

Lobby chat

The script in charge of handling the lobby chat is LobbyChatWindow, which can be modified in the Lobby GameObject inside the Game scene. The reason why the component is part of the Lobby and not the Chat itself, is because the chat gets disabled and enabled when using the tabs, and a disabled chat won't receive messages. This way, the chat is always enabled.

The lobby chat includes a delayed Welcome message, only sent to the player when they first join the server (before embarking). It can be useful to add some server-specific messages and information.

hashtag
The in-game chat

The in-game chat is considerably more complex than the lobby chat. Apart of the System and OOC channels (also included in the lobby chat), it includes the rest of channels for both OOC and IC communication. A full list of current channels can be found at the end of this page.

The in-game chat window can have several tabs, where each tab includes a list of channels. When joining a round, the chat starts with a default "All" tab, which includes all channels available on start - like Local, OOC, etc. The player can add more tabs by pressing the plus ("+") button at the top left corner of the chat, selecting the desired channels and setting a custom name for the tab. Not selecting any channel will result in a tab with only non-hidable chat channels (like the System channel). The tabs can be reordered by dragging them around, and dragging them out of the tab list will create another chat window - so several chat windows can be opened at once.

On the bottom left corner, there's a dropdown to choose which channel to speak through. The list of channels depend on the current selected tab - so channels not part of the tab won't be available in the dropdown.

Finally, the in-game chat window can be resized and dragged around the UI, so the player can choose the layout they like the most.

hashtag
Adding and modifying chat channels

Chat channels are implemented using ScriptableObjects. To add a new channel, just create a new Chat Channel with Right Click (on the Project folder) > Create > SS3D > UI > Chat > Chat Channel, and add it to the list of available channels in the ChatChannels asset settings.

There's a list of options to set up the channel to your needs: how to display the character name, the color and format of the chat, if it requires a trait to be used, if should only work within a distance, etc. Check the tooltips of each var for a more complete and updated information.

hashtag
Expanding the messages

The way messages are formatted, or the options of the channels, can be easily expanded by either modifying the ChatChannel.cs (for adding more variables) or the ChatMessage.cs (for modifying how a text is displayed). Chat messages are formatted only once - when the player sends it. This is done client-side.

hashtag
Current list of channels

hashtag
In-game channels

Station Alerts

  • Who can use it: anyone for now, but should be limited to the captain (when that permission is created)

  • Chats where is available: in-game

  • Purposes: for sending messages to the whole crew, both from the captain and the game itself

Local

  • Who can use it: anyone

  • Chats where is available: in-game

  • Purposes: for talking with people who are close

Public

  • Who can use it: anyone with a headset

  • Chats where is available: in-game

  • Purposes: for talking with the whole crew from anywhere in the ship

Whisper

  • Who can use it: anyone

  • Chats where is available: in-game

  • Purposes: for talking with people that are next to the character

Shout

  • Who can use it: anyone

  • Chats where is available: in-game

  • Purposes: for talking with people that are farther and can't be reached with the General channel

AI/Binary/Command/Engineering/Medical/Science/Security/Service/Supply:

  • Who can use it: anyone with a headset with the permission of the department (Security permission for Security channel and so on)

  • Chats where is available: in-game

  • Purposes: for talking with all the people from a specific department

hashtag
OOC channels

OOC:

  • Who can use it: anyone

  • Chats where is available: lobby and in-game

  • Purposes: global OOC communication

LOOC:

  • Who can use it: anyone

  • Chats where is available: in-game

  • Purposes: local OOC communication

  • Color: beige

hashtag
Special channels

In Game System

  • Who can use it: only through code

  • Chats where is available: in-game

  • Purposes: sending system messages to the player that shouldn't be in the lobby chat - like "unauthorized access to use channel X". Is a "last resource" channel for communicating with the character

System

  • Who can use it: only through code

  • Chats where is available: lobby and in-game

  • Purposes: welcome message for the player in the lobby, server restart warnings. Is a "last resource" channel for communicating with the player, welcome message can be removed and keep it just for things like server restart or mod warnings

Color: dark yellow (we're running out of colors)
  • Format: [Station Alerts] CharacterName: "Message" // [Station Alerts]: "Message" (if sent by computer)

  • Color: white
  • Format: CharacterName says, "Message"

  • Other: current distance is 5 Unity units in all directions

  • Color: green
  • Format: CharacterName says, "Message"

  • Color: light pink
  • Format: CharacterName whispers, "Message"

  • Other: current distance is 2 Unity units in all directions

  • Color: light orange
  • Format: CharacterName shouts, "Message"

  • Other: current distance is 10 Unity units in all directions

  • Color: AI: Pink / Binary: Black / Command: Yellowish Green / Engineering: Orange / Medical: Blue / Science: Purple / Security: Dark Red / Service: Green / Supply: Yellowish Brown
  • Format: CharacterName says, "Message"

  • Other: currently only Security is linked to the headsets as is the only permission (and headsets) that exist

  • Color: pink/red
  • Format: [OOC] PlayerName: "Message"

  • Format: [LOOC] PlayerName: "Message"

  • Other: same distance than General - 5 Unity units in all directions

  • Color: red
  • Format: Message

  • Other: available in all in-game tabs, can't be hidden

  • Color: red
  • Format: Message

  • Other: available in all tabs, can't be hidden

  • The Lobby Chat Window component
    In-game chat
    The tab creator
    The channel dropdown
    Adding a new Chat Channel
    An example of a Chat Channel (Whisper channel)
    FormatText method inside ChatMessage.cs