I Need Help With My Script, So I’m Trying Todo If Player FInishes Obby Then Give Player Xp
Full Script
---///Services
local ReplicatedStorageService = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
---///locals
local ReplicatedStorage = game.ReplicatedStorage
local MadeToEnd = ReplicatedStorage.Events.MadeToEnd
local sendtime = ReplicatedStorage.Events.SendTime
local LocalPlayer = game.Players.LocalPlayer
---///Script
script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
local Playing = plr.Playing
if hit.Parent:FindFirstChild("Humanoid") then
if Playing.Value == true then
Playing.Value = false -- Makes Value False
MadeToEnd:FireClient(plr) -- Fireds Clinet Side
local function gettime(player, data)
print("False Info")
print(player.Name .. " got " .. data)
if data < 40 then
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + (50 - data)
else
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + 15
end
end
end
end
end)
What’s Broken
local function gettime(player, data)
print("Test")
print(player.Name .. " got " .. data)
if data < 40 then
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + (50 - data)
else
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + 15
end
end
Photo’s:

You never exactly connected the function gettime, so it doesn’t fire the moment you touch the Part
---///Services
local ReplicatedStorageService = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
---///locals
local ReplicatedStorage = game.ReplicatedStorage
local MadeToEnd = ReplicatedStorage.Events.MadeToEnd
local sendtime = ReplicatedStorage.Events.SendTime
local LocalPlayer = game.Players.LocalPlayer
---///Script
script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
local Playing = plr.Playing
if hit.Parent:FindFirstChild("Humanoid") then
if Playing.Value == true then
Playing.Value = false -- Makes Value False
MadeToEnd:FireClient(plr) -- Fireds Clinet Side
print(player.Name .. " got " .. data)
if data < 40 then
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + (50 - data)
else
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + 15
end
end
end
end)
You never exactly connected the function gettime , so it doesn’t fire the moment you touch the Part
I NEED “gettime” To Find The Data
Well you’ll have to separate it then, it won’t fire even if you put it inside a Touched event:
Also what exactly is “Data” even defined as…? A Number/Int value of some sort? You didn’t include it inside your OP
---///Services
local ReplicatedStorageService = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
---///locals
local ReplicatedStorage = game.ReplicatedStorage
local MadeToEnd = ReplicatedStorage.Events.MadeToEnd
local sendtime = ReplicatedStorage.Events.SendTime
local LocalPlayer = game.Players.LocalPlayer
---///Script
script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
local Playing = plr.Playing
if hit.Parent:FindFirstChild("Humanoid") then
if Playing.Value == true then
Playing.Value = false -- Makes Value False
gettime(plr, nil) --I don't know what Data is defined as
MadeToEnd:FireClient(plr) -- Fireds Clinet Side
end
end
end)
local function gettime(player, data)
if not player then
return
end
print("False Info")
print(player.Name .. " got " .. data)
if data < 40 then
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + (50 - data)
else
plr.leaderstats.xp.Value = plr.leaderstats.xp.Value + 15
end
end
gettime(nil, nil)