Run it
Copy the script and paste it into your executor.
Players = :()
player = Players.LocalPlayer
playerGui = player:()
glyphs = {
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 = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
[] = {,,,,,,},
}
builtModels = {}
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = playerGui
frame = .()
frame.Name =
frame.Size = .(, , , )
frame.Position = .(, , , -)
frame.BackgroundColor3 = .(, , )
frame.BorderSizePixel =
frame.Active =
frame.Draggable =
frame.Parent = screenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = frame
title = .()
title.Size = .(, , , )
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(, , )
title.Font = .Font.GothamBold
title.TextSize =
title.Parent = frame
(name, y, placeholder, text)
box = .()
box.Name = name
box.Size = .(, -, , )
box.Position = .(, , , y)
box.BackgroundColor3 = .(, , )
box.TextColor3 = .(, , )
box.PlaceholderText = placeholder
box.PlaceholderColor3 = .(, , )
box.Text = text
box.ClearTextOnFocus =
box.Font = .Font.Gotham
box.TextSize =
box.Parent = frame
c = .()
c.CornerRadius = .(, )
c.Parent = box
box
textInput = (, , , )
sizeInput = (, , , )
(name, x, y, w, text, color)
btn = .()
btn.Name = name
btn.Size = .(, w, , )
btn.Position = .(, x, , y)
btn.BackgroundColor3 = color
btn.TextColor3 = .(, , )
btn.Text = text
btn.Font = .Font.GothamBold
btn.TextSize =
btn.AutoButtonColor =
btn.Parent = frame
c = .()
c.CornerRadius = .(, )
c.Parent = btn
btn
buildBtn = (, , , , , .(, , ))
undoBtn = (, , , , , .(, , ))
clearBtn = (, , , , , .(, , ))
status = .()
status.Size = .(, -, , )
status.Position = .(, , , )
status.BackgroundTransparency =
status.Text =
status.TextColor3 = .(, , )
status.Font = .Font.Gotham
status.TextSize =
status.TextXAlignment = .TextXAlignment.Left
status.Parent = frame
()
character = player.Character
character character:()
()
root = ()
root
status.Text =
text = .(textInput.Text)
#text ==
status.Text =
size = .((sizeInput.Text) , , )
look = root.CFrame.LookVector
origin = root.Position + look * + .(, , )
base = .(origin, origin + look)
model = .()
model.Name = .. text
blockCount =
totalCols = #text * -
startX = -((totalCols - ) / ) * size
i = , #text
ch = .(text, i, i)
glyph = glyphs[ch]
glyph
colOffset = (i - ) *
hue = (i - ) / .(#text, )
color = .(hue, , )
row = ,
line = glyph[row]
col = ,
.(line, col, col) ==
x = startX + (colOffset + col - ) * size
y = ( - row) * size
part = .()
part.Size = .(size, size, size)
part.Anchored =
part.CanCollide =
part.Material = .Material.SmoothPlastic
part.Color = color
part.TopSurface = .SurfaceType.Smooth
part.BottomSurface = .SurfaceType.Smooth
part.CFrame = base * .(x, y, )
part.Parent = model
blockCount +=
blockCount ==
model:()
status.Text =
model.Parent =
.(builtModels, model)
status.Text = .. blockCount ..
buildBtn.MouseButton1Click:(buildText)
undoBtn.MouseButton1Click:(()
last = .(builtModels)
last
last:()
status.Text =
status.Text =
)
clearBtn.MouseButton1Click:(()
_, model (builtModels)
model:()
.(builtModels)
status.Text =
)ts is vibecoded

Universal