Skip to main content

The AmpMod Philosophy

AmpMod's main goal is to advance Scratch's capabilities. Assuming you have used AmpMod at least once or twice prior to reading this documentation, you may have noticed that e.g. lists were removed, and replaced with "arrays" (think of Snap!'s lists).

AmpMod has 3 goals. Before making contributions to AmpMod, we ask that you consider the goals below.

Be easy to learn for Scratchers

AmpMod's main audience is long-term Scratchers who want to use complicated programming techniques, allowing for more complex games, animations, or even scientific experiments.

While AmpMod aims to remove the ceiling from Scratch entirely, we still need to make sure that any Scratcher can pick up AmpMod and start using it.

  • Avoid confusing terminology. When a user assumes "when green flag clicked" runs code when the flag is clicked, that's what it should do, nothing else.
  • When removing a potentially useful feature originating from vanilla Scratch that may be necessary for compatibility, create an extension that will reveal the removed blocks. This is why Legacy Lists (an extension to add back the "Lists" category in the editor) exists.

Be easy to understand for advanced programmers

Since AmpMod is designed to introduce complicated programming techniques, features should generally bear resemblance to features in major programming languages, mainly JavaScript and Python. This was one of the few inspirations for arrays.

This goal should help programmers who never touched a block-based language understand what code in AmpMod does more easily.

note

There is a sister project to AmpMod called Skribu, a block-based programming language designed to be even more familiar to advanced programmers using a terminal instead of AmpMod's stage. Note that Skribu is not a Scratch mod, and its development process is completely different.

Be appropriate for all ages

This is probably the most important goal, and might even be the reason AmpMod exists.

There is another Scratch 3.0 mod out there that while powerful at a level similar to AmpMod, has a lot of users and even their own developers using language or images that are not appropriate for Scratch. AmpMod, despite being somewhat inspired by this mod, should aim to be appropriate for all ages, including its own source code.

  • Do not use swear words in code comments or UI text. E.g. if "cat" was a swear word, do not add // I feel like a cat right now writing this. Some unprofessional comments are allowed occasionally as long as you still clearly explain what the code does.
  • Do not reference anything not allowed on Scratch, such as names of or links to sites with private messaging functionality.