Discuss Scratch

trollface_smack321
Scratcher
63 posts

IMPROVEMENT: Project Files

While Scratch was loading a very big project I wanted to play, it kept crashing while loading. I thought a way around this: what if there were multiple files? A main blocks editor, an assets tab, and maybe you can create other files containing code, and assets. Along with a “load” block, to load the files (this is important for things like “ScratchTube,” and some multi-game launchers, along with some projects that contain a lot of sounds, which was a problem once you went past a storage amount of about 100 MB of sound.) Multiple files containing code or other assets, such as images, are commonly used in web coding (such as when you want to code a game, but you define the canvas in the main file, while you define the code in a “runtime.js” file.)

<body><h1>ME IS A WEB CODING GEEK</h1></body>
--countdown--
Scratcher
6 posts

IMPROVEMENT: Project Files

I don't think this would work the way you would expect in Scratch. The crashes you're seeing are probably not caused by the fact that everything is in one file. Think about it: Scratch projects are already kind of split internally (the .sb3 file is basically a zip with assets and a project.json). The issue is probably limits and performance. For example, each asset must be under 10MB, project.json under 5MB (https://mitscratch.freshdesk.com/en/support/solutions/articles/4000156781-how-do-i-reduce-or-check-my-project-s-size-). Even if they added multiple files, which they already kind of do, those limits would still exist, big projects would still lag or crash. Also, Scratch isn't really designed like Javascript, it's meant to be simple and easy for beginners. Adding things like multiple code files, runtime loading systems, asset manager… would make it way more complicated for users. Remember, most Scratch users are 12 and probably are just getting started in coding, which is why Scratch is a great place, alongside the fact that it is very safe, inclusive, and nice: https://scratch.mit.edu/statistics/. But your idea still exists kind of, in different forms: people sometimes split projects into parts or engines, and for really big projects like complex 3D engines TurboWarp can handle those. Maybe you could add a more realistic improvement like: better asset compression, or lazy loading, loading assets only when needed.
trollface_smack321
Scratcher
63 posts

IMPROVEMENT: Project Files

--countdown-- wrote:

I don't think this would work the way you would expect in Scratch. The crashes you're seeing are probably not caused by the fact that everything is in one file. Think about it: Scratch projects are already kind of split internally (the .sb3 file is basically a zip with assets and a project.json). The issue is probably limits and performance. For example, each asset must be under 10MB, project.json under 5MB (https://mitscratch.freshdesk.com/en/support/solutions/articles/4000156781-how-do-i-reduce-or-check-my-project-s-size-). Even if they added multiple files, which they already kind of do, those limits would still exist, big projects would still lag or crash. Also, Scratch isn't really designed like Javascript, it's meant to be simple and easy for beginners. Adding things like multiple code files, runtime loading systems, asset manager… would make it way more complicated for users. Remember, most Scratch users are 12 and probably are just getting started in coding, which is why Scratch is a great place, alongside the fact that it is very safe, inclusive, and nice: https://scratch.mit.edu/statistics/. But your idea still exists kind of, in different forms: people sometimes split projects into parts or engines, and for really big projects like complex 3D engines TurboWarp can handle those. Maybe you could add a more realistic improvement like: better asset compression, or lazy loading, loading assets only when needed.
But what I am trying to say is that if you were able to “load” files, your project would load much faster. Say for example, you were on “ScratchTube,” and you clicked on an animation. The project would “load” that specific animation at the time you clicked on it, rather than the entire project loading all at once. (For this to work, you would need “load,” “load and wait,” and “close” blocks in the palette.)
--countdown--
Scratcher
6 posts

IMPROVEMENT: Project Files

I get what you mean but i think that probably won't really work in scratch, or at least how you're probably thinking about it. Scratch doesn't have a system where it can fetch extra data after the project starts. Everyting has to be downloaded first befor the project begins. Even if there were the blocks load or load and wait, there wouldn't be anything to load unless scratch completely changed how projects work. You scratchtube example sounds like lazy loading, by lonly loading an animation when you click it, which works on websites because they can request files from servars anytime. Scratch doesn't have this ability, or i guess it's very limited (cloud variables). It would need moderation, online-only (don't forget the offline scratch!!) and complexity, which breaks scratch's core principle: simplicity. In theory it's a good idea but it would require a redesign of scratch's engine, not just a few blocks. maybe when scratch 4.0 comes out
Maybe Scratch could do something like internally optimizing loading, like only decoding assets when needed, instead of giving users manual load blocks.
unisparks8
Scratcher
1000+ posts

IMPROVEMENT: Project Files

Looks like a dupe… I think?

trollface_smack321 wrote:

<body><h1>ME IS A WEB CODING GEEK</h1></body>
try [big][/big].
trollface_smack321
Scratcher
63 posts

IMPROVEMENT: Project Files

unisparks8 wrote:

Looks like a dupe… I think?

trollface_smack321 wrote:

<body><h1>ME IS A WEB CODING GEEK</h1></body>
try [big][/big].
But that’s BBcode, not HTML (the code that builds every website)
gem1001
Scratcher
1000+ posts

IMPROVEMENT: Project Files

trollface_smack321 wrote:

unisparks8 wrote:

Looks like a dupe… I think?

trollface_smack321 wrote:

<body><h1>ME IS A WEB CODING GEEK</h1></body>
try [big][/big].
But that’s BBcode, not HTML (the code that builds every website)
The forums use BBCode in posts
HTML is only for the site itself

Last edited by gem1001 (April 13, 2026 10:16:40)

trollface_smack321
Scratcher
63 posts

IMPROVEMENT: Project Files

gem1001 wrote:

trollface_smack321 wrote:

unisparks8 wrote:

Looks like a dupe… I think?

trollface_smack321 wrote:

<body><h1>ME IS A WEB CODING GEEK</h1></body>
try [big][/big].
But that’s BBcode, not HTML (the code that builds every website)
The forums use BBCode in posts
HTML is only for the site itself
I know. But I prefer HTML.
AdaVesta_
Scratcher
1000+ posts

IMPROVEMENT: Project Files

trollface_smack321 wrote:

gem1001 wrote:

trollface_smack321 wrote:

unisparks8 wrote:

Looks like a dupe… I think?

trollface_smack321 wrote:

<body><h1>ME IS A WEB CODING GEEK</h1></body>
try [big][/big].
But that’s BBcode, not HTML (the code that builds every website)
The forums use BBCode in posts
HTML is only for the site itself
I know. But I prefer HTML.
don't get off topic…
AdaVesta_
Scratcher
1000+ posts

IMPROVEMENT: Project Files

trollface_smack321 wrote:

gem1001 wrote:

trollface_smack321 wrote:

unisparks8 wrote:

Looks like a dupe… I think?

trollface_smack321 wrote:

<body><h1>ME IS A WEB CODING GEEK</h1></body>
try [big][/big].
But that’s BBcode, not HTML (the code that builds every website)
The forums use BBCode in posts
HTML is only for the site itself
I know. But I prefer HTML.
don't get off topic…
trollface_smack321
Scratcher
63 posts

IMPROVEMENT: Project Files

AdaVesta_ wrote:

trollface_smack321 wrote:

I know. But I prefer HTML.
don't get off topic…
What

Last edited by trollface_smack321 (May 8, 2026 07:32:39)

Powered by DjangoBB