Can Some One Help Me Fix Fly Script?

How do you add the camera lookvector so when flying your able to go up and down relative to the humanoid moving direction I been stuck on this for hours missing around with the camera cframes

https://i.gyazo.com/6fb40b0e8e632213dc4b52b895848849.mp4

if Check  then
		local BG = Instance.new("BodyGyro",HRP)
		BG.Name = "FlightRotation"
		BG.MaxTorque = Vector3.new(math.huge,math.huge,math.huge)
		BG.P = 100000
		
		local BV = Instance.new("BodyVelocity",HRP)
		BV.Name = "FlightPower"
		BV.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
		BV.Velocity =  Vector3.new(0,0,0)
		

		Hum.WalkSpeed = 10
		Hum.PlatformStand = true
		Hum.AutoRotate = false
		HRP.Velocity = Vector3.new(0,0,0)
		HRP.RotVelocity = Vector3.new(0,0,0)
		Hum:ChangeState(Enum.HumanoidStateType.Freefall)

		
		while true do
			wait()
			
			local CamAngle = Cam.CoordinateFrame:VectorToWorldSpace(Vector3.new(0,0,-1))
			
			BG.CFrame = CFrame.new(Vector3.new(0,0,0),CamAngle)
			BV.Velocity = Hum.MoveDirection * 50
		end

Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.

Step 1. Make Humanoid Root Part Look At Camera Direction
Step 2. Make the velocity direction go in the humanoidrootpart’s lookvector

i want the code to have inputs like wasd for movement not controlled by mouse

that would be super complicated you would probably need to see if player is pressing
W/A/S/D using UIS and move the force relative to the humanoids direction.

You can use this script as a reference: Flying Script