Snap! v12 Beta test

Hey, exporting a project as cloud data causes all of the unloaded categories to bug out and disappear

What do you mean by exporting a project as cloud data?

What do you mean by my unloaded categories?

Could you give an example to demonstrate the bug?

export a project as cloud data
press a category you haven’t yet pressed on that session

Where do I find export a project as cloud data?

By shift clicking on the cloud icon

I like the icons in the section buttons

Screenshot 2026-04-29 195934

Now that I’ve found that option (ta @da-ultimate-creater ) - its seems to work OK for me (tried two projects)

It seems that the main issue is moving above the stage or to the left of the stage, while moving to the right or below the stage has no visible impact:

Screen Recording 2026-05-10 000634
I have taken your advice to start with an empty costume, and despite creating one the correct size, there doesn’t seem to be a change in behavior.

Drawing normally on a large vector costume makes it really blurry, too.

Tiny feature request. Can the extension blocks option be presisted throughout session by localStorage? It isn’t a “have to enable to use” feature like JS blocks, and someone like me wouldn’t hate having it always.

I agree

Sorry, I haven’t had time to look at this until now. I’m running Snap!-12-beta-260512 and can’t get writing and formatting to work with either overdraw or paint:


Little feature request: make “is _ a _” also check if the object’s parent is of that type (recursive). Currently, if you do this:

It only registers the object as a type “c” while it inherits from object with type “b”, which then inherits from a final “a” type.

Traditionally, IS _ A _ has kept types disjoint. You could make a case for IS 3 A TEXT reporting True, since numbers are also texts in Snap!. But in fact it reports False. Maybe user types are so different from primitive types that the rule should be different. Or maybe we should somehow support both behaviors. Personally I’ve never liked IS _ A _ because there has always been a tension between the two meanings of belonging to a type, and I’d be happy if we promoted TYPE OF from developer-only to user-usable and it reported a list of all the types to which something belongs, with the most specific type first in the list.

this probably won’t happen, due to localization (you can’t translate the output of blocks, that would break projects!!)

Well, here’s something (from threads.js, reportIsA):

default:
        primType = this.reportTypeOf(thing);
        return primType === choice || // support ADTs (user defined structs)
            primType === 'list' &&
                (this.reportListItem('_type', thing) === typeString ||
                    ((this.reportListItem(['parent'], thing) === 'list') &&
                    this.reportIsA(
                        this.reportListItem(['parent'], thing),
                        typeString
                    )));

This would suggest it checks the parent recursively. But it doesn’t?

In English terms, it sounds like "if the primitive type is the same? return true. If not, check ADT. if that isn’t right, get its parent and check that via reportIsA.

Respectfully, you do realize that two thirds of all programming languages are English-based, right? Restricting a feature in a programming language because it can’t be translated is stupid. You don’t need to know English to know that “hello world” is of type “text” and 27 is of type “integer”

So does that mean we shouldn’t translate SNAP at all, to train people for real languages?

“So you hate waffles?”
That is not at all what I said.


The types are translated in the dropdown. You said that you don’t need to know English to understand type names in english.

Basically, the question is should we translate that dropdown and also not translate the type of reporter?