I’m trying to make a model serializer/deserializer that saves, but it’s not letting me save dictionaries.
local ss = {}
ss.__index = ss
local dss = game:GetService("DataStoreService"):GetDataStore("Serializer")
function ss.new(model : Model, save : boolean?)
local self = setmetatable({model = model}, ss)
if save ~= nil and save == true then self.save = true end
return self
end
function ss:serialize()
local objs = self.objects
local serialized_objs = {}
for _,v in pairs(self.model:GetChildren()) do
serialized_objs[v.Name] = {
ClassName = v.ClassName,
Name = v.Name,
Size = v.Size,
Position = v.Position,
Transparency = v.Transparency,
Parent = v.Parent
}
end
self.serialized_objs = serialized_objs
if self.save then dss:SetAsync("Serializer", self.serialized_objs) end --where the error occurs
--print(self.serialized_objs)
end
function ss:deserialize()
assert(dss:GetAsync("Serializer"), "Nothing to deserialize")
assert(self.save, "Save mode not enabled")
print(dss:GetAsync("Serializer"))
--[[
local m = Instance.new("Model")
for _,v in pairs(dss:GetAsync("Serializer")) do
m.Name = v.Parent.Name
local p = Instance.new(v.ClassName)
p.Name = v.Name
p.Size = v.Size
p.Position = v.Position
p.Transparency = v.Transparency
p.Parent = game.Workspace[v.Parent.Name]
end
]]
end
return ss