So like Right now all this script does is save the Position and Rotation of the Part When placed I Want it the save the color and load the color like it does with the Rotation and Position Without it Like Coloring all of the part's the same color. Any idea how to? Code-
local players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local DataStore = DataStoreService:GetDataStore("DataBaseV2")
local plot
local function GetPlot(plr)
for i, plt in pairs(workspace.Plots:GetChildren()) do
if plt then
if plt.Plot.Owner.Value == plr then
plot = workspace.Plots:FindFirstChild(plt.Name)
break
end
end
end
end
local function Save(plr)
local key = "plr-"..plr.UserId
local save = {}
for i, obj in pairs(plot.PlacedObjects:GetChildren()) do
if obj then
table.insert(save, {
["Name"] = obj.Name,
["CFS"] = {
["X"] = plot.Plot.CFrame:ToObjectSpace(CFrame.new(obj.PrimaryPart.CFrame.p)).X;
["Y"] = plot.Plot.CFrame:ToObjectSpace(CFrame.new(obj.PrimaryPart.CFrame.p)).Y;
["Z"] = plot.Plot.CFrame:ToObjectSpace(CFrame.new(obj.PrimaryPart.CFrame.p)).Z;
["Color1"] = obj.Outside.Color;
["R"] = obj.PrimaryPart.Orientation.Y
}
})
end
end
local success, err = pcall(function()
DataStore:SetAsync(key, save)
end)
if not success then
warn("Failed to over-write data( "..tostring(err))
return
end
end
local function Load(plr)
wait(1)
GetPlot(plr)
local key = "plr-"..plr.UserId
local savedData
local success, err = pcall(function()
savedData = DataStore:GetAsync(key)
end)
if not success then
warn("Failed to read data( "..tostring(err))
return
end
if savedData then
for i, data in pairs(savedData) do
if data then
local SaveModel = game.ReplicatedStorage.Models:FindFirstChild(data.Name):Clone()
if SaveModel then
SaveModel.PrimaryPart.Transparency = 1
SaveModel:SetPrimaryPartCFrame(plot.Plot.CFrame * CFrame.new(data.CFS.X,data.CFS.Y,data.CFS.Z) * CFrame.Angles(0, math.rad(data.CFS.R), 0))
end
SaveModel.Parent = plot.PlacedObjects
end
end
else
Save(plr)
end
end
game.ReplicatedStorage.Events.Save.OnServerEvent:Connect(Save)
players.PlayerAdded:Connect(Load)
players.PlayerRemoving:Connect(Save)
