Character wont move after replacing Tick by Timer C++

I have basic TopDown project with custom moving logic (just custom speed and direction culculation).
Character (ACharacter) Tick method contains moving logic:

GetCharacterMovement()->MaxWalkSpeed = speed;
AddMovementInput(direction);

According to performance advises I create Timer(0.2 second iteration) and mov Tick logic to Timer function.
After that character wont move.

What is the problem in this case?

Is the function you’ve bound to the timer an UFUNCTION()? Because it needs to be one.

You didn’t share code snippet with the timer so the question is if the function is being called by the timer at all? You can check it by using breakpoints or by printing some debug text to make sure your timer is calling the function in the first place.

Sorry I missed it.
Timer function is working. Actually it has cursor move logic too and cursor reacts on actions (but with little freezes).
I think problem somehow connected with different rate of Tick/Timer and function AddMovementInput ( some inside UE movement logic)

Yes Timer function hast UFUNCTION annotation and it’s working.