Settings explanations

If possible, I would like an explanation on what each setting does, I know this might sound time consuming, but I don't think it should be too bad.
If possible, maybe even some of the red ones too that you get when shift-clicking the gear.

The settings

What you're asking for is in the Reference Manual.

But not the red ones, because they change too often and we don't want you to build projects using them.

Snap! Settings Explanation

This is a list of all the settings from Snap! 9.2.4. Each of them have an explanation. Settings in italic are experimental or for use by developers.

  1. Language: Changes the language of your Snap! GUI. There are 47 languages to choose from.

  2. Zoom blocks: Increase the size of all the blocks. Useful if you have trouble when dragging blocks.

  3. Fade blocks: Make blocks more transparent for a more text-based experience.

  4. Stage size: Change the size of the stage. The minimum allowed value is 240 x 180.

  5. Dragging threshold: Change the distance required for dragging before it is considered "dragging".

  6. Microphone resolution: Change how much samples will be reported in the microphone block. There are four options: low, normal, high, and max.

  7. JavaScript extensions: Allow JavaScript function blocks to be displayed in the palette and allows JavaScript function blocks to be executed.

  8. Extension blocks: Show primitive blocks in the palette. It can be found in Variables.

  9. Retina display support: Uses Retina displays to increase the resolution of Snap!. Unchecking this may be useful to save computer resources.

  10. Input sliders: Makes inputs in Snap! use sliders rather than typing. Can be useful for mobile devices. An optional setting Execute on slider change can make blocks get run automatically when the slider is changde.

  11. Turbo mode: Makes the project run as fast Snap! can. Can be useful for calculating and complex projects.

  12. Visible stepping: Reduces speed of project and shows the block currently executed. Can be useful for debugging.

  13. Log pen vectors: Pen vectors will be logged in the pen vectors block, which can be accessed by right-clicking the pen trails block and choose pen vectors. This block reports the SVG file of the pen.

  14. Case sensitivity: Makes comparison blocks case-sensitive, making lowercase and uppercase letters differ.

  15. Ternary Boolean slots: Allows boolean slots to become empty boolean slots. Can be useful for many purposes.

  16. Camera support: Allows the usage of the camera. Disabling may be useful to hide your identity.

  17. Dynamic sprite rendering: Makes sprite rendering stored in cache, making it render faster.

  18. Blurred shadows: Makes shadows blurry. Uncheck to make shadows solid while also saving resources.

  19. Zebra coloring: Makes blocks that are inside blocks with the same category become lighter, and vise versa. We call it zebra coloring. Disable for the same experience as Scratch.

  20. Dynamic input labels: Makes input labels in variadic inputs become dynamic.

  21. Prefer empty slot drops: Focuses on empty slots when dragging and dropping reporters.

  22. Long form input dialog: Makes the long form input dialog the default. Can be useful for block makers.

  23. Plain prototype labels: Makes the + signs in custom block label hats hide when not hovered.

  24. Clicking sound: Makes a noise when dragging blocks. Can be useful for accessibility.

  25. Animations: Allow animations to be played in the IDE. To save performance, you can disable this.

  26. Rasterize SVGs: Turns SVGs to bitmap images when imported.

  27. Flat design: Enables the alternative GUI design for Snap!. Rounded designs become rectangular, gradients become solid, and more.

  28. Nested auto-wrapping: Enable auto-wrapping inside nested block stacks.

  29. Sprite Nesting: Allows sprite composition, which makes sprites get anchored to another sprite.

  30. First-Class Sprites: Enables first-class sprite support. These can be created and deleted by a script, stored in a variable or list, and sent messages individually.

  31. Keyboard Editing: Enables keyboard editing support, which is used to navigate through blocks using your keyboard.

  32. Table support: Allows table view to be used. If disabled, only list view would be used.

  33. Table lines: Make tables have higher contrast, which can be useful for table manipulation. Shown only when Table support is enabled.

  34. Live coding support: Experimental. Enables live custom control structures.

  35. JIT compiler support: Experimental. Enable compiling a script to JavaScript using JIT. Requires JavaScript extensions to be enabled.

  36. Thread safe scripts: Makes hat blocks trigger only when it is not triggering. when key pressed blocks are always thread-safe even when this option is disabled.

  37. Flat line ends: Make the ends of the pen be flat rather than rounded. Can be useful for many purposes.

  38. Codification support: Adds codification blocks to the palette and enables support of codification. Codification is a feature where you can convert blocks to a text-based language.

  39. Inheritance support: Enables the usage and visibility of the inherit block in Variables.

  40. Hyper blocks support: Enables hyperblocks which allows you to use hyperized blocks.

  41. Single palette: Makes the palette show all blocks in just one palette. This is the same feature as Scratch 3.0.

  42. Wrap list indices: Enables the support for wrapping list indices.

  43. Persist linked sublist IDs: Enable the support for saving linked sublist identities.

  44. Enable command drops in all rings: Allow commands to be placed in reporter and boolean rings.

  45. HSL pen color model: Use HSL rather than HSV in graphic effects and pen. This will change brightness to lightness.

  46. Disable click-to-run: Makes blocks not being able to be executed when clicked.

  47. Disable dragging data: Disables the ability to be able to drag media and blocks from results and balloons.

Ah, you beat me to it.


It also changes the meaning of "saturation." In HSV, a less saturated color is closer to white. In HSL, a less saturated color is closer to gray. See Appendix A of the manual for a more detailed explanation.

Putting it another way, causes saving and restoring a project to preserve the IS IDENTICAL TO status of lists. Slows down saving a little, and makes project files a little bigger. The point is to preserve the information that two lists were constructed to share storage, so changing one changes the other.

You left out "white background" and "hideous."

I don't know what that means!

One-sentence descriptions of turbo mode are rarely accurate/meaningful. What makes a project "fast" or "slow" in Snap! depends on how computation and display are mixed in its code. Turbo mode speeds up computation by taking time away from display. So your Bitcoin mining project will run faster in Turbo, but your video game will be slower, with choppy display rather than smooth display.

It allows using a slider to set an input value, but you can still type in the value. Also, Execute on slider change makes the script containing that input slot run when the slider is changed.

I can't emphasize enough that the shift-click options are not supported. Changing one might just crash Snap!.

I was mainly focused on long form input dialog, none of the explanations were really helpful though.

I did find out how it works though, if you have it enabled, the dropdown for the input option is dropped automatically when you click on it, and the input option also becomes the default option when clicking a +.

I tested it out, and the only thing I really noticed was that it just removed the "input list:" text when dropping a block onto a variadic input.

with it on:
untitled script pic
with it off:
Untitled script pic (44)

And sum for +.

Ooh, this one's hilarious, considering this came from the developer. Did you consider themes, or did somebody already mention it, but you felt like "ehh, that's stupid", because I would really enjoy a purple flat theme.
If you ever consider themes, could you let the users be able to change the theme colors?

I don't think flat was Brian's idea.

lmao thats a thing?

It was a joke, I don't think it's actually possible in snap, without javascript (unless the browser blocks bitcoin mining).

and if you find out how to literally mine bitcoin using just the forward block.
[scratchblocks]move (some magic bitcoin stupidity) steps[/scratchblocks]

Why not? It's an algorithm, right? Anything JS can do, we can do better. (That's a quote, from "Annie Get Your Gun.")

Right, exactly. I think some really important friend of Jens must have asked for it, or something.

Although I don't really like anything about Flat, it's really the white background that's a deal-killer for me. White backgrounds give me a headache. I'm really, really, really happy that the people who design operating systems and browsers have finally caught on that a lot of people can't use their software with a white background.

... but the life-or-death issue about dark backgrounds is different from themes as fashion statements. That is totally not where we want to put our effort, not even in reading other people's theme code to check for malware.

But, you know, pay us $10,000 and we'll consider your theme choice. That'd be a good way to pay for everyone's project storage.

Dark at a low price of 10k? I'm in!

We already have dark -- it's our default!

All the more reason to accept @tethrarxitet’s offer!