When loading into the game the initial voice range is global because it’s not set (int 0, and we need a float), and we can not set in a timely fashion.
This results in a timeframe from 1-5 seconds where you can hear everyone on the server when joining in.
Kinda annoying on packed RP server, where people talk all the time.
Here’s a clip from on of our streamers, which ofc also finds it quite annoying, lmao.
Here’s a monkaS solution that we are currently using, but still gives “ear rape” when joining in:
-- fix for OneSync global voice -- attempt 1 -- not working AddEventHandler('onClientResourceStart', function(name) if name == GetCurrentResourceName() then NetworkSetTalkerProximity(7.0) end end)
-- fix for OneSync global voice -- attempt #2 Citizen.CreateThread(function() local fixingVoice = true NetworkSetTalkerProximity(0.1) while true do NetworkSetTalkerProximity(7.0) if not fixingVoice then print("[srp_voice] OneSync Voicecancer work-around succeded") break end Wait(1) end -- we break the loop after 15 seconds SetTimeout(15000, function() fixingVoice = false end) end)
A simple solution to this would be that the default is not 0 (global)
It did make sense for testing & debugging purpose voice at an earlier point.
A value like 10.0 would be could for starters.