class_name Weapon extends Node3D var stats: WeaponStats var attachments: Array[Attachment] func init_weapon(stats: WeaponStats): self.stats = stats; func attach(newAttachment: Attachment)-> void: attachments.append(newAttachment)