(Redirected from Making Scratch Close)

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.

Script methods

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


Uploading an image to the Paint Editor that has a large resolution will crash the Paint Editor window, but other parts of the editor can still be used.


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 ({run (src) with inputs (src) @delInput @addInput::control} input names: ((src)::grey) @delInput @addInput::ring grey) with inputs ({run (self) with inputs (self) @delInput @addInput::control} input names: ((self)::grey) @delInput @addInput::ring grey) @delInput @addInput::control
Cookies help us deliver our services. By using our services, you agree to our use of cookies.