Textfilterung

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Angewandt auf verschiedene Quellen und Eingaben, verhindert Textfilterung, dass Benutzer unangemessene Sprache und personenbezogene Daten wie Telefonnummern sehen. Roblox filtert automatisch gängige Textausgaben wie Nachrichten, die über In-Experience-Text-Chat gesendet wurden, jedoch sind Sie dafür verantwortlich, alle angezeigten Texte, über die Sie keine explizite Kontrolle haben, zu filtern.

Filterszenarien

Text kann in einer Vielzahl von Szenarien an Benutzer gesammelt und/oder angezeigt werden, einschließlich:

  • Ein Erlebnis, das die Texteingabe von Benutzern über TextBox-Eingaben, ein benutzerdefiniertes GUI mit Schaltflächen wie einer Tastatur/Tastatur-Schnittstelle oder ein interaktives Tastaturmodell im 3D-Raum erfasst.

  • Ein Erlebnis, das Wörter aus zufälligen Zeichen generiert und diese Benutzern anzeigt, da es die Möglichkeit gibt, unangemessene Wörter zu erstellen.

  • Ein Erlebnis, das sich mit einem externen Webserver verbindet, um Inhalte abzurufen, die im Erlebnis angezeigt werden. Oft haben Sie keine Kontrolle über den Inhalt der externen Seite, und ein Dritter kann die Informationen bearbeiten.

  • Ein Erlebnis, das Texte wie die Haustiernamen der Benutzer mithilfe von Datenspeichern speichert, wobei der gespeicherte Text möglicherweise unangemessene Wörter enthält, die beim Abrufen gefiltert werden sollten.

Filterprozess

TextService:FilterStringAsync() filtert den In-Experience-Text, indem es einen Textstring und die UserId des Benutzers, der den Text erstellt hat, als Eingabe verwendet. Es gibt ein TextFilterResult-Objekt zurück, das zwei zusätzliche Methoden hat, die Sie in verschiedenen Szenarien aufrufen können:

Im Kontext der TextBox-Eingabe sammelt das folgende Beispiel die Eingabe beim FocusLost-Ereignis und sendet sie über ein RemoteEvent an den Server. Auf dem Server wird sie zuerst durch FilterStringAsync() gefiltert und dann mit der Absicht, dass der Text für alle Benutzer auf einem serverseitigen Objekt wie einem SurfaceGui in der 3D-Welt angezeigt wird, durch GetNonChatStringForBroadcastAsync() verarbeitet.

Textfilterung - Client-Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- RemoteEvent zum Senden der Texteingabe an den Server zur Filterung
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Event-Handler für Fokusverlust und Drücken der Enter-Taste
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print("EINGEREICHT:", textBox.Text)
if inputRemoteEvent then
inputRemoteEvent:FireServer(textBox.Text)
end
end
end
textBox.FocusLost:Connect(onFocusLost)
Textfilterung - Server-Skript

local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- RemoteEvent zum Empfangen der Texteingabe vom Client zur Filterung
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("Fehler beim Generieren des TextFilterResult:", errorMessage)
end
end
-- Auslösen, wenn der Client die Eingabe aus dem Textfeld einreicht
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("GEFILTERT:", filteredText)
else
warn("Fehler beim Filtern des Textes!")
end
end
end
end
inputRemoteEvent.OnServerEvent:Connect(onInputReceived)
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.