Загрузка данных


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)