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

I made a shop but my datastore does not register it when i buy something how to fix this issue?

Asked by
hokyboy 270 Moderation Voter
4 years ago

Hello developers/scripters hokyboy here with kinda a big issue, I made a data store and a script where u can buy stuff from a store the issue is when I buy stuff the data store does not register it because it does not print success and when u rejoin the game u don't have ur data

The datastore

local dsService = game:GetService("DataStoreService")
local ds = dsService:GetDataStore("DataStored")

local function statChange(playerId, views, subs, cash , diamonds,Pc,Montior)
    print("Stats Changed")
    local playerData = {views.Value, subs.Value, cash.Value, diamonds.Value, Pc.Value, Montior.Value}
    ds:SetAsync(playerId, playerData)
end

game.Players.PlayerAdded:Connect(function(plr)
    --NumberData--
    local folder = Instance.new("Folder",plr)
    folder.Name = "leaderstats"


    local Subs = Instance.new("IntValue",folder)
    Subs.Name = "Subs"


    local Views = Instance.new("IntValue",folder)   
    Views.Name = "Views"

    local Cash = Instance.new("IntValue",folder)   
    Cash.Name = "Cash"

    local Diamonds = Instance.new("IntValue",folder)   
    Diamonds.Name = "Diamonds"
    --Build Data--
    local Pc = Instance.new("IntValue",folder)
    Pc.Name = "Pc"

    local Montior = Instance.new("IntValue",folder)
    Montior.Name = "Montior"

    local playerData = ds:GetAsync(plr.UserId) or nil
    print(playerData)

    local playerData = ds:GetAsync(plr.UserId) or nil
    print(playerData)


    if playerData then
        Views.Value = playerData[1]
        Subs.Value = playerData[2]
        Cash.Value = playerData[3]
        Diamonds.Value = playerData[4]
        Pc.Value = playerData[5]
        Montior.Value = playerData[6]
    end
    Subs.Changed:Connect(function()
        print("Works")
        statChange(plr.UserId, Views, Subs, Cash , Diamonds,Pc,Montior,Keyboard,Mouse)
    end)    
    Views.Changed:Connect(function()
        statChange(plr.UserId, Views, Subs, Cash, Diamonds,Pc,Montior,Keyboard,Mouse)
    end)
  Cash.Changed:Connect(function()
        statChange(plr.UserId, Views, Subs, Cash, Diamonds,Pc,Montior,Keyboard,Mouse)
    end)
  Diamonds.Changed:Connect(function()
        statChange(plr.UserId, Views, Subs, Cash, Diamonds,Pc,Montior,Keyboard,Mouse)
    end)
Pc.Changed:Connect(function()
        statChange(plr.UserId, Views, Subs, Cash, Diamonds,Pc,Montior,Keyboard,Mouse)
    end)
Montior.Changed:Connect(function()
        statChange(plr.UserId, Views, Subs, Cash, Diamonds,Pc,Montior,Keyboard,Mouse)
    end)

end)



game:BindToClose(function()
wait(5) 
end)

The local script in my GUI

local Pcframe = script.Parent.Shopframe1

Pcframe.buy.MouseButton1Click:Connect(function()
    if game.Players.LocalPlayer.leaderstats.Pc.Value == 0 then
    game.Players.LocalPlayer.leaderstats.Cash.Value = game.Players.LocalPlayer.leaderstats.Cash.Value - 1000
    game.Players.LocalPlayer.leaderstats.Pc.Value = game.Players.LocalPlayer.leaderstats.Cash.Value + 1
    Pcframe.buy.Text = "Pc Maxed Out"
    Pcframe.buy.BackgroundColor3 = Color3.fromRGB(186, 0, 0)
    Pcframe.buy.Frame.BackgroundColor3 = Color3.fromRGB(147, 0, 0)
    end
end)

I wish my data store registered it but I do not know how can someone please help me If u need more information to add me on discord

Externalsight#7068

Answer this question