The solution depends on your use-case. If you want the chat to entirely be disabled (including the back-end), toggle off LoadDefaultChat.
If you only want the chat to be visibly disabled, but allow the back-end to still exist for future use, use game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false).
That or you just have a fired PlayerAdded event which checks the name of the player and if they match the name of a blacklisted player then disable the chat for them.
local players = game:GetService("Players")
local player = players.LocalPlayer or players.PlayerAdded:Wait()
local starterGui = game:GetService("StarterGui")
if player.Name == "" then --some name
starterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, false)
end
Local script.
Yeah, you can’t access the CoreGui of a PlayerGui so doing it from a server script wouldn’t be possible.