class_name HitStop extends Node const DURATION := 0.03 var running := false var previous_scale := 1.0 var deadline_usec := 0 func _ready() -> void: process_mode = Node.PROCESS_MODE_ALWAYS func trigger() -> void: if running: return previous_scale = Engine.time_scale running = true deadline_usec = Time.get_ticks_usec() + 30000 Engine.time_scale = 0.05 func _process(_dt: float) -> void: if running and Time.get_ticks_usec() >= deadline_usec: restore() func restore() -> void: if not running: return Engine.time_scale = previous_scale running = false func _exit_tree() -> void: restore()