So I have this script, and when you touch a part, its supposed to + 20 of the ingame currency Jump, if they have a gamepass, and if they do not have a gamepass, then it will + 10 of the ingame currency, but It doesnt work and I have no idea why, can somebody please help me. This is URGENT. Thank you merry christmas
local debounce = true script.Parent.Touched:Connect(function(partThatTouched) local humanoid = partThatTouched.Parent:FindFirstChildWhichIsA("Humanoid") --Humanoid if humanoid then local player = game.Players:FindFirstChild(partThatTouched.Parent.Name) --Finds player local PlrStatsJump = player.leaderstats:FindFirstChild("Jump") if debounce then debounce = false if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(partThatTouched.UserId, 7549262) then PlrStatsJump.Value = PlrStatsJump.Value + 20 -- Gamepass wait (2) debounce = true else PlrStatsJump.Value = PlrStatsJump.Value + 10 -- No Gamepass wait (2) debounce = true end end end end)
Also, the output says theres something wrong on line 10, (this is a script not a local script)
The issue is you have partThatTouched.UserId as the first Parameter in the market place service function, most likely, the part that touched is a body part. But you have the parts userId which is nil since parts don’t have user id’s. To make it work, you need a players user ID, so to do that, change PartThatTouched (on line 10) to
game.Players:GetPlayerFromCharacter(hit.Parent).UserId