Run it
Copy the script and paste it into your executor.
(str,fstr)
rstr = .(str)
rfstr = .(fstr)
fstart,fend = .(rstr,rfstr)
rfstart,rfend = (.(str)-fend)+,(.(str)-fstart)+
rfstart,rfend
(txt,stopatwordends,chrcap)
amttodo = .(txt)/chrcap
amt =
rettable = {}
tr =
tr
oldamt = amt
amttodo <
amt = amt + amttodo*chrcap
amt = amt + chrcap
newtxt = .(txt,oldamt,amt)
stopatwordends amttodo >
pos = (newtxt,)
pos
newtxt = .(newtxt,oldamt,pos)
.(newtxt) >
.(rettable,newtxt)
amttodo = amttodo -
amttodo <=
tr =
rettable
(txt,chrcap,stopatwordends,newlines)
chrcap ==
chrcap =
stopatwordends ==
stopatwordends =
newlines ==
newlines =
rettable = {}
newlines #.(txt,) >
i,v (.(txt,))
v ~= v ~=
.(v) > chrcap
spltable = (v,stopatwordends,chrcap)
i,v (spltable)
.(rettable,v)
.(rettable,v)
.(txt) > chrcap
spltable = (txt,stopatwordends,chrcap)
i,v (spltable)
.(rettable,v)
.(rettable,txt)
rettable
textservice = :()
textcservice = :()
(txt,channel)
success,err = (()
textcservice.ChatVersion == .ChatVersion.TextChatService
textcservice:().TargetTextChannel:(txt)
.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:(txt,channel )
)
ot =
(()
Notify = (_Title, _Text , Time)
.StarterGui:(, {Title = _Title, Text = _Text, Icon = , Duration = Time})
Metatable = (.StarterGui)
(Metatable, )
event = (localplr.PlayerScripts:(,)).MessagePosted
oldfunc
oldfunc = (event.fire,(a1,a2,a3)
args = {a1,a2,a3}
ot args[] == event
(.(args))
)
)
ids = {}
idnum =
(tab,,antichatlog)
antichatlog ==
antichatlog =
==
=
antichatlog
ot =
idnum = idnum +
currid = idnum
ids[currid] =
.(()
i,v (tab)
ids[currid] ==
saytxt = v
(saytxt)
()
antichatlog
ot =
)()
currid
(id)
ids[id] =
rettable = {}
rettable.getmessages = gettable
rettable.saymessages = saytable
rettable.say = say
rettable.splitwords = splitwords
rettable.findlast = findlast
rettable.stopsaying = stopsaying
rettableSplits any text you insert into a table which you can use to say the text under the chat limit how to use: -- get the script and define it as a variable like this: local txtsep = loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Chat-Seperator-21154"))() -- use the function "getmessages" to get the table of messages (that is all seperated) local tosay = txtsep.getmessages("hello") -- theres some other stuff you can customize about the function ofc -- txtsep.getmessages(txthere (string),charactercap (number),stopatwordendings (bool)) -- stopatwordendings just means the splitted text will "erase" some text so the full thing stops at an ending of a word (the erased part will still be there at the next part of the text) -- now that you got your table, you can either make a script that says them or use the "built in" function of saying them local id = txtsep.saymessages(tosay) -- more customizable stuff is there too -- txtsep.saymessages(tosay (table),delay (number),antichatlog (bool)) -- the delay is how much it waits until saying the next message -- the anti chat log turns the anti chat log on when its saying stuff (by anthony) -- and the function also retur

Universal