Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » Guide to Modding Scratch 3.0
- -Xanemous-
-
Scratcher
5 posts
Guide to Modding Scratch 3.0
MIDNIGHT - An Online Scrolling Platformer With Whitelist Chat! https://scratch.mit.edu/projects/1327387353/
- zstechly
-
Scratcher
29 posts
Guide to Modding Scratch 3.0
I got 96% on scratch-gui and then it said fatal: write error: No space left on device
fatal: fetch-pack: invalid index-pack output
cd: no such file or directory: scratch-gui.
fatal: fetch-pack: invalid index-pack output
cd: no such file or directory: scratch-gui.
- zstechly
-
Scratcher
29 posts
Guide to Modding Scratch 3.0
How do you make a scratch add0n?( the 0 is an o)
- Marcel0215
-
Scratcher
15 posts
Guide to Modding Scratch 3.0
TURBOWARP BLOCKS ARE COMPATIBLE WITH SCRATCH
<is compiled?>
- UnicornJuice2014
-
Scratcher
5 posts
Guide to Modding Scratch 3.0
when red stop clicked

play sound [ v]
- zstechly
-
Scratcher
29 posts
Guide to Modding Scratch 3.0
Is there a guide to how to make a chrome extension for scratch?



- Oisthebestletter
-
Scratcher
500+ posts
Guide to Modding Scratch 3.0
You should add PNPM as a recommendation.
- UnicornJuice2014
-
Scratcher
5 posts
Guide to Modding Scratch 3.0
You Should Add More events

when red stop clicked
- ItzNotDjake
-
Scratcher
2 posts
Guide to Modding Scratch 3.0
ok bad apple (retro2D) cuz idk ask scratch ceo
- -S0dium-
-
Scratcher
100+ posts
Guide to Modding Scratch 3.0
Hi, so I've been trying to so something… somewhat unusual. I have a fork of scratch-www (yes, you read that right), scratch-editor (with modded scratch-gui), and scratch-paint, and wish to link all of these together.ok this is awesome, we need more of these types of mods
I've tried multiple things (file: dependencies, (ab)using the workspaces feature, npm link), but either way it always seems to find a way to break.
The most successful attempt was an `npm link` attempt, with the packages contained in a sub-directory of scratch-www. First of all, this time there was no extension-worker.js file at alll I thought this was a version-related change but this is likely not the case. Note that I forget whether I built scratch-gui with npm run build or npm run build:dist.
So both on the link and dependency attempts, scratch-www kept using the wrong hash for fetch-worker.*.js's filename (where * should be the hash part), and as such projects with any assets other than the default backdrop and sprite simply fail to load on the website.
Anyway back to the link attempt, I built scratch-gui again (with build:dist) and then fetch-worker completely disappeared, making everything unable to build.
Relevant code:
https://code.chipmunk.land/scr.chipmunk.land/scratch-www (last commit known to build: 2b3ed7ba99776136b53c1a8973f8fb39c50ebfd7)
https://code.chipmunk.land/scr.chipmunk.land/scratch-editor
https://code.chipmunk.land/scr.chipmunk.land/scratch-paint
I've been deadlocked regarding this project for a while, it would be nice if anyone knowledgeable could help.
Edit: I've mostly fixed the issue, though copying build/chunks/fetch-worker.*.js to build/js/chunks/ is needed for some reason.
On an unrelated note I somehow made a merge commit without actually merging any new commits (like, they aren't in the commit history) and don't even remember how… oof
- zstechly
-
Scratcher
29 posts
Guide to Modding Scratch 3.0
Is there a guide to makeing a chrome extension for scratch?
- ILikeBFDI12345
-
Scratcher
33 posts
Guide to Modding Scratch 3.0
I want to create a mod called: Firemod…
This is the code: <!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
<!– Set the tab title to Firemod –>
<title>Firemod</title>
<link rel=“stylesheet” href=“style.css”>
<!– Load the official Scratch Blocks / Blockly engine from the internet –>
<script src="https://unpkg.com“></script>
</head>
<body>
<!– Top Menu Bar (Scratch 2.0 Style gray) –>
<div class=”menu-bar“>
<span class=”logo-text“>FIREMOD</span>
</div>
<!– Main Workspace Area –>
<div class=”page-wrapper“>
<!– Stage area on the left side (Scratch 2.0 Style Layout) –>
<div class=”stage-area“>
<div class=”stage-screen“>Stage Window</div>
<div class=”stage-selector“>Sprites / Backgrounds</div>
</div>
<!– Coding workspace area on the right side –>
<div class=”workspace-area“>
<!– This div will hold all the programming blocks dynamically –>
<div id=”blocklyDiv“></div>
</div>
</div>
<!– Define all Scratch 2.0 categories and blocks using Toolbox XML –>
<xml id=”toolbox“ style=”display: none“>
<category name=”Motion“ colour=”#4a90e2“>
<block type=”motion_movesteps“><value name=”STEPS“><block type=”math_number“><field name=”NUM“>10</field></block></value></block>
<block type=”motion_turnright“><value name=”DEGREES“><block type=”math_number“><field name=”NUM“>15</field></block></value></block>
<block type=”motion_turnleft“><value name=”DEGREES“><block type=”math_number“><field name=”NUM“>15</field></block></value></block>
</category>
<category name=”Looks“ colour=”#8a55d7“>
<block type=”looks_sayforsecs“><value name=”MESSAGE“><block type=”text“><field name=”TEXT“>Hello!</field></block></value><value name=”SECS“><block type=”math_number“><field name=”NUM“>2</field></block></value></block>
<block type=”looks_say“><value name=”MESSAGE“><block type=”text“><field name=”TEXT“>Hello!</field></block></value></block>
</category>
<category name=”Sound“ colour=”#bb42bb“>
<block type=”sound_playuntildone“></block>
<block type=”sound_stopallsounds“></block>
</category>
<category name=”Events“ colour=”#de9e2a“>
<block type=”event_whenflagclicked“></block>
<block type=”event_whenkeypressed“></block>
</category>
<category name=”Control“ colour=”#e6a119“>
<block type=”control_wait“><value name=”DURATION“><block type=”math_number“><field name=”NUM“>1</field></block></value></block>
<block type=”control_forever“></block>
<block type=”control_if“></block>
</category>
<category name=”Sensing“ colour=”#2ca5e2“>
<block type=”sensing_touchingobject“></block>
</category>
<category name=”Operators“ colour=”#5cb85c“>
<block type=”operator_add“></block>
<block type=”operator_subtract“></block>
</category>
<category name=”Variables“ colour=”#ee7d16“ custom=”VARIABLE"></category>
</xml>
<!– Script to initialize and inject the block system with Scratch 2.0 colors –>
<script>
// Define the classic Scratch 2.0 theme colors for the editor workspace
const scratch2Theme = Blockly.Theme.defineTheme('scratch2', {
‘base’: Blockly.Themes.Classic,
‘componentStyles’: {
‘workspaceBackgroundColour’: ‘#e0e0e0’, // Classic 2.0 light gray background
‘toolboxBackgroundColour’: ‘#d4d4d4’, // Classic 2.0 sidebar darker gray
‘toolboxTextColour’: ‘#000000’,
‘flyoutBackgroundColour’: ‘#eaeaea’,
‘scrollbarColour’: ‘#b0b0b0’
}
});
// Inject the editor into the site using our custom theme
Blockly.inject('blocklyDiv', {
toolbox: document.getElementById('toolbox'),
theme: scratch2Theme,
scrollbars: true,
trashcan: true,
media: 'https://unpkg.com',
zoom: {
controls: true,
wheel: true
}
});
</script>
</body>
</html>
For the font: /* Load the official Shag Lounge font from the internet */
@import url('https://wfonts.com');
/* Apply the BFDI font to all elements including Blockly blocks text */
body, html, input, button, select, span, div, text, .blocklyText, .blocklyFlyoutLabelText {
font-family: ‘Shag Lounge’, sans-serif !important;
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Style for the classic Scratch 2.0 dark gray menu bar */
.menu-bar {
background-color: #4c4c4c;
border-bottom: 2px solid #3d3d3d;
color: #ffffff;
padding: 10px 20px;
display: flex;
align-items: center;
}
.logo-text {
font-size: 24px;
font-weight: bold;
letter-spacing: 1px;
}
/* Main workspace layout forcing the stage to the LEFT */
.page-wrapper {
display: flex;
flex-direction: row; /* Stage on the Left, Code on the Right */
height: calc(100vh - 52px);
padding: 10px;
gap: 10px;
background-color: #d4d4d4; /* Classic Scratch 2.0 background tint */
}
/* Left side layout (Stage and Sprite selector) */
.stage-area {
display: flex;
flex-direction: column;
width: 320px; /* Adjusted to fit better on mobile screens */
gap: 10px;
}
.stage-screen {
background-color: #ffffff;
border: 3px solid #b0b0b0;
height: 240px;
display: flex;
align-items: center;
justify-content: center;
color: #666;
font-weight: bold;
}
.stage-selector {
background-color: #f2f2f2;
border: 3px solid #b0b0b0;
flex-grow: 1;
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Right side layout holding the programming block workspace */
.workspace-area {
flex-grow: 1;
border: 3px solid #b0b0b0;
position: relative;
background-color: #e0e0e0;
}
#blocklyDiv {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
/* Remove modern rounded corners from the toolbox categories */
.blocklyToolboxCategory {
border-radius: 0px !important;
margin-bottom: 2px;
}
Yes.. This mod looks scratch 2.0…
This is the code: <!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
<!– Set the tab title to Firemod –>
<title>Firemod</title>
<link rel=“stylesheet” href=“style.css”>
<!– Load the official Scratch Blocks / Blockly engine from the internet –>
<script src="https://unpkg.com“></script>
</head>
<body>
<!– Top Menu Bar (Scratch 2.0 Style gray) –>
<div class=”menu-bar“>
<span class=”logo-text“>FIREMOD</span>
</div>
<!– Main Workspace Area –>
<div class=”page-wrapper“>
<!– Stage area on the left side (Scratch 2.0 Style Layout) –>
<div class=”stage-area“>
<div class=”stage-screen“>Stage Window</div>
<div class=”stage-selector“>Sprites / Backgrounds</div>
</div>
<!– Coding workspace area on the right side –>
<div class=”workspace-area“>
<!– This div will hold all the programming blocks dynamically –>
<div id=”blocklyDiv“></div>
</div>
</div>
<!– Define all Scratch 2.0 categories and blocks using Toolbox XML –>
<xml id=”toolbox“ style=”display: none“>
<category name=”Motion“ colour=”#4a90e2“>
<block type=”motion_movesteps“><value name=”STEPS“><block type=”math_number“><field name=”NUM“>10</field></block></value></block>
<block type=”motion_turnright“><value name=”DEGREES“><block type=”math_number“><field name=”NUM“>15</field></block></value></block>
<block type=”motion_turnleft“><value name=”DEGREES“><block type=”math_number“><field name=”NUM“>15</field></block></value></block>
</category>
<category name=”Looks“ colour=”#8a55d7“>
<block type=”looks_sayforsecs“><value name=”MESSAGE“><block type=”text“><field name=”TEXT“>Hello!</field></block></value><value name=”SECS“><block type=”math_number“><field name=”NUM“>2</field></block></value></block>
<block type=”looks_say“><value name=”MESSAGE“><block type=”text“><field name=”TEXT“>Hello!</field></block></value></block>
</category>
<category name=”Sound“ colour=”#bb42bb“>
<block type=”sound_playuntildone“></block>
<block type=”sound_stopallsounds“></block>
</category>
<category name=”Events“ colour=”#de9e2a“>
<block type=”event_whenflagclicked“></block>
<block type=”event_whenkeypressed“></block>
</category>
<category name=”Control“ colour=”#e6a119“>
<block type=”control_wait“><value name=”DURATION“><block type=”math_number“><field name=”NUM“>1</field></block></value></block>
<block type=”control_forever“></block>
<block type=”control_if“></block>
</category>
<category name=”Sensing“ colour=”#2ca5e2“>
<block type=”sensing_touchingobject“></block>
</category>
<category name=”Operators“ colour=”#5cb85c“>
<block type=”operator_add“></block>
<block type=”operator_subtract“></block>
</category>
<category name=”Variables“ colour=”#ee7d16“ custom=”VARIABLE"></category>
</xml>
<!– Script to initialize and inject the block system with Scratch 2.0 colors –>
<script>
// Define the classic Scratch 2.0 theme colors for the editor workspace
const scratch2Theme = Blockly.Theme.defineTheme('scratch2', {
‘base’: Blockly.Themes.Classic,
‘componentStyles’: {
‘workspaceBackgroundColour’: ‘#e0e0e0’, // Classic 2.0 light gray background
‘toolboxBackgroundColour’: ‘#d4d4d4’, // Classic 2.0 sidebar darker gray
‘toolboxTextColour’: ‘#000000’,
‘flyoutBackgroundColour’: ‘#eaeaea’,
‘scrollbarColour’: ‘#b0b0b0’
}
});
// Inject the editor into the site using our custom theme
Blockly.inject('blocklyDiv', {
toolbox: document.getElementById('toolbox'),
theme: scratch2Theme,
scrollbars: true,
trashcan: true,
media: 'https://unpkg.com',
zoom: {
controls: true,
wheel: true
}
});
</script>
</body>
</html>
For the font: /* Load the official Shag Lounge font from the internet */
@import url('https://wfonts.com');
/* Apply the BFDI font to all elements including Blockly blocks text */
body, html, input, button, select, span, div, text, .blocklyText, .blocklyFlyoutLabelText {
font-family: ‘Shag Lounge’, sans-serif !important;
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Style for the classic Scratch 2.0 dark gray menu bar */
.menu-bar {
background-color: #4c4c4c;
border-bottom: 2px solid #3d3d3d;
color: #ffffff;
padding: 10px 20px;
display: flex;
align-items: center;
}
.logo-text {
font-size: 24px;
font-weight: bold;
letter-spacing: 1px;
}
/* Main workspace layout forcing the stage to the LEFT */
.page-wrapper {
display: flex;
flex-direction: row; /* Stage on the Left, Code on the Right */
height: calc(100vh - 52px);
padding: 10px;
gap: 10px;
background-color: #d4d4d4; /* Classic Scratch 2.0 background tint */
}
/* Left side layout (Stage and Sprite selector) */
.stage-area {
display: flex;
flex-direction: column;
width: 320px; /* Adjusted to fit better on mobile screens */
gap: 10px;
}
.stage-screen {
background-color: #ffffff;
border: 3px solid #b0b0b0;
height: 240px;
display: flex;
align-items: center;
justify-content: center;
color: #666;
font-weight: bold;
}
.stage-selector {
background-color: #f2f2f2;
border: 3px solid #b0b0b0;
flex-grow: 1;
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
/* Right side layout holding the programming block workspace */
.workspace-area {
flex-grow: 1;
border: 3px solid #b0b0b0;
position: relative;
background-color: #e0e0e0;
}
#blocklyDiv {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
/* Remove modern rounded corners from the toolbox categories */
.blocklyToolboxCategory {
border-radius: 0px !important;
margin-bottom: 2px;
}
Yes.. This mod looks scratch 2.0…
- RacecarFox16
-
Scratcher
11 posts
Guide to Modding Scratch 3.0
I know this is all about Separate scratch mods & editors, I was thinking about the *Modding of a Project or Platformer game* and lets just stay on the *What if?* side of things for a moment, because we can use save codes, why not make a “Mod software” project for the platformer, AND THEN paste the code to the “REAL GAME” and then you would have the “Mod successfully downloaded”
but “What are you going to change?” It could be anything, from custom skins/Levels, to Different physics settings, To Recording and episode of the platformer and then posting it on forums. 
but “What are you going to change?” It could be anything, from custom skins/Levels, to Different physics settings, To Recording and episode of the platformer and then posting it on forums. 
- zstechly
-
Scratcher
29 posts
Guide to Modding Scratch 3.0
I know this is all about Separate scratch mods & editors, I was thinking about the *Modding of a Project or Platformer game* and lets just stay on the *What if?* side of things for a moment, because we can use save codes, why not make a “Mod software” project for the platformer, AND THEN paste the code to the “REAL GAME” and then you would have the “Mod successfully downloaded”What?but “What are you going to change?” It could be anything, from custom skins/Levels, to Different physics settings, To Recording and episode of the platformer and then posting it on forums.
- ChristianScratcher1
-
Scratcher
1000+ posts
Guide to Modding Scratch 3.0
Guys how do I use javascriptHere are some free resources:
W3schools
Free Code Camp
Sololearn
Javascript should be built into your computer so for practicing, you need an IDE like VScode or smth
- Crusher-Bot
-
Scratcher
11 posts
Guide to Modding Scratch 3.0
WOW!!! NEW FRIENDS!!! Your Free Robux …It's a good think that it shows the link for me in the bottom left corner
- Discussion Forums
- » Advanced Topics
-
» Guide to Modding Scratch 3.0