pcpunch59 I'll be honest, I don't use timers for things like this unless it's like a cutscene. Attaching the timer to process is probably the cause as @cybereality said.
Personally, I make a value that changes every frame and once it "empties," I do the logic change.
I program in GDScript, but maybe you'll get the jist of how I do it. It's essentially a manual timer but you're controlling every step of the logic. Give it a clear start and end. Have the value fill in process until your bool flips then stop. Note I am exporting these values to the editor so you can make fine tuned adjustments.
var _timeElapsed = 0
export var _timeGoal = 100
export var _timeRate = 0.5
var _canTrigger = false
## process loop for "filling" value/time
func _process(_delta):
if !_canTrigger:
var _timeMath = _timeElapsed+_timeRate
_timeElapsed = _timeMath
### this step controls the logic
if _timeElapsed = _timeGoal:
_canTrigger = true
That's how I apply it. I am sure you are clever enough to figure it out. 😉