What custom reporter block look should I use in my project

Follows on from another post last month but now I've had more time to play and structure my thoughts

When using a python handler to listen out for Scratch 1.4 broadcasts and control Raspberry Pi pins and addon boards, I use two techniques:-

image

Basic method is to just enter a new message in the broadcast block but that means typing a complete new message for every pin off/on command, as shown in top row

A better way (if there were lots of different commands to be sent) is to use join blocks as shown in the 2nd row

Using Snap!, I can create custom join reporters with pull-down menus and make life easier and reduce syntax errors as shown below. Very nice :slight_smile:

image

But, I'm in a quandary as to how to present an equivalent reporter when it only returns a single string

Here are the options I've come up with

image

The 1st row shows the old Scratch way - just plain type in the value

2nd row shows a reporter with no label. No block (that I've seen) has no label so this is very un-Snap! like :frowning:

3rd row uses word. No primitive block uses that and there isn't one like it in a library (there is words but no word) but I feel it does visually signal, quite well, that it will return the word UnicornHAT.

4th row uses join. Join is well known for returning a string but I feel that since I'm not "joining" anything together, that it looks a bit silly.

5th row uses report. There is no existing report reporter block but there is the report command block so I think that this also visually signals quite well what it does.

So what do people think?

Which one should I use?

Or is there an existing library block that I should copy its look and then modify the copy to add my pull-down menu?

This isn't an answer to your question, but in the previous case and in this one, if the point is that only certain values are appropriate, you should mark the pulldown inputs as read-only. I find myself wondering why the join block has turned grey, otherwise.

I use no-label reporters for the identity function all the time, especially when I want to put a word into a list or numeric input field.

What is the general category of which "UnicornHAT" is an example? I would use the name (maybe you have to invent one) of the category as the name of the block.

Done

I'm just keeping them all grey while developing - intend them to be operator green on final

It just returns the text of whatever is visibly selected with the dropdown - it's to just offer the most common single words that my python program expects
e.g

I do wax and wane about whether to not have this single word reporter at all and just include a custom set AddOn to xxx command with its own pull-down menu instead.

But for completeness - I'd still need one for any other single word commands/values that my program will take in