local PartTouch = 1 game.Workspace.Part.Touched:Connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") then if PartTouch == 1 then local keys = hit.leaderstats.keys keys.Value = keys.Value + 1 end end end)
and IT GIVES ME ERRORS
Hello.
You cannot have spaces be used like that when you are trying to add to values.
I also recommend adding a Debounce
to your script, so that the values aren't added more than once.
Assuming that your leaderstats is located in the Player's character, this is what the script should look like:
local PartTouch = 1 local Debounce = false local Players = game:GetService("Players") local Cooldown = 1 -- Can be changed to how much of a cooldown you want before the part can be touched again. This is not related to changing values in the leaderstats. local function PartTouched(Collision) if not (Debounce) then Debounce = true local Humanoid = Collision.Parent:FindFirstChildWhichIsA("Humanoid") if (Humanoid) then -- Verify that whatever touched this part has a humanoid. local Player = Players:GetPlayerFromCharacter(Collision.Parent) if (Player) then -- Verify that whatever touched this part is a player and has a humanoid. local Leaderstats = Player.Character.leaderstats local Keys = Leaderstats:WaitForChild("keys keys") Keys.Value += 1 end end wait(Cooldown) Debounce = false end end workspace.Part.Touched:Connect(PartTouched)
Hope this works for you.