Discuss Scratch

IceBlockStudios
Scratcher
67 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Basically, I've been planning a Scratch mod and been doing some research. Key word here is “PLANNING” so don't get your hopes up on anything, as it may not ever come to fruition considering I procrastinate a lot. It would NOT be TurboWarp based. After doing some research I figured out some basic ideas for what people want to be added to Scratch. The only thing though is, well… I'd like to see the communities ideas! Feedback or anything would be great and I know y'all have some good and unique ideas sometime so I'd love to hear them. I'll add a list of current block ideas below:

motion:
point towards x() y() :: motion

looks:
[next v] costume :: looks
[previous v] costume :: looks
[random v] costume :: looks

set [horizontal v] stretch to () :: looks
set [vertical v] stretch to () :: looks

set (blur v) effect to () :: looks
((color v) effect :: looks)

(layer :: looks)
set layer to () :: looks

sound:
pause sound (sound v) :: sound
play sound (sound v) :: sound

control:
when @stopSign clicked :: control hat

simulate @greenFlag click :: control

simulate @stopSign click :: control

when <> is true :: hat control

for i in () start () step () :: control //supposed to be a c-block
(i :: control)

operators:
(()^() :: operators)
(() root of () :: operators)
(infinity :: operators)
(pi :: operators)
<true :: operators>
<false :: operators>
<<> xor <> :: operators>
<<> nor <> ::operators>

data (variables, lists, arrays, etc.):
(saved variable)
(array :: list)

sensing
(Δt :: sensing)
(fps :: sensing)
(days since 2026 :: sensing) // would replace the days since 2000 to lower the number and allow for more precision in decimal places
<turbo mode? :: sensing>

custom blocks:
break :: cap
return () :: cap
return <> :: cap

debug:
# (comment) :: #90c0a0

label () :: #90c0a0

jump to label (label v) :: #90c0a0

[log v] () to console :: #90c0a0
[error v] () to console :: #90c0a0
[warn v] () to console :: #90c0a0

*List is subject to change

Thanks in advance for any cooperation you may have and feel free to inquire about the mod if you want, I'm good with answering questions ! Please note: I DO NOT HAVE CLOUD SERVERS, NOR WOULD I PAY FOR ANY, SO THERE WILL BE NO CLOUD LISTS/VARIABLES. Saved variables save your variables to localstorage, and the console used by the console blocks would be the browser's console.

Last edited by IceBlockStudios (May 10, 2026 14:43:00)

-S0dium-
Scratcher
88 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Some ideas (part 1):
switch costume to [random costume v] // you know what this does

[add v] [var1 v] from/to [var2 v] :: variables // dropdown selection: add, subtract, multiply, divide

when @stopSign clicked :: events hat

Flip clockwise :: motion // does turn cw 180 degrees

Flip counterclockwise :: motion // same but now it flips ccw

(sound v) is playing? :: sound boolean // checks if a sound is being played

(color v) effect ::looks operator ) // amount of effect that has been applied, dropdown has all scratch effects

(infinity ::operators) // prints out infinity

<infinity::operators> // Boolean variant

Last edited by -S0dium- (May 1, 2026 03:28:23)

A-Account123
Scratcher
20 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

The normal:
is turbo mode?
is turbowarp?
-S0dium-
Scratcher
88 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Part 2:
// extendable if then else block
if <> then
… // do something
else if <> then [+ v] :: control
… // do something else
else if <> then [+ v] :: control
… // keep extending!
else [- v] :: control
… // fallback
end

(put x or y pos operator here :: grey) is ()? :: motion boolean // checks if the sprites x or y pos is the number? (no decimals)

if [variable v] = [true v] then :: variables hat // runs code if a variable is true or false.

[add v] () from [variable v] :: variables // adds, subtracts, multiplies, or divides a number from a variable. simpler version of part 1’s block.

end block ::custom cap // ends the custom block from running and goes to the next block

restart project @greenFlag ::events cap // clicks the green flag

stop [Sprite1 v] // stops an entire sprite

// new category/extension: styles

change [stage v] color to [#ffffff] :: #3D4556 // changes one of most parts of the project page to this color, including variable/list displays

change project resolution to () by () :: #3D4556 // changes project resolution, what did you expect it to do?

[hide v] [green flag v] :: #3D4556 // shows or hides a icon on the top bar of projects

set fps to () :: #3D4556 // changes project fps

change logo to [base64 of your image here (gets sanitized on run)] :: #3D4556 // changes scratch logo to a base64 webp image

change logo to [Logo Sprite v] :: #3D4556 // safer version, uses a sprite as the logo instead. can also run code to move the logo and do cool stuff with it

(color of [stage v] :: #3D4556) // prints hex code of a color of a thing

<[Green Flag v] [hidden v]? :: #3D4556> // prints if something is hidden or shown
Wow, that was a lot.

Last edited by -S0dium- (May 1, 2026 03:54:59)

-S0dium-
Scratcher
88 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Bonus part:
step :: grey // steps the code execution by 1

continue running normally :: grey // runs the project normally if you do it after stepping

shout () :: looks
// and
shout () for () seconds :: looks
// says text really big with a jaggy speech bubble

whisper () :: looks
// and
whisper () for () seconds :: looks
// same as shout, but says text really small and with a dotted speech bubble

(☁️list :: list) // cloud lists, is compatible with every list block

(table :: #FF4D00) // new category/type for lists, basically like how html tables function

(☁️table :: #FF4D00) // you know what this’ll do.

(pi :: operators) // prints the first 20 digits of pi
IceBlockStudios
Scratcher
67 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

-S0dium- wrote:

Some ideas (part 1):
switch costume to [random costume v] // you know what this does

[add v] [var1 v] from/to [var2 v] :: variables // dropdown selection: add, subtract, multiply, divide

when @stopSign clicked :: events hat

Flip clockwise :: motion // does turn cw 180 degrees

Flip counterclockwise :: motion // same but now it flips ccw

(sound v) is playing? :: sound boolean // checks if a sound is being played

(color v) effect ::looks operator ) // amount of effect that has been applied, dropdown has all scratch effects

(infinity ::operators) // prints out infinity

<infinity::operators> // Boolean variant

-S0dium- wrote:

Part 2:
// extendable if then else block
if <> then
… // do something
else if <> then [+ v] :: control
… // do something else
else if <> then [+ v] :: control
… // keep extending!
else [- v] :: control
… // fallback
end

(put x or y pos operator here :: grey) is ()? :: motion boolean // checks if the sprites x or y pos is the number? (no decimals)

if [variable v] = [true v] then :: variables hat // runs code if a variable is true or false.

[add v] () from [variable v] :: variables // adds, subtracts, multiplies, or divides a number from a variable. simpler version of part 1’s block.

end block ::custom cap // ends the custom block from running and goes to the next block

restart project @greenFlag ::events cap // clicks the green flag

stop [Sprite1 v] // stops an entire sprite

// new category/extension: styles

change [stage v] color to [#ffffff] :: #3D4556 // changes one of most parts of the project page to this color, including variable/list displays

change project resolution to () by () :: #3D4556 // changes project resolution, what did you expect it to do?

[hide v] [green flag v] :: #3D4556 // shows or hides a icon on the top bar of projects

set fps to () :: #3D4556 // changes project fps

change logo to [base64 of your image here (gets sanitized on run)] :: #3D4556 // changes scratch logo to a base64 webp image

change logo to [Logo Sprite v] :: #3D4556 // safer version, uses a sprite as the logo instead. can also run code to move the logo and do cool stuff with it

(color of [stage v] :: #3D4556) // prints hex code of a color of a thing

<[Green Flag v] [hidden v]? :: #3D4556> // prints if something is hidden or shown
Wow, that was a lot.

-S0dium- wrote:

Bonus part:
step :: grey // steps the code execution by 1

continue running normally :: grey // runs the project normally if you do it after stepping

shout () :: looks
// and
shout () for () seconds :: looks
// says text really big with a jaggy speech bubble

whisper () :: looks
// and
whisper () for () seconds :: looks
// same as shout, but says text really small and with a dotted speech bubble

(☁️list :: list) // cloud lists, is compatible with every list block

(table :: #FF4D00) // new category/type for lists, basically like how html tables function

(☁️table :: #FF4D00) // you know what this’ll do.

(pi :: operators) // prints the first 20 digits of pi
I don't have servers so I can't host cloud variables. I suppose I should add that to the post.

Switching to a random costume sounds good. I might change the next/previous costume to a single block with a dropdown that can select, next, previous, or random. Infinity as a reporter sounds good. No infinity boolean but true/false generic booleans. A simulate green flag click sounds good. As for breaking (the end custom block cap), that's a good idea, I just forgot about custom blocks when I was first writing this. I don't need the custom hat but I guess a when stop sign clicked block works. Tables/arrays are a peak idea, but as this is a more advanced or considered to be more advanced program and is therefore a step up from Scratch, I generally disapprove of the usage of say/think blocks which in-turn would reject whisper and shout blocks. A debug category does sound good though. I'll update the in a while.
TweetytheBird93
Scratcher
71 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Identifying workarounds in these blocks:

-S0dium- wrote:

Some ideas (part 1):
switch costume to [random costume v] // you know what this does

[add v] [var1 v] from/to [var2 v] :: variables // dropdown selection: add, subtract, multiply, divide

when @stopSign clicked :: events hat

Flip clockwise :: motion // does turn cw 180 degrees

Flip counterclockwise :: motion // same but now it flips ccw

(sound v) is playing? :: sound boolean // checks if a sound is being played

(color v) effect ::looks operator ) // amount of effect that has been applied, dropdown has all scratch effects

(infinity ::operators) // prints out infinity

<infinity::operators> // Boolean variant
change [a v] by (b) // [add] [var1] from/to [var2]

turn cw (180) degrees // flip cw/ccw (flip cw and flip ccw would have virtually no differences other than duplicate code)

// infinity does not have a boolean variant

-S0dium- wrote:

Part 2:
// extendable if then else block
if <> then
… // do something
else if <> then [+ v] :: control
… // do something else
else if <> then [+ v] :: control
… // keep extending!
else [- v] :: control
… // fallback
end

(put x or y pos operator here :: grey) is ()? :: motion boolean // checks if the sprites x or y pos is the number? (no decimals)

if [variable v] = [true v] then :: variables hat // runs code if a variable is true or false.

[add v] () from [variable v] :: variables // adds, subtracts, multiplies, or divides a number from a variable. simpler version of part 1’s block.

end block ::custom cap // ends the custom block from running and goes to the next block

restart project @greenFlag ::events cap // clicks the green flag

stop [Sprite1 v] // stops an entire sprite

// new category/extension: styles

change [stage v] color to [#ffffff] :: #3D4556 // changes one of most parts of the project page to this color, including variable/list displays

change project resolution to () by () :: #3D4556 // changes project resolution, what did you expect it to do?

[hide v] [green flag v] :: #3D4556 // shows or hides a icon on the top bar of projects

set fps to () :: #3D4556 // changes project fps

change logo to [base64 of your image here (gets sanitized on run)] :: #3D4556 // changes scratch logo to a base64 webp image

change logo to [Logo Sprite v] :: #3D4556 // safer version, uses a sprite as the logo instead. can also run code to move the logo and do cool stuff with it

(color of [stage v] :: #3D4556) // prints hex code of a color of a thing

<[Green Flag v] [hidden v]? :: #3D4556> // prints if something is hidden or shown
Wow, that was a lot.

<(round (x position)) = []> // (pos) is ()?

if <(a) = [true]> then
. . .
end

stop [script v] // can be used in custom blocks to stop the function of that block
awesome-llama
Scratcher
1000+ posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

I've put my suggestions here: https://en.scratch-wiki.info/wiki/User:Awesome-llama/Wish_List

(This isn't the first time I've needed to share a list of what I wished Scratch had and is probably not the last)

Last edited by awesome-llama (May 1, 2026 18:39:53)

IceBlockStudios
Scratcher
67 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

awesome-llama wrote:

I've put my suggestions here: https://en.scratch-wiki.info/wiki/User:Awesome-llama/Wish_List

(This isn't the first time I've needed to share a list of what I wished Scratch had and is probably not the last)
peak
IceBlockStudios
Scratcher
67 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

TweetytheBird93 wrote:

Identifying workarounds in these blocks:

-S0dium- wrote:

Some ideas (part 1):
switch costume to [random costume v] // you know what this does

[add v] [var1 v] from/to [var2 v] :: variables // dropdown selection: add, subtract, multiply, divide

when @stopSign clicked :: events hat

Flip clockwise :: motion // does turn cw 180 degrees

Flip counterclockwise :: motion // same but now it flips ccw

(sound v) is playing? :: sound boolean // checks if a sound is being played

(color v) effect ::looks operator ) // amount of effect that has been applied, dropdown has all scratch effects

(infinity ::operators) // prints out infinity

<infinity::operators> // Boolean variant
change [a v] by (b) // [add] [var1] from/to [var2]

turn cw (180) degrees // flip cw/ccw (flip cw and flip ccw would have virtually no differences other than duplicate code)

// infinity does not have a boolean variant

-S0dium- wrote:

Part 2:
// extendable if then else block
if <> then
… // do something
else if <> then [+ v] :: control
… // do something else
else if <> then [+ v] :: control
… // keep extending!
else [- v] :: control
… // fallback
end

(put x or y pos operator here :: grey) is ()? :: motion boolean // checks if the sprites x or y pos is the number? (no decimals)

if [variable v] = [true v] then :: variables hat // runs code if a variable is true or false.

[add v] () from [variable v] :: variables // adds, subtracts, multiplies, or divides a number from a variable. simpler version of part 1’s block.

end block ::custom cap // ends the custom block from running and goes to the next block

restart project @greenFlag ::events cap // clicks the green flag

stop [Sprite1 v] // stops an entire sprite

// new category/extension: styles

change [stage v] color to [#ffffff] :: #3D4556 // changes one of most parts of the project page to this color, including variable/list displays

change project resolution to () by () :: #3D4556 // changes project resolution, what did you expect it to do?

[hide v] [green flag v] :: #3D4556 // shows or hides a icon on the top bar of projects

set fps to () :: #3D4556 // changes project fps

change logo to [base64 of your image here (gets sanitized on run)] :: #3D4556 // changes scratch logo to a base64 webp image

change logo to [Logo Sprite v] :: #3D4556 // safer version, uses a sprite as the logo instead. can also run code to move the logo and do cool stuff with it

(color of [stage v] :: #3D4556) // prints hex code of a color of a thing

<[Green Flag v] [hidden v]? :: #3D4556> // prints if something is hidden or shown
Wow, that was a lot.

<(round (x position)) = []> // (pos) is ()?

if <(a) = [true]> then
. . .
end

stop [script v] // can be used in custom blocks to stop the function of that block
I'm not really looking for workarounds here lol
Ender-Ghost-Craft
Scratcher
100 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

<<> xor <>>

Last edited by Ender-Ghost-Craft (May 2, 2026 23:43:47)

-S0dium-
Scratcher
88 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Ender-Ghost-Craft wrote:

<<> xor <>>
<<> xor <>:: operators>
Fixed your custom block lol
Ender-Ghost-Craft
Scratcher
100 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

-S0dium- wrote:

Ender-Ghost-Craft wrote:

<<> xor <>>
<<> xor <>:: operators>
Fixed your custom block lol
lmao thx
IceBlockStudios
Scratcher
67 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Ender-Ghost-Craft wrote:

<<> xor <>>
peak
plum_the_fox
Scratcher
1000+ posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

please read this
Travis_isaSigma
Scratcher
100+ posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

Maybe add
turn to x() y()::motion
show console::#446644 //idk what is the correct color is ):
-S0dium-
Scratcher
88 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

plum_the_fox wrote:

please read this
He’s just planning the mod and asking us for block ideas lol
Ender-Ghost-Craft
Scratcher
100 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

(e :: operators)
(eulers)

Last edited by Ender-Ghost-Craft (May 3, 2026 04:49:04)

Travis_isaSigma
Scratcher
100+ posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

[foo]::reporter operators
stop (all scripts in [sprite 1 v] ::control)
<tubo mode on?::sensing>
(fps::sensing)
([blur v] effect::looks)
convert (input::operators) to [boolean v]::operators// converts even to true odd to false and true to 1 and false to 2
(color at [sprite 1 v]::sensing
jump to block () in script once::control//does not work after first use

jump to block () in script () times::control//uses 2nd input for how many times it should work
(# block in this script::control)//shows the number of blocks before this block (including this block) in the script
<> nor <>::boolean operators
(last console message::#80b090)
when <> is true::hat events// was in scratch 1.0 beta

custom cap::cap custom

Last edited by Travis_isaSigma (May 8, 2026 23:44:29)

IceBlockStudios
Scratcher
67 posts

I'm Planning a Scratch Mod and Want Some Ideas for Blocks and Features

plum_the_fox wrote:

please read this
I have read before and is which I am not openly releasing information or planned features of the project until production is started and the features exist. This is solely for collecting data and ideas rather than saying I WILL make this. I have also acknowledged that this project might not ever come to fruition as I do procrastinate a lot.

Powered by DjangoBB