Good Day,
I am having issues using Database 2, from Roblox Studio or the published game the datastore 2 is not saving data, when the player leaves the game all data is lost, it works fine while playing the game.
I have SaveInStudio bool set and allow API/HTTP enabled.
local DataStore2 = require(game.ServerScriptService:WaitForChild("Modules"):WaitForChild("DataStore2"))
local FormatNum = require(game.ReplicatedStorage:WaitForChild("Modules"):WaitForChild("FormatNum"))
DataStore2.Combine("MasterKey",
"coins",
"backpackvalue",
"backpacksize",
"backpackused",
"backpacktype",
"tooltype",
"inmine")
game.Players.PlayerAdded:Connect(function(player)
local PlayerGui = player.PlayerGui
-- Setup Stats
local folder = Instance.new("Folder", player)
folder.Name = "leaderstats"
-- Coins
local datacoins = DataStore2("coins", player)
local coins = Instance.new("IntValue", folder)
coins.Name = "coins"
-- backpackvalue
local databackpackvalue = DataStore2("backpackvalue", player)
local backpackvalue = Instance.new("IntValue", folder)
backpackvalue.Name = "backpackvalue"
-- backpacksize
local databackpacksize = DataStore2("backpacksize", player)
local backpacksize = Instance.new("IntValue", folder)
backpacksize.Name = "backpacksize"
-- backpackused
local databackpackused = DataStore2("backpackused", player)
local backpackused = Instance.new("IntValue", folder)
backpackused.Name = "backpackused"
-- backpacktype
local databackpacktype = DataStore2("backpacktype", player)
local backpacktype = Instance.new("StringValue", folder)
backpacktype.Name = "backpacktype"
-- tooltype
local datatooltype = DataStore2("tooltype", player)
local tooltype = Instance.new("StringValue", folder)
tooltype.Name = "tooltype"
-- inmine
local datainmine = DataStore2("inmine", player)
local inmine = Instance.new("IntValue", folder)
inmine.Name = "inmine"
---------------------------------
-- Load Data
---------------------------------
-- coins
if datacoins:Get() ~= nil then
coins.Value = datacoins:Get()
--PlayerGui.Status.Main.FrameCoins.coinsValue.Text = FormatNum.Simplify(coins.Value)
--PlayerGui.Status.Main.FrameCoins.coins.Text = tostring(coins.Value)
else
coins.Value = 0
--PlayerGui.Status.Main.FrameCoins.coins.Text = tostring(coins.Value)
end
-- backpackvalue
if databackpackvalue:Get() ~= nil then
backpackvalue.Value = databackpackvalue:Get()
else
backpackvalue.Value = 0
end
-- backpacksize
if databackpacksize:Get() ~= nil then
backpacksize.Value = databackpacksize:Get()
else
backpacksize.Value = 10
end
-- backpackused
if databackpackused:Get() ~= nil then
backpackused.Value = databackpackused:Get()
else
backpackused.Value = 0
end
-- backpacktype
if databackpacktype:Get() ~= nil then
backpacktype.Value = databackpacktype:Get()
else
backpacktype.Value = "backpack"
end
-- tooltype
if datatooltype:Get() ~= nil then
tooltype.Value = datatooltype:Get()
else
tooltype.Value = "pickaxe"
end
-- inmine
if datainmine:Get() ~= nil then
inmine.Value = datainmine:Get()
else
inmine.Value = 1
end
---------------------------------
-- Save data
---------------------------------
-- Coins
coins.Changed:Connect(function()
datacoins:Set(coins.Value)
end)
-- backpackvalue
backpackvalue.Changed:Connect(function()
databackpackvalue:Set(backpackvalue.Value)
end)
-- backpacksize
backpacksize.Changed:Connect(function()
databackpacksize:Set(backpacksize.Value)
end)
-- backpackused
backpackused.Changed:Connect(function()
databackpackused:Set(backpackused.Value)
end)
-- backpacktype
backpacktype.Changed:Connect(function()
databackpacktype:Set(backpacktype.Value)
end)
-- tooltype
tooltype.Changed:Connect(function()
datatooltype:Set(tooltype.Value)
end)
-- inmine
inmine.Changed:Connect(function()
datainmine:Set(inmine.Value)
end)
-------------------------------------------------------------------------------------------------------------
-- Coins
-------------------------------------------------------------------------------------------------------------
local function setCoins(player, coins)
player.leaderstats.coins.Value = player.leaderstats.coins.Value + coins
return player.leaderstats.coins.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-Coins-RF").OnServerInvoke = setCoins
local function getCoins(player)
return player.leaderstats.coins.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-Coins-RF").OnServerInvoke = getCoins
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-- backpackvalue
-------------------------------------------------------------------------------------------------------------
local function setbackpackvalue(player, backpackvalue)
player.leaderstats.backpackvalue.Value = player.leaderstats.backpackvalue.Value + backpackvalue
return player.leaderstats.backpackvalue.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-backpackvalue-RF").OnServerInvoke = setbackpackvalue
local function getbackpackvalue(player)
return player.leaderstats.backpackvalue.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-backpackvalue-RF").OnServerInvoke = backpackvalue
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-- backpacksize
-------------------------------------------------------------------------------------------------------------
local function setbackpacksize(player, backpacksize)
player.leaderstats.backpacksize.Value = player.leaderstats.backpacksize.Value + backpacksize
return player.leaderstats.backpacksize.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-backpacksize-RF").OnServerInvoke = setbackpacksize
local function getbackpacksize(player)
return player.leaderstats.backpacksize.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-backpacksize-RF").OnServerInvoke = getbackpacksize
------------------------------------------------------------------
-- backpackused
------------------------------------------------------------------
local function setbackpackused(player, backpackused)
player.leaderstats.backpackused.Value = player.leaderstats.backpackused.Value + backpackused
return player.leaderstats.backpackused.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-backpackused-RF").OnServerInvoke = setbackpackused
local function getbackpackused(player)
return player.leaderstats.backpackused.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-backpackused-RF").OnServerInvoke = getbackpackused
------------------------------------------------------------------
-- backpacktype
------------------------------------------------------------------
local function setbackpacktype(player, backpacktype)
player.leaderstats.backpacktype.Value = player.leaderstats.backpacktype.Value + backpacktype
return player.leaderstats.backpacktype.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-backpackused-RF").OnServerInvoke = setbackpackused
local function getbackpacktype(player)
return player.leaderstats.backpacktype.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-backpacktype-RF").OnServerInvoke = getbackpacktype
------------------------------------------------------------------
-- tooltype
------------------------------------------------------------------
local function settooltype(player, backpacktype)
player.leaderstats.tooltype.Value = player.leaderstats.tooltype.Value + tooltype
return player.leaderstats.tooltype.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-tooltype-RF").OnServerInvoke = settooltype
local function gettooltype(player)
return player.leaderstats.tooltype.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-tooltype-RF").OnServerInvoke = gettooltype
------------------------------------------------------------------
-- inmine
------------------------------------------------------------------
local function setinmine(player, inmine)
player.leaderstats.inmine.Value = player.leaderstats.inmine.Value + inmine
return player.leaderstats.inmine.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Set-tooltype-RF").OnServerInvoke = settooltype
local function getinmine(player)
return player.leaderstats.inmine.Value
end
game.ReplicatedStorage:WaitForChild("RemoteFunctions"):WaitForChild("Get-inmine-RF").OnServerInvoke = getinmine
end)