UI/UX
Leaderstats (Coins)
Paste into ServerScriptService as a Script. Creates Cash and Stage leaderstats and shows both numbers in a box at the top-right of the screen.
-- Paste into ServerScriptService as a Script.
local Players = game:GetService("Players")
local function ensureValue(player: Player, name: string): IntValue
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then
leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
end
local value = leaderstats:FindFirstChild(name)
if not value then
value = Instance.new("IntValue")
value.Name = name
value.Value = 0
value.Parent = leaderstats
end
return value :: IntValue
end
local function createHud(player: Player)
local playerGui = player:WaitForChild("PlayerGui")
local cash = ensureValue(player, "Cash")
local stage = ensureValue(player, "Stage")
local gui = Instance.new("ScreenGui")
gui.Name = "LeaderstatsHud"
gui.ResetOnSpawn = false
gui.Parent = playerGui
local label = Instance.new("TextLabel")
label.AnchorPoint = Vector2.new(1, 0)
label.Position = UDim2.new(1, -16, 0, 16)
label.Size = UDim2.fromOffset(220, 44)
label.BackgroundColor3 = Color3.fromRGB(19, 22, 28)
label.TextColor3 = Color3.fromRGB(250, 204, 21)
label.Font = Enum.Font.GothamBold
label.TextSize = 18
label.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = label
local function render()
label.Text = "Coins " .. cash.Value .. " Stage " .. stage.Value
end
render()
cash.Changed:Connect(render)
stage.Changed:Connect(render)
end
Players.PlayerAdded:Connect(createHud)
for _, player in ipairs(Players:GetPlayers()) do
createHud(player)
end