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

Aktifkan Obrolan Suara
Obrolan Suara diaktifkan secara default untuk pengguna yang telah diverifikasi berusia 13+ di semua permainan baru dengan maksimal 100 pemain. 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.
- Aktifkan Aktifkan Obrolan Suara ke pengaturan yang Anda inginkan.
- OPSIONALUntuk meningkatkan komunikasi di antara pemain dalam permainan Anda, aktifkan Aktifkan Kamera untuk memungkinkan pemain yang memenuhi syarat memperagakan gerakan avatar mereka.
- Terbitkan tempat tersebut untuk menyimpan perubahan.
Dengan mengaktifkan pengaturan ini, pengguna berusia 13+ yang memenuhi syarat dapat memilih Obrolan Suara dalam permainan Anda. Mengaktifkan Obrolan Suara diperlukan untuk menggunakan API pengenalan suara.
Atur maksimum pemain
Jika Anda sebelumnya telah menetapkan jumlah maksimum pemain dalam suatu tempat lebih dari 100, Anda perlu menguranginya untuk mendukung Obrolan Suara.
- Di navigasi sebelah kiri jendela Pengaturan Pengalaman, pilih Tempat. Setiap tempat dalam permainan Anda ditampilkan.
- Klik tombol ⋯ di sebelah tempat dengan lebih dari 100 pemain, kemudian pilih Konfigurasi Tempat.
- Di kolom Maks Pemain, masukkan angka berapa pun kurang dari atau sama dengan 100.
- Klik tombol Simpan dan kemudian terbitkan untuk menyimpan perubahan.
Ketika Anda memperbarui jumlah maksimum pemain dalam sebuah tempat menjadi kurang dari 100, mungkin ada server yang sudah dikonfigurasi untuk angka yang berbeda dan lebih tinggi. Karena server tersebut tidak akan mendukung Obrolan Suara, disarankan untuk me-restart server.
Sesuaikan perilaku suara
Obrolan Suara adalah 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 tidak muncul:
Klik kanan di jendela Explorer dan pilih Tampilkan Layanan… dari menu konteks.
Pilih VoiceChatService di jendela popup dan klik Sisipkan. Layanan akan muncul dalam hierarki Explorer.

Dengan VoiceChatService 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 tim yang dapat mendengar satu sama lain, Anda dapat menggunakan Script berikut dalam ServerScriptService:
Obrolan Tim
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 dikembangkan 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 mendengar satu sama lain
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-spatial
Tergantung 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‑spatial melalui Script berikut dalam ServerScriptService:
Obrolan Non-Proximity
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 slider 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 masukan mikrofon setiap pemain baru ke slider volume global
wireUp(device, volumeSlider)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
LocalScript
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 obrolan suara.
Untuk menonaktifkan Obrolan Suara untuk tempat tertentu dalam suatu permainan:
Klik kanan di jendela Explorer dan pilih Tampilkan Layanan… dari menu konteks.
Pilih VoiceChatService di jendela popup dan klik Sisipkan. Layanan akan muncul dalam hierarki Explorer.

Dengan VoiceChatService dipilih, nonaktifkan EnableDefaultVoice di jendela Properti.
Terbitkan tempat tersebut untuk menyimpan perubahan dan me-restart server untuk memastikan perubahan tersebut diterapkan pada 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.
Skrip Klien - Periksa Status Obrolan Suara
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