How would I save plots? (Not full placing!)

Hi!
Right now I have a plot system, it doesn’t save though. I’m trying to get better at DataStores, but I still don’t know it very well yet. This is my Plot System.

local Player = game.Players.LocalPlayer

local PlayerGui = Player:WaitForChild("PlayerGui")
local BuildGui = PlayerGui:WaitForChild("Build")
local PlotGui = PlayerGui:WaitForChild("Plot")
--local PlayGui = PlayerGui:WaitForChild("Play_DevTest")

local PlotsFolder = game.Workspace:WaitForChild("Plots")

local PlotOn = 1

local function NewSaveSlot(ID, DataUsed, Name, Value)
	local Clone = PlotGui:WaitForChild("SaveSelect"):WaitForChild("Template",5):Clone()
	Clone.Parent = PlotGui:WaitForChild("SaveSelect"):WaitForChild("List")
	Clone.Visible = true
	Clone.Name = Name
	local Main = Clone:WaitForChild("Main")
	Main:WaitForChild("ID").Text = "Debug ID: "..ID
	Main:WaitForChild("ItemCount").Text = DataUsed.."% Data Used"
	Main:WaitForChild("PlotName").Text = Name
	Main:WaitForChild("Worth").Text = "Worth FP$"..Value
end
--[[
PlayerGui:WaitForChild("WelcomeScreen"):WaitForChild("MainScreen"):WaitForChild("Play").MouseButton1Click:Connect(function()
	--game:GetService("UserInputService").InputBegan:Connect(function(key)
	--	if key.KeyCode == Enum.KeyCode.Q then
	--PlayGui.Enabled = false
	task.wait(2)
	print("Play")
	PlotGui:WaitForChild("SaveSelect").Visible = true
	--	end
	--end)
end)
]]

PlotGui:WaitForChild("SaveSelect"):WaitForChild("NewBtn").MouseButton1Click:Connect(function()
	PlotGui:WaitForChild("SaveSelect").Visible = false
	PlotGui:WaitForChild("NameSelect").Visible = true
end)

PlotGui:WaitForChild("NameSelect"):WaitForChild("OK").MouseButton1Click:Connect(function()
	local Text = PlotGui:WaitForChild("NameSelect"):WaitForChild("Textbox").Text ~= "" and PlotGui:WaitForChild("NameSelect"):WaitForChild("Textbox").Text or Player.DisplayName.."'s Plot"
	if #Text > 50 then Text = string.sub(Text, 1, 50) end
	NewSaveSlot("FYTP-"..Player.UserId..math.random(11111,999999), "0", tostring(Text), "0")
	PlotGui:WaitForChild("NameSelect").Visible = false
	PlotGui:WaitForChild("SaveSelect").Visible = true
end)

Right now, I have the function NewSaveSlot. I’m planning on making them save by the ID, how would I do that?
Thanks!

1 Like

Does anybody have a solution to this?

Instancestore, it requires httpservice perms tho

It basically converts an instance to table so u can save it with datastore and it can load it back too

1 Like

How do I use it exactly?

I have asked this question in the past and this was the response I got, but I need to save unions, which InstanceStore cannot save, so how else would you save instances?

If InstanceStore is open source you could probably modify it to accommodate UnionOperation instances.

InstanceSotre isn’t an option for me, does anybody have a better way?

It depends on how your placeables are made, but if you store all the items somewhere like ReplicatedStorage, all you really need to save is the CFrame and name of the item to call it back and place it again.

I dont have any of the building done yet, I only want to save the slots.

Atleast better than creating a 200 block getproperty script