Does Roblox have a limit to how far away you can place things?

Like, I have a part 10,000,000 studs away, but whenever I playtest it gets deleted and I spawn mid-air.

Is it below your -500 stud destroy parts limit?
Look into games like this that explain long distance floating point error rendering too. Break ROBLOX (Floating Point) - Roblox

Nope, its position is 0 -8 10000000

Is Anchored set to false?

The baseplate is automatically anchored, I just moved the baseplate.

After some testing, it appears that the limit is between 2^127 and 2^128 (or 170,141,183,460,469,231,731,687,303,715,884,105,728 and 340,282,366,920,938,463,463,374,607,431,768,211,456 respectively) due to floating point overflow.

However, you shouldn’t go very far from the origin point due to precision loss. For example, a part at (0,0,1000000), while still able to be rendered, is extremely warped, and the camera does not turn smoothly. And once you go past a certain distance (let’s say, 100M+ studs from origin), it’s impossible to make out the shape of the part.

If you’re trying to create “worlds” that are in the workspace, but cannot be seen from another “world”, I recommend using an Atmosphere instance in lighting and setting the density to a number based on the size of your worlds.

Well the issue is that the baseplate isn’t loading… and it’s 10M studs to the side.

Well, make sure the part is anchored. You could also try outputting the position of the baseplate every physics update to seen when the part is updated and where it moves to.

Here’s a script I made to achieve that:

local part = script.Parent
local runService = game:GetService("RunService")
local prevPos = Vector3.new(0,0,0)

runService.Stepped:Connect(function()
	local partPos = part.Position
	local difference = (partPos-prevPos).Magnitude
	if difference >= 0.01 then
		print(`Current Position: {partPos}\n Previous Position: {prevPos}\n Change: {difference}`)
	end
	prevPos = partPos
end)

Thanks, but where do I put this script?

You should put it inside of the part that is causing issues, as indicated by the part variable at the beginning.

Sounds like it’s probably not loading in before your avatar does.
How are you putting the player on it?
Try pressing Run instead of Play and see if it’s there.