Signals between Node and Resource

Godot Version

4.3

Question

CONTEXT:

i have a player who’s speed i want to change for a brief time with items. i have a scalable item effect system which has each item effect as a resource. someone on reddit told me that i can do this with signals, but im not figuring it out. this is what the code looks like in that item effect resource

class_name ItemEffectSpeed extends ItemEffect

signal change_speed_please(speed)

@export var speed_duration : float = 1.0
@export var speed_factor : float = 2.0
@export var sound : AudioStream
var old_speed


func use() -> void:
	
	change_speed_please.emit(speed_factor)
	await Engine.get_main_loop().create_timer(speed_duration).timeout
	change_speed_please.emit(old_speed)
 

how do i go about receiving this signal in the player script?

You need to connect the signal from the emitting object to the signal handler function using connect()

1 Like

thank you so much