This article or section documents an outdated version of Scratch (version 2.0). For this article in Scratch 1.4, see Making Scratch Crash (1.4).

Clock.png This article will need to be updated upon the release of 3.0. If you are an editor, please update this when 3.0 is released. If you are an editor, please create the post-3.0 version at Scratch Wiki:3.0 Articles/Making Scratch Crash.
There may already be ongoing discussion about how to do so on its talk page.
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 flash player, Scratch, or computer. Make sure you save your changes before attempting!
How the variables and lists duplicate
What a crashed Adobe Flash Player looks like on Chrome.

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 way:

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

List way:

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

Clone way:

when gf 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 way:

when gf 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: