This post is solved.
Even if set to Massless, at least one part of every assembly will have some mass so that physics don’t fall apart. In the case of a player, that is the player’s HumanoidRootPart.
If you are trying to keep a platform at a certain height, perhaps you could try a BodyPosition with a Position of (0,height,0)
and a MaxForce of (0,some_large_number,0)
.
Instead of solving unnecessary math problems to apply enough force to keep the part up on the height you want, you can use BodyPosition
instead, to keep the part in place with combination of BodyGyro
to prevent part from flipping. I made an example code below, I also commented it.
local FloatingPart = script.Parent -- Your part that you want to apply the body movers to
local Height = 10 -- The height in studs to keep the floating part on
local BodyPosition = Instance.new("BodyPosition") -- Create a body position object
BodyPosition.MaxForce = Vector3.new(0, math.huge, 0) -- Do not allow to apply more than 0 force on x and z, but allow to apply infinite force on y
BodyPosition.Position = Vector3.new(FloatingPart.Position.X, Height, FloatingPart.Position.Z) -- Apply force on x, keep it in position of the part, and same with z, but have static y force (aka our height)
BodyPosition.Parent = FloatingPart -- Put the body position object into the floating part
local BodyGyro = Instance.new("BodyGyro", FloatingPart) -- Make and put body gyro into the floating part, this will keep the part from flipping on all axis (x, y, z). If you don't want this, you can remove this line
Like always, if you have any questions about any part of the code, you can ask one!