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 girişlere uygulanarak, metin filtreleme kullanıcıların uygunsuz dil ve telefon numarası gibi kişisel tanımlanabilir bilgileri görmesini engeller. Roblox, deneyim içi metin sohbeti üzerinden geçen mesajlar gibi yaygın metin çıktılarını otomatik olarak filtreler, ancak üzerinde açık kontrolünüz olmayan herhangi bir görüntülenen metni filtrelemekten siz sorumlusunuz.

Filtre senaryoları

Metin, kullanıcıların çeşitli senaryolarında toplanabilir ve/veya görüntülenebilir, bunlar arasında:

  • TextBox girdileri aracılığıyla kullanıcıların metin girişi topladığı bir deneyim, bir tuş takımı/klavye arayüzüne sahip özel bir GUI veya 3D alanda etkileşimli bir klavye modeli.

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

  • İçeriğin deneyim içinde gösterilmesi için harici bir web sunucusuna bağlanan bir deneyim. Genellikle dış 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 mağazaları kullanarak depolayan bir deneyim, burada saklanan metin uygun olmayan kelimeler içerebilir ve bunların geri alınması sırasında filtrelenmesi gerekir.

Filtreleme süreci

TextService:FilterStringAsync() metin deneyimi içindeki metni alarak giriş olarak bir metin dizesi ve bu metni oluşturan kullanıcının UserId değerini alır. Bu, farklı senaryolar içinde çağrılabilen iki ek yöntem içeren bir TextFilterResult nesnesi döndürür:

TextBox girişi bağlamında, aşağıdaki örnek FocusLost olayında girişi toplayarak bunu bir RemoteEvent aracılığıyla sunucuya gönderir. Sunucuda, önce FilterStringAsync() ile filtrelenir ve ardından GetNonChatStringForBroadcastAsync() ile, metnin 3D dünyada bir SurfaceGui gibi sunucu tarafı nesnelerinde tüm kullanıcılara gösterilmek üzere planlanması amacıyla.

Metin Girişini 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
-- Sunucuya metin girişini filtreleme için göndermek üzere RemoteEvent
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Fokus kaybedildiğinde 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şini Filtreleme - Sunucu Scripti

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Filtreleme için istemciden metin girişi almak üzere 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 veri gönderdiğinde ateşlenir
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.