Trying to make a function that welds any Player1 to any Player0, so that player0 is the only one able to move. The weld happens but no matter what I change, player0 gets stuck. Yes the parameters are meant to be put in that order. Changing weld parent or part order doesn't work. Any ideas

function weld(player1,player0)
    local part0, part1 = getFromChar(player0,"Head"), getFromChar(player1,"Head")
    if part0 and part1 then
        local weld = Instance.new("Weld")
        weld.Part0 = part0
        weld.Part1 = part1
        local cf = part0.CFrame:toObjectSpace(part1.CFrame)
        --same rotation but always 3 studs away
        weld.C0 = (cf-cf.p) + cf.p.unit * 3
        weld.Parent = part0
    end
end

no one answered so repost