Im creating an rpg that uses datastore and since you can't save instances directly how would I create a string that represents an instance?
COMMUNITY QUESTION
How to create an string that represents an instance?
1 answer
Assuming you don't have to have instances that are too complex, you could just save an instance with its properties in a table, or even just the name of an instance.
Example:
--Structure: name = {className, parent, transparency, anchored, CanCollide, Size, CFrame)
items = {
"Name1" = {
"Part",
workspace,
0.5,
true,
false,
Vector3.new(5, 4, 2),
CFrame.new(0,1,0)
},
"Name2" = {
"Part",
workspace,
0.5,
true,
false,
Vector3.new(7, 2, 1),
CFrame.new(2,5,1)
}
}
Then just load the instances by iterating through them:
for name, tbl in pairs(items) do
newItem = Instance.New(tbl[1], tbl[2])
newItem.Transparency = tbl[3]
newItem.Anchored = tbl[4]
newItem.CanCollide = tbl[5]
newItem.Size = tbl[6]
newItem.CFrame = tbl[7]
end
If your instance can have only one set of preset properties, just put it in a folder in ServerStorage. Save the name of the instance and then just clone it from ServerStorage when required.
1 comment
0
This would be helpful if I was using smaller instances. The instances that I'm planning to save are complex weapon/item models with many unions and parts. Is there another way to do this for more complex items? Or would I have to use this method.
This discussion is preserved as it was. New answers, comments, and votes are closed.

1 comment
All you need to do is put the instance in ServerStorage, then clone it if the string that was saved is the correct one.