The simplest way I can think of is to somehow dynamically generate a different key for each instance of the show -- but I've never tried that and it may or may not be possible. (Maybe a machine or player variable counter interpolated into the key?)
Thinking on it a bit more, a hack-y solution could be to use random_event_player.
https://missionpinball.org/latest/config/random_event_player/Pick a number of max instances of the show you want to support (probably 3-4?) and then in some game mode declare:
```
random_event_player:
my_trigger_event:
force_all: true
disable_random: true
events:
- spawn_my_show_instance_1
- spawn_my_show_instance_2
- spawn_my_show_instance_3
show_player:
spawn_my_show_instance_1:
my_show_name:
key: my_show_wave_1
loops: 0
show_tokens:
...etc
spawn_my_show_instance_2:
my_show_name:
key: my_show_wave_2
loops: 0
show_tokens:
...etc
spawn_my_show_instance_2:
...etc
```
Because they all have the same priority, you also probably want to use "stop" instead of "off" so that each wave releases the light from control when turning off, rather than setting to 000000 level.
Random_event_player has the setting "disable_random" which we set true here -- we want the order to always be 1, 2, 3, because every time a set completes it could choose an out-of-order repeat and cause a random in-progress show to be replaced, rather than the oldest one.