Page MenuHomeFeedback Tracker

[Feature Request] Locally Mute Player Script Command
Closed, ResolvedPublic

Description

Client-side (local) script command.
COMMAND:
<object> mutePlayer <boolean>;

EXAMPLE:
{ if ( player distance _x > 500 ) then {_x mutePlayer true; }; }forEach allPlayers;

Details

Severity
Feature
Resolution
Open
Reproducibility
N/A
Operating System
Windows 10 x64
Category
VON
Additional Information

PURPOSE: I'm working on an addon-free radio script which utilizes the in-game VON feature with scripting commands. The script introduces distance as a factor when communicating via VON: being too far away means you can't talk on the radio / voice comms in certain channels, such as Group. However, without this local mutePlayer command, I cannot effectively mute players who are too far from you (but in the same channel) who may be in radio range of another player.

EXPLOIT:
My radio script currently can only disable voice comms in VON channels when the player is too far from another friendly player (1050m). However, in an environment of more than 2 players, this becomes exploitable; despite one player being too far from the other two (or more) players which are both standing near eachother, the player who is alone and too far can still hear voice chat in his channel with disabled voice chat.

In another similar scenario, let's say there are 4 players in a mission, all of them are in the same group and in Group channel. However, two are together on the west coast of Altis, while the other two are on the east coast of Altis. An exploit that exists in my script is that all 4 can still communicate with eachother because there is at least 1 group mate near each of them and thus enabling Group channel's voice chat.

What I'd like the mutePlayer command for in my case, is to use it in my script to mute players who do not meet the necessary parameters to be heard by the individual (Too far away, dead, incapacitated, underwater without a rebreather, etc.)

Event Timeline

Phronk created this task.Mar 30 2017, 10:47 PM
Ezcoo added a subscriber: Ezcoo.Mar 30 2017, 10:56 PM

Upvote from here :)

Sjakal added a subscriber: Sjakal.EditedJun 11 2017, 3:59 PM

Another upvote, following some reading of the workarounds wyattic has been looking for, without much luck so far.

This would be quite useful in several situations.

Phronk changed Category from Feature Request to VON.Jun 22 2017, 10:46 PM

this would be a much appreciated addition to the game

This would be more than useful, i am actually surprised that something like this was never included in the game.

Just a bump. Devs - The community can't find a way to achieve this via a work around. Surely this isn't hard to do?

The biggest thing I want this for is to give my player an option to auto-mute mic spammers. That and make it so that stealing a dead enemy's radio does something.

+1 upvoted

And btw, it's a shame that, in 2018, AIs can speak on radio even without radio, sim disabled and unit hidden!!!!

Inqie added a subscriber: Inqie.EditedApr 13 2019, 6:59 AM

+1 another upvote years later, BI please add this.
One reason is for the mod Addon-Free ArmA Radio, though I know that is pretty particular.

wyattwic added a subscriber: Astaroth.EditedJul 8 2019, 6:47 AM

@Astaroth Would you happen to know how we can get some attention to this? This feature request has been open for years unresponded to and regularly boosted. This small improvement opens a ton of possibilities to unmodded co-op campaign and multiplayer. One major script based improvement this command would bring is a system to help curve player harassment cases as well as non-mod alternatives to task force radio.

Adding to the feature request, a matching "getMuted" to return all currently muted players makes sense too.

barccy added a subscriber: barccy.Mar 10 2020, 1:17 AM

Would love to see in 1.98

dedmen claimed this task.Mar 30 2020, 12:50 PM
dedmen changed the task status from New to Assigned.

@dedmen YAY! If you need any input on this just say so. Its a 3 year old request but everyone here is still watching this.

I still think a local effect (global argument) command "SuccessBOOL = mutePlayer OtherPlayerObject" and "Array = PlayersMuted" would handle everything everyone wants here.

@dedmen I realized an error in my prior message and a few more up the line. There are a handful of simple options that would make this WAY more useful.

SuccessBOOL = mutePlayer OtherPlayerObject [channel]
[channel] : Optional: array of numbers, or number - Use description.ext's disable channels. If nul, selects all channels. Ref: https://community.bistudio.com/wiki/Description.ext#disableChannels

To unmute the player: SuccessBOOL = unmutePlayer OtherPlayerObject [channel]

A final thought, if its not difficult to set volume, an extra command to set a player's volume would be awesome. Maybe: "SuccessBOOL = volumePlayer OtherPlayerObject volume [channel]" where volume is between 0 and 2. This would allow us to give a GUI to the local player to turn up or down players as appropriate.

this command would be great

Upvote for me too.

@wyattwic probably won't do a mutePlayer, but instead setVolume from 0-1

Phronk added a comment.May 3 2020, 7:24 AM

@wyattwic probably won't do a mutePlayer, but instead setVolume from 0-1

A setVolume command would actually work better, thanks!

Pay3er added a subscriber: Pay3er.May 3 2020, 9:01 AM
This comment was removed by dedmen.
LSValmont added a subscriber: LSValmont.EditedMay 3 2020, 6:23 PM

Yeah a volume setting would do the job well! Hope it gets released soon! Also don't forget a command to find who has VOLUME 0 easily.

This comment was removed by dedmen.

@wyattwic probably won't do a mutePlayer, but instead setVolume from 0-1

Thanks @dedmen, that does sound like it would work better. Can we still keep the set volume by channel and the ability to set numbers greater than 1?

The first use case here is we may need to turn down a group of players in side chat but leave them unaffected in direct or group. The second use case is another player may have a really quiet microphone, this would allow us to turn him up. Think of how Discord gives you a 0% to 200% per user volume setting.

@wyattwic probably won't do a mutePlayer, but instead setVolume from 0-1

Yes this is perfect, please allow us to setVolume louder than normal as well. Maybe 0 - 2, 1 being normal volume.

heyoxe added a subscriber: heyoxe.Jun 10 2020, 12:55 AM
dedmen changed the task status from Assigned to Feedback.Jul 30 2020, 2:22 PM

getPlayerVoNVolume playerObject returns scalar 0-1, -1 on error (ex passed object not a soldier/human)
playerObject setPlayerVoNVolume scalar (0-1 0-100%)

dev-branch next week, wiki pages incoming soon-ish.

Sounds great @dedmen. I'll start writing scripts that can use this once it's in devbranch.

We appreciate the move towards this but is there any possibility of a per channel alternate mode? As is this lowers that player on all channels, but many mission makers will be concerned about per channel. This would require a mission maker to have a player update a publicvariable every time a they change between a channel they intend to speak in. That's a ton of traffic when it could have been done locally.

If we could add this as an alternate mode, that would make these commands perfect. Leave the version without channelNumber as a master that applies to all channels.
playerObject setPlayerVONVolume [scalar,channelNumber]
getPlayerVoNVolume [playerObject,channelNumber]

For channelNumber see https://community.bistudio.com/wiki/enableChannel

What do you think? I don't know the challenges of VON, let me know if its not possible and I'll just stop asking.

Wow, that is great news @dedmen ! This will enable pretty cool scripts and mods to work better ;)

dedmen added a comment.Aug 1 2020, 2:16 AM

but is there any possibility of a per channel alternate mode?

VERY unlikely.

Pi closed this task as Resolved.Jun 12 2021, 4:26 PM