-- Save to DataStore local success, err = pcall(function() dataStore:SetAsync(keyName, dataToSave) end)
-- Rebuild from saved data for _, jsonData in ipairs(savedData) do local success, decoded = pcall(function() return game:GetService("HttpService"):JSONDecode(jsonData) end) if success and decoded then local newObj = Instance.new(decoded.ClassName) newObj.Name = decoded.Name -- Apply properties here (position, color, etc.) newObj.Parent = instance end end Roblox SaveInstance Script
for _, child in ipairs(instance:GetChildren()) do -- Clone the child so we can modify without affecting original local cloned = child:Clone() -- Remove unwanted properties (like network ownership, etc.) cloned.Parent = nil -- Store as a string (or keep as object and serialize) local success, serialized = pcall(function() return game:GetService("HttpService"):JSONEncode({ ClassName = cloned.ClassName, Name = cloned.Name, Properties = {} -- You'd expand this to save position, size, color, etc. }) end) if success then table.insert(dataToSave, serialized) else warn("Failed to serialize", child.Name) end end -- Save to DataStore local success, err =
-- Replace with your DataStore name local DATASTORE_NAME = "SaveInstanceStore" local dataStore = DataStoreService:GetDataStore(DATASTORE_NAME) -- Save to DataStore local success