SandCastleIcon.png This article has links to websites or programs outside of Scratch and Wikipedia. Remember to stay safe while using the internet, as we cannot guarantee the safety of other websites.
Current Version 2.0.0
Operating Systems Windows, Macintosh (limited), Linux (limited)
Developer(s) LS97
Open source? Yes
Programming language Squeak
Released? Yes
Compatible with Scratch 1.4
Official Website
Archived Forum Topic ar-topic:37734

Bingo is a Scratch Modification based on Scratch 1.4 that extends Scratch's programming ceiling by adding more blocks and capabilities as well as making it easier to work with projects by adding usability enhancements.


Bingo has changes to Scratch's interface, blocks, menus, and dialogues.

Feature Changes

  • An "Open Shortcut" button
  • 'Last opened project' in file menu
  • Skin Themes are in v2.0
  • Four extra categories
  • Tooltips are more detailed
  • Direct Browsing + Uploading to Mod Share
  • Compiling into EXE for Windows
The Bingo 2.0 interface.

Block Changes

Bingo has a total of approximately 80 added or modified blocks. These include:

Motion Blocks

Set rotation style to [all around v]::motion // Sets the Rotation Style for the sprite.

Toggle draggable::motion // Changes whether a sprite can be dragged online and in presentation mode.
<draggable?::motion> // Reports true if a sprite is draggable.
(Rotation style::motion) // Reports the Rotation Style.

Control Blocks

(Last Broadcasted::control) // Reports the last broadcast that was broadcasted.
run without screen refresh {

}::control C block // Runs the enclosed blocks without refreshing the screen until it reaches the end of the block.

!--[inline comment ]--::control // Comment Block is used as comment in Bingo rather than right click.

Looks Blocks

Grab from screen::looks // Makes a new costume for sprite in the same way as if one copied part of the stage and made it a new costume.
(Name of costume []::looks) // Reports the name of a certain costume which one has specified.
<Showing?::looks> // Reports true if a sprite is showing.
<Visible?::looks> // Reports true if a sprite is visible (i.e. ghost effect is not set to 100).
(Layer::looks) // Reports the layer of the current sprite.
Import image::looks // Imports an image from the computer to the [[project]] in the form of a new sprite.

Sensing Blocks

<Sprite [ v] is touching sprite [ v]::sensing> // Reports true if the two sprites specified are touching
Ask [] in dialog::sensing // Brings up dialog onto the program and asks the question specified.
(Color [] as []::sensing) // Changes colors on the sprite in the specified manner.
(Color r [] g [] b []::sensing) // Changed colors on the sprite accordingly.
<[ v] Mouse down::sensing> // Reports true if specified button of mouse is pressed (left, right, middle or any).

Sound Blocks

Default system beep::sound // Beeps

Operators Blocks

([] [+ v] []::operators) // Updated version of the () + (), () - (), () * (), and () / () blocks, it includes all of these in a drop down menu, as well as a ^ (to the power of) sign and E.
<[] xor []::operators> // Mixture of the () and () and () or () blocks, it means <<<a> or <b>> and <not <<a> and <b>>>>
(Letters [] to [] of []::operators) // Specifies certain letters of a string
([] [ v]::operators) // The string in the first box can be changed according to what is in the second, the options are reversed, lowercased, uppercased and shuffled.
(Index of [] from [] of []::operators) // Indexes a string from a certain letter according to how one specifies it to do.
(Split [] using [] into []::operators) // Splits up a string divided by a specified character into a [[list]], for example: Split [1, 2, 3, 4, 5] using [,] into [List].
(Join [] using []::operators) // Does the opposite of the above block, for example: Join [List] using [,] would report "1, 2, 3, 4, 5"
(If <> then [] else []::operators) // If the first box reports true, then it does the coding after "then," whereas if it reports false, it does the coding after "else"
<[] contains []::operators> // Reports if a string contains a certain character.
<[] is [ v]::operators> // Reports true if the string in the first box equals one of the options in the second. These options are "a number," "text," "a color," "all uppercase," "all lowercase," "some uppercase," and "some lowercase"
(Round [] to [] places::operators) // Rounds a value to a specified number of decimal places.
([] of [],[]::operators) // Finds either the Lowest common denominator (LCM), Greatest common divisor (GCF) or Modular arithmetic (mod) of two values.
(Log base [] of []::operators) // Logarithm
(Sum from [] to []::operators) // Adds up all the numbers specified, for example: Sum from [1] to [5] would be 15, because 1 + 2 + 3 + 4 + 5 = 15
(∞Inf::operators) // Uses infinity as a value.

Pen Blocks

<Pen down?::pen> // Reports true if the [[pen]] is down, and false if not
(Pen color::pen) // Reports the color of the pen
(Pen hue::pen) // Reports the hue of the pen
(Pen size::pen) // Reports the size of the pen

Variables Blocks

Set [ v] to [#0000ff]::variable // Makes a variable a certain color.

Show list [ v]::list // Shows the specified list.

Hide list [ v]::list // Hides the specified list.


This is a new category in Bingo that deals with program and file options.

  • [Quit Bingo] — Exits the Bingo program
  • ([]) — Shows the time, short date, weekday, weekday #, hour, minute or second according to one's computer
  • (Key pressed) — Reporter block reporting if a key is pressed
  • (Read file []) — Reads and reports a text file on one's computer
  • [Write [] to file []] — Writes text to a text file on one's computer
  • (Read URL []) — Reads and reports the source code of a webpage
  • (Read line [] of file []) — Reads and reports a certain line of a text file
  • (Read line [] of URL []) — Reads and reports a certain line of source coding of a webpage
  • [Go to []] — Opens a webpage in one's browser
  • (IP Address) — Reports one's IP address
  • <Hosting mesh?> — Reports true if one is hosting Mesh
  • [Host mesh] — Hosts a mesh session
  • [Join Mesh on IP []] — Joins a mesh session on the specified IP
  • [Quit Mesh] — Quits a Mesh session
  • [Switch to [] cursor] — Switches to a different cursor, the available cursors are:
    • Normal
    • Square
    • None
    • Working
    • Read
    • Write
    • Execute
    • Crosshair
    • Eyedropper
    • Fill
    • Marker
    • Pen
    • Stamp
    • Right arrow
    • Down arrow
    • Up arrow
    • Move
    • Question mark
    • Menu
    • Hand
    • Fist
    • Origin
    • Corner
    • Resize diag
    • Resize horiz
  • [Run [] as smalltalk code] — Runs something in smalltalk code (note: block is obsolete by Bingo 2.0)


This is a new category that deals with things not included in other categories.

  • [Press flag] — This can be used instead of manually pressing the Green Flag
  • ([Constant]) — Provides list of values which are constants, these values are pi, e, phi, new line, tab and userpath
  • <True> — Reports true
  • <False> — Reports false
  • (Sprite name) — Reports the name of the sprite
  • [Add variable []] — Creates a new variable
  • [Delete var []] — Deletes a variable
  • [Add list []] — Creates a list
  • [Delete list []] — Deletes a list
  • [Move [] to X:[] Y:[]] — Changes the position of a variable or list
  • [Set layout of [] to []] — Changes the layout of a variable, large, small or slider
  • [Show dialog [] title []] — Brings up dialog onto the screen with a specified title
  • <[] in dialog confirmed> — Brings up dialog onto the screen with the option to press "OK"
  • [Inform []] — When block is activated it brings up a small menu with the text one specifies in it, with the option to press "OK"
  • <[] confirmed?> — Brings up a menu similar to the one in the block above, which gives one the options of "Yes" and "No," depending on what one chooses the block will either give false or true

See Also

External Links

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