Diagonal boost not working

Hey there! Currently developing my 2.5D platformer! and i’ve ran into a slight problem, it seems as for some reason my sideways up boost isn’t working? It seems like it only moves a tiny amount. heres a video of the bug, seems as Up and sideways are being executed but the player isn’t being moved?

Video

Code
--services
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")

--player vars
local client = Players.LocalPlayer
local char = script.Parent
local hum = char:WaitForChild("Humanoid")
local animation = script:WaitForChild("Animation")
local animator:Animator = hum:WaitForChild("Animator")
local animTrack = animator:LoadAnimation(animation)
animTrack.Priority = Enum.AnimationPriority.Action
animTrack.Looped = false
local hasLanded = true
local boosted = false

--vars
local upwardsForce = .15 --as percent of sidewards force
local boostMagnitude = 1850
local debounce = tick()
local debounceTime = .5
local boostKey = Enum.KeyCode.Q
local hotkeys = {
	["W"] = Vector3.new(0,.50,0),
	["A"] = Vector3.new(-1,0,0),
	["S"] = Vector3.new(0,-.50,0),
	["D"] = Vector3.new(1,0,0),
}

--the function to get a normalized vector3 of the boost direction
local function getUnitDirection(): Vector3
	--set up the return var
	local resultVec3 = Vector3.zero
	local isSideways = false
	local isUp = false
	local issidewaysup = false
	
	for _, input: InputObject in pairs(UserInputService:GetKeysPressed()) do
		if hotkeys[input.KeyCode.Name] then
			--add up the vector forces based on the pressed hotkeys (W/A/S/D)
			resultVec3 += hotkeys[input.KeyCode.Name]
		end
		
		print(input.KeyCode.Name)
		
		if (input.KeyCode == Enum.KeyCode.A or input.KeyCode == Enum.KeyCode.D and (not isSideways) and input.KeyCode ~= Enum.KeyCode.W) then
			isSideways = true
			print("sidewaystrue")
		end
		
		if input.KeyCode.Name == "W" then
			isUp = true
			print("isup")
		end
	end

	if resultVec3.Magnitude > 0 then
		--return the normalized vector
		return resultVec3.Unit, isUp, isSideways, issidewaysup
	else
		--return (0,0,0) if no direction vector can be normalized
		return Vector3.zero, isUp, isSideways, issidewaysup
	end
end

local function boost()
	--apply the boost force
	local direction, isUp, isSideways, issidewaysup = getUnitDirection()
	
	local boostVector = Vector3.zero
	
	if isUp then 
		boostVector = getUnitDirection() * boostMagnitude * .5 
	elseif isSideways then
		boostVector += Vector3.FromAxis(Enum.Axis.Top) * upwardsForce * boostMagnitude + getUnitDirection() * boostMagnitude * 1.2
	end
	char.PrimaryPart:ApplyImpulse(boostVector)
	
	--update the vars
	boosted = true
	hasLanded = false
	--play the animation
	animTrack:Play()
end

UserInputService.InputBegan:Connect(function(input: InputObject, gameProcessedEvent: boolean)
	--ignore input on UIs, chat, etc.
	if gameProcessedEvent then return end
	
	--only boost if the designated hotkey was used
	if input.KeyCode == boostKey and tick() - debounce > debounceTime and not boosted  then
		boost()
	end
end)

hum:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
	if hum.FloorMaterial and not hasLanded then
		animTrack:Stop()
		hasLanded = true
		boosted = false
		debounce = tick()
	end
end)