This code doesnt work at all

i put this in the help category cuz idk if this is a but or not.

this code should run even when the flag isnt pressed
{always :: control hat} :: hat
report <<true>>

always :: control hat
say [Hello!] // Should make the sprite say hello immediately even when the green flag isnt pressed

it doesnt work

This is indeed not a bug, it's just a slight misfeature.

By default, custom hat blocks run once when the report true, but then they don't run until it's false and then true again. This can be changed to run the script forever if it's true just by right clicking the hat block in the block defibition and selecting "condition"

Even when you do this, your script may still not run when the green flag is pressed, but that's only if the stop sign is a square. Basically, when you have custom hat blocks, the stop sign will turn into a square when you click it, which means that no hat blocks will run. Press it again and it'll turn into an octagon allowing hat blocks to run. This is just a safety measure to make sure there isn't some script that's always running (it also helps when coding).

ooooohhhhhhhh thanks