Better handheld radios - #269
Open
mycobiota wants to merge 42 commits into
Open
Conversation
…e if theyre on, and alternate verb powers off
…the variable that already exists
…into regions + why did i make those floats again?
mycobiota
requested review from
Teasq,
taydeo and
vectorassembly
as code owners
August 4, 2026 21:47
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
mycobiota
marked this pull request as draft
August 28, 2026 03:25
Contributor
Author
|
github-actions you are genuinely a chud |
mycobiota
marked this pull request as ready for review
August 28, 2026 03:54
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
# Conflicts: # Resources/Prototypes/_Funkystation/Entities/Objects/Devices/radio.yml # Resources/Prototypes/_Funkystation/radio_channels.yml
Contributor
Author
|
for anyone testing, handheld radios are broken for now until #415 is merged, cherrypick it on your localhost if you want to test |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
About the PR
greatly expanded upon the functionality of handheld radios. you are now able to listen to a radio without having to switch on its microphone, and you can toggle them hands free from the action hotbar now. you are also able to adjust their volume (whisper volume vs full volume) and listening range (by default, from 1 to 4) via a UI. the microphone also now makes a sound when toggled on and off.
the microphone and speaker on / off states can be seen when examining the radio now, too. intercoms inherit this feature.
also fixes a bug with intercoms. their speaker now switches off when they lose power.
Why / Balance
as it stands, the handheld radios we have upstream kinda suck if you try to actually make use of them. to listen to one, you have to be broadcasting the mic, which is really awkward sometimes when there are many people nearby. since the listening range on them is fucking huge, you end up spamming the radio's channel with random messages.
the goal with this is to try and make them more broadly usable while keeping them distinct from headsets, since i think they are fun and flavorful items which should be expanded on (for example, by adding departmental handheld radios).
the speaker volume and sensitivity/listening range are tied together. this is an intentional limitation, the idea being that if it is listening beyond the range at which whispering is audible, it shouldnt be speaking at a whisper volume. think of setting the sensitivity/volume beyond 2 like "putting it on speakerphone".
default max range is 4 because thats what the upstream listen range is.
Technical details
this PR is an expansion on RadioMicrophone and RadioSpeaker and their associated systems.
SharedRadioDeviceSystem checks between RadioMicrophone and RadioSpeaker to only toggle on one or the other. it also handles updating volume and listen range when these are adjusted via UI, and examine markup has also been expanded on.
SharedRadioDeviceSystem now also handles verbs and actions and cooldowns for toggling the speaker and microphone.
UI code has been added. the two radio components are handled separately, so the UI works even if only one of them are present.
added some functionality for radiospeakers which lets you specify if they require power and if they should be on by default when powered.
Test plan
Mess around with two handheld radios. make sure to also test their volume UI. make sure intercoms work as usual and display the on/off state examine text. use VV to change the max and min range and make sure that the UI accommodates this when you reopen it.
also mess around with security radios to make sure that children of the base handheld radio work fine.
Also see how handheld radios without speakers / mics behave, and how a speaker (non-intercom) with multiple channels behaves. Some testing items have been added for this.
Media
test1.mp4
test2.mp4
test3.mp4
Requirements
License
MIT
Breaking changes
all you need to do to add new handheld radios with all of these features is to inherit from RadioHandheld.
anything that already uses the radiomicrophone or radiospeaker components has not been broken nor do they need to be updated. intercoms work exactly the same as before, save for some new examine text, and a fixed bug regarding their speaker not switching off when they lost power. a single new variable has been added to the intercom proto which has been marked
if you want to remove most of the new features from RadioHandheld, you just need to remove the new fields, UI and UseDelay, which have been marked.
anything that has both radio components will be able to toggle their speaker and mic separately, including being able to turn on the mic without turning on the speaker, unless you specify speakerRequired: true on the mic.
Changelog
🆑