How to bypass the 30 block limit:
Use more programs.
Let's say you want to build a program that uses 40 blocks, and you have also found a way to split it into 2 different functions, with 20 blocks in each function.
so you put each function in a separate program (F1 & F2)
But you can't directly start F1 from F2 because then you have 40 blocks running at the same time for some milliseconds.
Instead you build a 3rd program with maximum 10 blocks that switches from 1 program to another depending on a variable or something.
From both F1 & F2 you call the switch function instead of calling the other function directly, and instantly kill the current program; the switch might need a small delay so the kill function has certainly run first.
And Tadaaaa!
You are now actually running a 50 block program, that behaves like the 40 block program you originally wanted to build.
There's a much easier solution:
However my current tests are... problematic.
For some reason I get the 30 blocks warning when I start the Switch from F1, even though the combined block amount should be 27.
Maybe Automate check things like this before the program runs?
I have several programs close to the block limit with no problems.
However I can only run 1 of them at the same time.
But I can for example run 2 programs with 10 blocks each at the same time.
Search tag: [SN]