Does anyone know how to fix it? Godot reads timer instance as a null one.

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Sor_lord

I used random generation of value in one of my project and when i tried to use that in my timer node it worked perfectly at first, but later it crushed and said that it was an null instance, when i used just timer instance. I tried to rewrite code (the part responsible for it, I mean), delete and add the timer node and restart the godot. I didn’t restart the compuer though. Can anyone help me fix it?
my code is:

 extends KinematicBody2D

var rng2 = RandomNumberGenerator.new()
var rng = RandomNumberGenerator.new()
var offset = Vector2.AXIS_Y
var direction = Vector2.AXIS_X
var velocity = Vector2.ZERO
var left = Vector2.LEFT
var right = Vector2.RIGHT
var down = Vector2.DOWN
export var health = 1
var turn = Turn
var diection = "right"
var speed_multiplayer = 0.1
var speed = 0.5
var death_effect_sound = false


onready var Scoree = $"/root/Score"
onready var winn = $"/root/WinnDetector"
onready var animplay = $SoundPlayer
onready var tamir = $AttackTimerr

signal higher_score


func _ready():
	rng.randomize()
	var my_random_number = rng.randf_range(6.0, 12.0)
	tamir.start(my_random_number)
	offset += 2
	velocity.x = 1
	health = rng2.randf_range(1.0, 2.0)


func _physics_process(delta):
	if health <= 0:
		create_death_effect()
	move_and_collide(velocity)
	if diection == "right":
		velocity.x = speed
	elif diection == "left":
		velocity.x =0 - speed




func create_death_effect():
	var Death_effect = load("res://Enemy/Death Effect Enemy.tscn")
	var df = Death_effect.instance()
	var world = get_tree().current_scene
	get_parent().add_child(df)
	df.global_position = global_position
	Scoree.score += 5
	winn.enemy_count -= 1
	death_effect_sound = true
	queue_free()





func _on_Hurtbox_area_entered(area):
	emit_signal("higher_score")
	health -= 1
	var explosion = load("res://Effect/Explosion.tscn")
	var ex = explosion.instance()
	var world = get_tree().current_scene
	get_parent().add_child(ex)
	ex.global_position = global_position
	animplay.play("Hit")

func _on_Area2D_area_entered(area):
	speed = speed + speed * speed_multiplayer
	global_position.y += 3
	if diection == "left": 
		diection = "right"
	elif diection == "right":
		diection = "left"
	


func _on_KillTimer_timeout():
	queue_free()


func _on_AttackTimer_timeout():
	var my_random_number = rng.randf_range(6.0, 12.0)
	tamir.start(my_random_number)
	var Bullet = load("res://Enemy/Enemy Bullet.tscn")
	var bullet = Bullet.instance()
	var world = get_tree().current_scene
	get_parent().add_child(bullet)
	bullet.global_position = global_position
	animplay.play("attack")

the error was

Attempt to call a function 'start' in base 'null instance' on a null instance
:bust_in_silhouette: Reply From: Rhombazoid

Your start function is called by tamir, so we need to investigate why tamir is null.

onready var tamir = $AttackTimerr

Are there supposed to be two R’s on timer?