Saving and Loading furniture position not working

I’m having a problem with saving and loading in a players furniture placement

Item placed


When I leave and rejoin, it spawns it slightly above the ground

local function TableToCFrame(tab)
	return CFrame.new(table.unpack(tab))
end

-- Saving position
ItemData.Position = {
	furnitureItem.Position[1].Value,
	furnitureItem.Position[2].Value,
	furnitureItem.Position[3].Value,
	furnitureItem.Position[4].Value,
	furnitureItem.Position[5].Value,
	furnitureItem.Position[6].Value,
	furnitureItem.Position[7].Value,
	furnitureItem.Position[8].Value,
	furnitureItem.Position[9].Value,
	furnitureItem.Position[10].Value,
	furnitureItem.Position[11].Value,
	furnitureItem.Position[12].Value
}
-- Load
local CFrameData = {
	Info[1].Value,
	Info[2].Value,
	Info[3].Value,
	Info[4].Value,
	Info[5].Value,
	Info[6].Value,
	Info[7].Value,
	Info[8].Value,
	Info[9].Value,
	Info[10].Value,
	Info[11].Value,
	Info[12].Value,
}
-- Set position
NewItem:SetPrimaryPartCFrame(PlayersInterior.PrimaryPart.CFrame:ToWorldSpace(TableToCFrame(CFrameData)))

The second index [2] being the Y value of the CFrame saves and loads as 1. So it’s not changing, so idk why the model is being created a few studs above the floor

Here’s a thought:

Try using TranslateBy() instead of SetPrimaryPartCFrame(). My guess is that SetPrimaryPartCFrame() tries to keep the chair from clipping into the floor, which is why it ends up floating in the air. TranslateBy() may prevent that.

I think you may be thinking of MoveTo().

Is anything in the house changing, such as the floor thickness or something?

Try manually setting the CFrame to see what happens.

Try walking through your code using the debugger.