This article or section documents the current version of Scratch (version 3.0). For this article in Scratch 2.0, see Making Scratch Crash (2.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' browsers, or computers. Doing so can lead to an alert or a ban.
Note Warning: These scripts shown may freeze or crash your Internet browser, Scratch, or computer. Make sure you save your changes before attempting.
The crash screen in Scratch 3.0

There are several methods to make Scratch crash.

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.

Note Note: In Scratch 3.0, these scripts will make the project crash, but you will not be able to see the variables and lists duplicate.


Variable Method

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

List Method

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

Clone Method

when gf clicked
create clone of (myself v)

when I start as a clone
create clone of (myself v)
delete this clone

Custom Block Method

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

define block

Browser Response

DocumentInQuestion.png This page or section is in question as to whether it is useful or not. You can discuss whether you want it deleted or not on its talk page. (July 2021)

Browsers may also have a response. Normally it's an error saying "Aw, Snap!" in Chrome, or a frozen tab. Some can even remove all tabs and restart browsers. Others would lock up and prevent the user from switching tabs. The exact response and messaging varies by browser.


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:

{Freeze Snap!::grey stack}::events hat
warp {
Freeze Snap!::grey
}::grey stack

Alternatively, this script does not need a defined block:

run (the script. Input Names: (src) @delInput @addInput{
run (src) with inputs (src) @delInput @addInput::control
}::#26c926 cap ) with inputs (the script. Input Names: (self) @delInput @addInput{
run (self) with inputs (self) @delInput @addInput::control
}::#26c926 cap ) @delInput @addInput::control
Cookies help us deliver our services. By using our services, you agree to our use of cookies.