diff --git "a/blocks/stack_blocks.json" "b/blocks/stack_blocks.json" --- "a/blocks/stack_blocks.json" +++ "b/blocks/stack_blocks.json" @@ -1,1321 +1,1321 @@ -{ - "block_category": "Stack Blocks", - "description": "Stack blocks are the most common block shape, featuring a notch at the top and a bump at the bottom. They perform the main commands within a script and can connect both above and below them.", - "blocks": [ - { - "block_name": "move () steps", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_movesteps", - "functionality": "Moves the sprite forward by the specified number of steps in the direction it is currently facing. A positive value moves it forward, and a negative value moves it backward.", - "inputs": [ - { - "name": "STEPS", - "type": "number" - } - ], - "example_standalone": "move () steps", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n go to x: (0) y: (0)\n point in direction (90)\n move (50) steps\nend", - "explanation": "This script first places the sprite at the center of the stage, points it to the right (90 degrees), and then moves it 50 steps in that direction." - } - ] - }, - { - "block_name": "turn right () degrees", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_turnright", - "functionality": "Turns the sprite clockwise by the specified number of degrees.", - "inputs": [ - { - "name": "DEGREES", - "type": "number" - } - ], - "example_standalone": "turn (clockwise icon) (15) degrees", - "example_with_other_blocks": [ - { - "script": "when [right arrow v] key pressed\n turn (clockwise icon) (15) degrees\nend", - "explanation": "This script makes the sprite turn clockwise by 15 degrees every time the right arrow key is pressed." - }, - { - "script": "when green flag clicked\n forever\n turn (clockwise icon) (15) degrees\n wait (0.5) seconds\n end", - "explanation": "This script makes the sprite continuously spin clockwise by 15 degrees every half second." - } - ] - }, - { - "block_name": "turn left () degrees", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_turnleft", - "functionality": "Turns the sprite counter-clockwise by the specified number of degrees.", - "inputs": [ - { - "name": "DEGREES", - "type": "number" - } - ], - "example_standalone": "turn (counter-clockwise icon) (15) degrees", - "example_with_other_blocks": [ - { - "script": "when [left arrow v] key pressed\n turn (counter-clockwise icon) (15) degrees\nend", - "explanation": "This script makes the sprite turn counter-clockwise by 15 degrees every time the left arrow key is pressed." - }, - { - "script": "when green flag clicked\n forever\n turn (counter-clockwise icon) (15) degrees\n wait (0.5) seconds\n end\nend", - "explanation": "This script makes the sprite continuously spin counter-clockwise by 15 degrees every half second." - } - ] - }, - { - "block_name": "go to ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_goto", - "functionality": "Moves the sprite to a specified location, which can be a random position or at the mouse pointer or another to the sprite.", - "inputs": [ - { - "name": "TO", - "type": "dropdown", - "options": [ - "random position", - "mouse-pointer", - "sprite1", - "..." - ] - } - ], - "example_standalone": "go to [random position v]", - "example_with_other_blocks": [ - { - "script": "when this sprite clicked\n go to [mouse-pointer v]", - "explanation": "This script moves the sprite to the current position of the mouse pointer whenever the sprite is clicked." - }, - { - "script": "when this sprite clicked\n go to [sprite v]", - "explanation": "This script moves the sprite to the another sprite's position whenever the sprite is clicked." - } - ] - }, - { - "block_name": "go to x: () y: ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_gotoxy", - "functionality": "Moves the sprite to the specified X and Y coordinates on the stage.", - "inputs": [ - { - "name": "X", - "type": "number" - }, - { - "name": "Y", - "type": "number" - } - ], - "example_standalone": "go to x: (0) y: (0)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n go to x: (120) y: (0)\n say [Ready to start! v] for (1) seconds\nend", - "explanation": "This script positions the sprite at the center of the stage at the beginning of the project and then makes it say 'Ready to start!'." - } - ] - }, - { - "block_name": "glide () secs to ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_glideto", - "functionality": "Glides the sprite smoothly to a specified location (random position, mouse pointer, or another sprite) over a given number of seconds.", - "inputs": [ - { - "name": "SECS", - "type": "number" - }, - { - "name": "TO", - "type": "dropdown", - "options": [ - "random position", - "mouse-pointer", - "sprite1", - "sprite2", - "..." - ] - } - ], - "example_standalone": "glide (1) secs to ([random position v])", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n glide (1) secs to ([mouse-pointer v])\nend", - "explanation": "This script makes the sprite glide smoothly to the mouse pointer's position over 1 second when the green flag is clicked." - } - ] - }, - { - "block_name": "glide () secs to x: () y: ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_glidesecstoxy", - "functionality": "Glides the sprite smoothly to the specified X and Y coordinates over a given number of seconds.", - "inputs": [ - { - "name": "SECS", - "type": "number" - }, - { - "name": "X", - "type": "number" - }, - { - "name": "Y", - "type": "number" - } - ], - "example_standalone": "glide (1) secs to x: (100) y: (50)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n glide (2) secs to x: (150) y: (-100)\n glide (2) secs to x: (-150) y: (100)\nend", - "explanation": "This script makes the sprite glide to two different points on the stage, taking 2 seconds for each movement." - } - ] - }, - { - "block_name": "point in direction ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_pointindirection", - "functionality": "Sets the sprite's direction to a specified angle in degrees (0 = up, 90 = right, 180 = down, -90 = left).", - "inputs": [ - { - "name": "DIRECTION", - "type": "number" - } - ], - "example_standalone": "point in direction (90)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n point in direction (0)\n move (100) steps\nend", - "explanation": "This script makes the sprite point upwards (0 degrees) and then move 100 steps in that direction." - } - ] - }, - { - "block_name": "point towards ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_pointtowards", - "functionality": "Points the sprite towards the mouse pointer or another specified sprite.", - "inputs": [ - { - "name": "TOWARDS", - "type": "dropdown", - "options": [ - "mouse-pointer", - "sprite1", - "..." - ] - } - ], - "example_standalone": "point towards [mouse-pointer v]", - "example_with_other_blocks": [ - { - "script": "when this sprite clicked\n point towards [mouse-pointer v]\n move (10) steps\nend", - "explanation": "When the sprite is clicked, it will point towards the mouse pointer and then move 10 steps in that direction." - }, - { - "script": "when green flag clicked\n forever\n point towards [mouse-pointer v]\n move (5) steps\n end\nend", - "explanation": "This script makes the sprite continuously follow the mouse pointer." - } - ] - }, - { - "block_name": "change x by ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_changexby", - "functionality": "Changes the sprite's X-coordinate by the specified amount, moving it horizontally.", - "inputs": [ - { - "name": "DX", - "type": "number" - } - ], - "example_standalone": "change x by (10)", - "example_with_other_blocks": [ - { - "script": "when [right arrow v] key pressed\n change x by (10)\nend", - "explanation": "This script moves the sprite 10 steps to the right when the right arrow key is pressed." - } - ] - }, - { - "block_name": "set x to ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_setx", - "functionality": "Sets the sprite's X-coordinate to a specific value, placing it at a precise horizontal position.", - "inputs": [ - { - "name": "X", - "type": "number" - } - ], - "example_standalone": "set x to (0)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set x to (0)\n set y to (0)\nend", - "explanation": "This script centers the sprite horizontally at the start of the project." - } - ] - }, - { - "block_name": "change y by ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_changeyby", - "functionality": "Changes the sprite's Y-coordinate by the specified amount, moving it vertically.", - "inputs": [ - { - "name": "DY", - "type": "number" - } - ], - "example_standalone": "change y by (10)", - "example_with_other_blocks": [ - { - "script": "when [up arrow v] key pressed\n change y by (10)\nend", - "explanation": "This script moves the sprite 10 steps up when the up arrow key is pressed." - } - ] - }, - { - "block_name": "set y to ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_sety", - "functionality": "Sets the sprite's Y-coordinate to a specific value, placing it at a precise vertical position.", - "inputs": [ - { - "name": "Y", - "type": "number" - } - ], - "example_standalone": "set y to (0)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set x to (0)\n set y to (0)\nend", - "explanation": "This script centers the sprite vertically at the start of the project." - } - ] - }, - { - "block_name": "if on edge, bounce", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_ifonedgebounce", - "functionality": "Reverses the sprite's direction if it touches the edge of the stage.", - "inputs": null, - "example_standalone": "if on edge, bounce", - "example_with_other_blocks": [ - { - "script": "when I receive [start moving v]\n repeat (50)\n move (5) steps\n if on edge, bounce\n end\nend", - "explanation": "Upon receiving the 'start moving' broadcast, the sprite will move 5 steps repeatedly for 50 times, bouncing off edges if it touches them." - }, - { - "script": "when green flag clicked\n forever\n move (10) steps\n if on edge, bounce\n end\nend", - "explanation": "This script makes the sprite move continuously and bounce off the edges of the stage." - } - ] - }, - { - "block_name": "set rotation style ()", - "block_type": "Motion", - "block_shape": "Stack Block", - "op_code": "motion_setrotationstyle", - "functionality": "Determines how the sprite rotates: 'left-right' (flips horizontally), 'don't rotate' (stays facing one direction), or 'all around' (rotates freely).", - "inputs": [ - { - "name": "STYLE", - "type": "dropdown", - "options": [ - "left-right", - "don't rotate", - "all around" - ] - } - ], - "example_standalone": "set rotation style [left-right v]", - "example_with_other_blocks": [ - { - "script": "when backdrop switches to [game level 1 v]\n set rotation style [all around v]\nend", - "explanation": "When the backdrop changes to 'game level 1', the sprite's rotation style will be set to 'all around', allowing it to rotate freely." - }, - { - "script": "when green flag clicked\n set rotation style [left-right v]\n forever\n move (10) steps\n if on edge, bounce\n end \nend", - "explanation": "This script makes the sprite move horizontally and flip its costume when it hits an edge, instead of rotating." - } - ] - }, - { - "block_name": "say () for () seconds", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_sayforsecs", - "functionality": "Displays a speech bubble containing specified text for a set duration.", - "inputs": [ - { - "name": "MESSAGE", - "type": "string" - }, - { - "name": "SECS", - "type": "number" - } - ], - "example_standalone": "say [Hello!] for (2) seconds", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n say [Grr] for (3) seconds\n say [Have you seen my honey? v] for (3) seconds\nend", - "explanation": "This script makes the sprite display two sequential speech bubbles with different messages and durations. First, it says 'Grr' for 3 seconds, then 'Have you seen my honey?' for another 3 seconds." - } - ] - }, - { - "block_name": "say ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_say", - "functionality": "Displays a speech bubble with the specified text indefinitely until another 'say' or 'think' block is activated.", - "inputs": [ - { - "name": "MESSAGE", - "type": "string" - } - ], - "example_standalone": "say [Hello! v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n say [Welcome to my game! v]\n wait (2) seconds\n say [] \nend", - "explanation": "This script makes the sprite say 'Welcome to my game!' for 2 seconds, then clears the speech bubble." - } - ] - }, - { - "block_name": "think () for () seconds", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_thinkforsecs", - "functionality": "Displays a thought bubble containing specified text for a set duration.", - "inputs": [ - { - "name": "MESSAGE", - "type": "string" - }, - { - "name": "SECS", - "type": "number" - } - ], - "example_standalone": "think [Hmm... v] for (2) seconds", - "example_with_other_blocks": [ - { - "script": "when this sprite clicked\n think [What should I do? v] for (2) seconds\nend", - "explanation": "This script makes the sprite display a thought bubble saying 'What should I do?' for 2 seconds when clicked." - } - ] - }, - { - "block_name": "think ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_think", - "functionality": "Displays a thought bubble with the specified text indefinitely until another 'say' or 'think' block is activated.", - "inputs": [ - { - "name": "MESSAGE", - "type": "string" - } - ], - "example_standalone": "think [Got it! v]", - "example_with_other_blocks": [ - { - "script": "when I receive [correct answer v]\n think [That's right! v]\n wait (1) seconds\n think [good v] \nend", - "explanation": "This script makes the sprite think 'That's right!' for 1 second when a 'correct answer' broadcast is received, then clears the thought bubble." - } - ] - }, - { - "block_name": "switch costume to ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_switchcostumeto", - "functionality": "Alters the sprite's appearance to a designated costume.", - "inputs": [ - { - "name": "COSTUME", - "type": "dropdown/number" - } - ], - "example_standalone": "switch costume to [costume1 v]", - "example_with_other_blocks": [ - { - "script": "when I receive [explosion v]\n repeat (5)\n next costume\n end\n hide[costume1 v] \nend", - "explanation": "This script animates an explosion by rapidly switching costumes, then hides the sprite. [3]" - } - ] - }, - { - "block_name": "next costume", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_nextcostume", - "functionality": "Switches the sprite's costume to the next one in its costume list. If it's the last costume, it cycles back to the first.", - "inputs": null, - "example_standalone": "next costume", - "example_with_other_blocks": [ - { - "script": "when [space v] key pressed\n repeat (3)\n next costume\n wait (0.1) seconds\n end \nend", - "explanation": "When the space key is pressed, the sprite will cycle through its next three costumes with a short delay between each change." - }, - { - "script": "when green flag clicked\n forever\n next costume\n wait (0.2) seconds\n end \nend", - "explanation": "This script continuously animates the sprite by switching to the next costume every 0.2 seconds, creating a walking or flying effect." - } - ] - }, - { - "block_name": "switch backdrop to ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_switchbackdropto", - "functionality": "Changes the stage's backdrop to a specified backdrop.", - "inputs": [ - { - "name": "BACKDROP", - "type": "dropdown/number" - } - ], - "example_standalone": "switch backdrop to [backdrop1 v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n switch backdrop to [start screen v]\nend ", - "explanation": "This script sets the stage to a 'start screen' backdrop when the project begins." - } - ] - }, - { - "block_name": "switch backdrop to () and wait", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_switchbackdroptowait", - "functionality": "Changes the stage's backdrop to a specified backdrop and pauses the script until any 'When backdrop switches to' scripts for that backdrop have finished.", - "inputs": [ - { - "name": "BACKDROP", - "type": "dropdown/number" - } - ], - "example_standalone": "switch backdrop to [game over v] and wait", - "example_with_other_blocks": [ - { - "script": "broadcast [game over v]\n switch backdrop to [game over v] and wait\n stop [all v] \nend", - "explanation": "This script broadcasts a 'game over' message, then changes the backdrop to 'game over' and waits for any associated scripts to finish before stopping all processes." - } - ] - }, - { - "block_name": "next backdrop", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_nextbackdrop", - "functionality": "Switches the stage's backdrop to the next one in its backdrop list. If it's the last backdrop, it cycles back to the first.", - "inputs": null, - "example_standalone": "next backdrop", - "example_with_other_blocks": [ - { - "script": "when [space v] key pressed\n next backdrop\nend", - "explanation": "This script changes the stage to the next backdrop in the list each time the space key is pressed." - } - ] - }, - { - "block_name": "change size by ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_changesizeby", - "functionality": "Changes the sprite's size by a specified percentage. Positive values make it larger, negative values make it smaller.", - "inputs": [ - { - "name": "CHANGE", - "type": "number" - } - ], - "example_standalone": "change size by (10)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n repeat (10)\n change size by (5)\n wait (0.1) seconds\n end \nend ", - "explanation": "This script makes the sprite gradually grow larger over 10 steps, with a short pause between each size change." - } - ] - }, - { - "block_name": "set size to () %", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_setsizeto", - "functionality": "Sets the sprite's size to a specific percentage of its original size.", - "inputs": [ - { - "name": "SIZE", - "type": "number" - } - ], - "example_standalone": "set size to (100) %", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set size to (50) %\n wait (1) seconds\n set size to (100) %\nend ", - "explanation": "This script makes the sprite shrink to half its original size at the start, waits for 1 second, then returns to its original size." - } - ] - }, - { - "block_name": "change () effect by ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_changeeffectby", - "functionality": "Changes a visual effect on the sprite by a specified amount (e.g., color, fisheye, whirl, pixelate, mosaic, brightness, ghost).", - "inputs": [ - { - "name": "EFFECT", - "type": "dropdown", - "options": [ - "color", - "fisheye", - "whirl", - "pixelate", - "mosaic", - "brightness", - "ghost" - ] - }, - { - "name": "CHANGE", - "type": "number" - } - ], - "example_standalone": "change [color v] effect by (25)", - "example_with_other_blocks": [ - { - "script": "when loudness > (10)\n change [fisheye v] effect by (5)\nend", - "explanation": "When the loudness detected by the microphone is greater than 10, the sprite's fisheye effect will increase by 5." - }, - { - "script": "when green flag clicked\n forever\n change [color v] effect by (5)\n wait (0.1) seconds\n end \nend", - "explanation": "This script makes the sprite continuously cycle through different colors." - } - ] - }, - { - "block_name": "set () effect to ()", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_seteffectto", - "functionality": "Sets a visual effect on the sprite to a specific value.", - "inputs": [ - { - "name": "EFFECT", - "type": "dropdown", - "options": [ - "color", - "fisheye", - "whirl", - "pixelate", - "mosaic", - "brightness", - "ghost" - ] - }, - { - "name": "VALUE", - "type": "number" - } - ], - "example_standalone": "set [ghost v] effect to (50)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set [ghost v] effect to (75)\nend", - "explanation": "This script makes the sprite 75% transparent at the start of the project." - } - ] - }, - { - "block_name": "clear graphic effects", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_cleargraphiceffects", - "functionality": "Removes all visual effects applied to the sprite.", - "inputs": null, - "example_standalone": "clear graphic effects", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n change [color v] effect by (50)\n wait (2) seconds\n clear graphic effects\nend", - "explanation": "This script changes the sprite's color effect, waits 2 seconds, then resets all graphic effects." - } - ] - }, - { - "block_name": "show", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_show", - "functionality": "Makes the sprite visible on the stage.", - "inputs": null, - "example_standalone": "show", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n hide[start game v]\nwhen I receive [start game v]\n show [start game v] \nend", - "explanation": "This script hides the sprite at the beginning of the project and makes it visible when a 'start game' broadcast is received." - } - ] - }, - { - "block_name": "hide", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_hide", - "functionality": "Makes the sprite invisible on the stage.", - "inputs": null, - "example_standalone": "hide", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n hide \nend", - "explanation": "This script hides the sprite from the stage when the green flag is clicked." - } - ] - }, - { - "block_name": "go to () layer", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_gotofrontback", - "functionality": "Moves the sprite to the front-most or back-most layer of other sprites on the stage.", - "inputs": [ - { - "name": "FRONT_BACK", - "type": "dropdown", - "options": [ - "front", - "back" - ] - } - ], - "example_standalone": "go to [front v] layer", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n go to [front v] layer\nend", - "explanation": "This script ensures the sprite is always visible on top of other sprites at the start of the project." - } - ] - }, - { - "block_name": "go () layers", - "block_type": "Looks", - "block_shape": "Stack Block", - "op_code": "looks_goforwardbackwardlayers", - "functionality": "Moves the sprite forward or backward a specified number of layers in relation to other sprites.", - "inputs": [ - { - "name": "FORWARD_BACKWARD", - "type": "dropdown", - "options": [ - "forward", - "backward" - ] - }, - { - "name": "NUM", - "type": "number" - } - ], - "example_standalone": "go [forward v] (1) layers", - "example_with_other_blocks": [ - { - "script": "when this sprite clicked go [forward v] (1) layers\nend", - "explanation": "This script brings the clicked sprite one layer closer to the front." - } - ] - }, - { - "block_name": "play sound () until done", - "block_type": "Sound", - "block_shape": "Stack Block", - "op_code": "sound_playuntildone", - "functionality": "Plays a specified sound and pauses the script's execution until the sound has completed.", - "inputs": [ - { - "name": "sound name", - "type": "dropdown" - } - ], - "example_standalone": "play sound [Meow v] until done", - "example_with_other_blocks": [ - { - "script": "when backdrop switches to [winning screen v]\n play sound [fanfare v] until done\n say [You won!] for (2) seconds\nend", - "explanation": "When the backdrop changes to the 'winning screen', a 'fanfare' sound will play until it finishes, and then the sprite will say 'You won!' for 2 seconds." - }, - { - "script": "forever\n play sound [Music v] until done \nend", - "explanation": "This script creates a continuous loop for background music, playing the 'Music' sound repeatedly." - } - ] - }, - { - "block_name": "start sound ()", - "block_type": "Sound", - "block_shape": "Stack Block", - "op_code": "sound_start", - "functionality": "Initiates playback of a specified sound without pausing the script, allowing other actions to proceed concurrently.", - "inputs": [ - { - "name": "sound name", - "type": "dropdown" - } - ], - "example_standalone": "start sound [Pop v]", - "example_with_other_blocks": [ - { - "script": "when this sprite clicked\n start sound [Pop v]\n change [score v] by (1)\nend", - "explanation": "This script plays a 'Pop' sound and increments the score simultaneously when the sprite is clicked." - } - ] - }, - { - "block_name": "stop all sounds", - "block_type": "Sound", - "block_shape": "Stack Block", - "op_code": "sound_stopallsounds", - "functionality": "Stops all currently playing sounds.", - "inputs": null, - "example_standalone": "stop all sounds", - "example_with_other_blocks": [ - { - "script": "when I receive [game over v]\n stop all sounds\nend", - "explanation": "This script stops any sounds currently playing when the 'game over' broadcast is received." - } - ] - }, - { - "block_name": "change volume by ()", - "block_type": "Sound", - "block_shape": "Stack Block", - "op_code": "sound_changevolumeby", - "functionality": "Changes the project's sound volume by a specified amount.", - "inputs": [ - { - "name": "change", - "type": "number" - } - ], - "example_standalone": "change volume by (-10)", - "example_with_other_blocks": [ - { - "script": "when [down arrow v] key pressed\n change volume by (-5)\nend", - "explanation": "This script decreases the project's volume by 5 when the down arrow key is pressed." - } - ] - }, - { - "block_name": "set volume to () %", - "block_type": "Sound", - "block_shape": "Stack Block", - "op_code": "sound_setvolumeto", - "functionality": "Sets the sound volume to a specific percentage (0-100).", - "inputs": [ - { - "name": "percentage", - "type": "number" - } - ], - "example_standalone": "set volume to (100) %", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set volume to (50) %\nend", - "explanation": "This script sets the project's volume to 50% when the green flag is clicked." - } - ] - }, - { - "block_name": "broadcast ()", - "block_type": "Events", - "block_shape": "Stack Block", - "op_code": "event_broadcast", - "functionality": "Sends a broadcast message throughout the Scratch program, activating any 'when I receive ()' blocks that are set to listen for that message, enabling indirect communication.", - "inputs": [ - { - "name": "message name", - "type": "string/dropdown" - } - ], - "example_standalone": "broadcast [start game v]", - "example_with_other_blocks": [ - { - "script": "if then\n broadcast [jump v]\nend", - "explanation": "This script sends a 'jump' message to other scripts or sprites when the space key is pressed." - } - ] - }, - { - "block_name": "broadcast () and wait", - "block_type": "Events", - "block_shape": "Stack Block", - "op_code": "event_broadcastandwait", - "functionality": "Sends a broadcast message and pauses the current script until all other scripts activated by that broadcast have completed their execution, ensuring sequential coordination.", - "inputs": [ - { - "name": "message name", - "type": "string/dropdown" - } - ], - "example_standalone": "broadcast [initialize sprites v] and wait", - "example_with_other_blocks": [ - { - "script": "broadcast [initialize sprites v] and wait\n say [Game Started!] for (2) seconds", - "explanation": "This script ensures all sprite initialization routines complete before displaying 'Game Started!' for 2 seconds." - } - ] - }, - { - "block_name": "wait () seconds", - "block_type": "Control", - "block_shape": "Stack Block", - "op_code": "control_wait", - "functionality": "Pauses the script for a specified duration.", - "inputs": [ - { - "name": "seconds", - "type": "number" - } - ], - "example_standalone": "wait (1) seconds", - "example_with_other_blocks": [ - { - "script": "say [Hello!] for (1) seconds\n wait (0.5) seconds\n say [Goodbye!] for (1) seconds", - "explanation": "This script creates a timed dialogue sequence, pausing for 0.5 seconds between two speech bubbles." - } - ] - }, - { - "block_name": "wait until <>", - "block_type": "Control", - "block_shape": "Stack Block", - "op_code": "control_wait_until", - "functionality": "Pauses the script until the specified boolean condition becomes true. [NOTE: it takes boolean blocks as input]", - "inputs": [ - { - "name": "condition", - "type": "boolean" - } - ], - "example_standalone": "wait until ", - "example_with_other_blocks": [ - { - "script": "wait until \n start sound [pop v]\nend", - "explanation": "This script pauses until the space key is pressed, then plays a 'pop' sound." - } - ] - }, - { - "block_name": "stop ()", - "block_type": "Control", - "block_shape": "Stack Block", - "op_code": "control_stop", - "functionality": "Stops all scripts, this script, or other scripts in the sprite. Becomes a Cap Block if 'all' or 'this script' is selected in the dropdown menu.", - "inputs": [ - { - "name": "option", - "type": "dropdown", - "options": [ - "all", - "this script", - "other scripts in sprite" - ] - } - ], - "example_standalone": "stop [all v]", - "example_with_other_blocks": [ - { - "script": "if then\n stop [all v]\nend", - "explanation": "This script stops the entire project if the 'score' variable becomes 0." - } - ] - }, - { - "block_name": "create clone of ()", - "block_type": "Control", - "block_shape": "Stack Block", - "op_code": "control_create_clone_of", - "functionality": "Generates a copy, or clone, of a specified sprite (or 'myself' for the current sprite).", - "inputs": [ - { - "name": "sprite_name", - "type": "dropdown", - "options": [ - "myself", - "sprite1", - "..." - ] - } - ], - "example_standalone": "create clone of [myself v]", - "example_with_other_blocks": [ - { - "script": "when I start as a clone\n show\n go to random position\n wait (2) seconds\n delete this clone\nend", - "explanation": "When a clone is created, it will show itself, go to a random position, wait for 2 seconds, and then delete itself." - } - ] - }, - { - "block_name": "delete this clone", - "block_type": "Control", - "block_shape": "Stack Block", - "op_code": "control_delete_this_clone", - "functionality": "Deletes the clone that is currently running the script.", - "inputs": null, - "example_standalone": "delete this clone", - "example_with_other_blocks": [ - { - "script": "when I start as a clone\n wait (5) seconds\n delete this clone\nend", - "explanation": "This script makes each clone wait for 5 seconds after it's created, then deletes itself." - } - ] - }, - { - "block_name": "set [my variable v] to ()", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_setvariableto", - "functionality": "Assigns a specific value (number, string, or boolean) to a variable.", - "inputs": [ - { - "name": "variable name", - "type": "dropdown" - }, - { - "name": "value", - "type": "any" - } - ], - "example_standalone": "set [score v] to (0)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set [score v] to (0)\n set [player name v] to [Guest]\nend", - "explanation": "This script initializes the 'score' variable to 0 and the 'player name' variable to 'Guest' when the project starts." - } - ] - }, - { - "block_name": "change [my variable v] by ()", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_changevariableby", - "functionality": "Increases or decreases a variable's numerical value by a specified amount.", - "inputs": [ - { - "name": "variable name", - "type": "dropdown" - }, - { - "name": "value", - "type": "number" - } - ], - "example_standalone": "change [score v] by (1)", - "example_with_other_blocks": [ - { - "script": "when this sprite clicked\n change [score v] by (1)\nend", - "explanation": "This script increments the 'score' variable by 1 each time the sprite is clicked." - } - ] - }, - { - "block_name": "add () to [my list v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_addtolist", - "functionality": "Appends an item to the end of a list.", - "inputs": [ - { - "name": "item", - "type": "any" - }, - { - "name": "list name", - "type": "dropdown" - } - ], - "example_standalone": "add [apple] to [shopping list v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n add [apple] to [shopping list v]\n add [banana] to [shopping list v]\nend", - "explanation": "This script adds 'apple' and 'banana' as new items to the 'shopping list' when the project starts." - } - ] - }, - { - "block_name": "delete () of [my list v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_deleteoflist", - "functionality": "Removes an item from a list by its index or by selecting 'all' items.", - "inputs": [ - { - "name": "index/option", - "type": "number/dropdown", - "options": [ - "all", - "last", - "random" - ] - }, - { - "name": "list name", - "type": "dropdown" - } - ], - "example_standalone": "delete (1) of [my list v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n delete (all) of [my list v]\nend", - "explanation": "This script clears all items from 'my list' when the green flag is clicked." - } - ] - }, - { - "block_name": "insert () at () of [my list v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_insertatlist", - "functionality": "Inserts an item at a specific position within a list.", - "inputs": [ - { - "name": "item", - "type": "any" - }, - { - "name": "index", - "type": "number" - }, - { - "name": "list name", - "type": "dropdown" - } - ], - "example_standalone": "insert [orange] at (2) of [fruits v]", - "example_with_other_blocks": [ - { - "script": "insert [orange] at (2) of [fruits v]", - "explanation": "This script inserts 'orange' as the second item in the 'fruits' list, shifting subsequent items." - } - ] - }, - { - "block_name": "replace item () of [my list v] with ()", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_replaceitemoflist", - "functionality": "Replaces an item at a specific position in a list with a new value.", - "inputs": [ - { - "name": "index", - "type": "number" - }, - { - "name": "list name", - "type": "dropdown" - }, - { - "name": "new item", - "type": "any" - } - ], - "example_standalone": "replace item (1) of [colors v] with [blue]", - "example_with_other_blocks": [ - { - "script": "replace item (1) of [colors v] with [blue]", - "explanation": "This script changes the first item in the 'colors' list to 'blue'." - } - ] - }, - { - "block_name": "show variable [my variable v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_showvariable", - "functionality": "Makes a variable's monitor visible on the stage.", - "inputs": [ - { - "name": "variable name", - "type": "dropdown" - } - ], - "example_standalone": "show variable [score v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n show variable [score v]\nend", - "explanation": "This script displays the 'score' variable on the stage when the project starts." - } - ] - }, - { - "block_name": "hide variable [my variable v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_hidevariable", - "functionality": "Hides a variable's monitor from the stage.", - "inputs": [ - { - "name": "variable name", - "type": "dropdown" - } - ], - "example_standalone": "hide variable [score v]", - "example_with_other_blocks": [ - { - "script": "when I receive [game over v]\n hide variable [score v]\nend", - "explanation": "This script hides the 'score' variable when the 'game over' broadcast is received." - } - ] - }, - { - "block_name": "show list [my list v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_showlist", - "functionality": "Makes a list's monitor visible on the stage.", - "inputs": [ - { - "name": "list name", - "type": "dropdown" - } - ], - "example_standalone": "show list [shopping list v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n show list [shopping list v]\nend", - "explanation": "This script displays the 'shopping list' on the stage when the project starts." - } - ] - }, - { - "block_name": "hide list [my list v]", - "block_type": "Data", - "block_shape": "Stack Block", - "op_code": "data_hidelist", - "functionality": "Hides a list's monitor from the stage.", - "inputs": [ - { - "name": "list name", - "type": "dropdown" - } - ], - "example_standalone": "hide list [shopping list v]", - "example_with_other_blocks": [ - { - "script": "when I receive [game over v]\n hide list [shopping list v]\nend", - "explanation": "This script hides the 'shopping list' when the 'game over' broadcast is received." - } - ] - }, - { - "block_name": "Ask () and Wait", - "block_type": "Sensing", - "block_shape": "Stack Block", - "op_code": "sensing_askandwait", - "functionality": "Displays an input box with specified text at the bottom of the screen, allowing users to input text, which is stored in the 'Answer' block.", - "inputs": [ - { - "name": "question", - "type": "text" - } - ], - "example_standalone": "ask [What is your name? v] and wait", - "example_with_other_blocks": [ - { - "script": "ask [What is your name? v] and wait\n say join [Hello v] (answer) for (2) seconds \nend", - "explanation": "This script prompts the user for their name, waits for input, then greets them using the provided answer." - } - ] - }, - { - "block_name": "Reset Timer", - "block_type": "Sensing", - "block_shape": "Stack Block", - "op_code": "sensing_resettimer", - "functionality": "Sets the timer’s value back to 0.0.", - "inputs": null, - "example_standalone": "reset timer", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n reset timer\n wait (5) seconds\n say timer for (2) seconds\nend", - "explanation": "This script resets the timer at the start, waits for 5 seconds, then says the current timer value." - } - ] - }, - { - "block_name": "set drag mode [draggable v]", - "block_type": "Sensing", - "block_shape": "Stack Block", - "op_code": "sensing_setdragmode", - "functionality": "Sets whether the sprite can be dragged by the mouse on the stage.", - "inputs": null, - "fields": { - "DRAG_MODE": { - "type": "dropdown", - "options": [ - "draggable", - "not draggable" - ] - } - }, - "example_standalone": "set drag mode [draggable v]", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n set drag mode [not draggable v]\nend when this sprite clicked\n set drag mode [draggable v] \nend", - "explanation": "This script makes the sprite not draggable when the project starts, but allows it to be dragged once it's clicked." - } - ] - }, - { - "block_name": "[my custom block]", - "block_type": "My Blocks", - "block_shape": "Stack Block", - "op_code": "procedures_call", - "functionality": "Executes the script defined by a corresponding 'define' Hat block. This block allows users to call and reuse custom code sequences by simply dragging and dropping it into their scripts, optionally providing required input values.", - "inputs": [ - { - "name": "argument_name_1", - "type": "any" - }, - { - "name": "argument_name_2", - "type": "any" - } - ], - "example_standalone": "jump (50)", - "example_with_other_blocks": [ - { - "script": "when green flag clicked\n go to x: (0) y: (0)\n jump (50)\n wait (1) seconds\n say [I jumped!] for (2) seconds", - "explanation": "This script moves the sprite to a starting position, then calls the 'jump' custom block with an input of 50 (assuming 'jump' is a custom block that moves the sprite up and down). After the jump, the sprite says 'I jumped!'." - }, - { - "script": "when green flag clicked\n hide\n forever\n create clone of [myself v]\n wait (1) seconds\n end", - "explanation": "This script continuously creates new clones of the current sprite every second after the original sprite hides itself." - } - ] - } - ] +{ + "block_category": "Stack Blocks", + "description": "Stack blocks are the most common block shape, featuring a notch at the top and a bump at the bottom. They perform the main commands within a script and can connect both above and below them.", + "blocks": [ + { + "block_name": "move () steps", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_movesteps", + "functionality": "Moves the sprite forward by the specified number of steps in the direction it is currently facing. A positive value moves it forward, and a negative value moves it backward.", + "inputs": [ + { + "name": "STEPS", + "type": "number" + } + ], + "example_standalone": "move () steps", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n go to x: (0) y: (0)\n point in direction (90)\n move (50) steps\nend", + "explanation": "This script first places the sprite at the center of the stage, points it to the right (90 degrees), and then moves it 50 steps in that direction." + } + ] + }, + { + "block_name": "turn right () degrees", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_turnright", + "functionality": "Turns the sprite clockwise by the specified number of degrees.", + "inputs": [ + { + "name": "DEGREES", + "type": "number" + } + ], + "example_standalone": "turn (clockwise icon) (15) degrees", + "example_with_other_blocks": [ + { + "script": "when [right arrow v] key pressed\n turn (clockwise icon) (15) degrees\nend", + "explanation": "This script makes the sprite turn clockwise by 15 degrees every time the right arrow key is pressed." + }, + { + "script": "when green flag clicked\n forever\n turn (clockwise icon) (15) degrees\n wait (0.5) seconds\n end", + "explanation": "This script makes the sprite continuously spin clockwise by 15 degrees every half second." + } + ] + }, + { + "block_name": "turn left () degrees", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_turnleft", + "functionality": "Turns the sprite counter-clockwise by the specified number of degrees.", + "inputs": [ + { + "name": "DEGREES", + "type": "number" + } + ], + "example_standalone": "turn (counter-clockwise icon) (15) degrees", + "example_with_other_blocks": [ + { + "script": "when [left arrow v] key pressed\n turn (counter-clockwise icon) (15) degrees\nend", + "explanation": "This script makes the sprite turn counter-clockwise by 15 degrees every time the left arrow key is pressed." + }, + { + "script": "when green flag clicked\n forever\n turn (counter-clockwise icon) (15) degrees\n wait (0.5) seconds\n end\nend", + "explanation": "This script makes the sprite continuously spin counter-clockwise by 15 degrees every half second." + } + ] + }, + { + "block_name": "go to ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_goto", + "functionality": "Moves the sprite to a specified location, which can be a random position or at the mouse pointer or another to the sprite.", + "inputs": [ + { + "name": "TO", + "type": "dropdown", + "options": [ + "random position", + "mouse-pointer", + "sprite1", + "..." + ] + } + ], + "example_standalone": "go to [random position v]", + "example_with_other_blocks": [ + { + "script": "when this sprite clicked\n go to [mouse-pointer v]", + "explanation": "This script moves the sprite to the current position of the mouse pointer whenever the sprite is clicked." + }, + { + "script": "when this sprite clicked\n go to [sprite v]", + "explanation": "This script moves the sprite to the another sprite's position whenever the sprite is clicked." + } + ] + }, + { + "block_name": "go to x: () y: ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_gotoxy", + "functionality": "Moves the sprite to the specified X and Y coordinates on the stage.", + "inputs": [ + { + "name": "X", + "type": "number" + }, + { + "name": "Y", + "type": "number" + } + ], + "example_standalone": "go to x: (0) y: (0)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n go to x: (120) y: (0)\n say [Ready to start! v] for (1) seconds\nend", + "explanation": "This script positions the sprite at the center of the stage at the beginning of the project and then makes it say 'Ready to start!'." + } + ] + }, + { + "block_name": "glide () secs to ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_glideto", + "functionality": "Glides the sprite smoothly to a specified location (random position, mouse pointer, or another sprite) over a given number of seconds.", + "inputs": [ + { + "name": "SECS", + "type": "number" + }, + { + "name": "TO", + "type": "dropdown", + "options": [ + "random position", + "mouse-pointer", + "sprite1", + "sprite2", + "..." + ] + } + ], + "example_standalone": "glide (1) secs to ([random position v])", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n glide (1) secs to ([mouse-pointer v])\nend", + "explanation": "This script makes the sprite glide smoothly to the mouse pointer's position over 1 second when the green flag is clicked." + } + ] + }, + { + "block_name": "glide () secs to x: () y: ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_glidesecstoxy", + "functionality": "Glides the sprite smoothly to the specified X and Y coordinates over a given number of seconds.", + "inputs": [ + { + "name": "SECS", + "type": "number" + }, + { + "name": "X", + "type": "number" + }, + { + "name": "Y", + "type": "number" + } + ], + "example_standalone": "glide (1) secs to x: (100) y: (50)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n glide (2) secs to x: (150) y: (-100)\n glide (2) secs to x: (-150) y: (100)\nend", + "explanation": "This script makes the sprite glide to two different points on the stage, taking 2 seconds for each movement." + } + ] + }, + { + "block_name": "point in direction ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_pointindirection", + "functionality": "Sets the sprite's direction to a specified angle in degrees (0 = up, 90 = right, 180 = down, -90 = left).", + "inputs": [ + { + "name": "DIRECTION", + "type": "number" + } + ], + "example_standalone": "point in direction (90)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n point in direction (0)\n move (100) steps\nend", + "explanation": "This script makes the sprite point upwards (0 degrees) and then move 100 steps in that direction." + } + ] + }, + { + "block_name": "point towards ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_pointtowards", + "functionality": "Points the sprite towards the mouse pointer or another specified sprite.", + "inputs": [ + { + "name": "TOWARDS", + "type": "dropdown", + "options": [ + "mouse-pointer", + "sprite1", + "..." + ] + } + ], + "example_standalone": "point towards [mouse-pointer v]", + "example_with_other_blocks": [ + { + "script": "when this sprite clicked\n point towards [mouse-pointer v]\n move (10) steps\nend", + "explanation": "When the sprite is clicked, it will point towards the mouse pointer and then move 10 steps in that direction." + }, + { + "script": "when green flag clicked\n forever\n point towards [mouse-pointer v]\n move (5) steps\n end\nend", + "explanation": "This script makes the sprite continuously follow the mouse pointer." + } + ] + }, + { + "block_name": "change x by ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_changexby", + "functionality": "Changes the sprite's X-coordinate by the specified amount, moving it horizontally.", + "inputs": [ + { + "name": "DX", + "type": "number" + } + ], + "example_standalone": "change x by (10)", + "example_with_other_blocks": [ + { + "script": "when [right arrow v] key pressed\n change x by (10)\nend", + "explanation": "This script moves the sprite 10 steps to the right when the right arrow key is pressed." + } + ] + }, + { + "block_name": "set x to ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_setx", + "functionality": "Sets the sprite's X-coordinate to a specific value, placing it at a precise horizontal position.", + "inputs": [ + { + "name": "X", + "type": "number" + } + ], + "example_standalone": "set x to (0)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set x to (0)\n set y to (0)\nend", + "explanation": "This script centers the sprite horizontally at the start of the project." + } + ] + }, + { + "block_name": "change y by ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_changeyby", + "functionality": "Changes the sprite's Y-coordinate by the specified amount, moving it vertically.", + "inputs": [ + { + "name": "DY", + "type": "number" + } + ], + "example_standalone": "change y by (10)", + "example_with_other_blocks": [ + { + "script": "when [up arrow v] key pressed\n change y by (10)\nend", + "explanation": "This script moves the sprite 10 steps up when the up arrow key is pressed." + } + ] + }, + { + "block_name": "set y to ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_sety", + "functionality": "Sets the sprite's Y-coordinate to a specific value, placing it at a precise vertical position.", + "inputs": [ + { + "name": "Y", + "type": "number" + } + ], + "example_standalone": "set y to (0)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set x to (0)\n set y to (0)\nend", + "explanation": "This script centers the sprite vertically at the start of the project." + } + ] + }, + { + "block_name": "if on edge, bounce", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_ifonedgebounce", + "functionality": "Reverses the sprite's direction if it touches the edge of the stage.", + "inputs": null, + "example_standalone": "if on edge, bounce", + "example_with_other_blocks": [ + { + "script": "when I receive [start moving v]\n repeat (50)\n move (5) steps\n if on edge, bounce\n end\nend", + "explanation": "Upon receiving the 'start moving' broadcast, the sprite will move 5 steps repeatedly for 50 times, bouncing off edges if it touches them." + }, + { + "script": "when green flag clicked\n forever\n move (10) steps\n if on edge, bounce\n end\nend", + "explanation": "This script makes the sprite move continuously and bounce off the edges of the stage." + } + ] + }, + { + "block_name": "set rotation style ()", + "block_type": "Motion", + "block_shape": "Stack Block", + "op_code": "motion_setrotationstyle", + "functionality": "Determines how the sprite rotates: 'left-right' (flips horizontally), 'don't rotate' (stays facing one direction), or 'all around' (rotates freely).", + "inputs": [ + { + "name": "STYLE", + "type": "dropdown", + "options": [ + "left-right", + "don't rotate", + "all around" + ] + } + ], + "example_standalone": "set rotation style [left-right v]", + "example_with_other_blocks": [ + { + "script": "when backdrop switches to [game level 1 v]\n set rotation style [all around v]\nend", + "explanation": "When the backdrop changes to 'game level 1', the sprite's rotation style will be set to 'all around', allowing it to rotate freely." + }, + { + "script": "when green flag clicked\n set rotation style [left-right v]\n forever\n move (10) steps\n if on edge, bounce\n end \nend", + "explanation": "This script makes the sprite move horizontally and flip its costume when it hits an edge, instead of rotating." + } + ] + }, + { + "block_name": "say () for () seconds", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_sayforsecs", + "functionality": "Displays a speech bubble containing specified text for a set duration.", + "inputs": [ + { + "name": "MESSAGE", + "type": "string" + }, + { + "name": "SECS", + "type": "number" + } + ], + "example_standalone": "say [Hello!] for (2) seconds", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n say [Grr] for (3) seconds\n say [Have you seen my honey? v] for (3) seconds\nend", + "explanation": "This script makes the sprite display two sequential speech bubbles with different messages and durations. First, it says 'Grr' for 3 seconds, then 'Have you seen my honey?' for another 3 seconds." + } + ] + }, + { + "block_name": "say ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_say", + "functionality": "Displays a speech bubble with the specified text indefinitely until another 'say' or 'think' block is activated.", + "inputs": [ + { + "name": "MESSAGE", + "type": "string" + } + ], + "example_standalone": "say [Hello! v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n say [Welcome to my game! v]\n wait (2) seconds\n say [] \nend", + "explanation": "This script makes the sprite say 'Welcome to my game!' for 2 seconds, then clears the speech bubble." + } + ] + }, + { + "block_name": "think () for () seconds", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_thinkforsecs", + "functionality": "Displays a thought bubble containing specified text for a set duration.", + "inputs": [ + { + "name": "MESSAGE", + "type": "string" + }, + { + "name": "SECS", + "type": "number" + } + ], + "example_standalone": "think [Hmm... v] for (2) seconds", + "example_with_other_blocks": [ + { + "script": "when this sprite clicked\n think [What should I do? v] for (2) seconds\nend", + "explanation": "This script makes the sprite display a thought bubble saying 'What should I do?' for 2 seconds when clicked." + } + ] + }, + { + "block_name": "think ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_think", + "functionality": "Displays a thought bubble with the specified text indefinitely until another 'say' or 'think' block is activated.", + "inputs": [ + { + "name": "MESSAGE", + "type": "string" + } + ], + "example_standalone": "think [Got it! v]", + "example_with_other_blocks": [ + { + "script": "when I receive [correct answer v]\n think [That's right! v]\n wait (1) seconds\n think [good v] \nend", + "explanation": "This script makes the sprite think 'That's right!' for 1 second when a 'correct answer' broadcast is received, then clears the thought bubble." + } + ] + }, + { + "block_name": "switch costume to ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_switchcostumeto", + "functionality": "Alters the sprite's appearance to a designated costume.", + "inputs": [ + { + "name": "COSTUME", + "type": "dropdown/number" + } + ], + "example_standalone": "switch costume to [costume1 v]", + "example_with_other_blocks": [ + { + "script": "when I receive [explosion v]\n repeat (5)\n next costume\n end\n hide[costume1 v] \nend", + "explanation": "This script animates an explosion by rapidly switching costumes, then hides the sprite. [3]" + } + ] + }, + { + "block_name": "next costume", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_nextcostume", + "functionality": "Switches the sprite's costume to the next one in its costume list. If it's the last costume, it cycles back to the first.", + "inputs": null, + "example_standalone": "next costume", + "example_with_other_blocks": [ + { + "script": "when [space v] key pressed\n repeat (3)\n next costume\n wait (0.1) seconds\n end \nend", + "explanation": "When the space key is pressed, the sprite will cycle through its next three costumes with a short delay between each change." + }, + { + "script": "when green flag clicked\n forever\n next costume\n wait (0.2) seconds\n end \nend", + "explanation": "This script continuously animates the sprite by switching to the next costume every 0.2 seconds, creating a walking or flying effect." + } + ] + }, + { + "block_name": "switch backdrop to ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_switchbackdropto", + "functionality": "Changes the stage's backdrop to a specified backdrop.", + "inputs": [ + { + "name": "BACKDROP", + "type": "dropdown/number" + } + ], + "example_standalone": "switch backdrop to [backdrop1 v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n switch backdrop to [start screen v]\nend ", + "explanation": "This script sets the stage to a 'start screen' backdrop when the project begins." + } + ] + }, + { + "block_name": "switch backdrop to () and wait", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_switchbackdroptowait", + "functionality": "Changes the stage's backdrop to a specified backdrop and pauses the script until any 'When backdrop switches to' scripts for that backdrop have finished.", + "inputs": [ + { + "name": "BACKDROP", + "type": "dropdown/number" + } + ], + "example_standalone": "switch backdrop to [game over v] and wait", + "example_with_other_blocks": [ + { + "script": "broadcast [game over v]\n switch backdrop to [game over v] and wait\n stop [all v] \nend", + "explanation": "This script broadcasts a 'game over' message, then changes the backdrop to 'game over' and waits for any associated scripts to finish before stopping all processes." + } + ] + }, + { + "block_name": "next backdrop", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_nextbackdrop", + "functionality": "Switches the stage's backdrop to the next one in its backdrop list. If it's the last backdrop, it cycles back to the first.", + "inputs": null, + "example_standalone": "next backdrop", + "example_with_other_blocks": [ + { + "script": "when [space v] key pressed\n next backdrop\nend", + "explanation": "This script changes the stage to the next backdrop in the list each time the space key is pressed." + } + ] + }, + { + "block_name": "change size by ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_changesizeby", + "functionality": "Changes the sprite's size by a specified percentage. Positive values make it larger, negative values make it smaller.", + "inputs": [ + { + "name": "CHANGE", + "type": "number" + } + ], + "example_standalone": "change size by (10)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n repeat (10)\n change size by (5)\n wait (0.1) seconds\n end \nend ", + "explanation": "This script makes the sprite gradually grow larger over 10 steps, with a short pause between each size change." + } + ] + }, + { + "block_name": "set size to () %", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_setsizeto", + "functionality": "Sets the sprite's size to a specific percentage of its original size.", + "inputs": [ + { + "name": "SIZE", + "type": "number" + } + ], + "example_standalone": "set size to (100) %", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set size to (50) %\n wait (1) seconds\n set size to (100) %\nend ", + "explanation": "This script makes the sprite shrink to half its original size at the start, waits for 1 second, then returns to its original size." + } + ] + }, + { + "block_name": "change () effect by ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_changeeffectby", + "functionality": "Changes a visual effect on the sprite by a specified amount (e.g., color, fisheye, whirl, pixelate, mosaic, brightness, ghost).", + "inputs": [ + { + "name": "EFFECT", + "type": "dropdown", + "options": [ + "color", + "fisheye", + "whirl", + "pixelate", + "mosaic", + "brightness", + "ghost" + ] + }, + { + "name": "CHANGE", + "type": "number" + } + ], + "example_standalone": "change [color v] effect by (25)", + "example_with_other_blocks": [ + { + "script": "when loudness > (10)\n change [fisheye v] effect by (5)\nend", + "explanation": "When the loudness detected by the microphone is greater than 10, the sprite's fisheye effect will increase by 5." + }, + { + "script": "when green flag clicked\n forever\n change [color v] effect by (5)\n wait (0.1) seconds\n end \nend", + "explanation": "This script makes the sprite continuously cycle through different colors." + } + ] + }, + { + "block_name": "set () effect to ()", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_seteffectto", + "functionality": "Sets a visual effect on the sprite to a specific value.", + "inputs": [ + { + "name": "EFFECT", + "type": "dropdown", + "options": [ + "color", + "fisheye", + "whirl", + "pixelate", + "mosaic", + "brightness", + "ghost" + ] + }, + { + "name": "VALUE", + "type": "number" + } + ], + "example_standalone": "set [ghost v] effect to (50)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set [ghost v] effect to (75)\nend", + "explanation": "This script makes the sprite 75% transparent at the start of the project." + } + ] + }, + { + "block_name": "clear graphic effects", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_cleargraphiceffects", + "functionality": "Removes all visual effects applied to the sprite.", + "inputs": null, + "example_standalone": "clear graphic effects", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n change [color v] effect by (50)\n wait (2) seconds\n clear graphic effects\nend", + "explanation": "This script changes the sprite's color effect, waits 2 seconds, then resets all graphic effects." + } + ] + }, + { + "block_name": "show", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_show", + "functionality": "Makes the sprite visible on the stage.", + "inputs": null, + "example_standalone": "show", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n hide[start game v]\nwhen I receive [start game v]\n show [start game v] \nend", + "explanation": "This script hides the sprite at the beginning of the project and makes it visible when a 'start game' broadcast is received." + } + ] + }, + { + "block_name": "hide", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_hide", + "functionality": "Makes the sprite invisible on the stage.", + "inputs": null, + "example_standalone": "hide", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n hide \nend", + "explanation": "This script hides the sprite from the stage when the green flag is clicked." + } + ] + }, + { + "block_name": "go to () layer", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_gotofrontback", + "functionality": "Moves the sprite to the front-most or back-most layer of other sprites on the stage.", + "inputs": [ + { + "name": "FRONT_BACK", + "type": "dropdown", + "options": [ + "front", + "back" + ] + } + ], + "example_standalone": "go to [front v] layer", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n go to [front v] layer\nend", + "explanation": "This script ensures the sprite is always visible on top of other sprites at the start of the project." + } + ] + }, + { + "block_name": "go () layers", + "block_type": "Looks", + "block_shape": "Stack Block", + "op_code": "looks_goforwardbackwardlayers", + "functionality": "Moves the sprite forward or backward a specified number of layers in relation to other sprites.", + "inputs": [ + { + "name": "FORWARD_BACKWARD", + "type": "dropdown", + "options": [ + "forward", + "backward" + ] + }, + { + "name": "NUM", + "type": "number" + } + ], + "example_standalone": "go [forward v] (1) layers", + "example_with_other_blocks": [ + { + "script": "when this sprite clicked go [forward v] (1) layers\nend", + "explanation": "This script brings the clicked sprite one layer closer to the front." + } + ] + }, + { + "block_name": "play sound () until done", + "block_type": "Sound", + "block_shape": "Stack Block", + "op_code": "sound_playuntildone", + "functionality": "Plays a specified sound and pauses the script's execution until the sound has completed.", + "inputs": [ + { + "name": "sound name", + "type": "dropdown" + } + ], + "example_standalone": "play sound [Meow v] until done", + "example_with_other_blocks": [ + { + "script": "when backdrop switches to [winning screen v]\n play sound [fanfare v] until done\n say [You won!] for (2) seconds\nend", + "explanation": "When the backdrop changes to the 'winning screen', a 'fanfare' sound will play until it finishes, and then the sprite will say 'You won!' for 2 seconds." + }, + { + "script": "forever\n play sound [Music v] until done \nend", + "explanation": "This script creates a continuous loop for background music, playing the 'Music' sound repeatedly." + } + ] + }, + { + "block_name": "start sound ()", + "block_type": "Sound", + "block_shape": "Stack Block", + "op_code": "sound_play", + "functionality": "Initiates playback of a specified sound without pausing the script, allowing other actions to proceed concurrently.", + "inputs": [ + { + "name": "sound name", + "type": "dropdown" + } + ], + "example_standalone": "start sound [Pop v]", + "example_with_other_blocks": [ + { + "script": "when this sprite clicked\n start sound [Pop v]\n change [score v] by (1)\nend", + "explanation": "This script plays a 'Pop' sound and increments the score simultaneously when the sprite is clicked." + } + ] + }, + { + "block_name": "stop all sounds", + "block_type": "Sound", + "block_shape": "Stack Block", + "op_code": "sound_stopallsounds", + "functionality": "Stops all currently playing sounds.", + "inputs": null, + "example_standalone": "stop all sounds", + "example_with_other_blocks": [ + { + "script": "when I receive [game over v]\n stop all sounds\nend", + "explanation": "This script stops any sounds currently playing when the 'game over' broadcast is received." + } + ] + }, + { + "block_name": "change volume by ()", + "block_type": "Sound", + "block_shape": "Stack Block", + "op_code": "sound_changevolumeby", + "functionality": "Changes the project's sound volume by a specified amount.", + "inputs": [ + { + "name": "change", + "type": "number" + } + ], + "example_standalone": "change volume by (-10)", + "example_with_other_blocks": [ + { + "script": "when [down arrow v] key pressed\n change volume by (-5)\nend", + "explanation": "This script decreases the project's volume by 5 when the down arrow key is pressed." + } + ] + }, + { + "block_name": "set volume to () %", + "block_type": "Sound", + "block_shape": "Stack Block", + "op_code": "sound_setvolumeto", + "functionality": "Sets the sound volume to a specific percentage (0-100).", + "inputs": [ + { + "name": "percentage", + "type": "number" + } + ], + "example_standalone": "set volume to (100) %", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set volume to (50) %\nend", + "explanation": "This script sets the project's volume to 50% when the green flag is clicked." + } + ] + }, + { + "block_name": "broadcast ()", + "block_type": "Events", + "block_shape": "Stack Block", + "op_code": "event_broadcast", + "functionality": "Sends a broadcast message throughout the Scratch program, activating any 'when I receive ()' blocks that are set to listen for that message, enabling indirect communication.", + "inputs": [ + { + "name": "message name", + "type": "string/dropdown" + } + ], + "example_standalone": "broadcast [start game v]", + "example_with_other_blocks": [ + { + "script": "if then\n broadcast [jump v]\nend", + "explanation": "This script sends a 'jump' message to other scripts or sprites when the space key is pressed." + } + ] + }, + { + "block_name": "broadcast () and wait", + "block_type": "Events", + "block_shape": "Stack Block", + "op_code": "event_broadcastandwait", + "functionality": "Sends a broadcast message and pauses the current script until all other scripts activated by that broadcast have completed their execution, ensuring sequential coordination.", + "inputs": [ + { + "name": "message name", + "type": "string/dropdown" + } + ], + "example_standalone": "broadcast [initialize sprites v] and wait", + "example_with_other_blocks": [ + { + "script": "broadcast [initialize sprites v] and wait\n say [Game Started!] for (2) seconds", + "explanation": "This script ensures all sprite initialization routines complete before displaying 'Game Started!' for 2 seconds." + } + ] + }, + { + "block_name": "wait () seconds", + "block_type": "Control", + "block_shape": "Stack Block", + "op_code": "control_wait", + "functionality": "Pauses the script for a specified duration.", + "inputs": [ + { + "name": "seconds", + "type": "number" + } + ], + "example_standalone": "wait (1) seconds", + "example_with_other_blocks": [ + { + "script": "say [Hello!] for (1) seconds\n wait (0.5) seconds\n say [Goodbye!] for (1) seconds", + "explanation": "This script creates a timed dialogue sequence, pausing for 0.5 seconds between two speech bubbles." + } + ] + }, + { + "block_name": "wait until <>", + "block_type": "Control", + "block_shape": "Stack Block", + "op_code": "control_wait_until", + "functionality": "Pauses the script until the specified boolean condition becomes true. [NOTE: it takes boolean blocks as input]", + "inputs": [ + { + "name": "condition", + "type": "boolean" + } + ], + "example_standalone": "wait until ", + "example_with_other_blocks": [ + { + "script": "wait until \n start sound [pop v]\nend", + "explanation": "This script pauses until the space key is pressed, then plays a 'pop' sound." + } + ] + }, + { + "block_name": "stop ()", + "block_type": "Control", + "block_shape": "Stack Block", + "op_code": "control_stop", + "functionality": "Stops all scripts, this script, or other scripts in the sprite. Becomes a Cap Block if 'all' or 'this script' is selected in the dropdown menu.", + "inputs": [ + { + "name": "option", + "type": "dropdown", + "options": [ + "all", + "this script", + "other scripts in sprite" + ] + } + ], + "example_standalone": "stop [all v]", + "example_with_other_blocks": [ + { + "script": "if then\n stop [all v]\nend", + "explanation": "This script stops the entire project if the 'score' variable becomes 0." + } + ] + }, + { + "block_name": "create clone of ()", + "block_type": "Control", + "block_shape": "Stack Block", + "op_code": "control_create_clone_of", + "functionality": "Generates a copy, or clone, of a specified sprite (or 'myself' for the current sprite).", + "inputs": [ + { + "name": "sprite_name", + "type": "dropdown", + "options": [ + "myself", + "sprite1", + "..." + ] + } + ], + "example_standalone": "create clone of [myself v]", + "example_with_other_blocks": [ + { + "script": "when I start as a clone\n show\n go to random position\n wait (2) seconds\n delete this clone\nend", + "explanation": "When a clone is created, it will show itself, go to a random position, wait for 2 seconds, and then delete itself." + } + ] + }, + { + "block_name": "delete this clone", + "block_type": "Control", + "block_shape": "Stack Block", + "op_code": "control_delete_this_clone", + "functionality": "Deletes the clone that is currently running the script.", + "inputs": null, + "example_standalone": "delete this clone", + "example_with_other_blocks": [ + { + "script": "when I start as a clone\n wait (5) seconds\n delete this clone\nend", + "explanation": "This script makes each clone wait for 5 seconds after it's created, then deletes itself." + } + ] + }, + { + "block_name": "set [my variable v] to ()", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_setvariableto", + "functionality": "Assigns a specific value (number, string, or boolean) to a variable.", + "inputs": [ + { + "name": "variable name", + "type": "dropdown" + }, + { + "name": "value", + "type": "any" + } + ], + "example_standalone": "set [score v] to (0)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set [score v] to (0)\n set [player name v] to [Guest]\nend", + "explanation": "This script initializes the 'score' variable to 0 and the 'player name' variable to 'Guest' when the project starts." + } + ] + }, + { + "block_name": "change [my variable v] by ()", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_changevariableby", + "functionality": "Increases or decreases a variable's numerical value by a specified amount.", + "inputs": [ + { + "name": "variable name", + "type": "dropdown" + }, + { + "name": "value", + "type": "number" + } + ], + "example_standalone": "change [score v] by (1)", + "example_with_other_blocks": [ + { + "script": "when this sprite clicked\n change [score v] by (1)\nend", + "explanation": "This script increments the 'score' variable by 1 each time the sprite is clicked." + } + ] + }, + { + "block_name": "add () to [my list v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_addtolist", + "functionality": "Appends an item to the end of a list.", + "inputs": [ + { + "name": "item", + "type": "any" + }, + { + "name": "list name", + "type": "dropdown" + } + ], + "example_standalone": "add [apple] to [shopping list v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n add [apple] to [shopping list v]\n add [banana] to [shopping list v]\nend", + "explanation": "This script adds 'apple' and 'banana' as new items to the 'shopping list' when the project starts." + } + ] + }, + { + "block_name": "delete () of [my list v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_deleteoflist", + "functionality": "Removes an item from a list by its index or by selecting 'all' items.", + "inputs": [ + { + "name": "index/option", + "type": "number/dropdown", + "options": [ + "all", + "last", + "random" + ] + }, + { + "name": "list name", + "type": "dropdown" + } + ], + "example_standalone": "delete (1) of [my list v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n delete (all) of [my list v]\nend", + "explanation": "This script clears all items from 'my list' when the green flag is clicked." + } + ] + }, + { + "block_name": "insert () at () of [my list v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_insertatlist", + "functionality": "Inserts an item at a specific position within a list.", + "inputs": [ + { + "name": "item", + "type": "any" + }, + { + "name": "index", + "type": "number" + }, + { + "name": "list name", + "type": "dropdown" + } + ], + "example_standalone": "insert [orange] at (2) of [fruits v]", + "example_with_other_blocks": [ + { + "script": "insert [orange] at (2) of [fruits v]", + "explanation": "This script inserts 'orange' as the second item in the 'fruits' list, shifting subsequent items." + } + ] + }, + { + "block_name": "replace item () of [my list v] with ()", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_replaceitemoflist", + "functionality": "Replaces an item at a specific position in a list with a new value.", + "inputs": [ + { + "name": "index", + "type": "number" + }, + { + "name": "list name", + "type": "dropdown" + }, + { + "name": "new item", + "type": "any" + } + ], + "example_standalone": "replace item (1) of [colors v] with [blue]", + "example_with_other_blocks": [ + { + "script": "replace item (1) of [colors v] with [blue]", + "explanation": "This script changes the first item in the 'colors' list to 'blue'." + } + ] + }, + { + "block_name": "show variable [my variable v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_showvariable", + "functionality": "Makes a variable's monitor visible on the stage.", + "inputs": [ + { + "name": "variable name", + "type": "dropdown" + } + ], + "example_standalone": "show variable [score v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n show variable [score v]\nend", + "explanation": "This script displays the 'score' variable on the stage when the project starts." + } + ] + }, + { + "block_name": "hide variable [my variable v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_hidevariable", + "functionality": "Hides a variable's monitor from the stage.", + "inputs": [ + { + "name": "variable name", + "type": "dropdown" + } + ], + "example_standalone": "hide variable [score v]", + "example_with_other_blocks": [ + { + "script": "when I receive [game over v]\n hide variable [score v]\nend", + "explanation": "This script hides the 'score' variable when the 'game over' broadcast is received." + } + ] + }, + { + "block_name": "show list [my list v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_showlist", + "functionality": "Makes a list's monitor visible on the stage.", + "inputs": [ + { + "name": "list name", + "type": "dropdown" + } + ], + "example_standalone": "show list [shopping list v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n show list [shopping list v]\nend", + "explanation": "This script displays the 'shopping list' on the stage when the project starts." + } + ] + }, + { + "block_name": "hide list [my list v]", + "block_type": "Data", + "block_shape": "Stack Block", + "op_code": "data_hidelist", + "functionality": "Hides a list's monitor from the stage.", + "inputs": [ + { + "name": "list name", + "type": "dropdown" + } + ], + "example_standalone": "hide list [shopping list v]", + "example_with_other_blocks": [ + { + "script": "when I receive [game over v]\n hide list [shopping list v]\nend", + "explanation": "This script hides the 'shopping list' when the 'game over' broadcast is received." + } + ] + }, + { + "block_name": "Ask () and Wait", + "block_type": "Sensing", + "block_shape": "Stack Block", + "op_code": "sensing_askandwait", + "functionality": "Displays an input box with specified text at the bottom of the screen, allowing users to input text, which is stored in the 'Answer' block.", + "inputs": [ + { + "name": "question", + "type": "text" + } + ], + "example_standalone": "ask [What is your name? v] and wait", + "example_with_other_blocks": [ + { + "script": "ask [What is your name? v] and wait\n say join [Hello v] (answer) for (2) seconds \nend", + "explanation": "This script prompts the user for their name, waits for input, then greets them using the provided answer." + } + ] + }, + { + "block_name": "Reset Timer", + "block_type": "Sensing", + "block_shape": "Stack Block", + "op_code": "sensing_resettimer", + "functionality": "Sets the timer’s value back to 0.0.", + "inputs": null, + "example_standalone": "reset timer", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n reset timer\n wait (5) seconds\n say timer for (2) seconds\nend", + "explanation": "This script resets the timer at the start, waits for 5 seconds, then says the current timer value." + } + ] + }, + { + "block_name": "set drag mode [draggable v]", + "block_type": "Sensing", + "block_shape": "Stack Block", + "op_code": "sensing_setdragmode", + "functionality": "Sets whether the sprite can be dragged by the mouse on the stage.", + "inputs": null, + "fields": { + "DRAG_MODE": { + "type": "dropdown", + "options": [ + "draggable", + "not draggable" + ] + } + }, + "example_standalone": "set drag mode [draggable v]", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n set drag mode [not draggable v]\nend when this sprite clicked\n set drag mode [draggable v] \nend", + "explanation": "This script makes the sprite not draggable when the project starts, but allows it to be dragged once it's clicked." + } + ] + }, + { + "block_name": "[my custom block]", + "block_type": "My Blocks", + "block_shape": "Stack Block", + "op_code": "procedures_call", + "functionality": "Executes the script defined by a corresponding 'define' Hat block. This block allows users to call and reuse custom code sequences by simply dragging and dropping it into their scripts, optionally providing required input values.", + "inputs": [ + { + "name": "argument_name_1", + "type": "any" + }, + { + "name": "argument_name_2", + "type": "any" + } + ], + "example_standalone": "jump (50)", + "example_with_other_blocks": [ + { + "script": "when green flag clicked\n go to x: (0) y: (0)\n jump (50)\n wait (1) seconds\n say [I jumped!] for (2) seconds", + "explanation": "This script moves the sprite to a starting position, then calls the 'jump' custom block with an input of 50 (assuming 'jump' is a custom block that moves the sprite up and down). After the jump, the sprite says 'I jumped!'." + }, + { + "script": "when green flag clicked\n hide\n forever\n create clone of [myself v]\n wait (1) seconds\n end", + "explanation": "This script continuously creates new clones of the current sprite every second after the original sprite hides itself." + } + ] + } + ] } \ No newline at end of file