I tried switching out who was part0 and 1, and it didn't work very well. The player that is welded to is always able to control the movement.
User = script.Parent.Parent.Parent hurt = true function touch(hit) if hurt == true then humanoid = hit.Parent:FindFirstChild("Humanoid") player = game.Players:GetPlayerFromCharacter(hit.Parent) local torso = player.Character:FindFirstChild("UpperTorso") local weld = Instance.new("Weld") weld.Name = "BackWeld" weld.Part0 = User.HumanoidRootPart weld.Part1 = torso weld.C0 = CFrame.new(0,2,-2) weld.Parent = torso end hurt = false end script.Parent.Touched:connect(touch)