Skip to content

NT radio channel now uses a telecoms server - #5204

Closed
CawsForConcern wants to merge 10 commits into
ss14Starlight:starlight-devfrom
CawsForConcern:NT_Telecoms
Closed

NT radio channel now uses a telecoms server#5204
CawsForConcern wants to merge 10 commits into
ss14Starlight:starlight-devfrom
CawsForConcern:NT_Telecoms

Conversation

@CawsForConcern

@CawsForConcern CawsForConcern commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Short description

This PR does two things:

  • This PR adds a telecoms server for NanoTrasen comms and removes the 'long range' property from NT comms.
  • This PR adds telecom server icons for Law and for NT comms. Law was missing a telecom server icon so it'd just look like the generic icon.
image

Implementation Note:

  • Temporarily, TelecomServerFilledCommand has been given a EncryptionKeyNanoTrasen
  • This key will be removed from TelecomServerFilledCommand once TelecomServerFilledNanoTrasen has been mapped to all maps.
  • This just helps smooth over integration of this PR. I'll have a mapping chore up for mappers to add this server to Telecoms.

Why we need to add this

Part of a popular suggestion: https://discord.com/channels/1272545509562777621/1528415689856122890

In short:

  • longRange: true should be reserved for antagonist or admeme comms.
  • Having a comms channel that cannot be sabotaged / doesn't react to comms-jamming events like comms blackouts doesn't adhere to the simulation of similar kinds of comms.

Media (Video/Screenshots)

image

fig. 1 - Icons for telecom servers. The Law telecoms didn't have an icon previously, so I added one. I know that Law was resprited to be brown on signs, but the channel is still pink so I made the icon here pink.

telecoms.test.mp4

fig. 2 - Video demo to show that NT comms works off local telecom servers works.

image

fig. 3 - Sprite for the Law comms key, which was using the 'NT' key sprite previously.

Checks

  • I do not require assistance to complete the PR.
  • Before posting/requesting review of a PR, I have verified that the changes work.
  • I have added screenshots/videos of the changes, or this PR does not change in-game mechanics.
  • I affirm that my changes are licensed under the MIT License and grant permission for use in this repository under its conditions.

Changelog

🆑 Caws

  • add: NT telecoms servers. Temporarily, the NT radio key will be present in the Command telecoms server until all stations are equipped with NT telecom servers.
  • remove: The NT radio channel is no longer "long range" and now requires a telecoms server like most radio channels.

@CawsForConcern
CawsForConcern requested a review from a team July 19, 2026 19:26
@github-actions github-actions Bot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. size/S Changes: Sprites Changes: No C# Changes: Prototypes S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. and removed size/S labels Jul 19, 2026
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: f9a219b4-63ef-4d4a-96cd-3cb5b88faf50

📥 Commits

Reviewing files that changed from the base of the PR and between b80d2b5 and 0154ec7.

📒 Files selected for processing (1)
  • Resources/Textures/_Starlight/Objects/Devices/encryption_keys.rsi/meta.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • Resources/Textures/_Starlight/Objects/Devices/encryption_keys.rsi/meta.json

📝 Walkthrough

Walkthrough

Adds law and NanoTrasen encryption-key tags, telecom server sprite and shader variants, NanoTrasen-filled server prototypes, related asset metadata, and a NanoTrasen radio-channel configuration adjustment.

Changes

Telecom encryption variants

Layer / File(s) Summary
Encryption key contracts and assets
Resources/Prototypes/_Starlight/tags.yml, Resources/Prototypes/_Starlight/Entities/Objects/Devices/encryption_keys.yml, Resources/Textures/_Starlight/Objects/Devices/encryption_keys.rsi/meta.json
Adds encryption-key tags, assigns them to law and NanoTrasen keys, updates law key sprite states, and revises encryption-key asset metadata.
Telecom server variants
Resources/Textures/Structures/Machines/telecomms.rsi/meta.json, Resources/Prototypes/Entities/Structures/Machines/telecomms.yml, Resources/Prototypes/_Starlight/Entities/Structures/Machines/telecomms.yml
Adds law and NanoTrasen sprite states, item mappings, powered shader visibility, and NanoTrasen key-filled telecom server definitions.

Radio channel configuration

Layer / File(s) Summary
NanoTrasen radio channel setting
Resources/Prototypes/_Starlight/radio_channels.yml
Removes the explicit longRange: true setting from the NanoTrasen channel.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant EncryptionKey
  participant ItemMapper
  participant TelecomServer
  participant GenericVisualizer
  EncryptionKey->>ItemMapper: Provides EncryptionLaw or EncryptionNanoTrasen tag
  ItemMapper->>TelecomServer: Selects matching sprite variant
  TelecomServer->>GenericVisualizer: Applies powered or unpowered shader state
Loading

Possibly related PRs

Suggested labels: T: Rework

Suggested reviewers: rinary1

🚥 Pre-merge checks | ✅ 8
✅ Passed checks (8 passed)
Check name Status Explanation
Title check ✅ Passed The title correctly highlights the new NT telecoms server and radio channel change, which are the main changes in the PR.
Description check ✅ Passed The description matches the changeset: it covers the NT telecoms server, long-range removal, icons, and the temporary command-server key fill.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No Magic Numbers ✅ Passed PASS: The commit only changes a texture meta.json; no system code was touched, so the no-magic-numbers check is not applicable.
No Hardcoded Ecs Parameters ✅ Passed PASS — Nice data-driven wiring: the new telecom variants, tags, and longRange live in prototypes/components, and the systems consume them generically with no new hardcoded variant logic.
Avoid Service Locator ✅ Passed Content-only YAML/texture changes; no new C# code or IoCManager.Resolve/Log service-locator usage was introduced in the touched files.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 19, 2026
@CawsForConcern CawsForConcern added T: New Content T: Balance Changes and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Jul 19, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 19, 2026
Comment thread Resources/Textures/_Starlight/Objects/Devices/encryption_keys.rsi/meta.json Outdated
Comment thread Resources/Textures/_Starlight/Objects/Devices/encryption_keys.rsi/meta.json Outdated
Comment thread Resources/Textures/_Starlight/Objects/Devices/encryption_keys.rsi/meta.json Outdated
@starlightgithub starlightgithub Bot added S: Awaiting Changes Status: Changes are required before another review can happen and removed S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. labels Jul 20, 2026
@redmushie redmushie self-assigned this Jul 20, 2026
…rsi/meta.json

Co-authored-by: Red Mushie <82113471+redmushie@users.noreply.github.com>
CawsForConcern and others added 2 commits July 20, 2026 12:46
…rsi/meta.json

Co-authored-by: Red Mushie <82113471+redmushie@users.noreply.github.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 20, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 20, 2026
@CawsForConcern
CawsForConcern requested a review from redmushie July 21, 2026 08:35
@github-actions github-actions Bot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. and removed S: Awaiting Changes Status: Changes are required before another review can happen labels Jul 21, 2026
@CawsForConcern

Copy link
Copy Markdown
Contributor Author

copyright's fixed, not sure if it was seen

@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions Bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jul 28, 2026
@github-actions github-actions Bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Jul 28, 2026
@CawsForConcern

Copy link
Copy Markdown
Contributor Author

@Rinary1 could I get some details on why this is DONOTMERGE?

@Rinary1

Rinary1 commented Aug 3, 2026

Copy link
Copy Markdown
Member

@Rinary1 could I get some details on why this is DONOTMERGE?

It's get DONOTMERGE tag because I launched discussion about this in maintainers chat.

We have come to the conclusion that NT should not be provided with a server at the station; instead, everyone at the station who uses the NT radio should use a new channel, like 'internal NT channel', which means that, unlike the internal channel, the standard channel will not require a server or electricity.

@CawsForConcern

Copy link
Copy Markdown
Contributor Author

@Rinary1 could I get some details on why this is DONOTMERGE?

It's get DONOTMERGE tag because I launched discussion about this in maintainers chat.

We have come to the conclusion that NT should not be provided with a server at the station; instead, everyone at the station who uses the NT radio should use a new channel, like 'internal NT channel', which means that, unlike the internal channel, the standard channel will not require a server or electricity.

What's the mechanism for NT comms being sabotagable? Players overwhelmingly want to see the comms changed: https://discord.com/channels/1272545509562777621/1528415689856122890

@Rinary1

Rinary1 commented Aug 3, 2026

Copy link
Copy Markdown
Member

What's the mechanism for NT comms being sabotagable? Players overwhelmingly want to see the comms changed

wdym?

@Conflee

Conflee commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

What's the mechanism for NT comms being sabotagable? Players overwhelmingly want to see the comms changed

wdym?

Suggestion thread. 50 in favor of making NT comms have a server, 15 against.

@Rinary1

Rinary1 commented Aug 3, 2026

Copy link
Copy Markdown
Member

What's the mechanism for NT comms being sabotagable? Players overwhelmingly want to see the comms changed

wdym?

Suggestion thread. 50 in favor of making NT comms have a server, 15 against.

re-read my message, the idea in adding comms server but only for "internal" NT comms, not for general(which is used by ERT, NTNC and another groups)

@Conflee

Conflee commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Suggestion thread. 50 in favor of making NT comms have a server, 15 against.

re-read my message, the idea in adding comms server but only for "internal" NT comms, not for general(which is used by ERT, NTNC and another groups)

Basically this PR but then also add a global channel for the event NT factions then, thats fair. Wording was a little confusing before.

Maybe just leaving the current NT comms as NT, giving them a server, limiting range. And then the global NT comms can be NTNC since the only NT factions are all navy.

@CawsForConcern

CawsForConcern commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

What's the mechanism for NT comms being sabotagable? Players overwhelmingly want to see the comms changed

wdym?

Part of the suggestion thread was addressing that certain station roles, like the NTR, BSO, IAA, Magistrate, etc. get access to the NT Radio channel.

  • This radio channel can't be disrupted by GameRules like the ion storm / solar flare
  • The comms key is unremovable from their headsets,
  • The radio channel functions without electricity or a telecoms server. This kind of "no server needed, not sabotageable" is generally reserved for antagonist radio channels like Syndicate, Soviet, or antagonist Hiveminds like Changeling (or admin channels like CentComm)

If station roles like NTR / BSO / IAA / Magistrate / etc are going to retain use of an NT radio channel, the feedback from that linked suggestion channel is that:

  1. it should be able to be disabled (e.g. by destroying / disabling / cutting power to telecoms)
  2. it should be affected by GameRules like solar flares, ion storms
  3. the comms key should be able to be stolen

When you say an 'internal' NT comms channel, do you mean that this new 'internal NT channel' will only be used for ERT / NTNC / etc. and will be removed from station-side NT roles like NTR / BSO / etc?

@Rinary1

Rinary1 commented Aug 4, 2026

Copy link
Copy Markdown
Member

What's the mechanism for NT comms being sabotagable? Players overwhelmingly want to see the comms changed

wdym?

Part of the suggestion thread was addressing that certain station roles, like the NTR, BSO, IAA, Magistrate, etc. get access to the NT Radio channel.

* This radio channel can't be disrupted by GameRules like the ion storm / solar flare

* The comms key is unremovable from their headsets,

* The radio channel functions without electricity or a telecoms server. This kind of "no server needed, not sabotageable" is generally reserved for antagonist radio channels like Syndicate, Soviet, or antagonist Hiveminds like Changeling (or admin channels like CentComm)

If station roles like NTR / BSO / IAA / Magistrate / etc are going to retain use of an NT radio channel, the feedback from that linked suggestion channel is that:

1. it should be able to be disabled (e.g. by destroying / disabling / cutting power to telecoms)

2. it should be affected by GameRules like solar flares, ion storms

3. the comms key should be able to be stolen

When you say an 'internal' NT comms channel, do you mean that this new 'internal NT channel' will only be used for ERT / NTNC / etc. and will be removed from station-side NT roles like NTR / BSO / etc?

I mean, there's 2 comms:

1 it's global NT comms channel which will be used by NTNC/ERT
2 it's internal NT comms channel which will be used by Station jobs

so, just like Conflee explained:

Maybe just leaving the current NT comms as NT, giving them a server, limiting range. And then the global NT comms can be NTNC since the only NT factions are all navy.

@Rinary1

Rinary1 commented Aug 10, 2026

Copy link
Copy Markdown
Member

closed as stale

@Rinary1 Rinary1 closed this Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: No C# Changes: Prototypes Changes: Sprites DONOTMERGE S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M T: Balance Changes T: New Content

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants