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

[URGENT] Doesnt 2x on touch if gamepass owned?

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)

1 answer

✓ Accepted answer

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

1 comment

0

Thanks

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