Arm position not replicating to the server

Here’s my script:

local function setArm()
	local char = players.LocalPlayer.Character
	local arm = char.RightUpperArm
	local torso = char.UpperTorso
	local motor = arm:FindFirstChild("RightShoulder")
	local offset = CFrame.new(1.5, .25, 0)
	motor.Enabled = false
	
	arm.CFrame = torso.CFrame:ToWorldSpace(offset)
	arm.CFrame = CFrame.lookAt(arm.Position, mouse.Hit.Position) * CFrame.Angles(math.rad(90), math.rad(90), 0)
end

Some context: This script disables the motor6ds (on the client) in the right arm and welds everything together. (With weldconstraints created on the client). Why won’t this replicate if it’s a change set to the player’s character? Do I have to give the player network ownership of their character? I thought they already had this.