Hello, programmers!
Well, I just came across a bug that absolutely terrified me. It breaks the entire way logic works, and any understanding I had about how Roblox Voice Chat functions went straight down the drain. I ask that you read this with discretion, because this is the most ghostly, physically impossible, and NONSENSICAL bug I’ve encountered in my career, and I have several years of experience as a scripter in Roblox Studio.
About the video:
- My recorder doesn’t record my mic, but I wrote a command in console to print each 0.5 sec (or something like that) the actual AudioAnalyzer peak
- When I was in silence, it reaches 0.0434198, usually less than 0.1.
- When I start talking, it reaches 0.4, 0.7, or even 1.
- I used many methods to try connecting to AudioEmitters, but only the AudioAnalyzer could properly work.
But lemme explain it properly, lets go:
I was testing a radio system for voice chat using Roblox’s new audio API, and everything was working fine. I tested it on a baseplate (let’s call it Place Alpha, just to stay organized). Everything was PERFECT. I tested it with several other players.
Okay? Okay!
Then, I decided to adapt another place (Place Gamma) to use it.
But I noticed something:
No matter what I did
The voice chat, when using Roblox’s new audio API, could not be heard under ANY circumstances.
Here’s a list (about 90%) of the things I’ve tried:
Disabled DefaultVoice and manually created instances of MicInput, AudioEmitter, and Wire;
Changed DefaultDistanceAttenuation;
Modified settings in SoundService, even though it’s unrelated;
Tried listening to my own voice through different emitters;
Changed AutoLoadCharacter;
The voice chat without the new audio API works perfectly. The API itself is the problem in Place Gamma (the one where I wanted to implement the radio system);
I’ve Tried implementing the radio system. no one could hear the character or the radio;
I’ve Tested with multiple players simultaneously;
Okay, despite the fact that the new API works fine in one place and not in the other, let’s set that aside for now.
Well, look at this:
So I decided to add an AudioAnalyzer and connected it to my MicInput with a Wire
And I discovered that, as I speak, the AudioAnalyzer IS WORKING. Thats on the vid I showed you before!
However, I’ve tried everything I could imagine to connect my voice to an AudioEmitter. It just doesn’t work, for reasons I cant even begin to understand.
When I join the game, I can see that the microphone UI (with the green thing that jumps as you speak) is working perfectly.
However, I can’t hear any of my testers, and vice versa. Sometimes, their voice chat appears in their head, but no green marker. And it quickly disappears (something like 400 ms)
I even tried connecting the players MicInputs to a Part on the map to see if we could hear anything.
Nothing. ABSOLUTELY NOTHING.
So, even though the AudioAnalyzer is picking up my voice,
And everyone’s voice is being captured properly,
NO ONE CAN HEAR ANYONE ELSE!
And no, it’s not a communication issue between testers. I confirmed it beyond doubt. I tested it again and again and couldn’t even come up with a possible solution.
It’s the only time I’ve ever seen this. I even searched using Ctrl+Shift+F to see if any script was modifying VoiceChat or changing the Allow property of MicInput. Nothing. Absolutely nothing.
I’ve also checked for many basic things (max of < 50 players on server limit, etc), and everything seemed fine.
So, HOW is this happening? Is there a way to solve it?
I believe firmly that anyone who can figure this out (IF ITS EVEN POSSIBLE), based on just my information and this text, would instantly be so much more advanced as scripter than I.