Metin filtreleme

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Çeşitli kaynaklara ve girdilere uygulandığında, metin filtreleme kullanıcıların uygunsuz dil ve telefon numarası gibi kişisel olarak tanımlanabilir bilgileri görmesini engeller. Roblox, oyun içi metin sohbeti aracılığıyla geçen mesajlar gibi yaygın metin çıktılarının otomatik olarak filtrelenmesini sağlar, ancak üzerinde açık kontrolünüz olmayan herhangi bir görüntülenen metni filtrelemekten siz sorumlusunuz.

Filtre senaryoları

Metin, kullanıcılara çeşitli senaryolar altında toplanabilir ve/veya görüntülenebilir:

  • Kullanıcıların TextBox girişleri aracılığıyla metin girişi topladığı bir oyun, özel bir GUI ile tuşlar içeren bir klavye/tuş takımı arayüzü veya 3D alandaki etkileşimli bir klavye modeli.

  • Rastgele karakterlerden kelimeler üreten ve bunları kullanıcılara gösteren bir oyun, çünkü uygunsuz kelimeler oluşturma olasılığı vardır.

  • Oyun içinde görüntülenen içeriği almak için harici bir web sunucusuna bağlanan bir oyun. Genellikle, harici sitenin içeriği üzerinde kontrolünüz olmayacak ve üçüncü bir taraf bilgileri düzenleyebilir.

  • Kullanıcıların evcil hayvan isimleri gibi metinleri veri depoları kullanarak saklayan bir oyun, burada saklanan metin, alındığında filtrelenmesi gereken uygunsuz kelimeler içerebilir.

Filtreleme süreci

TextService:FilterStringAsync() oyun içi metni, bir metin dizesi ve metni oluşturan kullanıcının UserId'sini girdi olarak alarak filtreler. Bu, farklı senaryolar altında çağırabileceğiniz iki ek metoda sahip bir TextFilterResult nesnesi döndürür:

TextBox girişi bağlamında, aşağıdaki örnek FocusLost olayında girişi toplar ve bunu bir RemoteEvent aracılığıyla sunucuya gönderir. Sunucuda, önce FilterStringAsync() ile filtrelenir ve ardından GetNonChatStringForBroadcastAsync() ile, metnin sunucu tarafındaki bir nesne, örneğin 3D dünyadaki bir SurfaceGui üzerinde tüm kullanıcılara gösterilmesi amacıyla.

Metin Girişi Filtreleme - İstemci Scripti
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- Filtreleme için sunucuya metin girişi göndermek için RemoteEvent
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Odak kaybı ve enter tuşuna basıldığında olay işleyici
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print("GÖNDERİLDİ:", textBox.Text)
if inputRemoteEvent then
inputRemoteEvent:FireServer(textBox.Text)
end
end
end
textBox.FocusLost:Connect(onFocusLost)
Metin Girişi Filtreleme - Sunucu Scripti
local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Filtreleme için istemciden metin girişi almak için RemoteEvent
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
local function getFilterResult(text, fromUserId)
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(text, fromUserId)
end)
if success then
return filterResult
else
warn("TextFilterResult oluşturma hatası:", errorMessage)
end
end
-- İstemci TextBox'tan girişi gönderdiğinde tetiklenir
local function onInputReceived(player, text)
if text ~= "" then
local filterResult = getFilterResult(text, player.UserId)
if filterResult then
local success, filteredText = pcall(function()
return filterResult:GetNonChatStringForBroadcastAsync()
end)
if success then
print("FİLTRELENMİŞ:", filteredText)
else
warn("Metin filtreleme hatası!")
end
end
end
end
inputRemoteEvent.OnServerEvent:Connect(onInputReceived)
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.