Discuss Scratch

techbro278
Scratcher
1 post

Scratch emulator (GriffScratch) saved projects

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 109 , -147 , [ , ]] , [ 52 , 44 , [ , , , , , , [“doForever” ,[ [“warpSpeed” ,[ [“turnLeft:” , ] , [“forward:” , ] , , ] ] ] ] ]] ] }],“info”:{} }

This makes a double spiral thing
Princeliebe
Scratcher
10 posts

Scratch emulator (GriffScratch) saved projects

saidprotuner wrote:

peppe
Bro why did you say this
define me because I don't know how to define myself because my info thing is so long i got a million friends in real life not on scratch tho so i cant define myself
Princeliebe
Scratcher
10 posts

Scratch emulator (GriffScratch) saved projects

CODERRR2025 wrote:

griffpatch wrote:

If you have a project you created in my scratch emulator you want to share then this is the place for you

https://scratch.mit.edu/projects/113321949/

Make sure you include a title / description of your project before you pasted json code!

HOLD ON SCRIPTS ARE NOT VIEWABLE CORRECTLY AFTER BEING PASTED IN LINE THIS. YOU CAN SEE THEN PROPERLY WHEN YOU CLICK QUOTE FOR A PARTICULAR POST BUT OTHERWISE IT'S NOT RIGHT.


when green flag clicked
if <(wants to know raycasting ) = [true]> then
look up griffpatch's tutorials for (2) hours
end[/quote]
That is so true
[scratchblocks](scratch is using bbcode)[/scratchblocks]
ArrowMHB2015
Scratcher
2 posts

Scratch emulator (GriffScratch) saved projects

pong (its a bit broken)

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 74 , 3 , [ , , , , [“setVar:to:” , “y” , ] , [“setVar:to:” , “x” , ] , , [“doForever” ,[ , [“changeVar:by:” , “x” , [“*” , [“computeFunctionf:” , “sin” , ] , ] ] , [“changeVar:by:” , “y” , [“*” , [“computeFunctionf:” , “cos” , ] , ] ] , , , , , , , , [“gotoX:y:” , , ] , , , [“gotoX:y:” , [“+” , , “45” ] , [“+” , , “43” ] ] , , , [“gotoX:y:” , [“+” , , “45” ] , [“+” , , “-43” ] ] , [“gotoX:y:” , [“+” , , “-3” ] , [“+” , , “-43” ] ] , [“gotoX:y:” , [“+” , , “-3” ] , [“+” , , “43” ] ] , , [“gotoX:y:” , , ] ] ] ]] ] }],“info”:{} }
mark-sss
Scratcher
100+ posts

Scratch emulator (GriffScratch) saved projects

CODERRR2025 wrote:

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 91 , -226 , [ , , [“doForever” ,[ [“warpSpeed” ,[ , , [“doRepeat” , “4” ,[ , ] ] , ] ] ] ] ]] , [ 87 , 1 , [ , [“doForever” ,[ [“changeVar:by:” , “X vel” , [“*” , [“-” , , ] , “2” ] ] , [“setVar:to:” , “X vel” , [“*” , , “0.8” ] ] , [“changeXposBy:” , ] , [“changeVar:by:” , “Y vel” , [“*” , [“-” , , ] , “2” ] ] , [“setVar:to:” , “Y vel” , [“*” , , “0.8” ] ] , [“changeYposBy:” , ] ] ] ]] ] }],“info”:{} }


(I remade smooth moving but with a square)

my variant but with stretch effect:
{"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "X vel" , "value": "-0.000007771251928629609" , "isPersistent":false} , {"name": "Y vel" , "value": "-0.006024052892904824" , "isPersistent":false} , {"name": "multiplier" , "value": "0.1" , "isPersistent":false} ] ,"scripts":[ [ 87 , 582 , [ ["whenGreenFlag" ] , ["doForever" ,[ ["changeVar:by:" , "X vel" , ["*" , ["-" , ["keyPressed:" , "right arrow" ] , ["keyPressed:" , "left arrow" ] ] , "2" ] ] , ["setVar:to:" , "X vel" , ["*" , ["readVariable" , "X vel" ] , "0.8" ] ] , ["changeXposBy:" , ["readVariable" , "X vel" ] ] , ["changeVar:by:" , "Y vel" , ["*" , ["-" , ["keyPressed:" , "up arrow" ] , ["keyPressed:" , "down arrow" ] ] , "2" ] ] , ["setVar:to:" , "Y vel" , ["*" , ["readVariable" , "Y vel" ] , "0.8" ] ] , ["changeYposBy:" , ["readVariable" , "Y vel" ] ] ] ] ]] , [ 91 , -29 , [ ["whenGreenFlag" ] , ["hide" ] , ["doAsk" , "what speed stretch multiplier you wan't? (recommend is 1)" ] , ["setVar:to:" , "multiplier" , ["answer" ] ] , ["doForever" ,[ ["warpSpeed" ,[ ["clearPenTrails" ] , ["putPenDown" ] , ["doIfElse" , [">" , ["*" , ["readVariable" , "X vel" ] , ["readVariable" , "multiplier" ] ] , "0" ] ,[ ["forward:" , ["+" , "25" , ["*" , ["readVariable" , "X vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ,[ ["forward:" , ["-" , "25" , ["*" , ["readVariable" , "X vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ] , ["turnLeft:" , "90" ] , ["doIfElse" , [">" , ["*" , ["readVariable" , "Y vel" ] , ["readVariable" , "multiplier" ] ] , "0" ] ,[ ["forward:" , ["+" , "25" , ["*" , ["readVariable" , "Y vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ,[ ["forward:" , ["-" , "25" , ["*" , ["readVariable" , "Y vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ] , ["turnLeft:" , "90" ] , ["doIfElse" , [">" , ["*" , ["readVariable" , "X vel" ] , ["readVariable" , "multiplier" ] ] , "0" ] ,[ ["forward:" , ["+" , "25" , ["*" , ["readVariable" , "X vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ,[ ["forward:" , ["-" , "25" , ["*" , ["readVariable" , "X vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ] , ["turnLeft:" , "90" ] , ["doIfElse" , [">" , ["*" , ["readVariable" , "Y vel" ] , ["readVariable" , "multiplier" ] ] , "0" ] ,[ ["forward:" , ["+" , "25" , ["*" , ["readVariable" , "Y vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ,[ ["forward:" , ["-" , "25" , ["*" , ["readVariable" , "Y vel" ] , ["readVariable" , "multiplier" ] ] ] ] ] ] , ["turnLeft:" , "90" ] , ["stampPolygon" ] ] ] ] ] ]] ] }],"info":{} }
coderkid1201
Scratcher
3 posts

Scratch emulator (GriffScratch) saved projects

hi
Princeliebe
Scratcher
10 posts

Scratch emulator (GriffScratch) saved projects

griffpatch wrote:

If you have a project you created in my scratch emulator you want to share then this is the place for you

https://scratch.mit.edu/projects/113321949/

Make sure you include a title / description of your project before you pasted json code!

HOLD ON SCRIPTS ARE NOT VIEWABLE CORRECTLY AFTER BEING PASTED IN LINE THIS. YOU CAN SEE THEN PROPERLY WHEN YOU CLICK QUOTE FOR A PARTICULAR POST BUT OTHERWISE IT'S NOT RIGHT.
(1) [1] [1 v] 1
mark-sss
Scratcher
100+ posts

Scratch emulator (GriffScratch) saved projects

-MrKeyboard- wrote:

{"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "move increment" , "value": "301" , "isPersistent":false} , {"name": "direction increment" , "value": "301" , "isPersistent":false} ] ,"scripts":[ [ 49 , 107 , [ ["whenGreenFlag" ] , ["gotoX:y:" , "-25" , "-25" ] , ["setVar:to:" , "move increment" , "250" ] , ["setVar:to:" , "direction increment" , "250" ] , ["hide" ] , ["putPenDown" ] , ["broadcast:" , "message1" ] , ["doForever" ,[ ["forward:" , ["readVariable" , "move increment" ] ] , ["turnLeft:" , ["readVariable" , "direction increment" ] ] , ["changePenHueBy:" , "1" ] ] ] ]] , [ 50 , -20 , [ ["whenIReceive" , "message1" ] , ["doForever" ,[ ["wait:elapsed:from:" , "1" ] , ["changeVar:by:" , "move increment" , "1" ] , ["changeVar:by:" , "direction increment" , "1" ] ] ] ]] ] }],"info":{} }

This is a script which generates a very colored tunnel, which will make you feel that you will want to directly jump in it and have a very colored experience.
Make sure to turn Turbo Mode on for faster generation and a cool effect each second!

Thanks to @TheUltimatum for the idea of the JSON code converter (I don't know how it's exactly called). To make one, do (ignore the curly bracket in the front):
{"[code=json]Paste your code here[/code]"

I know how JSON works.
This works like this:
{"key:":"value","next key:":"value"}
(this example is for text)
Other examples:
{"key":["1st","2nd","3rd","4th","5th element","..."]}
is for array inside JSON
{"key":{"1st key":"value","2nd key","value"}}
is for JSON inside JSON
{"key":50}
is for numbers inside JSON
KoopaTroopa121
Scratcher
12 posts

Scratch emulator (GriffScratch) saved projects

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 46 , 41 , [ , , , , [“doForever” ,[ [“doIfElse” , ,[ , ] ,[ [“doIfElse” , ,[ , ] ,[ [“doIfElse” , ,[ , ] ,[ [“doIf” , ,[ , ] ] ] ] ] ] ] ] ] ] ]] ] }],“info”:{} }
ViggyMish
Scratcher
29 posts

Scratch emulator (GriffScratch) saved projects

2026 Countdown

{"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "days" , "value": "Days: 7" , "isPersistent":false} , {"name": "hrs" , "value": "Hours: 8" , "isPersistent":false} , {"name": "min" , "value": "Minutes: 20" , "isPersistent":false} , {"name": "sec" , "value": "Seconds: 18" , "isPersistent":false} ] ,"scripts":[ [ 74 , -147 , [ ["whenGreenFlag" ] , ["doForever" ,[ ["setVar:to:" , "days" , ["concatenate:with:" , "Days: " , ["-" , "31" , ["timeAndDate" , "date" ] ] ] ] , ["setVar:to:" , "hrs" , ["concatenate:with:" , "Hours: " , ["-" , "23" , ["timeAndDate" , "hour" ] ] ] ] , ["setVar:to:" , "min" , ["concatenate:with:" , "Minutes: " , ["-" , "59" , ["timeAndDate" , "minute" ] ] ] ] , ["setVar:to:" , "sec" , ["concatenate:with:" , "Seconds: " , ["-" , "59" , ["timeAndDate" , "second" ] ] ] ] ] ] ]] , [ 76 , 22 , [ ["whenGreenFlag" ] , ["hide" ] , ["doForever" ,[ ["warpSpeed" ,[ ["clearPenTrails" ] , ["penColor:" , "000000" ] , ["doIfElse" , [">" , ["timeAndDate" , "year" ] , "2025" ] ,[ ["gotoX:y:" , "0" , "0" ] , ["write" , "HAPPY NEW YEAR!" ] ] ,[ ["gotoX:y:" , "-100" , "100" ] , ["write" , "2026 COUNTDOWN" ] , ["gotoX:y:" , "-100" , "50" ] , ["write" , ["readVariable" , "days" ] ] , ["gotoX:y:" , "-100" , "0" ] , ["write" , ["readVariable" , "hrs" ] ] , ["gotoX:y:" , "-100" , "-50" ] , ["write" , ["readVariable" , "min" ] ] , ["gotoX:y:" , "-100" , "-100" ] , ["write" , ["readVariable" , "sec" ] ] ] ] ] ] ] ] ]] ] }],"info":{} }

Last edited by ViggyMish (Dec. 24, 2025 10:12:42)

ViggyMish
Scratcher
29 posts

Scratch emulator (GriffScratch) saved projects

eJ121 wrote:

Pong In Scratch Emulator (?):

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ -104 , 228 , [ ]] , [ 260 , 340 , [ , , , , [“doRepeat” , “6” ,[ [“warpSpeed” ,[ [“gotoX:y:” , “-220” , ] , , [“gotoX:y:” , “220” , ] , , ] ] ] ] ]] , [ 42 , 336 , [ , , , [“setVar:to:” , “BallDir” , ] , , , [“doIf” , , “1” ] ,[ , , ] ] ]] , [ -98 , 145 , [ ]] , [ 23 , 44 , [ , , , , , , [“doForever” ,[ , , [“doIf” , [“>” , [“computeFunctionf:” , “abs” , ] , “240” ] ,[ [“doIfElse” , [“>” , , “0” ] ,[ [“doAsk” , [“concatenate:with:” , “You Lose with a score of: ” , [“concatenate:with:” , [“-” , , “1” ] , “ Play again? (Y/N)” ] ] ] , [“doIfElse” , , “Y” ] ,[ , ] ,[ ] ] ] ,[ , ] ] ] ] , [“doIf” , [“>” , [“computeFunctionf:” , “abs” , ] , “75” ] ,[ [“setVar:to:” , “BallDir” , [“-” , “180” , ] ] ] ] ] ] ]] , [ 311 , 20 , [ , , , , [“warpSpeed” ,[ [“setVar:to:” , “BallX” , [“+” , , [“*” , [“computeFunctionf:” , “sin” , ] , ] ] ] , [“setVar:to:” , “BallY” , [“+” , , [“*” , [“computeFunctionf:” , “cos” , ] , ] ] ] , [“gotoX:y:” , , ] , , , [“gotoX:y:” , “160” , [“+” , , [“/” , , “2” ] ] ] , , [“changeYposBy:” , [“-” , “” , ] ] , , [“gotoX:y:” , “-160” , [“+” , , [“/” , , “2” ] ] ] , , [“changeYposBy:” , [“-” , “” , ] ] , , [“doIf” , ,[ ] ] , [“doIf” , ,[ ] ] , [“changeVar:by:” , “PlayerY” , ] , [“setVar:to:” , “Yvel” , [“*” , , “0.85” ] ] , [“doIf” , [“>” , , “50” ] ,[ , ] ] , [“doIf” , [“<” , , “-50” ] ,[ , ] ] , [“doIf” , [“>” , , [“+” , , [“/” , “10” , ] ] ] ,[ ] ] , [“doIf” , [“<” , , [“-” , , [“/” , “10” , ] ] ] ,[ ] ] , [“changeVar:by:” , “OppY” , ] , [“setVar:to:” , “OppYvel” , [“*” , , “0.8” ] ] , [“doIf” , [“>” , , “50” ] ,[ , ] ] , [“doIf” , [“<” , , “-50” ] ,[ , ] ] , [“doIf” , [“&” , [“&” , [“<” , [“-” , , [“/” , , “2” ] ] , ] , [“<” , , [“+” , , [“/” , , “2” ] ] ] ] , [“&” , [“<” , “152.5” , ] , [“<” , , “167.5” ] ] ] ,[ , [“doIfElse” , [“>” , , “0” ] ,[ [“setVar:to:” , “BallDir” , [“+” , [“-” , “” , ] , [“*” , , “3” ] ] ] ] ,[ [“setVar:to:” , “BallDir” , [“-” , “” , [“+” , , [“*” , , “3” ] ] ] ] ] ] , [“doUntil” , [“not” , [“&” , [“&” , [“<” , [“-” , , [“/” , , “2” ] ] , ] , [“<” , , [“+” , , [“/” , , “2” ] ] ] ] , [“&” , [“<” , “155” , ] , [“<” , , “165” ] ] ] ] ,[ [“setVar:to:” , “BallX” , [“+” , , [“*” , [“computeFunctionf:” , “sin” , ] , ] ] ] , [“setVar:to:” , “BallY” , [“+” , , [“*” , [“computeFunctionf:” , “cos” , ] , ] ] ] ] ] ] ] , [“doIf” , [“&” , [“&” , [“<” , [“-” , , [“/” , , “2” ] ] , ] , [“<” , , [“+” , , [“/” , , “2” ] ] ] ] , [“&” , [“<” , “-167.5” , ] , [“<” , , “-152.5” ] ] ] ,[ , [“setVar:to:” , “BallDir” , [“-” , “” , ] ] , [“doUntil” , [“not” , [“&” , [“&” , [“<” , [“-” , , [“/” , , “2” ] ] , ] , [“<” , , [“+” , , [“/” , , “2” ] ] ] ] , [“&” , [“<” , “-167.5” , ] , [“<” , , “-152.5” ] ] ] ] ,[ [“setVar:to:” , “BallX” , [“+” , , [“*” , [“computeFunctionf:” , “sin” , ] , ] ] ] , [“setVar:to:” , “BallY” , [“+” , , [“*” , [“computeFunctionf:” , “cos” , ] , ] ] ] ] ] ] ] ] ] ]] ] }],“info”:{} }

Yeah… it's just a little bit bigger than expected… Just a little…

The save code is extremely long so you can put it in JSON format.

{"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "LineY" , "value": "-1050" , "isPersistent":false} , {"name": "PlayerY" , "value": "50" , "isPersistent":false} , {"name": "BatWidth" , "value": "50" , "isPersistent":false} , {"name": "Yvel" , "value": "0" , "isPersistent":false} , {"name": "BallX" , "value": "247.46230455120693" , "isPersistent":false} , {"name": "BallY" , "value": "4.319470593227637" , "isPersistent":false} , {"name": "BallVel" , "value": "4.5" , "isPersistent":false} , {"name": "BallDir" , "value": "89" , "isPersistent":false} , {"name": "OppY" , "value": "-5.002749388988082" , "isPersistent":false} , {"name": "First" , "value": "0" , "isPersistent":false} , {"name": "OppYvel" , "value": "0.0005498777976192306" , "isPersistent":false} , {"name": "Difficulty" , "value": "1" , "isPersistent":false} ] ,"scripts":[ [ -104 , 228 , [ ["-" , "" , "90" ] ]] , [ 260 , 340 , [ ["whenIReceive" , "FillBackground" ] , ["penSize:" , "100" ] , ["penColor:" , "0x000000" ] , ["setVar:to:" , "LineY" , "150" ] , ["doRepeat" , "6" ,[ ["warpSpeed" ,[ ["gotoX:y:" , "-220" , ["readVariable" , "LineY" ] ] , ["putPenDown" ] , ["gotoX:y:" , "220" , ["readVariable" , "LineY" ] ] , ["putPenUp" ] , ["changeVar:by:" , "LineY" , "-75" ] ] ] ] ] ]] , [ 42 , 336 , [ ["whenIReceive" , "Game Loop Init" ] , ["setVar:to:" , "BatWidth" , "50" ] , ["setVar:to:" , "BallVel" , "4.5" ] , ["setVar:to:" , "BallDir" , ["randomFrom:to:" , "45" , "135" ] ] , ["setVar:to:" , "BallX" , "0" ] , ["setVar:to:" , "BallY" , "0" ] , ["doIf" , ["=" , ["readVariable" , "First" ] , "1" ] ,[ ["setVar:to:" , "PlayerY" , "0" ] , ["setVar:to:" , "OppY" , "0" ] , ["setVar:to:" , "First" , "0" ] ] ] ]] , [ -98 , 145 , [ ["/" , "" , "12" ] ]] , [ 23 , 44 , [ ["whenGreenFlag" ] , ["hide" ] , ["setVar:to:" , "Difficulty" , "1" ] , ["setVar:to:" , "First" , "1" ] , ["broadcast:" , "Game Loop Init" ] , ["wait:elapsed:from:" , "1" ] , ["doForever" ,[ ["clearPenTrails" ] , ["broadcast:" , "Main" ] , ["doIf" , [">" , ["computeFunction:of:" , "abs" , ["readVariable" , "BallX" ] ] , "240" ] ,[ ["doIfElse" , [">" , ["readVariable" , "BallX" ] , "0" ] ,[ ["doAsk" , ["concatenate:with:" , "You Lose with a score of: " , ["concatenate:with:" , ["-" , ["readVariable" , "Difficulty" ] , "1" ] , " Play again? (Y/N)" ] ] ] , ["doIfElse" , ["=" , ["answer" ] , "Y" ] ,[ ["setVar:to:" , "Difficulty" , "1" ] , ["broadcast:" , "Game Loop Init" ] ] ,[ ["stopScripts" , "all" ] ] ] ] ,[ ["broadcast:" , "Game Loop Init" ] , ["changeVar:by:" , "Difficulty" , "1" ] ] ] ] ] , ["doIf" , [">" , ["computeFunction:of:" , "abs" , ["readVariable" , "BallY" ] ] , "75" ] ,[ ["setVar:to:" , "BallDir" , ["-" , "180" , ["readVariable" , "BallDir" ] ] ] ] ] ] ] ]] , [ 311 , 20 , [ ["whenIReceive" , "Main" ] , ["broadcast:" , "FillBackground" ] , ["penColor:" , "0xffffff" ] , ["penSize:" , "5" ] , ["warpSpeed" ,[ ["setVar:to:" , "BallX" , ["+" , ["readVariable" , "BallX" ] , ["*" , ["computeFunction:of:" , "sin" , ["readVariable" , "BallDir" ] ] , ["readVariable" , "BallVel" ] ] ] ] , ["setVar:to:" , "BallY" , ["+" , ["readVariable" , "BallY" ] , ["*" , ["computeFunction:of:" , "cos" , ["readVariable" , "BallDir" ] ] , ["readVariable" , "BallVel" ] ] ] ] , ["gotoX:y:" , ["readVariable" , "BallX" ] , ["readVariable" , "BallY" ] ] , ["putPenDown" ] , ["putPenUp" ] , ["gotoX:y:" , "160" , ["+" , ["readVariable" , "PlayerY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] ] , ["putPenDown" ] , ["changeYposBy:" , ["-" , "" , ["readVariable" , "BatWidth" ] ] ] , ["putPenUp" ] , ["gotoX:y:" , "-160" , ["+" , ["readVariable" , "OppY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] ] , ["putPenDown" ] , ["changeYposBy:" , ["-" , "" , ["readVariable" , "BatWidth" ] ] ] , ["putPenUp" ] , ["doIf" , ["keyPressed:" , "up arrow" ] ,[ ["changeVar:by:" , "Yvel" , "1" ] ] ] , ["doIf" , ["keyPressed:" , "down arrow" ] ,[ ["changeVar:by:" , "Yvel" , "-1" ] ] ] , ["changeVar:by:" , "PlayerY" , ["readVariable" , "Yvel" ] ] , ["setVar:to:" , "Yvel" , ["*" , ["readVariable" , "Yvel" ] , "0.85" ] ] , ["doIf" , [">" , ["readVariable" , "PlayerY" ] , "50" ] ,[ ["setVar:to:" , "PlayerY" , "50" ] , ["setVar:to:" , "Yvel" , "0" ] ] ] , ["doIf" , ["<" , ["readVariable" , "PlayerY" ] , "-50" ] ,[ ["setVar:to:" , "PlayerY" , "-50" ] , ["setVar:to:" , "Yvel" , "0" ] ] ] , ["doIf" , [">" , ["readVariable" , "BallY" ] , ["+" , ["readVariable" , "OppY" ] , ["/" , "10" , ["readVariable" , "Difficulty" ] ] ] ] ,[ ["changeVar:by:" , "OppYvel" , "1" ] ] ] , ["doIf" , ["<" , ["readVariable" , "BallY" ] , ["-" , ["readVariable" , "OppY" ] , ["/" , "10" , ["readVariable" , "Difficulty" ] ] ] ] ,[ ["changeVar:by:" , "OppYvel" , "-1" ] ] ] , ["changeVar:by:" , "OppY" , ["readVariable" , "OppYvel" ] ] , ["setVar:to:" , "OppYvel" , ["*" , ["readVariable" , "OppYvel" ] , "0.8" ] ] , ["doIf" , [">" , ["readVariable" , "OppY" ] , "50" ] ,[ ["setVar:to:" , "OppY" , "50" ] , ["setVar:to:" , "OppYvel" , "0" ] ] ] , ["doIf" , ["<" , ["readVariable" , "OppY" ] , "-50" ] ,[ ["setVar:to:" , "OppY" , "-50" ] , ["setVar:to:" , "OppYvel" , "0" ] ] ] , ["doIf" , ["&" , ["&" , ["<" , ["-" , ["readVariable" , "PlayerY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] , ["readVariable" , "BallY" ] ] , ["<" , ["readVariable" , "BallY" ] , ["+" , ["readVariable" , "PlayerY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] ] ] , ["&" , ["<" , "152.5" , ["readVariable" , "BallX" ] ] , ["<" , ["readVariable" , "BallX" ] , "167.5" ] ] ] ,[ ["changeVar:by:" , "BallVel" , "0.25" ] , ["doIfElse" , [">" , ["readVariable" , "BallDir" ] , "0" ] ,[ ["setVar:to:" , "BallDir" , ["+" , ["-" , "" , ["readVariable" , "BallDir" ] ] , ["*" , ["readVariable" , "Yvel" ] , "3" ] ] ] ] ,[ ["setVar:to:" , "BallDir" , ["-" , "" , ["+" , ["readVariable" , "BallDir" ] , ["*" , ["readVariable" , "Yvel" ] , "3" ] ] ] ] ] ] , ["doUntil" , ["not" , ["&" , ["&" , ["<" , ["-" , ["readVariable" , "PlayerY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] , ["readVariable" , "BallY" ] ] , ["<" , ["readVariable" , "BallY" ] , ["+" , ["readVariable" , "PlayerY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] ] ] , ["&" , ["<" , "155" , ["readVariable" , "BallX" ] ] , ["<" , ["readVariable" , "BallX" ] , "165" ] ] ] ] ,[ ["setVar:to:" , "BallX" , ["+" , ["readVariable" , "BallX" ] , ["*" , ["computeFunction:of:" , "sin" , ["readVariable" , "BallDir" ] ] , ["readVariable" , "BallVel" ] ] ] ] , ["setVar:to:" , "BallY" , ["+" , ["readVariable" , "BallY" ] , ["*" , ["computeFunction:of:" , "cos" , ["readVariable" , "BallDir" ] ] , ["readVariable" , "BallVel" ] ] ] ] ] ] ] ] , ["doIf" , ["&" , ["&" , ["<" , ["-" , ["readVariable" , "OppY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] , ["readVariable" , "BallY" ] ] , ["<" , ["readVariable" , "BallY" ] , ["+" , ["readVariable" , "OppY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] ] ] , ["&" , ["<" , "-167.5" , ["readVariable" , "BallX" ] ] , ["<" , ["readVariable" , "BallX" ] , "-152.5" ] ] ] ,[ ["changeVar:by:" , "BallVel" , "0.25" ] , ["setVar:to:" , "BallDir" , ["-" , "" , ["readVariable" , "BallDir" ] ] ] , ["doUntil" , ["not" , ["&" , ["&" , ["<" , ["-" , ["readVariable" , "OppY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] , ["readVariable" , "BallY" ] ] , ["<" , ["readVariable" , "BallY" ] , ["+" , ["readVariable" , "OppY" ] , ["/" , ["readVariable" , "BatWidth" ] , "2" ] ] ] ] , ["&" , ["<" , "-167.5" , ["readVariable" , "BallX" ] ] , ["<" , ["readVariable" , "BallX" ] , "-152.5" ] ] ] ] ,[ ["setVar:to:" , "BallX" , ["+" , ["readVariable" , "BallX" ] , ["*" , ["computeFunction:of:" , "sin" , ["readVariable" , "BallDir" ] ] , ["readVariable" , "BallVel" ] ] ] ] , ["setVar:to:" , "BallY" , ["+" , ["readVariable" , "BallY" ] , ["*" , ["computeFunction:of:" , "cos" , ["readVariable" , "BallDir" ] ] , ["readVariable" , "BallVel" ] ] ] ] ] ] ] ] ] ] ]] ] }],"info":{} }
ViggyMish
Scratcher
29 posts

Scratch emulator (GriffScratch) saved projects

And without JSON it will have faces

Last edited by ViggyMish (Dec. 24, 2025 10:30:14)

itsameluigi101-test
Scratcher
1 post

Scratch emulator (GriffScratch) saved projects

Just a quick talk with scratch cat! Here it is: {“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 94 , 27 , [ , [“doUntil” , [“<” , , “1” ] ,[ ] ] , , , , , , , , [“doUntil” , [“>” , , ] ,[ [“say:” , [“getLinefList:” , , “Looping” ] ] , , ] ] ]] ] }],“info”:{} }
32ships
Scratcher
15 posts

Scratch emulator (GriffScratch) saved projects

when green flag clicked
if monser then
destroy

end
adh-man
Scratcher
26 posts

Scratch emulator (GriffScratch) saved projects

when green flag clicked
define (☁ score)
say [scrary]
Olivia_AM
Scratcher
100+ posts

Scratch emulator (GriffScratch) saved projects

MR.SQUEAK’S REMIX
Title:“All hidden blocks”.
Description:“ I created this by making a script inside the project that added every single obsolete (color=12) block be added to the custom category, thus being able to obtain all. I Ethen sorted them into the categories they should’ve been in, and got this project.”
 {"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "Variables ##############################################" , "value": "" , "isPersistent":false} , {"name": "var" , "value": "" , "isPersistent":false} ] ,"customBlocks":[ {"name": "%n %b %s whoo" } , {"name": "[]" } ] ,"scripts":[ [ 134 , -627 , [ ["turnAwayFromEdge" ] ]] , [ 133 , -588 , [ ["scrollUp" , "" ] ]] , [ 138 , -603 , [ ["yScroll" ] ]] , [ 221 , -607 , [ ["scrollAlign" , "middle" ] ]] , [ 214 , -573 , [ ["glideSecs:toX:y:elapsed:from:" , "1" , "0" , "0" ] ]] , [ 28 , -611 , [ ["xScroll" ] ]] , [ 22 , -594 , [ ["scrollRight" , "" ] ]] , [ 24 , -560 , [ ["say:" , "Looks ###############################################" ] ]] , [ 26 , -528 , [ ["startSceneAndWait" , "" ] , ["startScene" , "" ] ]] , [ 27 , -476 , [ ["nextScene" ] ]] , [ 31 , -458 , [ ["sceneName" ] ]] , [ 171 , -479 , [ ["nextCostume" ] , ["lookLike:" , "" ] ]] , [ 194 , -509 , [ ["hideAll" ] ]] , [ 23 , -400 , [ ["rest:elapsed:from:" , "Sound ##############################################" ] ]] , [ 198 , -378 , [ ["instrument:" , "1" ] ]] , [ 270 , -486 , [ ["fxTest" , "" ] ]] , [ 29 , -366 , [ ["drum:duration:elapsed:from:" , "1" , "1" ] ]] , [ 22 , -650 , [ ["forward:" , "Motion ##############################################" ] ]] , [ 25 , -279 , [ ["write" , "Pen ##############################################" ] ]] , [ 72 , -258 , [ ["stampPoly:list:" , "1" , "list" ] ]] , [ 29 , -229 , [ ["readVariable" , "Variables ##############################################" ] ]] , [ 28 , -142 , [ ["broadcast:" , "events ##############################################" ] ]] , [ 34 , -120 , [ ["whenSensorGreaterThan" , "loudness" , "10" ] ]] , [ 167 , -117 , [ ["whenSceneStarts" , "" ] ]] , [ 58 , -93 , [ ["whenKeyPressed" , "space" ] ]] , [ 212 , -88 , [ ["whenClicked" ] ]] , [ 29 , -58 , [ ["wait:elapsed:from:" , "Control ##############################################" ] ]] , [ 45 , -30 , [ ["doWhile" ] ]] , [ 117 , -31 , [ ["doForLoop" , "var" , "" ] ]] , [ 254 , -30 , [ ["doForeverIf" ] ]] , [ 59 , 22 , [ ["COUNT" ] ]] , [ 62 , 37 , [ ["CLR_COUNT" ] , ["INCR_COUNT" ] ]] , [ 33 , 77 , [ ["doAsk" , "Sensing ##############################################" ] , ["setVideoState" , "on" ] ]] , [ 160 , 99 , [ ["setVideoTransparency" , "50" ] ]] , [ 44 , 122 , [ ["sensorPressed:" , "button pressed" ] ]] , [ 212 , 122 , [ ["sensor:" , "slider" ] ]] , [ 50 , 143 , [ ["senseVideoMotion" , "motion" , "this sprite" ] ]] , [ 249 , 146 , [ ["isLoud" ] ]] , [ 295 , 148 , [ ["getUserId" ] ]] , [ 38 , 193 , [ ["+" , "Operators ##############################################" , "" ] ]] , [ 147 , 167 , [ ["getAttribute:of:" , "x position" , "sprite" ] ]] , [ 169 , 21 , [ ["doReturn" ] ]] , [ 184 , 45 , [ ["stopAll" ] ]] , [ 45 , 216 , [ ["sqrt" , "" ] ]] , [ 108 , 220 , [ ["abs" , "" ] ]] , [ 44 , 244 , [ ["undefined" , "2" , "Other ##############################################" ] ]] , [ 92 , 272 , [ ["obsolete" ] ]] , [ 67 , -210 , [ ["contentsOfList:" , "Lists ##############################################" ] ]] , [ 124 , -188 , [ ["hideList:" , "list" ] , ["showList:" , "list" ] ]] , [ 32 , -445 , [ ["backgroundIndex" ] ]] , [ 127 , -439 , [ ["costumeName" ] ]] , [ 142 , -419 , [ ["costumeIndex" ] ]] , [ 241 , -435 , [ ["goBackByLayers:" , "1" ] , ["comeToFront" ] ]] , [ 241 , -532 , [ ["sayNothing" ] ]] , [ 102 , -339 , [ ["stopSound:" , "meow" ] , ["playSound:" , "meow" ] , ["doPlaySoundAndWait" , "meow" ] ]] ] }],"info":{} }

Last edited by Olivia_AM (Dec. 31, 2025 18:24:54)

Nividim
Scratcher
32 posts

Scratch emulator (GriffScratch) saved projects

Just for fun, I decided to port my bubble sorting project to this emulator and… good golly it's slow. It took it about 3 seconds for it to be done sorting 100 numbers! Granted, it's also rendering an entire list, but… come on!!
{"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "status" , "value": "Finished, completed in 2.7780000000000005 seconds" , "isPersistent":false} , {"name": "os" , "value": "" , "isPersistent":false} , {"name": "sorted?" , "value": "1" , "isPersistent":false} , {"name": "i" , "value": "63" , "isPersistent":false} , {"name": "n" , "value": "100" , "isPersistent":false} , {"name": "a" , "value": "92" , "isPersistent":false} , {"name": "sample size" , "value": "100" , "isPersistent":false} , {"name": "b" , "value": "10" , "isPersistent":false} , {"name": "c" , "value": "9" , "isPersistent":false} ] ,"scripts":[ [ 94 , -1376 , [ ["whenGreenFlag" ] , ["hide" ] , ["setVar:to:" , "os" , "" ] , ["setVar:to:" , "status" , "Initializing" ] , ["deleteLine:ofList:" , "all" , "samples" ] , ["doAsk" , "Sample size?" ] , ["setVar:to:" , "sample size" , ["answer" ] ] , ["setVar:to:" , "status" , "Sampling" ] , ["broadcast:" , "make random sample" ] , ["setVar:to:" , "status" , "Sorting" ] , ["timerReset" ] , ["doBroadcastAndWait" , "bubble sort!" ] , ["setVar:to:" , "i" , "0" ] , ["setVar:to:" , "status" , "Finished, completed in " ] , ["setVar:to:" , "status" , ["concatenate:with:" , ["readVariable" , "status" ] , ["timer" ] ] ] , ["setVar:to:" , "status" , ["concatenate:with:" , ["readVariable" , "status" ] , " seconds" ] ] ]] , [ 95 , -817 , [ ["whenIReceive" , "make random sample" ] , ["deleteLine:ofList:" , "all" , "samples" ] , ["setVar:to:" , "a" , ["randomFrom:to:" , "1" , ["readVariable" , "sample size" ] ] ] , ["warpSpeed" ,[ ["doRepeat" , ["readVariable" , "sample size" ] ,[ ["doUntil" , ["not" , ["list:contains:" , "samples" , ["readVariable" , "a" ] ] ] ,[ ["setVar:to:" , "a" , ["randomFrom:to:" , "1" , ["readVariable" , "sample size" ] ] ] ] ] , ["append:toList:" , ["readVariable" , "a" ] , "samples" ] ] ] ] ] ]] , [ 95 , -615 , [ ["whenIReceive" , "bubble sort!" ] , ["warpSpeed" ,[ ["setVar:to:" , "sorted?" , "0" ] , ["doUntil" , ["=" , ["readVariable" , "sorted?" ] , "1" ] ,[ ["setVar:to:" , "i" , "1" ] , ["doRepeat" , ["-" , ["lineCountOfList:" , "samples" ] , "1" ] ,[ ["doIf" , [">" , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] , ["getLine:ofList:" , ["+" , ["readVariable" , "i" ] , "1" ] , "samples" ] ] ,[ ["setVar:to:" , "b" , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] , ["setVar:to:" , "c" , ["getLine:ofList:" , ["+" , ["readVariable" , "i" ] , "1" ] , "samples" ] ] , ["setLine:ofList:to:" , ["readVariable" , "i" ] , "samples" , ["readVariable" , "c" ] ] , ["setLine:ofList:to:" , ["+" , ["readVariable" , "i" ] , "1" ] , "samples" , ["readVariable" , "b" ] ] ] ] , ["changeVar:by:" , "i" , "1" ] ] ] , ["doBroadcastAndWait" , "check if sorted" ] ] ] ] ] ]] , [ 92 , -1645 , [ ["whenGreenFlag" ] , ["broadcast:" , "preview list" ] , ["stopScripts" , "this script" ] , ["doForever" ,[ ["doIf" , ["=" , ["letter:of:" , "1" , ["readVariable" , "status" ] ] , "f" ] ,[ ["broadcast:" , "preview list" ] , ["stopScripts" , "this script" ] ] ] , ["clearPenTrails" ] , ["gotoX:y:" , ["*" , "-0.5" , ["widthOfText:" , ["readVariable" , "status" ] ] ] , "0" ] , ["write" , ["readVariable" , "status" ] ] , ["setVar:to:" , "os" , ["readVariable" , "status" ] ] , ["doWaitUntil" , ["not" , ["=" , ["readVariable" , "os" ] , ["readVariable" , "status" ] ] ] ] ] ] ]] , [ 95 , -302 , [ ["whenIReceive" , "preview list" ] , ["setVar:to:" , "i" , "1" ] , ["doForever" ,[ ["warpSpeed" ,[ ["clearPenTrails" ] , ["gotoX:y:" , "-220" , "160" ] , ["write" , "Array of numbers:" ] , ["changeYposBy:" , "-10" ] , ["doRepeat" , "27" ,[ ["doIf" , ["&" , ["<" , ["readVariable" , "i" ] , ["+" , ["lineCountOfList:" , "samples" ] , "1" ] ] , [">" , ["readVariable" , "i" ] , "0" ] ] ,[ ["write" , ["concatenate:with:" , "Item " , ["concatenate:with:" , ["readVariable" , "i" ] , ["concatenate:with:" , ": " , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] ] ] ] ] ] , ["changeYposBy:" , "-10" ] , ["changeVar:by:" , "i" , "1" ] ] ] , ["doRepeat" , "27" ,[ ["changeVar:by:" , "i" , "-1" ] ] ] , ["write" , ["readVariable" , "status" ] ] , ["changeYposBy:" , "-10" ] , ["write" , "Up/down arrow keys to scroll" ] , ["changeYposBy:" , "-10" ] , ["write" , "Made by Nividim" ] ] ] ] ] ]] , [ 94 , -1072 , [ ["whenIReceive" , "check if sorted" ] , ["setVar:to:" , "i" , "1" ] , ["setVar:to:" , "sorted?" , "1" ] , ["setVar:to:" , "n" , "0" ] , ["warpSpeed" ,[ ["doUntil" , ["|" , [">" , ["readVariable" , "i" ] , ["lineCountOfList:" , "samples" ] ] , ["=" , ["readVariable" , "sorted?" ] , "0" ] ] ,[ ["doIfElse" , [">" , ["readVariable" , "n" ] , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] ,[ ["setVar:to:" , "sorted?" , "0" ] ] ,[ ["setVar:to:" , "n" , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] ] ] , ["changeVar:by:" , "i" , "1" ] ] ] ] ] ]] , [ 95 , 161 , [ ["whenIReceive" , "preview list" ] , ["doForever" ,[ ["doWaitUntil" , ["keyPressed:" , "any" ] ] , ["doIf" , ["keyPressed:" , "up arrow" ] ,[ ["changeVar:by:" , "i" , "-1" ] ] ] , ["doIf" , ["keyPressed:" , "down arrow" ] ,[ ["changeVar:by:" , "i" , "1" ] ] ] , ["wait:elapsed:from:" , "0" ] ] ] ]] ] }],"info":{} }
…and also an updated “lite” version that doesn't show the list while it's sorting
{"objName":"Stage", "children": [{"objName":"project" ,"variables":[ {"name": "status" , "value": "Finished, completed in 3.157 seconds" , "isPersistent":false} , {"name": "os" , "value": "" , "isPersistent":false} , {"name": "sorted?" , "value": "1" , "isPersistent":false} , {"name": "i" , "value": "-12" , "isPersistent":false} , {"name": "n" , "value": "100" , "isPersistent":false} , {"name": "a" , "value": "80" , "isPersistent":false} , {"name": "sample size" , "value": "100" , "isPersistent":false} , {"name": "b" , "value": "6" , "isPersistent":false} , {"name": "c" , "value": "5" , "isPersistent":false} , {"name": "i can haz preview?" , "value": "1" , "isPersistent":false} ] ,"scripts":[ [ 94 , -1278 , [ ["whenGreenFlag" ] , ["setVar:to:" , "i can haz preview?" , "1" ] , ["hide" ] , ["setVar:to:" , "os" , "" ] , ["setVar:to:" , "status" , "Initializing" ] , ["deleteLine:ofList:" , "all" , "samples" ] , ["doAsk" , "Sample size?" ] , ["setVar:to:" , "sample size" , ["answer" ] ] , ["setVar:to:" , "status" , "Sampling" ] , ["setVar:to:" , "i can haz preview?" , "0" ] , ["broadcast:" , "make random sample" ] , ["setVar:to:" , "status" , "Sorting" ] , ["timerReset" ] , ["doBroadcastAndWait" , "bubble sort!" ] , ["setVar:to:" , "i" , "0" ] , ["setVar:to:" , "status" , "Finished, completed in " ] , ["setVar:to:" , "status" , ["concatenate:with:" , ["readVariable" , "status" ] , ["timer" ] ] ] , ["setVar:to:" , "status" , ["concatenate:with:" , ["readVariable" , "status" ] , " seconds" ] ] , ["setVar:to:" , "i can haz preview?" , "1" ] , ["broadcast:" , "preview list" ] ]] , [ 92 , -1547 , [ ["whenGreenFlag" ] , ["setVar:to:" , "i can haz preview?" , "1" ] , ["broadcast:" , "preview list" ] , ["stopScripts" , "this script" ] , ["doForever" ,[ ["doIf" , ["=" , ["letter:of:" , "1" , ["readVariable" , "status" ] ] , "f" ] ,[ ["broadcast:" , "preview list" ] , ["stopScripts" , "this script" ] ] ] , ["clearPenTrails" ] , ["gotoX:y:" , ["*" , "-0.5" , ["widthOfText:" , ["readVariable" , "status" ] ] ] , "0" ] , ["write" , ["readVariable" , "status" ] ] , ["setVar:to:" , "os" , ["readVariable" , "status" ] ] , ["doWaitUntil" , ["not" , ["=" , ["readVariable" , "os" ] , ["readVariable" , "status" ] ] ] ] ] ] ]] , [ 92 , -689 , [ ["whenIReceive" , "make random sample" ] , ["deleteLine:ofList:" , "all" , "samples" ] , ["setVar:to:" , "a" , ["randomFrom:to:" , "1" , ["readVariable" , "sample size" ] ] ] , ["warpSpeed" ,[ ["doRepeat" , ["readVariable" , "sample size" ] ,[ ["doUntil" , ["not" , ["list:contains:" , "samples" , ["readVariable" , "a" ] ] ] ,[ ["setVar:to:" , "a" , ["randomFrom:to:" , "1" , ["readVariable" , "sample size" ] ] ] ] ] , ["append:toList:" , ["readVariable" , "a" ] , "samples" ] ] ] ] ] ]] , [ 91 , -487 , [ ["whenIReceive" , "bubble sort!" ] , ["warpSpeed" ,[ ["setVar:to:" , "sorted?" , "0" ] , ["doUntil" , ["=" , ["readVariable" , "sorted?" ] , "1" ] ,[ ["setVar:to:" , "i" , "1" ] , ["doRepeat" , ["-" , ["lineCountOfList:" , "samples" ] , "1" ] ,[ ["doIf" , [">" , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] , ["getLine:ofList:" , ["+" , ["readVariable" , "i" ] , "1" ] , "samples" ] ] ,[ ["setVar:to:" , "b" , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] , ["setVar:to:" , "c" , ["getLine:ofList:" , ["+" , ["readVariable" , "i" ] , "1" ] , "samples" ] ] , ["setLine:ofList:to:" , ["readVariable" , "i" ] , "samples" , ["readVariable" , "c" ] ] , ["setLine:ofList:to:" , ["+" , ["readVariable" , "i" ] , "1" ] , "samples" , ["readVariable" , "b" ] ] ] ] , ["changeVar:by:" , "i" , "1" ] ] ] , ["doBroadcastAndWait" , "check if sorted" ] ] ] ] ] ]] , [ 87 , -158 , [ ["whenIReceive" , "preview list" ] , ["setVar:to:" , "i" , "1" ] , ["doForever" ,[ ["warpSpeed" ,[ ["clearPenTrails" ] , ["doIf" , ["=" , ["readVariable" , "i can haz preview?" ] , "0" ] ,[ ["stopScripts" , "this script" ] ] ] , ["gotoX:y:" , "-220" , "160" ] , ["write" , "Array of numbers:" ] , ["changeYposBy:" , "-10" ] , ["doRepeat" , "30" ,[ ["doIf" , ["&" , ["<" , ["readVariable" , "i" ] , ["+" , ["lineCountOfList:" , "samples" ] , "1" ] ] , [">" , ["readVariable" , "i" ] , "0" ] ] ,[ ["write" , ["concatenate:with:" , "Item " , ["concatenate:with:" , ["readVariable" , "i" ] , ["concatenate:with:" , ": " , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] ] ] ] ] ] , ["changeYposBy:" , "-10" ] , ["changeVar:by:" , "i" , "1" ] ] ] , ["doRepeat" , "30" ,[ ["changeVar:by:" , "i" , "-1" ] ] ] , ["write" , ["readVariable" , "status" ] ] , ["changeYposBy:" , "-10" ] , ["write" , "Up/down arrow keys to scroll" ] , ["changeYposBy:" , "-10" ] , ["write" , "Made by Nividim" ] ] ] ] ] ]] , [ 88 , 352 , [ ["whenIReceive" , "preview list" ] , ["doForever" ,[ ["doWaitUntil" , ["|" , ["keyPressed:" , "any" ] , ["=" , ["readVariable" , "i can haz preview?" ] , "0" ] ] ] , ["doIf" , ["keyPressed:" , "up arrow" ] ,[ ["changeVar:by:" , "i" , "-1" ] ] ] , ["doIf" , ["keyPressed:" , "down arrow" ] ,[ ["changeVar:by:" , "i" , "1" ] ] ] , ["wait:elapsed:from:" , "0" ] , ["doIf" , ["=" , ["readVariable" , "i can haz preview?" ] , "0" ] ,[ ["stopScripts" , "this script" ] ] ] ] ] ]] , [ 257 , -910 , [ ["whenIReceive" , "check if sorted" ] , ["setVar:to:" , "i" , "1" ] , ["setVar:to:" , "sorted?" , "1" ] , ["setVar:to:" , "n" , "0" ] , ["warpSpeed" ,[ ["doUntil" , ["|" , [">" , ["readVariable" , "i" ] , ["lineCountOfList:" , "samples" ] ] , ["=" , ["readVariable" , "sorted?" ] , "0" ] ] ,[ ["doIfElse" , [">" , ["readVariable" , "n" ] , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] ,[ ["setVar:to:" , "sorted?" , "0" ] ] ,[ ["setVar:to:" , "n" , ["getLine:ofList:" , ["readVariable" , "i" ] , "samples" ] ] ] ] , ["changeVar:by:" , "i" , "1" ] ] ] ] ] ]] ] }],"info":{} }

Last edited by Nividim (Jan. 4, 2026 17:52:25)

maikurakun_828
Scratcher
500+ posts

Scratch emulator (GriffScratch) saved projects

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ -104 , 228 , ] , [ 260 , 340 , [ , , , , [“doRepeat” , “6” ,[ [“warpSpeed” ,[ , , , , ] ] ] ] ]] , [ 42 , 336 , [ , , , , , , , ] ]] , [ -98 , 145 , ] , [ 23 , 44 , [ , , , , , , [“doForever” ,[ , , [“doIf” , [“>” , , “240” ] ,[ [“doIfElse” , ,[ [“doAsk” , [“concatenate:with:” , “You Lose with a score of: ” , [“concatenate:with:” , , “ Play again? (Y/N)” ] ] ] , , , ] ] , ] ] ] , [“doIf” , [“>” , , “75” ] ,[ [“setVar:to:” , “BallDir” , ] ] ] ] ] ]] , [ 311 , 20 , [ , , , , [“warpSpeed” ,[ [“setVar:to:” , “BallX” , [“+” , , [“*” , , ] ] ] , [“setVar:to:” , “BallY” , [“+” , , [“*” , , ] ] ] , , , , [“gotoX:y:” , “160” , [“+” , , ] ] , , [“changeYposBy:” , ] , , [“gotoX:y:” , “-160” , [“+” , , ] ] , , [“changeYposBy:” , ] , , [“doIf” , , ] , [“doIf” , , ] , , [“setVar:to:” , “Yvel” , ] , [“doIf” , , ] , [“doIf” , , ] , [“doIf” , [“>” , , [“+” , , ] ] , ] , [“doIf” , [“<” , , [“-” , , ] ] , ] , , [“setVar:to:” , “OppYvel” , ] , [“doIf” , , ] , [“doIf” , , ] , [“doIf” , [“&” ,[“&” , [“<” , [“-” , , ] , ] , [“<” , , [“+” , , ] ] ] , [“&” , , ] ] ,[ , [“doIfElse” , ,[ [“setVar:to:” , “BallDir” , [“+” , , ] ] ] ,[ [“setVar:to:” , “BallDir” , [“-” , “” , [“+” , , ] ] ] ] ] , [“doUntil” , [“not” , [“&” , [“&” , [“<” , [“-” , , ] , ] , [“<” , , [“+” , , ] ] ] , [“&” , , ] ] ] ,[ [“setVar:to:” , “BallX” , [“+” , , [“*” , , ] ] ] , [“setVar:to:” , “BallY” , [“+” , , [“*” , , ] ] ] ] ] ] ] , [“doIf” , [“&” , [“&” , [“<” , [“-” , , ] , ] , [“<” , , [“+” , , ] ] ] , [“&” , , ] ] ,[ , [“setVar:to:” , “BallDir” , ] , [“doUntil” , [“not” , [“&” , [“&” , [“<” , [“-” , , ] , ] , [“<” , , [“+” , , ] ] ] , [“&” , , ] ] ] ,[ [“setVar:to:” , “BallX” , [“+” , , [“*” , , ] ] ] , [“setVar:to:” , “BallY” , [“+” , , [“*” , , ] ] ] ] ] ] ] ] ] ]] ] }],“info”:{} }
VruxaP
Scratcher
1 post

Scratch emulator (GriffScratch) saved projects

JDindahouse wrote:

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 57 , 53 , [ , , , , , , [“doRepeat” , “10” ,[ [“doRepeat” , “4” ,[ , ] ] ] ] , , , [“doForever” ,[ [“doIf” , ,[ , , , , , [“doRepeat” , “4” ,[ , ] ] ] ] , [“doIf” , ,[ , , , , , [“doRepeat” , “4” ,[ , ] ] ] ] , [“doIf” , ,[ , , , , , [“doRepeat” , “4” ,[ , ] ] ] ] , [“doIf” , ,[ , , , , , [“doRepeat” , “4” ,[ , ] ] ] ] ] ] ]] ] }],“info”:{} }

I experimented with pen, which I have never used in Scratch before, and created a square that can move around

Powered by DjangoBB