Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
2

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

Asked by
Rynappel 212 Moderation Voter
5 years ago
Edited 5 years ago

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

Log in to vote
1
Answered by 5 years ago
Edited 5 years ago

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
0
Thanks Rynappel 212 — 5y
Ad

Answer this question