Oops I was wrong, I don't see a copy option. Let me investigate...
Snap does have a way to generate a puzzle. Just create some script, then click on file > generate puzzle. All the blocks you didn't use in the script will be hidden and all the scripts will be removed. The only thing that stays are comments. There is no way to automatically check if you completed the puzzle, but you can right click the sprite > extract solution to get the original sprite back.
You know, I've never thought of them as functions, but at it's core thats essentially what it is, especially if you look at threads.js
I like that Snap!'s origins is expanding on Scratch's code, specifically on custom blocks. Now it's totally different.
Anyways pointless offtopic reply over now
I have a question: What would you use the "url" block for?
Acessing snap domain URLs usally but it can be used to acess any CORS free site
That is uh. . . blowing over my head. I've never learned much about programming. On Scratch I just did what worked.
You can use the URL block to get the contents of any web page. However, this often doesn't work, because of a web policy called CORS, which limits the abilities of websites to get or display other websites. A way to get around this is by using CORS proxies, such as the one from CodeTabs, or AllOrigins (google them.)
I am starting to understand now. . . let me google those two things. . .