Predicate alternatives to hats

you know you have
when green flag clicked when I am [ V] when I receive [ V] @>
what if they had predicate alternatives
when green flag clicked :: predicate when I am [ V] :: predicate when I receive [ V] :: predicate
also to know, it is true only WHEN it happens, not during, false any other times

why though?

Maybe to sense if the sprite has been double tapped, or if the green flag was pressed while the project was running? Idk, I'm just trying to think up of reasons

That will stop all running scripts though, so nothing can check for the green flag in the first place.

(message) = [%greenFlag] <touching [mouse pointer V] :: sensing> and <mouse down?> (message) = []

Was it changed from __shout__go__?

No

It was always __shout_go__

However now it's this

Unfortunately it seems like the message block doesn't report this if you just click the green flag, it only works if you broadcast the green flag.

I guess I misremembered.

so you can make this
{when $octagon-2-255-0-0 clicked :: hat control} :: define hat report <when i am [stopped v] :: control>
and for other things, also if hats report true or false, why when ringing them and calling them, they dont report false or true, instead they report nothing

If you make hat blocks that trigger code when the stop button is pressed, that basically destroys the whole point of having a stop button at all.

then why is there when i am [stopped V] block then

When you press the stop sign, it will turn into a square, signifying that no hat blocks or custom hat blocks are active (or something like that), meaning that that block won't trigger. I think that block triggers when the sprite is stopped via a stop block. Also, the Snap Kart! script pic is a bit buggy; it doesn't work 100%

the real reason is that Snap! wanted to let robots stop their motors when the stop sign is clicked, so when you press the stop sign you can add code that makes a robot stop.

The only time it doesn't work is when your code is more than one frame.