Czat głosowy to funkcja umożliwiająca komunikację w czasie rzeczywistym za pomocą mowy między tobą a innymi graczami. Jest dostępna tylko w miejscach, które obsługują maksymalnie 100 graczy.

Włącz czat głosowy
Czat głosowy jest domyślnie włączony dla zweryfikowanych użytkowników w wieku 13+ we wszystkich nowych grach z maksymalnie 100 graczami. Włączenie czatu głosowego jest wymagane do korzystania z API przekształcania mowy na tekst.
Aby aktywować czat głosowy dla istniejących gier lub wyłączyć go dla nowych:
- Otwórz swoją grę w Studio.
- Otwórz Plik ⟩ Ustawienia doświadczenia.
- Przejdź do zakładki Komunikacja po lewej stronie okna.
- Przełącz Włącz czat głosowy na pożądaną opcję.
- OPCJONALNEAby zwiększyć komunikację między graczami w twojej grze, włącz Włącz kamerę, aby umożliwić uprawnionym graczom animowanie swojego awatara w zależności od ruchu.
- Opublikuj miejsce, aby zapisać zmiany.
Ustaw maksymalną liczbę graczy
Jeśli wcześniej ustawiłeś maksymalną liczbę graczy w miejscu na więcej niż 100, musisz ją zmniejszyć, aby wspierać czat głosowy.
- Wybierz pożądane miejsce, a następnie przejdź do zakładki Dostęp w lewej kolumnie.
- W polu Maksymalna liczba odwiedzających wprowadź liczbę mniejszą lub równą 100.
- Kliknij przycisk Zapisz zmiany.
Gdy zaktualizujesz maksymalną liczbę graczy w miejscu na mniej niż 100, mogą istnieć serwery już skonfigurowane na inną, wyższą liczbę. Ponieważ te serwery nie będą wspierać czatu głosowego, zaleca się ponowne uruchomienie serwerów.
Dostosuj zachowanie głosu
Czat głosowy jest domyślnie oparty na odległości, dostosowując głośność uczestników w zależności od tego, jak blisko siebie są. Możesz jednak ustawić UseAudioApi na Enabled, aby przejąć kontrolę nad tym, jak głosy są ustawiane i używane w twojej grze.
Jeśli VoiceChatService nie pojawia się już:
Kliknij prawym przyciskiem myszy w oknie Eksplorator i wybierz Pokaż usługi… z menu kontekstowego.
Wybierz VoiceChatService w oknie popup i kliknij Wstaw. Usługa pojawi się w hierarchii Eksploratora.

Z wybranym VoiceChatService upewnij się, że UseAudioApi jest ustawione na Enabled w oknie Właściwości. Może to być już dla ciebie zrobione.
Czat oparty na drużynach
Aby wdrożyć czat oparty na Team, w którym tylko członkowie drużyny mogą się słyszeć, możesz użyć następującego Script w ServerScriptService:
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Zakłada, że istnieje tylko jedno AudioDeviceInput na gracza, przypisane do obiektu gracza
-- To jest dostarczane dla ciebie, jeśli VoiceChatService.EnableDefaultVoice jest prawdziwe
-- Może wymagać przekształcenia dla ogólności, jeśli twoje miejsce umieszcza obiekty AudioDeviceInput gdzie indziej
return forPlayer:FindFirstChildWhichIsA("AudioDeviceInput")
end
local function onTeamChanged(player : Player)
local team = player.Team
if not team then return end
local device = findAudioInput(player)
if not device then return end
-- Pozwól tylko członkom drużyny się słyszeć
device.AccessType = Enum.AccessModifierType.Allow
local allowed = {}
for _, player : Player in team:GetPlayers() do
table.insert(allowed, player.UserId)
end
device:SetUserIdAccessList(allowed)
end
local function onTeamAdded(team : Team)
team.PlayerAdded:Connect(onTeamChanged)
team.PlayerRemoved:Connect(onTeamChanged)
end
for _, team : Team in Teams:GetTeams() do
onTeamAdded(team)
end
Teams.ChildAdded:Connect(function(child : Instance)
if child:IsA("Team") then
onTeamAdded(child)
end
end)Czat nieprzestrzenny
W zależności od potrzeb twojej gry, może być bardziej sensowne, aby słyszeć innych z równą głośnością, niezależnie od ich lokalizacji geograficznej. Jeśli wyłączysz domyślny czat głosowy, możesz następnie wdrożyć czat głosowy nieprzestrzenny za pomocą następującego Script w ServerScriptService:
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance)
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = source
end
-- Ustaw globalny suwak głośności dla głosu wszystkich
local volumeSlider = Instance.new("AudioFader", Workspace)
local output = Instance.new("AudioDeviceOutput", Workspace)
wireUp(volumeSlider, output)
local function onPlayerAdded(player : Player)
local device = Instance.new("AudioDeviceInput", player)
device.Player = player
-- Przekieruj mikrofon każdego nowego gracza do globalnego suwaka głośności
wireUp(device, volumeSlider)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onDescendantAdded(descendant : Instance)
if descendant:IsA("Wire") then
descendant:Destroy()
end
end
for _, descendant in player:GetDescendants() do
onDescendantAdded(descendant)
end
player.DescendantAdded:Connect(onDescendantAdded)Wyłącz na poziomie miejsca
Jeśli nie chcesz włączać czatu głosowego dla każdego miejsca w swojej grze, możesz go wyłączyć w konkretnych miejscach, które w przeciwnym razie byłyby uprawnione do czatu głosowego.
Aby wyłączyć czat głosowy dla konkretnego miejsca w grze:
Kliknij prawym przyciskiem myszy w oknie Eksplorator i wybierz Pokaż usługi… z menu kontekstowego.
Wybierz VoiceChatService w oknie popup i kliknij Wstaw. Usługa pojawi się w hierarchii Eksploratora.

Z wybranym VoiceChatService wyłącz EnableDefaultVoice w oknie Właściwości.
Opublikuj miejsce, aby zapisać zmiany i ponownie uruchom serwery, aby upewnić się, że zmiana wejdzie w życie dla wszystkich serwerów aktualnie uruchamiających twoją grę.
Sprawdź status
Możesz sprawdzić, czy gracz włączył czat głosowy, wywołując IsVoiceEnabledForUserIdAsync() w LocalScript, lub w Script z RunContext ustawionym na Enum.RunContext.Client.
local Players = game:GetService("Players")
local VoiceChatService = game:GetService("VoiceChatService")
local localPlayer = Players.LocalPlayer
local success, enabled = pcall(function()
return VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId)
end)
if success and enabled then
print("Czat głosowy włączony!")
end