I can't figure out why the timer node won't start

Probably because Game.opoints in not greater or equal than 5 😉
Try to put a print statement into that if block to see if it gets executed at all.

  • Key replied to this.

    Key Then the timer is not set up correctly or its signal is not properly connected to the signal handler.

    Key I have done that, it is executing

    Did you also put a print statement inside _on_Timer_timeout() ?

    One potential problem is you're starting Timer too frequently. _physics_process() runs 60 times per second. If Game.opoints reaches 5 and remains >= 5, then you're starting Timer 60 times per second. If Timer's wait_time is greater than 1/60 of a second, Timer will be restarted before it can timeout.

    That problem could be prevented by checking that Timer.time_left <= 0.0 before starting it.

    I use a different method for spawning enemies. In _ready(), I start a Timer that has wait_time = 1.0 and one_shot = false, so that it repeats once per second. In its timeout handler, I check other conditions to determine whether to spawn an enemy or do nothing.