I made a block, and it doesn't work even though it should

I've made a block called "repeat after" and here is the code:
Collection of cool new blocks script pic (1)
But for some reason it doesn't work. It's supposed to be a loop that says "repeat after" with a spot for a predicate after, and the space that a loop normally has. It doesn't work for some reason, either starting before the predicate is true or simply just not doing anything, even when the predicate is true. What's going on?

the 'boolean' input is unevaluated, meaning it would report a block, not a true/false value. Just put a call block around the variable:
image

Okay!

Thank you so much!

Nice idea :slight_smile:
I'm thinking that maybe it should be called forever after though

Good idea!