You don't need to make a special scene that holds all the particle effects you need. Instead, you can just instantiate a new instance of the particle effect you need. This approach allows multiple copies of the same particle effect to exist at once.
To do this, you can just load in the particle effects and store them as a variable on each script that needs that particle effect. To do this, you could create a new variable like:
var particles = preload("res://Particles.tscn")
Then, to spawn these particles at a certain position, you could call:
var new_particles = particles.instance()
new_particles.translation = position
level_scene.add_child(new_particles)
particles
holds the scene for the particles you want to spawn. new_particles
holds the instance of our newly spawned particles. position
is a Vector3 representing where you want to spawn the particles. level_scene
is the root node of the level scene.
The place where you spawn the particles doesn't necessarily have to be the level scene, but most projects I've seen are structured in a way where it makes sense to spawn the particles there, because that's where the player is parented to.