Skip to content

Pagers - #267

Merged
YaraaraY merged 3 commits into
funky-station:masterfrom
YaraaraY:pagers
Aug 5, 2026
Merged

Pagers#267
YaraaraY merged 3 commits into
funky-station:masterfrom
YaraaraY:pagers

Conversation

@YaraaraY

@YaraaraY YaraaraY commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

About the PR

This PR introduces handheld pagers, a new instant communication method.

Every player with a pager gets a 4 digit pager number assigned to them upon joining, which is also tracked in station records. You can send 8 digit codes to other pagers, provided a powered pager server is running on the grid. Pagers come in multiple colors.

The pagers can be set to three modes: loud beeps, with the same ringtone system as PDAs, a quiet vibration, or completely mute.
The pagers have been added to the PTech, and are a required loadout option.

Sprites for the pagers were made by the ever wonderful Zergologist!

Why / Balance

It's... soul..?

It's a more interesting (and authentic to our setting) method of communication rather than something like NanoChat. With our future plans for radios and headsets, it'll fill a nice niche.

Technical details

PagerSystem.cs and SharedPagerSystem.cs handle number assignment, UI states, page delivery, grid telecomms validation, and sounds
PagerComponent stores pager configuration, current mode, cooldowns, and the last received page entry
Added pager numbers to Station Records, too, and thusly to XO's publishing console.

Test plan

Spawn a pager server and two pagers.
Examine them to see their numbers.
Start relaying messages from one to the other.
Change the pager modes, ensure they change appropriately
Delete the pager server, or go to a different grid. Pager should lose signal and not be able to relay messages.
Check station records and make sure the pager you spawned with is the same number as shown in the records.

Media

image

Requirements

  • I have read and am following the Macrocosm Pull Request Conventions.
  • I have tested this pull request and written instructions on how to test it
  • I have added media to this PR or it does not require an in-game showcase.
  • If I am porting something, I have done my best to respect the appropriate licenses associated with the presented changes.

License

MIT

Breaking changes

Changes StationRecords to display a Pager number. If no pager number is made when spawning, then it should just show as N/A.

If you'd prefer to not have pagers in your fork, simply remove them from the loadouts and everything should still work fine.

Changelog

🆑 Zergologist, AraiMaia

  • add: Added pagers!

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit 3fe3d0f merging into c248b21
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_Funkystation/Objects/Devices/Pagers/beige.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Resources/Textures/_Funkystation/Objects/Devices/Pagers/blue.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Resources/Textures/_Funkystation/Objects/Devices/Pagers/gray.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Resources/Textures/_Funkystation/Objects/Devices/Pagers/transcyan.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Resources/Textures/_Funkystation/Objects/Devices/Pagers/transpink.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Resources/Textures/_Funkystation/Objects/Devices/Pagers/transyellow.rsi

State Old New Status
icon-unshaded Added
icon Added
inhand-left-unshaded Added
inhand-left Added
inhand-right-unshaded Added
inhand-right Added

Edit: diff updated after 3fe3d0f

@mycobiota

Copy link
Copy Markdown

HELL YES

@pirakaplant pirakaplant left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Genuinely kind of insane how you came up with a pager implementation before I finished writing my comms design doc. Anyway this is a way better implementation than what I had in mind for pagers.

I tested everything, it works. I just have one issue that I've highlighted below.

Comment thread Resources/Locale/en-US/pda/Ringer/ringer-component.ftl Outdated
@mycobiota

Copy link
Copy Markdown

tried it out, when setting the ringtone, the server logs an error:

[ERRO] system.ringer: Can't resolve "Content.Shared.PDA.Ringer.RingerUplinkComponent" on entity pager (4604/n4604, PagerGray)!
   at System.Environment.get_StackTrace()
   at Content.Server.PDA.Ringer.RingerSystem.TryToggleUplink(Entity`1 entity, Note[] ringtone, Nullable`1 user) in /home/myco/RiderProjects/forky-station/Content.Server/PDA/Ringer/RingerSystem.cs:line 100
   at Content.Shared.PDA.SharedRingerSystem.OnSetRingtone(Entity`1 ent, RingerSetRingtoneMessage& args) in /home/myco/RiderProjects/forky-station/Content.Shared/PDA/SharedRingerSystem.cs:line 181

i guess the ringer system was only ever designed with PDAs in mind, which are expected to always have the ringer uplink component

@YaraaraY

YaraaraY commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

ahhhh okay, i have lots of stuff to do tomorrow then
will get to it!

@Dusty-Plant

Copy link
Copy Markdown

can the detective scan these to read the history? this was a thing for nanochat

@YaraaraY
YaraaraY requested a review from pirakaplant August 4, 2026 21:46
@YaraaraY
YaraaraY merged commit b7547bf into funky-station:master Aug 5, 2026
16 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants