I’m curious about how you are using the Y value. It seems this might be resetting your pattern earlier than you are intending. As I’m reading it, Script 1 : Line 5 is advancing the pattern every 6 executions of the script, and Script 1 : Line 6 is resetting the pattern every 24 executions, so you would only be getting through the first 4 values in your pattern. You could simplify a bit and just rely on the pattern’s own looping capabilities and eliminate the need to use Y. The scene should work exclusively triggered by Script 1. My thought for Script 2 beyond getting it all in sync was that it seemed a fun addition to reset it at odd times and be helpful in testing, but it shouldn’t be necessary at the end of each loop. I wound up adding it to my init script so that the whole things starts in sync.
I do think script 1 should have a P.N 0 line. If you expanded your scene later and used more scripts and patterns, another script could call a different pattern and you could end up referring to P.HERE and P.NEXT of a different pattern.
I tried the early version out a couple nights back. If it’s any help here’s where I landed:
INIT :
SCRIPT 2 // sets X and p.n 0 location
TR.TIME A 25 // just a value that worked for me
SCRIPT 1:
P.N 0
Z ER P.HERE 12 X // this looked a little clearer to me
IF Z : TR.PULSE A
X MOD ADD X 1 12
IF EZ MOD X 6 : P.NEXT
SCRIPT 2: // for testing or playful resets
P.N 0
P.I 0
X 0