Is there a way to make a "typewriter" effect using TextChatService messages?

Okay, so I am making an undertale style game, and im trying to make a typewriter effect for the chat. Also btw tts is TextChatService, even though it should really be tcs but ok

tts.OnChatWindowAdded = function(message: TextChatMessage)
	local source = message.TextSource
	
	if source then
		local fulltext = message.Text
		local length = string.len(message.Text)
		
		for i = 1, length do
			message.Text = string.sub(message.Text, 1, i)
			script.yapping:Play()
			wait(0.05)
		end
	end
end

But the problem with that script is that I cant edit the message twice after its sent. For example, if I send the message "abc", it only shows the first character ("a") in chat, and the typewriter doesnt continue. Is there a way to fix this, or will i just have to make normal chat lol

wait i just realized i made a mistake in the code lol

tts.OnChatWindowAdded = function(message: TextChatMessage)
	local source = message.TextSource
	
	if source then
		local fulltext = message.Text
		local length = string.len(message.Text)
		
		for i = 1, length do
			message.Text = string.sub(fulltext, 1, i)
			script.yapping:Play()
			wait(0.01)
		end
	end
end

that version of the code basically works but doesnt really typewrite. if nobody else provides a better solution i guess this is it lol

I don’t think this is possible to do unless you use a custom chat system, since a TextChatMessage isn’t able to be edited once it’s displayed