Creating a variable, list or block is a matter of clicking on the Make a … button. You’ll see a dialog that has a place for a name, and a dropdown (signified by an arrow) next to the word Options. Under options, you can specify any incoming arguments and add labels to make the block name more readable. Variables can be named appropriately
For example, if you create a block named moveForward, you could add a label " at ", a number variable named Speed, another label " for ", and a number variable named Seconds.This would result in a block that reads:
moveForward at [Speed] for [Seconds]
The variables Speed and Seconds could be used internally in the block as local variables. They are not visible outside of the block.
Lists are just what they seem and act like a dynamic array. These data structures are not implemented for export to mBot programs and will only work from within mBlock.
Variables are just that, named storage although they can be manipulated as strings in some cases. The export of variables during mBot program generation, however, is quite literal, so strings have to be surrounded by double quotes or the Arduino compiler will throw an error.
One final thing. Avoid spaces in variable/list/block names. When you get to the point of using the Arduino IDE, the spaces are literally exported and will cause compilation errors. This is true for any programming language that isn’t graphically based (at least as far as I’m aware).
Hope this helps out.