How can I create a timer that counts up and stops when reaching end of level?

Did you try to use Event Tick node? It will fire up every tick and also gives you the time passed since the last tick. You could then have two variables declared in blueprint:

  1. ElapsedTime - float
  2. CounterActive - boolean

On each Event Tick, you add the delta time to ElapsedTrime if CounterActive==true. When you hit the level end trigger, you set CounterActive to FALSE to stop the counting and possibly reset it to zero.

NOTE: As far as I know, the Timer in blueprint is used in a similar way as javascript setTimeout function. ie It will count down the set time and then fire a function/execute nodes. It does not mean it acts as a StopWatch. This is useful for doing some action after a delay (for example wait 10 seconds after player is dead and then show a Menu…)