trust me, rings are based on this topic i see no reason why can't use thismuch much much much more than just custom blocks. for example:define give me scratch
when I receive [add block v]and then, you can do something like this:
ask [which block do you want to add?] and wait
if <(answer) = [move forwards]> then
set [script v] to (join (script) ({move (10) steps} :: grey ring))
else
...
end
when I receive [go v]to allow the user to create and run their own script.
run (script) :: control