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

Gamepass is not adding moneys in leaderstat script?

Asked by 3 years ago

I have a gamepass for my game, that will add 10,000 money when bought. I have 2 others for 1,000 and 100 money. Currently the script, which is just my leaderstats script, wont add the money. How do I make the moneys add?

local datastore = game:GetService("DataStoreService")
local ds1 = datastore:GetDataStore("officialpointfortlolSaveSystem")

local gamepass_id1 = 18287787
local gamepass_id2 = 18287797
local gamepass_id3 = 18309443
local stat = "Changes"
local gamepass_stat1 = 100
local gamepass_stat2 = 1000
local gamepass_stat3 = 10000


game.Players.PlayerAdded:connect(function(plr)
    local folder = Instance.new("Folder", plr)
    folder.Name = "leaderstats"
    local gems = Instance.new("IntValue", folder)
    gems.Name = "Changes"

    gems.Value = ds1:GetAsync(plr.UserId) or 0
    ds1:SetAsync(plr.UserId, gems.Value)

    gems.Changed:connect(function()
        ds1:SetAsync(plr.UserId, gems.Value)

    local award3 = Instance.new("BoolValue", plr)
    award3.Name = "Award3"

        if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(plr.UserId, gamepass_id3) and plr.Award3.Value == false then 
            plr.Award3.Value = true
            gems.Value = gems.Value + gamepass_stat3
        end
    end)
end)

while wait(3) do
    for i, v in pairs(game.Players:GetChildren()) do
        if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(v.UserId, gamepass_id3) and v:WaitForChild("Award3").Value == false then
            v.Award1.Value = true
            v.leaderstats:FindFirstChild(stat).Value = v.leaderstats:FindFirstChild(stat).Value + gamepass_stat3            
        end
    end
end

game.ReplicatedStorage.re.OnServerEvent:Connect(
    function(player)
        player.leaderstats.Changes.Value += 1
    end
)

Answer this question