Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How to make variable show up on BillboardGUI?

Hey, i'm trying to make the variable "Pajama Power" show up on my BillboardGUI. Here's my code:

wait()

--//Base elements
local Character = script.Parent
local NameTag = script:FindFirstChild("NameTag")

local NameTagClone = NameTag:Clone()
NameTagClone.Parent = Character:FindFirstChild("Head")
NameTagClone.Adornee = Character:FindFirstChild("Head")
NameTagClone.Username.Text = Character.Name
NameTagClone.Level.Text = game.Players.LocalPlayer:WaitForChild("leaderstats"):WaitForChild("Pajama Power").Value
NameTagClone.Enabled = true

However, when I start my game, The GUI just shows the default text I set up ("Lvl"), and I get this error in the output window: 19:43:09.018 - Workspace.567koala.Script:11: attempt to index field 'LocalPlayer' (a nil value)

Not sure if this helps or not, but my folders involving the BillboardGUI are as follows:

StarterCharacterScripts
	Script
		NameTag
			Border
			Level
			Username

And my script creating the leaderstats/Pajama Power variable (which is inside ServerScriptService) is as follows:

local function onPlayerJoin(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
 
	local level = Instance.new("IntValue")
	level.Name = "Pajama Power"
	level.Value = 1
	level.Parent = leaderstats
end

game.Players.PlayerAdded:Connect(onPlayerJoin)

Any ideas on what i'm doing wrong?

1 answer

✓ Accepted answer

You can't use LocalPlayer in a server sided script. You should use the

GetPlayerFromCharacter()

function to get their player instead of using LocalPlayer.

Example:

wait()

--//Base elements
local Character = script.Parent
local NameTag = script:FindFirstChild("NameTag")

local NameTagClone = NameTag:Clone()
NameTagClone.Parent = Character:FindFirstChild("Head")
NameTagClone.Adornee = Character:FindFirstChild("Head")
NameTagClone.Username.Text = Character.Name
NameTagClone.Level.Text = game.Players:GetPlayerFromCharacter(Character):WaitForChild("leaderstats"):WaitForChild("Pajama Power").Value
NameTagClone.Enabled = true

This discussion is preserved as it was. New answers, comments, and votes are closed.