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
11 posts

Scratch emulator (GriffScratch) saved projects

{“objName”:“Stage”, “children”: [{“objName”:“project” ,“variables”: ,“scripts”:[ [ 46 , 41 , [ , , , , [“doForever” ,[ [“doIfElse” , ,[ , ] ,[ [“doIfElse” , ,[ , ] ,[ [“doIfElse” , ,[ , ] ,[ [“doIf” , ,[ , ] ] ] ] ] ] ] ] ] ] ]] ] }],“info”:{} }
ViggyMish
Scratcher
19 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
19 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
19 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
New 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”:{} }

Powered by DjangoBB