Timer

Ref: Timer

A timer simply counts to zero and then emits a timeout signal:

func ready():
    var my_timer = Timer.new()
    self.add_child(my_timer)
    my_timer.timeout.connect(_on_timer_timeout)
    my_timer.wait_time = 10
    my_timer.start()

# This would be the timeout.
func _on_timer_timeout():
    print("Time to panic!!!")

The quick way to get a timer without instancing:

my_timer = SceneTree.create_timer()
my_timer.timeout.connect(_on_timer_timeout)
my_timer.start(10) # set 10s wait time.

Timers are affected by Engine.time_scale unless ignore_time_scale is true:

my_timer.ignore_time_scale = true