Well I am not getting any errors. When the part spawns the BodyPosition goes to 0, 0, 0 for some reason. The topos is defined, I have already tried printing it. The BodyPosition is also working because if I were to move the part upwards it would glide right back down. Any solutions? Around lines 13-17 is where I think the problem is.
local serverstorage = game:GetService("ServerStorage")
function clone(player, part, position, topos)
local magics = serverstorage.magicstuff
local thing = magics:FindFirstChild(part)
local magics2 = magics:GetChildren()
for _, stuff in pairs(magics2) do
if stuff.Name == part then
thing = stuff
end
end
if thing ~= nil then
local parts = thing:Clone()
parts.Parent = game.Workspace
parts.Position = Vector3.new(position)
local bp = parts.BodyPosition
bp.position = Vector3.new(topos)
else
print 'A part is not in magicstuff'
end
end
script.Parent.OnServerEvent:connect(clone)

2 comments
Sorry for the long title, it kept telling me to be specific.
The problem likely lies with the "topos" parameter in that it is not supplied correctly.