The something I want to push is another player but, I want to make it the direction they are being pushed from is where the other player is looking. The main issue that I am having is the player is only being flung in a single direction and not relative to where the other player is looking. Hopefully that made sense, torso = HumanoidRootPart --torso for testing purposes

game.ReplicatedStorage.RemoteEventhammer.OnServerEvent:Connect(function(player,cframe,toPush)
	local sword = game.ServerStorage:WaitForChild("hammer")
	local character = player.Character
	local arm = player.Character:WaitForChild("Torso")
	local newsword = sword:Clone()
	local launch = Instance.new("BodyVelocity")
	local playerRoot = player.Character:FindFirstChild("HumanoidRootPart")

	newsword.CFrame = character.HumanoidRootPart.CFrame
	newsword.Parent = workspace
	local Y = Instance.new("Weld")
	Y.Part0 = arm
	Y.Part1 = newsword
	Y.Parent = Y.Part0

	local touchconn

	touchconn = newsword.Touched:Connect(function(hit)
		if hit.Parent:FindFirstChild("Humanoid") then
			if hit.Parent.Name ~= player.Name then
				hit.Parent.Humanoid.PlatformStand = true
				if(playerRoot and not playerRoot:FindFirstChild("launch") and hit.Parent.Torso and not hit.Parent.Torso:FindFirstChild("launch") and (playerRoot.Position - hit.Parent.Torso.Position).magnitude <= 10) then
					launch.MaxForce = Vector3.new(1000, 1000, 1000)
					launch.Velocity = (-hit.Parent.Torso.CFrame.lookVector) * 110
					launch.Parent = hit.Parent.Torso 
					hit.Parent.Humanoid:TakeDamage(15)
					wait()
					if touchconn ~= nil then touchconn:Disconnect() end
					newsword:Destroy()
					wait(2)
					hit.Parent.Humanoid.PlatformStand = false
					launch:Destroy()
				end
			end
		end
	end)
	wait(1)
	if touchconn ~= nil then touchconn:Disconnect() end
	newsword:Destroy()
end)