Blocks

Special blocks

Robot Robot block - place this in the world to create a new robot for yourself.

Tool Tool block - Used to compile/save function (right or left click on Function block) or a sign editor for any block with extra variables.

White Space Block - use it to space out code in your functions or to shift function parts around by left/right clicking.

Movement blocks

Move robot in a certain direction depending on its heading. Creepy eyes mark the robot's heading!

Back Moves robot one block back

Down Moves robot one block down

Forward Moves robot one block forward

Left Moves robot one block left

Right Moves robot one block right

Up Moves robot one block up

Turn Left Rotates robot 90 degrees to the left

Turn Right Rotates robot 90 degrees to the right

Interaction blocks

Build Builds block on one of the robot's sides if the block is present in the robot's inventory. Default assumes to build in front. A sign can be placed on top of this block to build that block in front or a sign with Block Type / Data / Side information.

Destroy Destroys block on the side specified, drops are not collected. Default: front. Side set through a sign.

Dig Digs block on the side specified, drops are collected. Default: front. Side set through a sign.

Pick Up Picks up block on the side specified and places it on top of a stack. Default: front. Note: Stack of blocks is not part of robot's inventory and is discarded on restart or the server as well as it is not used for building.

Place Takes the top block off the stack (last one picked up) and places it on the side specified. Default: front. Note: Stack of blocks is not part of robot's inventory and is discarded on restart or the server as well as it is not used for building.

Function blocks

Function Function block - placed at the start of each function. Sign on top indicates function name. Name can be any string, but has to be unique or will be overwritten on compile. To compile/save function - click the function block with Tool block.

Call Function Call function block - calls function to execute. At the moment the only parameter that is read is the function name. In future support for variables may be added. Function called is loaded at run time, if function is not found execution will simply skip this block. If function called is changed during main function's execution, on function call a new version will be loaded.

Switch Switch block - no parameters. Creates a number of branches that all have to start with Case block right under the Switch block. First Case block to evaluate to true will be taken and that branch will be executed.

Case Case block - to be used with Switch block as a parent. True / False evaluated based on 3 values supplied - Block type / data value / robot's side. Default: Air - Front. Values can be supplied through a sign or actual block, in case of a block side will be assumed to be Front.

For For block - counter branch. Through a sign specify how many times the branch should be taken.

If If block - similar to Case blocks true or false will be evaluated based on blocks type / data / side. If value is True then the branch starting with True block is taken, False block's branch otherwise.

True True block - To be used with If block as a parent. This branch is taken if IF block is evaluated to True.

False False block - To be used with If block as a parent. This branch is taken if IF block is evaluated to False.

While While block - branch is taken as long as the value is evaluated to True each round. Value as before is block type / data / robot's side. Example: there is stone block in front of the robot, to make While branch true value should be set as follows - Stone / 0 / Front on the sign. This will turn the execution into the branch. There you can perhaps call Destroy /Front and Forward. On next round While will test for Stone in Front again.