Run it
Copy the script and paste it into your executor.
returntable = {}
texttotable = {
h5 = {
a = {
{,,,},
{,,},
{,,},
{,,,,},
},
b = {
{,,,,},
{,},
{,,},
},
c = {
{,,},
{,},
{,},
},
d = {
{,,},
{,},
{,,,,},
},
e = {
{,,,,},
{,,},
{,,,},
},
f = {
{},
{,,,,},
{,},
},
g = {
{,,,},
{,,},
{,,,,},
},
h = {
{,,,,},
{},
{,,},
},
i = {
{,,,},
},
j = {
{},
{,,,},
},
k = {
{,,,,},
{,},
{,},
},
l = {
{,},
{,,,,},
{},
},
m = {
{,,},
{},
{,,},
{},
{,,},
},
n = {
{,,},
{},
{,,},
},
o = {
{,,},
{,},
{,,},
},
p = {
{,,,},
{,},
{,,},
},
q = {
{,,},
{,},
{,,},
{},
},
r = {
{,,},
{},
{},
},
s = {
{,,,},
{,,},
{,,,},
},
t = {
{},
{,,,,},
{},
},
u = {
{,,},
{},
{,,},
},
v = {
{,},
{},
{,},
},
w = {
{,},
{},
{,},
{},
{,},
},
x = {
{,},
{},
{,},
},
y = {
{,},
{},
{},
},
z = {
{,,},
{,,},
{,,},
},
A = {
{,,,},
{,},
{,,,},
},
B = {
{,,,,},
{,,},
{,,,},
{,,},
},
C = {
{,,,,},
{,},
{,},
},
D = {
{,,,,},
{,},
{,},
{,,},
},
E = {
{,,,,},
{,,},
{,,},
},
F = {
{,,,,},
{,},
{},
},
G = {
{,,,,},
{,},
{,,},
{,,,},
},
H = {
{,,,,},
{},
{,,,,},
},
I = {
{,},
{,,,,},
{,},
},
J = {
{,},
{,},
{,,,,},
{},
},
K = {
{,,,,},
{},
{,},
{,},
},
L = {
{,,,,},
{},
{},
},
M = {
{,,,,},
{},
{,,,,},
{},
{,,,,},
},
N = {
{,,,,},
{},
{},
{,,,,},
},
O = {
{,,,,},
{,},
{,},
{,,,,},
},
P = {
{,,,,},
{,},
{,,},
},
Q = {
{,,,,},
{,},
{,,},
{,,,,},
{},
},
R = {
{,,,,},
{,,},
{,,,},
},
S = {
{,,,},
{,,},
{,,,},
},
T = {
{},
{,,,,},
{},
},
U = {
{,,,,},
{},
{,,,,},
},
V = {
{,,,},
{,},
{,,,},
},
W = {
{,,,},
{,},
{,,,},
{,},
{,,,},
},
X = {
{,,,},
{,,},
{,,,},
},
Y = {
{,,},
{,,},
{,,},
},
Z = {
{,,},
{,,},
{,,},
},
[] = {
{,,,},
},
[] = {
{},
},
[] = {
{},
{},
},
[] = {
{,},
{,,,,},
{},
},
[] = {
{,,,},
{,,},
{,,,},
},
[] = {
{,,},
{,,},
{,,,,},
},
[] = {
{,,},
{},
{,,,,},
},
[] = {
{,,,},
{,,},
{,,,},
},
[] = {
{,,,,},
{,,},
{,,,},
},
[] = {
{},
{,},
{,,,,},
{},
},
[] = {
{,,,,},
{,,},
{,,,,},
},
[] = {
{,,},
{,},
{,,,,},
},
[] = {
{,,,,},
{,},
{,,,,},
},
[] = {
{},
{,,},
{,,},
},
[] = {
{,},
},
[] = {
{},
{,},
},
[] = {
{,,},
{,},
},
[] = {
{,},
{,,},
},
[] = {
{,,},
{,,},
{},
{,,},
{,,},
},
[] = {
{},
{},
{},
{},
},
[] = {
{},
{},
{},
},
[] = {
{},
{,,},
{},
},
[] = {
{,},
{},
{,,,,},
{},
{,},
},
}
}
(text,height,spacing,efficient)
height ==
height =
spacing ==
spacing =
efficient ==
efficient =
txttable = texttotable[..(height)]
returntxttable = {}
oddeven =
i=,.(text)
textslice = .(text,i,i)
textslice txttable[textslice]
.(returntxttable,{})
lettertable = txttable[textslice]
i,v (lettertable)
oddeven = oddeven +
oddeven% ==
.(v,(a,b)
a < b
)
.(returntxttable,v)
textslice textslice ==
i=, spacing
.(returntxttable,{})
returntxttable
(int)
(int*)/(.pi*)
displayed = {}
displayid =
(tab,cframe,studs,roundrot,blockscale,distance,diff,round,displaymat)
displayid = displayid +
diff ==
diff =
studs ==
studs =
distance ==
distance =
distance = distance * studs
blockscale ==
blockscale = .(studs,studs,studs)
(blockscale) ==
blockscale = .(blockscale,blockscale,blockscale)
(cframe) ==
cframe = .(cframe)
cframe = cframe - .(,studs,)
round ==
round =
roundrot ==
roundrot =
roundrot
x,y,z = cframe:()
cfr2 = {.(.((x)/)*),.(.((y)/)*),.(.((z)/)*)}
cframe = .(cframe.Position) * .(.(cfr2))
round
cframe = cframe.Rotation + .(.(cframe.X/studs)*studs,.(cframe.Y/studs)*studs,.(cframe.Z/studs)*studs)
(diff) ==
cframe = cframe.Rotation + .(cframe.X+diff.X,cframe.Y+diff.Y,cframe.Z+diff.Z)
diff
cframe = cframe.Rotation + .(cframe.X+diff,cframe.Y+diff,cframe.Z+diff)
length = #tab * studs
parttable = {}
cfrtable = {}
i,v (tab)
x = i*studs
i,v (v)
y = v*studs
part = .()
.(parttable,part)
part.Size = blockscale
part.Anchored =
part.CanCollide =
part.Transparency =
displaymat
part.Material = displaymat
part.Color = .(,,)
cfr = cframe * .((-length/)+x,y,-distance)
round
cfr = cfr.Rotation + .(.(cfr.X/studs)*studs,.(cfr.Y/studs)*studs,.(cfr.Z/studs)*studs)
.(cfrtable,cfr)
part.CFrame = cfr
part.Parent =
displayed[displayid] = parttable
displayid,parttable,cfrtable
(displayide)
displayed[displayide]
i,v (displayed[displayide])
v
(() v:() )
returntable.getblocks = getblocks
returntable.displayblocks = displayblocks
returntable.deletedisplay = deletedisplay
returntable.texttotable = texttotable
returntablethis is just for developers who wanna add this feature to their own scripts converts text that you put in the script to blocks (positions and stuff) that you can use to maybe build or insert whatever updating this description with how to use soon load the script with a loadstring local thing = loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Text-to-Blocks-WIP-20736"))() then you can get positions of blocks (which you can later use to build them) local blocks = thing.getblocks("hello") there are some arguments you could put in there (optional, below this text) thing.getblocks(texthere,height (dont use), spacing (how spaced the spaces are, defaulted to 1), efficient (kinda hard to explain so i wont, defaulted to true)) so now that you got your blocks, you can either make a script to build your blocks or use the built in "display" feature now you still need to set up the trigger or function for building it but this just makes it easier and you have to put a lot of args in it local cframetoput = game.Players.LocalPlayer.Character:GetPivot() local dispid, _, cframetable = thing.displayblocks(blocks,cframetoput,3) yeah that looked short but if you really wante