extends MultiplayerSpawner func _ready() -> void: spawn_function = request_spawn Session.dynamic_objects_spawner = self func request_spawn(data: Variant) -> Node: if is_multiplayer_authority() == false: return if data.has("type") == false or data.has("spawn_name") == false: return Node.new() match data.type: "weapon": var weapon: DroppableWeapon = Registry.weapons[data.spawn_name].dropped_scene.instantiate() weapon.apply_central_impulse(data.impulse) weapon.weapon.ammo = data.ammo weapon.weapon.remaining_ammo = data.remaining_ammo weapon.slot = Registry.weapons[data.spawn_name].slot for key in data.keys(): if key == "impulse" or key == "ammo" or key == "remaining_ammo": continue weapon.set(key,data[key]) return weapon "projectile": var projectile: RigidBody3D = Registry.spawnable_objects[data.spawn_name].instantiate() projectile.apply_central_impulse(data.impulse) for key in data.keys(): if key == "impulse": continue projectile.set(key,data[key]) return projectile "object": var object: Node3D = Registry.spawnable_objects[data.spawn_name].instantiate() for key in data.keys(): object.set(key,data[key]) return object _: return Node.new()