I have a Revive system and when you carry a player it sets the network ownership every heartbeat because it uses AlignPosition to mimic a weld without all the other issues that come with welds, when network ownership isn’t constantly set it lags behind.
I do this process on the server however I do wonder if I should do it on the Client > Server via UnreliableRemoteEvents
disableCollisions(player, character)
local CarryAttachment0 = PlayerWhoTriggeredHumanoidRootPart:WaitForChild("RootAttachment", 10):Clone()
CarryAttachment0.Name = "CarryAttachment0"
CarryAttachment0.Position = Vector3.new(0, 0, 1)
CarryAttachment0.Parent = PlayerWhoTriggeredHumanoidRootPart
local CarryPosition = Instance.new("AlignPosition")
CarryPosition.Name = "CarryPosition"
CarryPosition.Mode = Enum.PositionAlignmentMode.TwoAttachment
CarryPosition.ApplyAtCenterOfMass = false
CarryPosition.Attachment0 = RootAttachment
CarryPosition.Attachment1 = CarryAttachment0
CarryPosition.MaxForce = math.huge
CarryPosition.Responsiveness = 200
CarryPosition.Parent = humanoidRootPart
local AlignOrientation = Instance.new("AlignOrientation")
AlignOrientation.Name = "Align_PlayerOrientation"
AlignOrientation.Mode = Enum.OrientationAlignmentMode.TwoAttachment
AlignOrientation.Attachment0 = RootAttachment
AlignOrientation.Attachment1 = CarryAttachment0
AlignOrientation.Responsiveness = 200
AlignOrientation.Parent = humanoidRootPart
maid[player.Name.."UpdateNetworkOwnership"] = RunService.Heartbeat:Connect(function()
for _, v in pairs(character:GetChildren()) do
if v:IsA("BasePart") then
v:SetNetworkOwner(playerWhoTriggered)
end
end
end)
Which would be best for performance doing it on the Server or Client > Server?
(One thing I am concerned about though is how many players that are going to be firing the remote event especially since its every heartbeat)