Archive.png This article or section documents something not included in the current version of Scratch (3.0). It is only useful from a historical perspective.
This article or section documents an outdated version of Scratch (version 2.0). For this article in the current version, see Making Scratch Crash (3.0). For this article in Scratch 1.4, see Making Scratch Crash (1.4).
Note Warning: The Terms of Use does not allow sharing projects like these, as they can interfere with another user's ability to use the service by crashing unsuspecting users' Flash Players, browsers, or computers.
Note Warning: These scripts shown may freeze or crash your Internet browser, Scratch, or computer. Make sure you save your changes before attempting.
How the variables and lists duplicate
What a crashed Adobe Flash Player looked like on Chrome.
A screen which pulled up when the Adobe Flash Player crashed on Firefox. (Screen was removed in Firefox Quantum along with Flash support)

One way of making Scratch crash is making a variable or list that will double itself, forcing the Scratch project to lag and then freeze or crash. These methods of making Scratch crash are almost guaranteed. The script needed is below:

Variable method:

when green flag clicked
set [variable v] to (. . .::grey) // Set this to anything that is not empty
set [variable v] to (join (variable) (variable) )

List method:

when green flag clicked
add (. . .::grey) to  [list v] :: list // Set this to anything that is not empty
add (list) to [list v]

Clone method:

when green flag clicked
create clone of [myself v]

when I start as a clone
create clone of [myself v] // This causes to make multiple clones at one time, causing the player to lag.

Custom block method:

when green flag clicked
block // For best results, run without screen refresh.

define block


BYOB3.png This article or section uses images made with Snap!, a Scratch Modification which allows script formatting. Differences include block multilining and zebra coloring.

In the Scratch Modification BYOB / Snap!, a simple recursive block can be used to freeze the program:

Alternatively, this script does not need a defined block:

Cookies help us deliver our services. By using our services, you agree to our use of cookies.