is that like the command inserter in byob?
Offline
When you want to access things like the ScratchStackFrame, ScratchProcess and so on (like the if/else and C blocks do) in the selector associated to your block (that selector must be declared in ScratchProcess), you have to say that it is a special form. By declaring your block as a special form, it will be evaluated by ScratchProcess>>evaluateSpecialForm, which will call the selector you've defined in ScratchProcess. If you don't, then your block will be evaluated by evaluateWithArgs: which will call the selector you've defined in ScriptableScratchMorph or one of its subclasses. Take a look at ScratchProcess>>evaluateCommandFor: to see how it differentiates these 2 kinds of blocks.
Offline