¿Por qué al usar un "joint" local con un objeto global el network owner se anula?

scripting

#1

He hecho un script local el cual tiene como objetivo interactuar con gravedad a objetos globales, funciona perfectamente y los demás pueden ver perfectamente como se actualiza la gravedad sin ningún problema. Pero aveces pasa que estando solo (Sin interrupción de otro jugador) al borrar el objeto de fuerza o joint local queda levitando el objeto (A pesar de que no tiene anchor) como si el network owner fuese nulo o algo así, mi pregunta es por qué sucede esto y como se podría solucionar.

Ejemplar de la función local de interacción:

function Interaccion(Parte)
if Datos.Sosteniendo then
Datos.Objeto.CanCollide = true
Datos.Objeto.Transparency = 0
for Numeral,Dato in pairs(Datos.Sosteniendo) do
if Numeral == 1 or Numeral == 2 then
Dato:disconnect()
else
Dato:Destroy()
end
end
Datos.Sosteniendo = nil
else
if Parte and Parte.Anchored == false and (Parte.Position - Datos.Camara.CFrame.p).magnitude < Distancia and Parte:FindFirstChild(“BodyPosition”) == nil then
Parte.CanCollide = false
if Parte.Material ~= Enum.Material.Glass then
Parte.Transparency = 0.5
end
local Gravedad = Instance.new(“BodyPosition”,Parte)
Gravedad.MaxForce = Vector3.new(Fuerza,Fuerza,Fuerza)
Gravedad.Position = (Datos.Camara.CFrame * CFrame.new(0,0,-5)).p
Gravedad.D = 300
Datos.Objeto = Parte
Datos.Sosteniendo = {
Datos.Camara.Changed:connect(function(Propiedad)
if Propiedad == “CFrame” then
Gravedad.Position = (Datos.Camara.CFrame * CFrame.new(0,0,-5)).p
if Parte.Parent == nil then
Interaccion()
end
end
end);
Parte.Changed:connect(function(Propiedad)
if Propiedad == “Name” then
Parte.Name = “Llave”
Interaccion()
end
end);
Gravedad;
}
end
end
end