local Module = require(game.ServerStorage.Tools)
Tools = Module.SimpleNames
local DataStoreService = game:GetService("DataStoreService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local DataStore = DataStoreService:GetDataStore("CandySimulatorGameStoreDevAlpha30")
local DataTable = {}
local AutosaveInterval = 60
local AutosaveTick = 0
local PlayerList = Instance.new("Folder")
PlayerList.Name = "PlayerList"
PlayerList.Parent = ReplicatedStorage
game.Players.PlayerAdded:Connect(function(Player)
local PlayerKey = Player.UserId
local PlayerFolder = Instance.new("Folder")
PlayerFolder.Name = Player.Name
PlayerFolder.Parent = PlayerList
local PlayerData = DataStore:GetAsync(PlayerKey)
if not PlayerData then
DataTable[Player] = {
Level = 1,
currentEXP = 0,
Cash = 0,
AlphaPlayer = 1,
}
for i = 1, #Tools do
table.insert(DataTable[Player],tostring(Tools[i]))
end
DataTable[Player].CandyCorn = true
print (DataTable["CandyCorn"])
DataStore:SetAsync(PlayerKey, DataTable[Player])
wait(2.5)
Player:Kick("New Data Has Been Made Please Rejoin")
else
DataTable[Player] = PlayerData
end
local RealLevel = Instance.new("NumberValue")
RealLevel.Name = "RealLevel"
RealLevel.Value = DataTable[Player]["Level"]
RealLevel.Parent = PlayerFolder
local RealEXP = Instance.new("NumberValue")
RealEXP.Name = "RealEXP"
RealEXP.Value = DataTable[Player]["currentEXP"]
RealEXP.Parent = PlayerFolder
local MaxEXP = Instance.new("NumberValue")
MaxEXP.Name = "MaxEXP"
MaxEXP.Value = RealLevel.Value * 10 + 70
MaxEXP.Parent = PlayerFolder
local RealCoins = Instance.new("NumberValue")
RealCoins.Name = "RealCoins"
RealCoins.Value = DataTable[Player]["Coins"]
RealCoins.Parent = PlayerFolder
wait(1)
local Config = Instance.new ("Configuration")
Config.Name = "ToolsOwned"
Config.Parent = Player
local a = Instance.new ("Configuration")
a.Name = "Hidden"
a.Parent = Player.Backpack
a = Instance.new ("StringValue")
a.Name = "CurrentTool"
a.Parent = Config.Parent
for i = 1, #Tools do
a = Instance.new ("BoolValue")
a.Name = Tools[i]
a.Parent = Config
print (DataTable[Player][tostring(Tools[i])])
a.Value = DataTable[Player][tostring(Tools[i])]
end
while wait() do
MaxEXP.Value = RealLevel.Value * 10 + 70
if RealEXP.Value >= MaxEXP.Value then
RealEXP.Value = 0
RealLevel.Value = RealLevel.Value + 1
MaxEXP.Value = RealLevel.Value * 10 + 70
end
wait(1)
AutosaveTick = AutosaveTick + 1
if AutosaveTick >= AutosaveInterval then
AutosaveTick = 0
DataTable[Player]["Level"] = PlayerFolder:FindFirstChild("RealLevel").Value
DataTable[Player]["currentEXP"] = PlayerFolder:FindFirstChild("RealEXP").Value
DataTable[Player]["Coins"] = PlayerFolder:FindFirstChild("RealCoins").Value
DataStore:SetAsync(PlayerKey, DataTable[Player])
end
end
end)
game.Players.PlayerRemoving:Connect(function(Player)
local PlayerKey = Player.UserId
local PlayerFolder = PlayerList:FindFirstChild(Player.Name)
if PlayerFolder then
DataTable[Player]["Level"] = PlayerFolder:FindFirstChild("RealLevel").Value
DataTable[Player]["currentEXP"] = PlayerFolder:FindFirstChild("RealEXP").Value
DataTable[Player]["Coins"] = PlayerFolder:FindFirstChild("RealCoins").Value
DataStore:SetAsync(PlayerKey, DataTable[Player])
PlayerFolder:Remove()
end
end)
1 comment
You can't do DataTable[Player], but you could do DataTable["Player"] or DataTable.Player