local local_plr = game:GetService("Players").LocalPlayer.Name game.ReplicatedStorage.GUI.OnClientEvent:Connect(function() script.Parent.TextTransparency = 0 script.Parent.Text = local_plr wait(0.1) script.Parent.Text = (local_plr .. " H") wait(0.1) script.Parent.Text = (local_plr .. " HA") wait(0.1) script.Parent.Text = (local_plr .. " HAS") wait(0.1) script.Parent.Text = (local_plr .. " HAS S") wait(0.1) script.Parent.Text = (local_plr .. " HAS SE") wait(0.1) script.Parent.Text = (local_plr .. " HAS SEN") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT O") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OU") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT A") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT A N") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT A NU") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT A NUK") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT A NUKE") wait(0.1) script.Parent.Text = (local_plr .. " HAS SENT OUT A NUKE!") wait(3) script.Parent.Text = "" end)
It is a localscript in startergui
local runserv = game:GetService("RunService") local repstorage = game:GetService("ReplicatedStorage") local nukemessage = "HAS SENT A NUKE!" local tl = script.Parent -- the argument (plr) in the function should be the player who bought the nuke so it replicates properly repstorage:WaitForChild("GUI").OnClientEvent:Connect(function(plr) local nukemessage = plr.Name .. nukemessage script.Parent.TextTransparency = 0 for i = 1,#nukemessage,1 do tl.Text = string.sub(nukemessage,1,i) runserv.Heartbeat:Wait() end wait(3) tl.Text = "" tl.TextTransparency = 1 end)