extends Area3D @export var dps: float @export var damage_timer: Timer var damage_targets: Array[Player] func _ready() -> void: if multiplayer.is_server() == false: return body_entered.connect(on_body_entered) body_exited.connect(on_body_exited) await get_tree().process_frame await get_tree().process_frame $Idle.multiplayer_play() $MultiplayerAudio3D.multiplayer_play() func damage(): for target in damage_targets: target.take_damage(int(dps*damage_timer.wait_time)) func on_body_entered(body: Node3D): if body is Player: damage_targets.append(body) func on_body_exited(body: Node3D): if body is Player: damage_targets.erase(body)