I made like a million errors so can someone explain them, so it doesn't happen again and then help me fix them. This script is made to save furniture and has other features too.
local Houses = workspace.Houses
local AvailableHouses = Houses.AvailibleHouses
local UsedHouses = Houses.UsedHouses
local DataStoreServide = game:GetService("DataStoreService")
local PlayerCarsDataStore = DataStoreServide:GetDataStore("ChosenCar")
local CurrentFurnature = DataStoreServide:GetDataStore("CurrentFurnature")
local FurnatureAnchor = DataStoreServide:GetDataStore("FurnatureAnchor")
local DefaultCar = "Sedan (red)"
game.Players.PlayerAdded:Connect(function(Player)
local ChosenHouse = AvailableHouses:FindFirstChildOfClass("Folder")
ChosenHouse.Name = Player.Name
ChosenHouse.Parent = UsedHouses
local Charachter = workspace:WaitForChild(Player.Name)
Charachter:MoveTo(ChosenHouse.Spawn.Position)
local playerFurnature = CurrentFurnature:GetAsync(Player.UserId) or nil
if playerFurnature ~= nil then
playerFurnature = game:GetService("HttpService"):JSONDecode(playerFurnature)
else
playerFurnature = nil
end
local furnatureModel = Instance.new("Model", ChosenHouse.Furnature)
furnatureModel.Name = "FurnatureGroup"
if playerFurnature ~= nil then
for key, value in pairs(playerFurnature) do
local createdItem = game.ReplicatedStorage:WaitForChild(key):Clone()
createdItem.Parent = furnatureModel
createdItem.CFrame = value
end
local anchorValues = FurnatureAnchor:GetAsync(Player.UserId) or nil
if anchorValues ~= nil then
local createdAnchor = Instance.new("Part", furnatureModel)
createdAnchor.Anchored = true
createdAnchor.Name = "Anchor"
createdAnchor.Position = anchorValues.Position
createdAnchor.Orientation = anchorValues.Orientation
createdAnchor.Size = anchorValues.Size
createdAnchor.Shape = Enum.PartType.Ball
createdAnchor.Transparency = 1
createdAnchor.CastShadow = false
createdAnchor.CanCollide = false
furnatureModel.PrimaryPart = createdAnchor
furnatureModel:MoveTo(ChosenHouse.FurnaturePosition.Position)
furnatureModel:PivotTo(ChosenHouse.FurnaturePosition.CFrame)
else
local createdAnchor = ChosenHouse.FurnaturePosition:Clone()
createdAnchor.Name = "Anchor"
createdAnchor.Parent = furnatureModel
furnatureModel.PrimaryPart = createdAnchor
furnatureModel:MoveTo(ChosenHouse.FurnaturePosition.Position)
furnatureModel:PivotTo(ChosenHouse.FurnaturePosition.CFrame)
end
end
game.ReplicatedStorage.Change.OnServerEvent:Connect(function(player, part, color)
if part == "Wall" then
for i, part in pairs(ChosenHouse.Wall:GetChildren()) do
part.Color = color
wait()
end
else
for i, part in pairs(ChosenHouse.Trim:GetChildren()) do
part.Color = color
wait()
end
end
end)
Player.CharacterAdded:Connect(function(Char)
Char:MoveTo(ChosenHouse.Spawn.Position)
end)
game.Players.PlayerRemoving:Connect(function(player)
local FG = ChosenHouse.Furnature.FurnatureGroup
print("A")
local Anchor = FG:WaitForChild("Anchor") --Stops working here, before i added wait for child, it was find first chind and it would resault in an error
print("A")
local AnchorProperties = {
Position = nil,
Orientation = nil,
Size = nil,
}
print("A")
AnchorProperties.Position = Anchor.Position
print("A")
AnchorProperties.Size = Anchor.Size
print("A")
AnchorProperties.Orientation = Anchor.Orientation
print("A")
script.Parent.HouseSave.Event:Fire(Player.UserId, AnchorProperties)
print("A")
Anchor:Destroy()
print("A")
local SavingItems = {}
print("B")
for i, item in pairs(FG:GetChildren()) do
print(tostring(item.Value.Value))
SavingItems[item.Name] = tostring(item.Value.Value)
print("ItemSaved")
end
print("All items saved")
print(SavingItems)
local EncodedSavedItems = game:GetService("HttpService"):JSONEncode(SavingItems)
print(EncodedSavedItems)
CurrentFurnature:SetAsync(Player.UserId, EncodedSavedItems)
if player == Player then
ChosenHouse.Name = "OpenHouse"
ChosenHouse.Parent = AvailableHouses
end
end)
game.ReplicatedStorage.SpawnCar.OnServerEvent:Connect(function()
local CarName = PlayerCarsDataStore:GetAsync(Player.UserId) or DefaultCar
local Car = game.ReplicatedStorage.Cars:FindFirstChild(CarName):Clone()
Car.Parent = workspace
Car:MoveTo(ChosenHouse.CarSpawn.Position)
end)
end)
