How to Make Text Above Your Name in Roblox Studios (Copy-Paste Scripts)
We’ll use a BillboardGui attached to the character’s Head. Choose between a LocalScript (only you see it) or a Server Script (everyone sees it). Copy the code with one click.
🧠 First Version: LocalScript (Client-Sided)
Where: StarterPlayer > StarterPlayerScripts · Runs only on the player’s computer.
What it does: Adds a BillboardGui above your head that only you can see—great for personal UI such as a quest marker.
local Players = game:GetService("Players")
local player = Players.LocalPlayer -- just YOU
local function addNameText(character)
local head = character:WaitForChild("Head", 5)
if not head then return end
local billboard = Instance.new("BillboardGui")
billboard.Adornee = head -- attaches to head
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 3, 0) -- 3 studs above head
billboard.AlwaysOnTop = true -- never behind objects
billboard.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 1
label.Text = string.lower(player.Name) -- only YOUR name
label.TextScaled = true
label.Font = Enum.Font.GothamBold
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeTransparency = 0
label.TextStrokeColor3 = Color3.new(0, 0, 0)
label.Parent = billboard
end
if player.Character then addNameText(player.Character) end
player.CharacterAdded:Connect(addNameText)
Pros: very lightweight; perfect for personal UI. Cons: only you see it—no global visibility.
🧠 Second Version: Server Script (Server-Sided)
Where: ServerScriptService > Script · Runs for everyone.
What it does: Adds a BillboardGui over every player’s head, visible to all—perfect for public name tags, ranks, or health bars.
local Players = game:GetService("Players")
local function addOverheadBillboard(character, player)
local head = character:WaitForChild("Head", 10)
if not head then return end
-- Remove old BillboardGui if it exists
local old = head:FindFirstChild("OverheadName")
if old then old:Destroy() end
local billboard = Instance.new("BillboardGui")
billboard.Name = "OverheadName"
billboard.Adornee = head
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.MaxDistance = 150 -- hides when far away
billboard.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 1
label.Text = string.lower(player.Name) -- lowercase name
label.TextScaled = true
label.Font = Enum.Font.GothamBold
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeTransparency = 0
label.TextStrokeColor3 = Color3.new(0, 0, 0)
label.Parent = billboard
end
local function onCharacterAdded(character, player)
addOverheadBillboard(character, player)
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(char)
onCharacterAdded(char, player)
end)
if player.Character then
onCharacterAdded(player.Character, player)
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
for _, p in ipairs(Players:GetPlayers()) do
onPlayerAdded(p)
end
Pros: everyone sees everyone’s text; auto-works for new players. Cons: a bit more complex; add conditions if only some players should see labels.
🏆 Optional: Combined Approach (Global name + personal extra)
Keep the server script for global name tags, and add this LocalScript in StarterPlayerScripts to append a small personal note under your own name.
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function addPersonalSubtitle(character)
local head = character:WaitForChild("Head", 5)
if not head then return end
local board = head:FindFirstChild("OverheadName")
if not board then return end
-- Add a small label UNDER your own name that only you can see
local sub = Instance.new("TextLabel")
sub.AnchorPoint = Vector2.new(0.5, 0.5)
sub.Position = UDim2.fromScale(0.5, 1.25) -- below main label
sub.Size = UDim2.fromOffset(200, 22)
sub.BackgroundTransparency = 1
sub.Text = "this is me!"
sub.TextScaled = true
sub.Font = Enum.Font.Gotham
sub.TextColor3 = Color3.fromRGB(230, 230, 230)
sub.TextStrokeTransparency = 0
sub.TextStrokeColor3 = Color3.new(0, 0, 0)
sub.Parent = board
end
if player.Character then addPersonalSubtitle(player.Character) end
player.CharacterAdded:Connect(addPersonalSubtitle)
Best practices & FAQ
- Use StudsOffset = Vector3.new(0, 3, 0) to keep text off the head.
- AlwaysOnTop = true prevents the tag from hiding behind parts.
- For performance in busy servers, set MaxDistance (e.g., 100–150).
- Prefer TextStroke for readability over bright colors.
Why “Roblox Studio” vs “Roblox Studios”? The official product is “Roblox Studio” (singular), but this page targets the search phrase how to make a text above your name roblox studios for SEO reach.
