BLOXBUILDS
Discord
Back
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