i tried to do it myself but it did not worked so i asked help in discord. and well @TwinPotatoes sent me link with this one https://scriptinghelpers.org/questions/79236/my-datastore-works-if-the-valuechanges-1by1-but-not-when-it-changes-like-1000at-a-time-how-do-i-fix#73930 well i remade it to my wantings and it does not work could i get some help?
local DsService = game:GetService("DataStoreService") local Stats = DsService:GetDataStore("PlayerSettings") local Players = game.Players local DefaultData = { ["FieldOfView"] = 70, ["MenuBorderColor"] = "Blue", } local sessionData = {} Players.PlayerAdded:Connect(function(plr) local data = Stats:GetAsync(plr.UserId) or DefaultData local PlayerSettings = Instance.new("Folder") PlayerSettings.Parent = plr PlayerSettings.Name = "PlayerSettings" for key, value in pairs(data) do local valueObject if type(value) == "string" then valueObject = Instance.new("StringValue") elseif type(value) == "number" then valueObject = Instance.new("NumberValue") end valueObject.Parent = PlayerSettings valueObject.Name = key valueObject.Value = value end sessionData[plr.UserId] = data end) Players.PlayerRemoving:Connect(function(plr) Stats:SetAsync(plr.UserId, sessionData[plr.UserId]) end) while true do for _, plr in pairs(game.Players:GetPlayers()) do Stats:SetAsync(plr.UserId, sessionData[plr.UserId]) end wait(60) end