There are some other issues, however...
(1) "Find and Pick" needs some more/better logic. Ideally, it should be able to include/exclude types, such as "From Box" (storage boxes), "From Raw" (I call those "piles" of raw/not-yet-mined resources), or even both. Perhaps even the ability to pick both but give a preferred type (Pick from Box, if available, raw pile otherwise). This is because I set up a CraftoMate (hereafter referred to as just CM) with a program to "Find and Pick", "Drop to" a box, then "To idle". But the result surprised me: It worked the _first_ time, but the second time it picked from the box it just dropped to (since it was now closest)! I adjusted to program to include a "Move to" first, but later in the game it caused problems when a) I had multiple storage boxes spread out on the map and the raw resources piles eventually became depleted. (Likewise, the "Drop to" might be able to only drop "On Ground" or "to Box".)
(2) Some degree of "look ahead" would be nice. I was trying to clear two adjacent Stone piles, so I had he logic of "Pick From" the first, and if that failed, it would "Pick From" the second. It worked, but every time it would move back to the first position, fail because it already cleared the tile, then move back to the second position. It should see that the first is already clear and go directly to the second, instead of wasting power moving back and forth needlessly.
(3) Related to (2), the "Warning" icon in the upper right that appears next to the pause button should not appear until the CM becomes truly "stuck". Every time it went to the first position and failed, the icon would pop up and then go away as soon as it went on to the second position. Not only does it create a momentary flash that distracted me, it also made it harder to be able to find and focus on the real problem areas/CMs which are stuck.
Some other observations and ideas:
-- I would like some detail/info on how variables work.
-- I kind of miss the old "Low Power" mechanics. I suggest that, instead of making it an "if/then/else" style operation, that you make it more like a sub-program (but not an exception that can occur any time -- only when instructed to check power). That is, create a "Low Power" label lower down like was done previously, and when the "Check Power" item executes, it will either continue to the next instruction, or "Jump" to the "Low Power" sub-program. This way, upon fixing the low power condition, we can choose to "Resume Next" which will go back to the "Low Power" check and continue on, or we could "Resume Idle" similar to the "To idle" instruction.
-- Make certain items not "eat-able". While experimenting, a flawed program made one of my CMs "eat" a seed. Oops. Also, some way of checking/testing _what_ if being held would be nice, to prevent accidentally eating the wrong item (especially when holding two items).
-- Related to the above, the ability of a grown tree to (sometimes?) "drop" a seed as well as wood would be nice.
-- Add an instruction to "Feed" another CM (as well as one to find one needing power). This way, we could assign one CM to "Stand By" the Battery Storage box, and when another CM needs power, the assigned one can grab a Battery and go feed it to the one needing power. (This could also be combined with my "Low power" suggestion to maybe add a "Call For Help" instruction, which would pause the bot until help arrives... or the player corrects the situation.)
-- Add the ability to pick up and move the "Current Execution" icon to any instruction in the current program screen.
-- A CM instruction to "Wait", which would make it wait (do nothing, such as "10 seconds", or until an even occurs, such as the "Feed" idea).
-- A "Give to" instruction, which could give to another CM. (Useful for things like "Feed"?)
Of course, I still hope to see:
-- Program labels, which could be targets of a "GoTo" instruction.
-- Sub-programs, which could be done with "Call" and "Return" instructions.
-- Real "if (condition) / then / else" logic. (Especially useful with sub-programs.)
-- Looping constructs. (Command Center wants 10 Steel Plates? Set up a CM to deliver exactly 10 then stop.)