BetterCrewLink (Proximity Chat)

BetterCrewLink (Proximity Chat)

465k Downloads

[FEATURE] Flexibility to supplement external voice chat

G-F-D opened this issue ยท 5 comments

commented

Pre-Flight Checklist

  • I am not asking a question => use the Discord if you are
  • I have checked that someone else has not reported this using the search bar
  • My feature request is not one of the commonly suggested features: iOS app (it's already being development)

Is your feature request related to a problem? Please describe.

Some people in our group, particularly when there are many players, have issues getting BetterCrewLink to work reliably for various performance- and network-related reasons. Traditional external voice chat (e.g. over Discord) works much more consistently for everyone involved, but loses the proximity-related features. A more functional middle-ground would be to use external voice chat for all situations besides living crew during tasks or ghosts during meetings, where BetterCrewLink would be able to add value while not being relied on for critical voice communications in lobbies and living players in meetings. Bots like AutoMuteUs can have their mute/deafen state tables be configured to enable this use case, but BetterCrewLink currently cannot. This feature request is for one or more settings in BetterCrewLink to enable this use case on its end.

To clarify, here is the full state table I'm trying to set up, where the header player type can only hear Living or Dead players, or the eXternal voice chat channel:

State Crew Imps Dead
Tasks L LD LX
Meet X X DX๐Ÿ”‡
Lobby X N/A N/A

Put into words:

  • Tasks: Living players are muted & deafened on external, and communicate on BCL. Additionally, living impostors hear dead players on BCL (if enabled with "Impostors Hear Dead"). Dead players communicate on external, and hear living players on BCL.
  • Meetings: All players are undeafened on external, but dead players are muted. Dead players communicate on BCL.
  • Lobby: All players communicate on external only.

Describe the solution you'd like

The state table described above could be implemented using one or more settings within BetterCrewLink. All state modifications could be put into a single setting named something like "Discord supplement mode", but that would not be self-explanatory at all. The alternative that would be self-explanatory is multiple options that can be combined to achieve this same state table:

  • Disable in lobby
  • Mute living in meetings
  • Disable ghost chat during tasks

The downside of this approach is cluttering up the settings with even more options.

Describe alternatives you've considered

Having players manually mute/deafen on BCL as-needed to achieve this state table is technically possible, but unreliable and cumbersome at best in practice.

Additional context

No response

commented

It's not that I don't want to fix the issues so much as it is infeasible. These issues usually seem related to user hardware, and so aren't easily troubleshooted and fixed, particularly with the current global electronics hardware supply chain issues and given that troubleshooting would have to be done remotely.

I rarely deal with web development related technologies like Javascript, but I may make time to look into the codebase if resources are low.

commented

So it seems that you don't want to fix the perfomance or network issues and instead you want to add options on BCL to make support with AutoMuteUs I'm right?

If yes, you have to wait like @OhMyGuus, someone that knows how to change the BCL code or you, if you know how to change the BCL code

commented

I'm also interested in this, except I probably only want Discord for meetings, and want ghosts to still hear the living players using the proximity chat as they wander around, like on default settings with the mod at the moment.

I expect to have some free time later this week. I've been looking at the code for the last 15 minutes (update: 2 hours now) and I already have a general idea of where the extra if statements would need to be added.

Since we have different needs, we probably should go for the approach with 3 extra configuration options.

But honestly yes, the more I think about it, the extra options probably are going to be confusing.

Shouldn't we just remove the following settings:

  • only ghosts can hear/talk
  • meetings/lobby only
  • impostors hear dead

and instead add a table similar to yours, with all the 25 options possible, for full customization for any scenario:

(I think those are the defaults)

State Crewmates Impostors Dead
Tasks +C +I -D +C +I -D +C +I +D
Meet +C +I -D +C +I -D +C +I +D
Lobby +everyone- -one-big- -row

That would be hard to fit though with the current width of the mod... (reference image without changes)

obraz

So maybe a layout utilizing the already-existing design? Like so:

EXAMPLE START

Lobby settings

  • Voice Distance: slider
  • The Lobby Is Public
  • Walls Block Audio
  • Impostor Radio
  • Comms Sabotage Disables Voice

Hear Through Cameras

  • Crew
  • Impostors
  • Dead

Hear People In Vision Only

  • Crew
  • Impostors
  • Dead

During Lobby Stage

  • Everyone can talk

During Tasks

Crewmates hear

  • Crewmates
  • Impostors
  • Dead

Impostors hear

  • Crewmates
  • Impostors
  • Dead

Dead hear

  • Crewmates
  • Impostors
  • Dead

During meetings

Crewmates hear

  • Crewmates
  • Impostors
  • Dead

Impostors hear

  • Crewmates
  • Impostors
  • Dead

Dead hear

  • Crewmates
  • Impostors
  • Dead

Audio

...

EXAMPLE END

Honestly I have no idea whatsoever how to implement this in a user-friendly way style-wise (CSS) given the current width of the mod interface. Perhaps a "reset to defaults" button could be useful. Maybe we could add a "reset settings from preset" dropdown with a "default" preset and some other ones?

I would be down to try to implement this code-wise if there a green light from the devs, but I would need someone to make a design mockup for the UI first.

Hit me up on the mod's Discord (Nicofisi#4467) if anything :)

commented

An alternative would be to keep the existing settings and add a separate "advanced config" view, where the currently-existing options would be configured to switch the appropriate checkboxes from the "advanced config" behind the scene (a few at once when necessary).

So if for example only dead can hear through cameras that would show as a partial checkbox in normal settings on the "hear through cameras"

obraz

commented

This is actually a good idea. I like where this is going.