So I’ve made my biggest datastore yet with Datastore2, however, after I added many values to save without tables as I was told Datastore2 puts them all in a table for you with the Datastore2.Combine() built-in function, however, even after doing it, I still have data throttling.
Here is the problematic piece of the code:
DataStore2.Combine("DATA", "Velo", "Level", "EXP", "Race","Class","MaxEXP","StatPoints","ManaStat","PhysicalStat","DefenceStat","SpiritStat","Key1","Key1Skill","Key2","Key2Skill","Key3","Key3Skill","Key4","Key4Skill","Key5","Key5Skill","Key6","Key6Skill","Key7","Key7Skill","Key8","Key8Skill","Key9","Key9Skill","Key0","Key0Skill")
Players.PlayerAdded:Connect(function(player)
local VeloStore = DataStore2("Velo", player)
local LevelStore = DataStore2("Level", player)
local EXPStore = DataStore2("EXP", player)
local RaceStore = DataStore2("Race", player)
local ClassStore = DataStore2("Class", player)
local MaxEXP = DataStore2("MaxEXP", player)
local StatPointsStore = DataStore2("StatPoints", player)
local ManaStatStore = DataStore2("ManaStat", player)
local PhysicalStatStore = DataStore2("PhysicalStat", player)
local DefenceStatStore = DataStore2("DefenceStat", player)
local SpiritStatStore = DataStore2("SpiritStat", player)
-- // Key Datastore \\ --
local Key1Store = DataStore2("Key1",player)
local Key1SkillStore = DataStore2("Key1Skill",player)
local Key2Store = DataStore2("Key2",player)
local Key2SkillStore = DataStore2("Key2Skill",player)
local Key3Store = DataStore2("Key3",player)
local Key3SkillStore = DataStore2("Key3Skill",player)
local Key4Store = DataStore2("Key4",player)
local Key4SkillStore = DataStore2("Key4Skill",player)
local Key5Store = DataStore2("Key5",player)
local Key5SkillStore = DataStore2("Key5Skill",player)
local Key6Store = DataStore2("Key6",player)
local Key6SkillStore = DataStore2("Key6Skill",player)
local Key7Store = DataStore2("Key7",player)
local Key7SkillStore = DataStore2("Key7Skill",player)
local Key8Store = DataStore2("Key8",player)
local Key8SkillStore = DataStore2("Key8Skill",player)
local Key9Store = DataStore2("Key9",player)
local Key9SkillStore = DataStore2("Key9Skill",player)
local Key0Store = DataStore2("Key0",player)
local Key0SkillStore = DataStore2("Key0Skill",player)
local Key1 = Instance.new("StringValue", skillInventory)
Key1.Value = Key1Store:Get("One")
Key1.Name = "Key1"
local SkillKey1 = Instance.new("StringValue", Key1)
SkillKey1.Value = Key1SkillStore:Get("N/A")
SkillKey1.Name = "SkillKey1"
local Key2 = Instance.new("StringValue", skillInventory)
Key2.Value = Key2Store:Get("Two")
Key2.Name = "Key2"
local SkillKey2 = Instance.new("StringValue", Key2)
SkillKey2.Value = Key2SkillStore:Get("N/A")
SkillKey2.Name = "SkillKey2"
local Key3 = Instance.new("StringValue", skillInventory)
Key3.Value = Key3Store:Get("Three")
Key3.Name = "Key3"
local SkillKey3 = Instance.new("StringValue", Key3)
SkillKey3.Value = Key3SkillStore:Get("N/A")
SkillKey3.Name = "SkillKey3"
local Key4 = Instance.new("StringValue", skillInventory)
Key4.Value = Key4Store:Get("Four")
Key4.Name = "Key4"
local SkillKey4 = Instance.new("StringValue", Key4)
SkillKey4.Value = Key4SkillStore:Get("N/A")
SkillKey4.Name = "SkillKey4"
local Key5 = Instance.new("StringValue", skillInventory)
Key5.Value = Key5Store:Get("Five")
Key5.Name = "Key5"
local SkillKey5 = Instance.new("StringValue", Key5)
SkillKey5.Value = Key5SkillStore:Get("N/A")
SkillKey5.Name = "SkillKey5"
local Key6 = Instance.new("StringValue", skillInventory)
Key6.Value = Key6Store:Get("Six")
Key6.Name = "Key6"
local SkillKey6 = Instance.new("StringValue", Key6)
SkillKey6.Value = Key6SkillStore:Get("N/A")
SkillKey6.Name = "SkillKey6"
local Key7 = Instance.new("StringValue", skillInventory)
Key7.Value = Key7Store:Get("Seven")
Key7.Name = "Key7"
local SkillKey7 = Instance.new("StringValue", Key7)
SkillKey7.Value = Key7SkillStore:Get("N/A")
SkillKey7.Name = "SkillKey7"
local Key8 = Instance.new("StringValue", skillInventory)
Key8.Value = Key8Store:Get("Eight")
Key8.Name = "Key8"
local SkillKey8 = Instance.new("StringValue", Key8)
SkillKey8.Value = Key8SkillStore:Get("N/A")
SkillKey8.Name = "SkillKey8"
local Key9 = Instance.new("StringValue", skillInventory)
Key9.Value = Key9Store:Get("Nine")
Key9.Name = "Key9"
local SkillKey9 = Instance.new("StringValue", Key9)
SkillKey9.Value = Key9SkillStore:Get("N/A")
SkillKey9.Name = "SkillKey9"
local Key0 = Instance.new("StringValue", skillInventory)
Key0.Value = Key0Store:Get("Zero")
Key0.Name = "Key0"
local SkillKey0 = Instance.new("StringValue", Key0)
SkillKey0.Value = Key0SkillStore:Get("N/A")
SkillKey0.Name = "SkillKey0"
local SkillInfo = {SkillKey1.Value,SkillKey2.Value,SkillKey3.Value,SkillKey4.Value,SkillKey5.Value,SkillKey6.Value,SkillKey7.Value,SkillKey8.Value,SkillKey9.Value,SkillKey0.Value}
local KeyInfo = {Key1.Value,Key2.Value,Key3.Value,Key4.Value,Key5.Value,Key6.Value,Key7.Value,Key8.Value,Key9.Value,Key0.Value}
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo,KeyInfo)
-- // OnUpdate Functions For Keys \\ --
Key1Store:OnUpdate(function(newKey)
Key1.Value = newKey
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key1SkillStore:OnUpdate(function(newSkill)
SkillKey1.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key2Store:OnUpdate(function(newKey)
Key2.Value = newKey
end)
Key2SkillStore:OnUpdate(function(newSkill)
SkillKey2.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key3Store:OnUpdate(function(newKey)
Key3.Value = newKey
end)
Key3SkillStore:OnUpdate(function(newSkill)
SkillKey3.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key4Store:OnUpdate(function(newKey)
Key4.Value = newKey
end)
Key4SkillStore:OnUpdate(function(newSkill)
SkillKey4.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key5Store:OnUpdate(function(newKey)
Key5.Value = newKey
end)
Key5SkillStore:OnUpdate(function(newSkill)
SkillKey5.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key6Store:OnUpdate(function(newKey)
Key6.Value = newKey
end)
Key6SkillStore:OnUpdate(function(newSkill)
SkillKey6.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key7Store:OnUpdate(function(newKey)
Key7.Value = newKey
end)
Key7SkillStore:OnUpdate(function(newSkill)
SkillKey7.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key8Store:OnUpdate(function(newKey)
Key8.Value = newKey
end)
Key8SkillStore:OnUpdate(function(newSkill)
SkillKey8.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key9Store:OnUpdate(function(newKey)
Key9.Value = newKey
end)
Key9SkillStore:OnUpdate(function(newSkill)
SkillKey9.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
Key0Store:OnUpdate(function(newKey)
Key0.Value = newKey
end)
Key0SkillStore:OnUpdate(function(newSkill)
SkillKey0.Value = newSkill
game.ReplicatedStorage.Remotes.SkillInformation:FireClient(player,SkillInfo)
end)
I believe that’s the most problematic piece of the code as it’s many values without a table, the reason I’ve done it without a table is that I need to detect when each one changes.
Any help is appreciated,
Thank you for your time ![]()