Hello,
I have a typewriter dialogue GUI. In studio, it appears where it needs to be (centre bottom of the screen, nearly completely offscreen). On the client though, it appears in the top right (0,0,0,0). Here is my script.
local frame = script.Parent
frame.Position = UDim2.new({0.171, 0},{0.998, 0})
local prox = game.Workspace.man.Prox
local text = script.Parent.text
local sound1 = game.Workspace.Sounds.one
local sound2 = game.Workspace.Sounds.two
local sound3 = game.Workspace.Sounds.three
local sound4 = game.Workspace.Sounds.four
local sound5 = game.Workspace.Sounds.five
local rand = 0
frame.Position = UDim2.new({0.171, 0},{0.998, 0})
local function appear()
frame.Position = UDim2.new({0.171, 0},{0.998, 0})
text.Text = " "
for j = 0.998, 0.754, -0.002 do
frame.Position = UDim2.new({0.171, 0},{j, 0})
end
wait(0.5)
end
local function type(words)
local speed = 0.05
for i = 1, #words, 1 do
text.Text = string.sub(words, 1, i)
rand = math.random(1,5)
text.MouseButton1Down:Connect(function()
speed = 0.02
end)
text.MouseButton1Up:Connect(function()
speed = 0.05
end)
wait(speed)
if rand == 1 then
sound1:Play()
elseif rand == 2 then
sound2:Play()
elseif rand == 3 then
sound3:Play()
elseif rand == 4 then
sound4:Play()
elseif rand == 5 then
sound5:Play()
end
end
end
prox.Triggered:Connect(function()
prox.Enabled = false
appear()
type("hey, i'm the man")
wait(1)
type("if you hold down on this text while its being written, it'll write faster")
wait(1)
type("cool")
prox.Enabled = true
end)