How do I sense what morph the mouse is on?

oh... that's confusing.

I can export a new morph, but I can't figure out how to export an existing morph, like a morph that is under the mouse pointer, or from a variable.

Replace new Morph() with whatever code you use to get the morph you want.
For the morph the mouse is on replace the first line with
var morph = this.world().hand.mouseOverList[0];
For a JavaScript variable, just remove the first line and replace all instances of the variable morph with that variable's name, and move the word 'var' to the second line:
var img = yourMorphVariableHere.fullImage().toDataURL(), etc etc...
Also, I figured out a better way to do it and that one of the lines of my code was useless. This new code is easier to type and also allows for naming the files:
image

thanks so much. That is hopefully my last question.

When my mouse is over a block label it says:
"TypeError
Cannot read propety 'alpha' of null"
when I use:

Can you fix it?

sometimes it throws that error, but most of the time it just crashes snap, at least for me.

This probably still has a lot of holes in it, because there are so many different morphs and rules, but I think this fixes your problem about the labels:
var ms = this.world().hand.mouseOverList[0];
if (ms instanceof ArgMorph || ms instanceof BlockLabelMorph
|| eval(ms.constructor.name + '.uber') instanceof StringMorph
|| ms instanceof ArgMorph){
return new Context(null, ms.parent.fullCopy());
} else if (ms instanceof BlockMorph){
return new Context(null, ms.fullCopy());
} else if (ms instanceof InputSlotStringMorph){
return new Context(null, ms.parent.parent.fullCopy());
} else {
return ms.fullCopy();
}

yeah that only happens when you click the block directly for some reason, dont do that

I've been pressing space to select the morph, like, when I press the space bar, it selects the morph at the mouse.

It never crashed for me when using spacebar, but it does when clicking the block
(with updated code)

ok, well, I haven't tested the new code.

can you please find a way to add symbols (I mean the green flag on the when green flag clicked block, and the icons one the turn left and right blocks, etc.)?

you can already select icons.

happened when I put my mouse on the green flag from the when green flag clicked block.

don't forever loop it. Do something like

it also seems to crash in fullscreen

that doesn't work, the same error happens.

I just realized you were talking about the green flag on the when flag clicked block. I thought you were talking about the green flag for the project. I tested it out, and yeah, it does throw an error.

This way you can get a string representation of the object tree with some "hints".

GreenFlag flag:PushButtonMorph:Morph:IDE_Morph:
ScriptArea ScriptsMorph:ScrollFrameMorph:IDE_Morph:
When receive key BlockLabelMorph:receiveKey:ScriptsMorph:ScrollFrameMorph:IDE_Morph:

Depending on whats your objectives are you can test other properties in "traverse()" function.