Eu estava pensando aqui, seria muito mais realista se ele mandasse uma mensagem com a primeira letra do palavrão e mantivesse o tamanho da palavra. Ficaria mais longo mas deixaria um pouco mais engraçado.
local symbols = {'@','#','$','%','&'}
local text = string.gsub(words,1,1)
for x=1,(string.lengh(words)-1) do
text = text..math.random(#symbols)
end
doSendAnimatedText(getThingPos(cid), text, 19)