I'm trying to use DataStore2 to save a folder. I've previously had trouble with saving folders with the normal Datastore, so there may be something wrong with what I'm doing. This is my code:
local DataStore2 = require (1936396537)
local e = {}
game.Players.PlayerAdded:Connect(function(player)
local PetsDataStore = DataStore2("PetsDataStoree", player)
local Folder = Instance.new("Folder")
Folder.Parent = player
Folder.Name = "Pets"
local function petUpdate(value)
e = PetsDataStore:Get(value)
for _, pet in ipairs(e) do
local PetValue = Instance.new("BoolValue")
PetValue.Parent = Folder
PetValue.Name = pet
end
end
petUpdate(e)
PetsDataStore:OnUpdate(petUpdate)
end)
game.ReplicatedStorage.DataUpdate.OnServerEvent:Connect(function(player, value, DataType)
local DataStore = DataStore2(DataType, player)
if DataType == "PetsDataStoree" then
local Pets = player.Pets
local Pet = Instance.new("BoolValue")
--Pet.Name = value
Pet.Parent = Pets
local ee = {}
for _, v in ipairs(Pets:GetChildren()) do
table.insert(ee, v.Name)
end
DataStore:Set(ee)
end
end)
Also a 2nd script inside of a local script, inside of a gui button
local PetsTable = {"Dog"}
script.Parent.MouseButton1Click:Connect(function()
game.ReplicatedStorage.DataUpdate:FireServer(PetsTable, "PetsDataStoree")
end)
The purpose of this is: when the gui is clicked, it adds the pet into the pet data store, which is then supposed to save. The problem is, everytime I click the gui, it multiplies whatever is inside the pets folder by 2. When it saves, it then saves half of what was previously showed in the folder. I'm not sure why this is happening, it's just supposed to add 1 value into the table everytime I click the gui. Is there anything wrong with this script, or am I not using it right? Any help is appreciated, thanks!

1 comment
Sorry about the "e" tables, I was changing those for testing purposes.