How can i make a TypeWriter that has glitchEffects?

I want something more glitchy than the one i made , so can u guide me ? Here is the my script also

local Module={}
function Module:TypeWrite(TextPath,ChosenText,Time)
  assert(TextPath);assert(ChosenText);local OrginalFont=TextPath.Font
  local Arg = ''
for i = 1, rawlen(ChosenText) do
  local New_Text = ChosenText:sub(i,i)
  local te = New_Text:gsub(New_Text,function() abc=string.char(math.random(33,126)) repeat abc=string.char(math.random(33,126)) until abc~='\37' return abc end)
  local fake = ChosenText:sub(1, i)
  Arg = Arg..te
  TextPath.Font=Enum.Font:GetEnumItems()[math.random(1,#Enum.Font:GetEnumItems())]
  TextPath.Text=Arg
  task.wait(Time or .03)
  Arg = fake
  TextPath.Font=OrginalFont
  TextPath.Text=Arg
  task.wait(Time or .03)
end
  for i=1,math.random(2,6) do
    TextPath.Text=ChosenText:reverse()
    task.wait(.2)
    TextPath.Text=ChosenText
    task.wait(.06)
  end
end
Module:TypeWrite(game.Players.LocalPlayer.PlayerGui.ScreenGui.Frame.TextLabel,'An Error Occurred')

I didnt quite get what you meant by glitch effect but this code can help you maybe?

local textLabel = script.Parent
local originalText = "An Error Occurred"
local typingSpeed = 0.05
local glitchSpeed = 0.03
local glitchChars = {"#", "*", "@", "%", "&", "$", "!", "?", "^", "~"}
local originalFont = textLabel.Font
local function glitchyTypewriterEffect(text)
	local typedText = ""
	for i = 1, #text do
		local realChar = text:sub(i, i)
		local glitchChar = glitchChars[math.random(1, #glitchChars)]
		typedText = typedText .. glitchChar
		textLabel.Font = Enum.Font:GetEnumItems()[math.random(1, #Enum.Font:GetEnumItems())]
		textLabel.Text = typedText
		task.wait(glitchSpeed)
		typedText = typedText:sub(1, #typedText - 1) .. realChar
		textLabel.Font = originalFont
		textLabel.Text = typedText
		task.wait(typingSpeed)
	end
	for _ = 1, math.random(2, 5) do
		textLabel.Text = string.reverse(text)
		task.wait(0.15)
		textLabel.Text = text
		task.wait(0.1)
	end
end
glitchyTypewriterEffect(originalText)

Im looking forward to hear from you

Have you ever player a game called sols rng ? , what i mean by glitch effect is something like the glitch title in leaderstats, you can search it in youtube to understand what i meant

https://www.youtube.com/watch?v=Ub_YWUv4Q18 If this is the one you are talking about I literally have no idea whats going on the title

It seems to type random special characters which is easier to code

I meant this , watch the video , at 3:52

Also i did upgrade this , now it looks more glitchy , but this is not enough, i really need something like that video i sent you at 3:52 :frowning: .

local Module={}
function Module:MakeSound(...)
  local S={...}
  local I={}
  for i,v in ipairs(S) do
    local INS=Instance.new('Sound',game:GetService'SoundService')
    INS.SoundId='rbxassetid://'..v
    table.insert(I,INS)
  end
  return I
end
function Module:PlaySound(...)
  local SS=self:MakeSound(...)
  local Rand=math.random(1,#SS)
  for i=1,#SS do
    if i==Rand then
      SS[i]:Play()
      return
    end
  end
end
function Module:TypeWrite(TextPath,ChosenText,Time)
  assert(TextPath);assert(ChosenText);local OrginalFont=TextPath.Font;local OgColor=TextPath.TextColor3;local ogalig=TextPath.TextXAlignment;local Direct=TextPath.TextDirection;local ogyalig=TextPath.TextYAlignment
  local Arg = ''
for i = 1, rawlen(ChosenText) do
  local New_Text = ChosenText:sub(i,i)
  local te = New_Text:gsub(New_Text,function() abc=string.char(math.random(33,126)) repeat abc=string.char(math.random(33,126)) until abc~='\37' return abc end)
  local fake = ChosenText:sub(1, i)
  Arg = Arg..te
  TextPath.TextDirection=Enum.TextDirection:GetEnumItems()[math.random(1,#Enum.TextDirection:GetEnumItems())]
  TextPath.TextXAlignment = Enum.TextXAlignment:GetEnumItems()[math.random(1,#Enum.TextXAlignment:GetEnumItems())]
  TextPath.TextYAlignment=Enum.TextYAlignment:GetEnumItems()[math.random(1,#Enum.TextYAlignment:GetEnumItems())]
  TextPath.TextColor3=Color3.fromRGB(math.random(1,255),math.random(1,255),math.random(1,255))
  TextPath.Font=Enum.Font:GetEnumItems()[math.random(1,#Enum.Font:GetEnumItems())]
  TextPath.Text=Arg
  task.wait(Time or .03)
  Arg = fake
  TextPath.TextDirection=Direct
  TextPath.TextXAlignment=ogalig
  TextPath.TextYAlignment=ogyalig
  TextPath.TextColor3=OgColor
  TextPath.Font=OrginalFont
  self:PlaySound(761473114,927634408,927635476,927635695,927636725,927636984)
  if math.random()<.4 and i~=rawlen(ChosenText) then
  TextPath.Text=Arg:reverse()
  else
    TextPath.Text=Arg
  end
  task.wait(Time or .03)
end
  for i=1,math.random(2,6) do
    TextPath.Text=ChosenText:reverse()
    task.wait(.2)
    TextPath.Text=ChosenText
    task.wait(.06)
  end
end
Module:TypeWrite(game.Players.LocalPlayer.PlayerGui.ScreenGui.Frame.TextLabel,'www.roblox.com')

Oh im afraid thats a bit too advanced for me, it might be using images for its effect

Im sorry but all I can do is the randomization but not the visuals

Hmmm , is there any way that you could make my last module have more glitch effects tho ?