matanits1 was your timer set to one-shot?
The other option is to check the system time with a singleton outside of the main scene tree that keeps processing (pause_mode = always) and then check the time elapsed vs the time the game started the pause.
var _elapsed = 0 ### holder for value you will check
var _startTime : int = 0 ## holder for "start time" which checks system's "atomic" clock
const _endTime = 10000 ## 10 * 1000 milliseconds = 10 seconds
## tie this to your "pause" function, as this will log your "start" on the timer
func _timeLog():
if _startTime == 0:
_startTime = get_ticks_msec()
## then if pausing happens, we watch the atomic clock, and "empty" the value when done
func _process(delta):
if get_tree().paused == true:
_elapsed = get_ticks_msec() ## elapsed time updates each frame
else:
_elapsed = 0
## check start time vs how much has passed then when it hits the target time, unpause
var _difference = _elapsed-_startTime
if _difference >= _endTime:
_startTime = 0
get_tree().paused == false