Jump action not leaping when the character changes position from the Y axis

Whenever a character goes up a hill or simply jumps and presses the action, the leap doesn’t leap upwards. What’re some ways I can fix this?
https://gyazo.com/09dffc495c5dde623671089373c4739b
Code:

local function jump(mode)
	plr.Character.Humanoid.JumpPower = 100 + 7 * (mode and 1 or 0)
	plr.Character.Humanoid.WalkSpeed = 40
	plr.Character.Humanoid.Jump = true
	wait(0.75 + 0.75 * (mode and 1 or 0))
	plr.Character.Humanoid.WalkSpeed = 20
	plr.Character.Humanoid.JumpPower = 50
end

I’ve tried BodyVelocity but I had issues with colliding with models.