local players = game:GetService(“Players”);
local RunService = game:GetService(“RunService”);
local DataService = require(script:WaitForChild(“DataService”));
PlayerData = {};
local MetaData = {};
MetaData.__index = MetaData
DataService:SetDataStore(“DataStorejj4”);
function MetaData:Join(player)
local pdata = {
Bux = 9000000,
AcceptDonates = true,
Items = {},
RAP = 0,
ItemRecieved = false,
GamePasses = {
NewYears = false,
},
ForWipe = {
RecievedRapRare = false,
RecievedBuxRare = false,
RecievedCasesRare = false,
},
Upgrades = {
Bux = {
Upgrade = 1,
Cost = 500,
},
CasesPerOpen = {
Cases = 1,
Cost = 6,
}
};
};
local data = DataService:GetData(player.UserId)
if data then
PlayerData[player.UserId] = data
end
if not data then
if player.UserId == -1 then
pdata = DataService:GetData("300319320")
else
PlayerData[player.UserId] = pdata
end
end
end
function MetaData:Save(player)
local success, errormessage = pcall(function()
DataService:SetData(player.UserId, PlayerData[player.UserId])
end)
if success then
return true
end
return false
end
function MetaData:remove(player, attempt)
local DataSaved = self:Save(player)
if not DataSaved then
if (not attempt or attempt < 5) then
if (not attempt) then attempt = 1; else attempt += 1; end
return self:remove(player, attempt)
else
print(string.format("After trying 5 times to save %s's data, it failed to save.", player.Name));
return;
end
else
PlayerData[player.UserId] = nil
print(string.format("Successfully saved %s's data!", player.Name))
end
end
function MetaData:get(player)
local pdata = {
Bux = 1000,
AcceptDonates = true,
Items = {},
RAP = 0,
ItemRecieved = false,
GamePasses = {
NewYears = false
},
Upgrades = {
Bux = {
Upgrade = 1,
Cost = 500,
},
CasesPerOpen = {
Cases = 1,
Cost = 4,
},
};
};
repeat RunService.Heartbeat:Wait() until PlayerData[player.UserId] --// This is still unacceptable. - WingedDash
if not PlayerData[player.UserId].WeeklyCasesOpened then
PlayerData[player.UserId].WeeklyCasesOpened = 0
end
if not PlayerData[player.UserId].GaveHim then
PlayerData[player.UserId].GaveHim = false
end
if not PlayerData[player.UserId].Gems then
PlayerData[player.UserId].Gems = 0
end
if not PlayerData[player.UserId].Opening then
PlayerData[player.UserId].Opening = 1
end
return PlayerData[player.UserId]
end
return setmetatable(PlayerData, MetaData);