I have found a working leaderboard script from Narutonumber1 so shoutout to him(shown below) and I want to make it so when I touch a brick the stage value goes up by one.I have tried one script to do this but it didn't work.(Script shown farther below)
leaderboard script--
-- Edited by Narutonumber1 -I don't need credit but it would be apreciated --
print("Leaderboard script version 3.00 loaded")
function onPlayerEntered(newPlayer)
local stats = Instance.new("IntValue")
stats.Name = "leaderstats"
local cash = Instance.new("IntValue")
cash.Name = "Stage" --Change "Cash" to change the currency name.
cash.Value = 1 --Change the 0 to how much you want people to start with
cash.Parent = stats
stats.Parent = newPlayer
local kills = Instance.new("IntValue")
kills.Name = "KOs"
kills.Value = 0
local deaths = Instance.new("IntValue")
deaths.Name = "Wipeouts"
deaths.Value = 0
kills.Parent = stats
deaths.Parent = stats
-- Do not edit past here or you will be risking breaking the script!!!! --
-- VERY UGLY HACK
-- Will this leak threads?
-- Is the problem even what I think it is (player arrived before character)?
while true do
if newPlayer.Character ~= nil then break end
wait(5)
end
local humanoid = newPlayer.Character.Humanoid
humanoid.Died:connect(function() onHumanoidDied(humanoid, newPlayer) end )
-- start to listen for new humanoid
newPlayer.Changed:connect(function(property) onPlayerRespawn(property, newPlayer) end )
stats.Parent = newPlayer
end
function Send_DB_Event_Died(victim, killer) -- killer may be nil local killername = "unknown" if killer ~= nil then killername = killer.Name end print(victim.Name, " was killed by ", killername)
if shared["deaths"] ~= nil then
shared["deaths"](victim, killer)
print("Death event sent.")
end
end
function Send_DB_Event_Kill(killer, victim) print(killer.Name, " killed ", victim.Name) if shared["kills"] ~= nil then shared["kills"](killer, victim) print("Kill event sent.") end end
function onHumanoidDied(humanoid, player) local stats = player:findFirstChild("leaderstats") if stats ~= nil then local deaths = stats:findFirstChild("Wipeouts") deaths.Value = deaths.Value + 1
-- do short dance to try and find the killer
local killer = getKillerOfHumanoidIfStillInGame(humanoid)
Send_DB_Event_Died(player, killer)
handleKillCount(humanoid, player)
end
end
function onPlayerRespawn(property, player) -- need to connect to new humanoid
if property == "Character" and player.Character ~= nil then
local humanoid = player.Character.Humanoid
local p = player
local h = humanoid
humanoid.Died:connect(function() onHumanoidDied(h, p) end )
end
end
function getKillerOfHumanoidIfStillInGame(humanoid) -- returns the player object that killed this humanoid -- returns nil if the killer is no longer in the game
-- check for kill tag on humanoid - may be more than one - todo: deal with this
local tag = humanoid:findFirstChild("creator")
-- find player with name on tag
if tag ~= nil then
local killer = tag.Value
if killer.Parent ~= nil then -- killer still in game
return killer
end
end
return nil
end
function handleKillCount(humanoid, player) local killer = getKillerOfHumanoidIfStillInGame(humanoid) if killer ~= nil then local stats = killer:findFirstChild("leaderstats") if stats ~= nil then local kills = stats:findFirstChild("KOs") if killer ~= player then kills.Value = kills.Value + 1
else
kills.Value = kills.Value - 0
end
Send_DB_Event_Kill(killer, player)
end
end
end
game.Players.ChildAdded:connect(onPlayerEntered)
Brick Script--
script.Parent.Touched:connect(function(Hit)
local PlrN = Hit.Parent.Name
local Plr = game.Players:FindFirstChild(PlrN)
if Plr then
local Ldrs = Plr:FindFirstChild("Leaderstats")
if Ldrs then -- If Leaderstats is found
local Stage = Ldrs:FindFirstChild("Stage")
if Stage then
local StageV = script.Parent.Stage
if Stage.Value == StageV.Value then
Stage.Value = Stage.Value + 1
end
end
end
end
end)

1 comment
i recommend you edit this post so it is in one lua chunk instead of several, and posting the error codes you get in output so people can more easily answer your question. :) happy scripting.