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.

The ScriptableScratchMorph class is a Squeak Morphic class which returns a Scratch object: either a sprite or the stage.


The ScriptableScratchMorph is a subclass of Morph, and is declared under Scratch-Objects in the System Browser. The declaration is as follows:

Morph subclass: #ScriptableScratchMorph
	instanceVariableNames: 'objName vars lists blocksBin isClone media costume costumeChangeMSecs filterPack visibility volume tempoBPM sceneStates '
	classVariableNames: 'BlockColorDict BlockSpecDict DefaultBackgroundForm DefaultSpriteForm DoubleSize Experimental ListBlockColor MeowSound OldMeowPrefixReversed PopSound RandomGen Recorder ScratchOrigin TimerStartMSecs '
	poolDictionaries: ''
	category: 'Scratch-Objects'

Instance Variables

The instance variables of ScriptableScratchMorph are:

Note Note: Here, "object" refers to a sprite or the stage.
  • objName: The title of the object
  • vars: The variables of an object
  • lists: The lists of an object
  • blocksBin: The blocks of an object
  • isClone: Is an object a clone of another (obsolete as of Scratch 1.4)
  • media: Associated media like sounds and costumes
  • costume: Costume Number
  • costumeChangeMSecs:
  • filterPack: The graphical effects on the object put by the Graphical filter block.
  • visibility: Is the object hidden
  • volume: The Volume of the object
  • tempoBPM: The Tempo of the object in beats per minute (BPM)
  • sceneStates:


The two subclasses are ScriptableSpriteMorph and ScriptableStageMorph, dictating sprites and the stage, respectively. They need to be different as the stage has limited functionality as compared to sprites; for example, the stage has no motion blocks. The parent class always contains the common properties, for example the common "clear" block.



ScriptableSpriteMorph is a subclass of ScriptableScratchMorph, and dictates a sprite. Its declaration is:

ScriptableScratchMorph subclass: #ScratchSpriteMorph
	instanceVariableNames: 'scalePoint rotationDegrees rotationStyle rotatedForm offsetWhenRotated draggable penDown penSize penColor penHue penShade '
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Scratch-Objects'



ScriptableStageMorph is a subclass of ScriptableStageMorph, and dictates a stage. Its declaration is:

ScriptableScratchMorph subclass: #ScratchStageMorph
	instanceVariableNames: 'zoom hPan vPan penTrailsForm lastPenPositions runningBlocks inProcessStep sensorBoard midiPortNum midiPort notePlayerDict obsoleteSavedState sprites scratchServer isQuarterSize cachedForm showMotorBlocks '
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Scratch-Objects'