Obrolan Suara adalah fitur yang memungkinkan komunikasi lisan secara real-time antara Anda dan pemain lainnya. Fitur ini hanya tersedia untuk tempat yang mendukung maksimum 100 pemain.

Aktifkan Obrolan Suara
Obrolan Suara diaktifkan secara default untuk pengguna terverifikasi berusia 13+ di semua permainan baru dengan maksimum 100 pemain. Mengaktifkan Obrolan Suara diperlukan untuk menggunakan API pengubah suara menjadi teks.
Untuk mengaktifkan suara untuk permainan yang sudah ada atau menonaktifkannya untuk yang baru:
- Buka permainan Anda di Studio.
- Buka File ⟩ Pengaturan Pengalaman.
- Navigasikan ke tab Komunikasi di sisi kiri jendela.
- Alihkan Aktifkan Obrolan Suara ke pengaturan yang Anda inginkan.
- OPSIONALUntuk komunikasi yang lebih baik di antara pemain dalam permainan Anda, alihkan Aktifkan Kamera untuk memungkinkan pemain yang memenuhi syarat menggerakkan avatar mereka dengan gerakan mereka.
- Terbitkan tempat tersebut untuk menyimpan perubahan.
Atur maksimum pemain
Jika Anda sebelumnya mengatur jumlah maksimum pemain di suatu tempat lebih dari 100, Anda perlu menguranginya untuk mendukung Obrolan Suara.
- Pilih tempat yang diinginkan dan kemudian navigasikan ke Akses di kolom kiri.
- Untuk Jumlah Pengunjung Maksimum, masukkan angka kurang dari atau sama dengan 100.
- Klik tombol Simpan Perubahan.
Ketika Anda memperbarui jumlah maksimum pemain di suatu tempat menjadi kurang dari 100, mungkin ada server yang sudah dikonfigurasi dengan angka yang berbeda dan lebih tinggi. Karena server tersebut tidak akan mendukung Obrolan Suara, disarankan untuk memulai ulang server.
Sesuaikan perilaku suara
Obrolan Suara bersifat berbasis jarak secara default, menyesuaikan volume peserta berdasarkan seberapa dekat mereka satu sama lain. Namun, Anda dapat mengatur UseAudioApi ke Enabled untuk mengontrol bagaimana suara diatur dan digunakan dalam permainan Anda.
Jika VoiceChatService belum muncul:
Klik kanan di jendela Explorer dan pilih Tampilkan Layanan… dari menu konteks.
Pilih VoiceChatService di jendela popup dan klik Sisipkan. Layanan tersebut akan muncul di hierarki Explorer.

Dengan VoiceChatService yang dipilih, pastikan bahwa UseAudioApi diatur ke Enabled di jendela Properti. Ini mungkin sudah dilakukan untuk Anda.
Berbasis Tim
Untuk menerapkan obrolan berbasis Team di mana hanya rekan satu tim yang dapat mendengar satu sama lain, Anda dapat menggunakan Script berikut dalam ServerScriptService:
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Mengasumsikan hanya ada satu AudioDeviceInput per pemain, yang diparent ke objek Pemain
-- Ini disediakan untuk Anda jika VoiceChatService.EnableDefaultVoice adalah true
-- Mungkin perlu diubah untuk generalitas jika tempat Anda menempatkan objek AudioDeviceInput di tempat lain
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
-- Hanya izinkan rekan satu tim untuk saling mendengar
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)Non-spasial
Bergantung pada kebutuhan permainan Anda, mungkin lebih masuk akal untuk mendengar orang lain dengan volume yang sama, terlepas dari lokasi geografis mereka. Jika Anda menonaktifkan Obrolan Suara default, Anda kemudian dapat menerapkan Obrolan Suara non-spasial melalui Script berikut dalam 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
-- Siapkan penggeser volume global untuk suara semua orang
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
-- Arahkan input mikrofon setiap pemain baru ke penggeser volume global
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)Nonaktifkan per tempat
Jika Anda tidak ingin mengaktifkan Obrolan Suara untuk setiap tempat dalam permainan Anda, Anda dapat menonaktifkannya di tempat tertentu yang seharusnya memenuhi syarat untuk suara.
Untuk menonaktifkan Obrolan Suara untuk tempat tertentu dalam permainan:
Klik kanan di jendela Explorer dan pilih Tampilkan Layanan… dari menu konteks.
Pilih VoiceChatService di jendela popup dan klik Sisipkan. Layanan tersebut akan muncul di hierarki Explorer.

Dengan VoiceChatService yang dipilih, nonaktifkan EnableDefaultVoice di jendela Properti.
Terbitkan tempat tersebut untuk menyimpan perubahan dan mulai ulang server untuk memastikan perubahan tersebut berlaku untuk semua server yang saat ini menjalankan permainan Anda.
Periksa status
Anda dapat memeriksa apakah seorang pemain telah mengaktifkan Obrolan Suara dengan memanggil IsVoiceEnabledForUserIdAsync() dalam LocalScript, atau dalam Script dengan RunContext diatur ke 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("Obrolan Suara diaktifkan!")
end