I did exactly as ben did but in a different order. everything compiled, I played the game and the log said it cant read the tankmovementcomponent even though it was wired up. I had to comment out the uproperty and recompile like ben did then re-add the uproperty then compile again. everything then worked correctly without any changes to the code. My lesson here is to dont always rely on unreal to make sense but atleast it still give me a warning in the log.
Thank you for the tip!