Sesli Sohbet, sizin ve diğer oyuncular arasında gerçek zamanlı, sözlü iletişim sağlayan bir özelliktir. Sadece maksimum 100 oyuncuyu destekleyen mekanlarda mevcuttur.

Sesli Sohbeti Etkinleştir
Sesli Sohbet, maksimum 100 oyuncu bulunan tüm yeni mekanlar için doğrulanmış 13+ kullanıcılar için varsayılan olarak etkinleştirilmiştir. Mevcut oyunlar için sesi etkinleştirmek veya yeni oyunlar için devre dışı bırakmak için:
- Oyunuzu Stüdyo'da açın.
- Dosya ⟩ Deneyim Ayarları'nı açın.
- Pencerenin sol tarafındaki İletişim sekmesine gidin.
- Sesli Sohbeti Etkinleştir'i istediğiniz ayara geçirin.
- İSTENÇLİOyun içindeki oyuncular arasında daha iyi iletişim sağlamak için, uygun oyuncuların hareketleriyle avatarlarını animatize etmelerine izin vermek için Kamerayı Etkinleştir'i açın.
- Değişiklikleri kaydetmek için mekanınızı yayınlayın.
Bu ayarı etkinleştirerek, uygun 13+ kullanıcılar oyununuzda Sesli Sohbet için kayıt yaptırabilirler. Sesli Sohbeti etkinleştirmek, konuşmadan metne API'sini kullanmak için gereklidir.
Maksimum oyuncu sayısını ayarla
Daha önce bir mekan için maksimum oyuncu sayısını 100'den fazla olarak belirlediyseniz, Sesli Sohbeti desteklemek için bunu 100 veya daha az bir sayıya düşürmeniz gerekecek.
- Deneyim Ayarları penceresinin sol tarafındaki navigasyonda Mekanlar'ı seçin. Oyununuza ait tüm mekanlar görüntülenir.
- 100'den fazla oyuncusu olan mekanın yanındaki ⋯ düğmesine tıklayın ve ardından Mekanı Yapılandır'ı seçin.
- Maksimum Oyuncular alanına 100'den az veya eşit bir sayı girin.
- Değişiklikleri kaydetmek için Kaydet düğmesine tıklayın ve ardından yayınlayın.
Bir mekanın maksimum oyuncu sayısını 100'den az olarak güncellediğinizde, halihazırda daha yüksek bir sayıya ayarlanmış sunucular olabilir. Bu sunucular Sesli Sohbeti desteklemeyeceğinden, sunucuları yeniden başlatmanız önerilir.
Ses davranışını özelleştir
Sesli Sohbet, varsayılan olarak yakınlık tabanlıdır, katılımcıların birbirine ne kadar yakın olduğuna bağlı olarak ses seviyesini ayarlar. Ancak, oyununuzda seslerin nasıl kurulduğu ve kullanıldığı üzerinde kontrol sağlamak için UseAudioApi değerini Enabled olarak ayarlayabilirsiniz.
Eğer VoiceChatService henüz görünmüyorsa:
Explorer penceresinde sağ tıklayın ve açılır menüden Hizmetleri Göster…'i seçin.
Açılır pencerede VoiceChatService'i seçin ve Ekle'ye tıklayın. Servis Explorer hiyerarşisinde görüntülenecektir.

VoiceChatService'i seçtiğinizde, Özellikler penceresinde UseAudioApi değerinin Enabled olduğundan emin olun. Bu, sizin için zaten yapılmış olabilir.
Takıma dayalı
Yalnızca takım arkadaşlarının birbirini duyabileceği Team tabanlı sohbet uygulamak için ServerScriptService içinde aşağıdaki Script'i kullanabilirsiniz:
Takım Sohbeti
local Teams = game:GetService("Teams")
local function findAudioInput(forPlayer : Player) : AudioDeviceInput?
-- Her oyuncu için yalnızca bir AudioDeviceInput olduğu varsayılır, oyuncu nesnesine bağlıdır
-- Sesli sohbet hizmeti Varsayılan sesi etkinleştirirse sizin için sağlanmıştır
-- Eğer mekanınızda başka yerlerde AudioDeviceInput nesneleri varsa, genel bir versiyon gerektirebilir
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
-- Sadece takım arkadaşlarının birbirini duymasına izin ver
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)
Mekansal olmayan
Oyununuza bağlı olarak, coğrafi konumlarından bağımsız olarak diğerlerini eşit ses seviyesinde duymak daha mantıklı olabilir. Eğer varsayılan Sesli Sohbeti devre dışı bırakırsanız, sonra ServerScriptService içinde aşağıdaki Script ile mekansal olmayan Sesli Sohbet'i uygulayabilirsiniz:
Mekansal Olmayan Sohbet
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
-- Herkes için bir global ses seviyesi kaydırıcı oluştur
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
-- Her yeni oyuncunun mikrofon girişi, global ses seviyesi kaydırıcısına yönlendirilir
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)
Mekan başına devre dışı bırak
Oyun içindeki her mekanda Sesli Sohbet'i etkinleştirmek istemiyorsanız, aksi takdirde sesli sohbet yapma uygun olan belirli mekanlarda bunu devre dışı bırakabilirsiniz.
Bir oyundaki belirli bir mekan için Sesli Sohbet'i devre dışı bırakmak için:
Explorer penceresinde sağ tıklayın ve açılır menüden Hizmetleri Göster…'i seçin.
Açılır pencerede VoiceChatService'i seçin ve Ekle'ye tıklayın. Servis Explorer hiyerarşisinde görüntülenecektir.

VoiceChatService'i seçtiğinizde, Özellikler penceresinde EnableDefaultVoice değerini devre dışı bırakın.
Değişiklikleri kaydetmek için mekânı yayınlayın ve tüm sunucuların bu değişikliği etkili hale getirmesi için sunucuları yeniden başlatın.
Durumu Kontrol Et
Bir oyuncunun Sesli Sohbet'i etkinleştirip etkinleştirmediğini kontrol etmek için, IsVoiceEnabledForUserIdAsync() fonksiyonunu bir LocalScript içinde veya Script'te RunContext değeri Enum.RunContext.Client set edilerek çağırabilirsiniz.
İstemci Scripti - Sesli Sohbet Durumunu Kontrol Et
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("Sesli Sohbet etkinleştirildi!")
end