local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
local event = ReplicatedStorage:FindFirstChild("CustomChatEvent")
if not event then
event = Instance.new("RemoteEvent")
event.Name = "CustomChatEvent"
event.Parent = ReplicatedStorage
end
event.OnServerEvent:Connect(function(player, message)
if typeof(message) ~= "string" then
return
end
if message == "" then
return
end
-- Максимум 200 символов
message = string.sub(message, 1, 200)
-- Только обязательная фильтрация Roblox
local success, filteredText = pcall(function()
local result = TextService:FilterStringAsync(
message,
player.UserId,
Enum.TextFilterContext.PublicChat
)
return result:GetNonChatStringForBroadcastAsync()
end)
if not success then
warn("Не удалось обработать сообщение:", filteredText)
return
end
-- Отправляем всем игрокам
event:FireAllClients(
player.UserId,
player.DisplayName,
filteredText
)
end)