May I ask why you are inputting speed * delta time into the scale value of the add movement input? Unless you’re doing something different, that is normally used to directly plug in a scalar axis value of -1 to 1. The reason being you can set a control in your project/engine settings -> input, such as MoveRight having two keys mapped to D and A, with D making MoveRight have an output axis value of 1.0 and A having an output of -1, none of the keys being pressed would output zero or both pressed output zero. The MoveRight mapped control would be plugged into the scale value of Add Movement Input, the result being it actually would let you move left or right. You can see this in action in the default setup sidescroller character blueprint or third person/first person character blueprint.
This can be seen and better described here which I recommend you read: Setting Up Character Movement | Unreal Engine Documentation
If you just want your character to constantly move in one direction such as in an endless runner, just set the scale value to be a literal float of 1.0.
I noticed you seem to be wanting to have it so the further the distance the player travels, the faster he runs, by looking at your block of if statements. Might I suggest a much cleaner approach would be to instead do a float map range unclamped or float map range clamped, such as seen here:
All you would have to do is call the set RunSpeed(after you’ve updated the distance traveled) which would cause it to update the RunSpeed dependent on the current distance traveled. Keep in mind these are just made up variable names as an example, you’d then plug RunSpeed into the Set Max Walk Speed of the character movement component.