Yesterday I decided to work on a player carrying system, and I ran into trouble with the player’s carrying position not being updated to the carrier’s exact position. I found out it was the NetworkOwnership causing it not to update, and I’ve tried several methods of working around/finding other ways to create my carrying system, and none have achieved what I’m looking for.
if not target:GetAttribute("Carried") and not player_data.Carrying.Value then
-- Update Carrying State to Carrying.
player_data.Carrying.Value = target target:SetAttribute("Carried", true)
self:_auto_weld(target_hum, char.Torso, target_hum.RootPart, "CarryWeld")
for _, body_part in target:GetDescendants() do
if not body_part:IsA("BasePart") then continue end
body_part.Massless = true body_part.CollisionGroup = "NoCollision" body_part:SetNetworkOwner(player)
end
target_hum.PlatformStand = true
end
I havent tackled this exact issue before but here are a few ideas you can try out make sure youre calling SetNetworkOwner on unanchored BaseParts not anchored ones or welded to anchored parts Roblox will ignore or throw errors otherwise you might only need to set-ownership on the primary part of a model setting it on that should handle the whole assembly
if platform or seat constraints are involved auto ownership can change at runtime try reapplying ownership after those events or disable NetworkOwnershipAuto its a weird system and can flip back unexpectedly Id check the distance or event that causes ownership to reset and add a SetNetworkOwner nil or player call right after it no guarantees but hopefully one of these pointers helps narrow it down If you can share a minimal repro or the part of the code where ownership flips I might be able to dig deeper
try use
:SetNetworkOwnershipAuto(nil)
:SetNetworkOwner(nil or player)
I tried disabling NetworkOwnershipAuto but that didn’t seem to do anything also setting the networkowner to nil causes the carrier physics to be messed up.