Discuss Scratch

jumpingtj
Scratcher
21 posts

Write scratch - with text?

Hi! This might not be the right forum, but…

I've been looking into the sb3 format. It's just a zip with projects assest, but also a project.json file that contains the code.
Is it possible to write this project.json file using Python? And for the syntax, scratchblocks already exists - it could piggyback off that?
But at that point we could probably steal the parser for scratchblocks so could piviot to JS.

I'd be happy to write in Python, JS or Go - JS using scratchblocks syntax might be the way.

Any ideas?

Thanks,
jumpingtj (;
BigNate469
Scratcher
1000+ posts

Write scratch - with text?

There is a list of text-based Scratch applications, most of which are in beta (or haven't been updated to 3.0 yet), although all of them are usable.

So it's definitely possible.

Last edited by BigNate469 (Feb. 18, 2025 18:13:31)

imfh
Scratcher
1000+ posts

Write scratch - with text?

Note that per section 4.4 of the Terms of Use, you cannot upload any projects created with a Python script. The projects must be user generated with an unmodified Scratch editor.

That doesn't mean creating Scratch projects in those ways isn't allowed, you just can't upload those projects.

Terms of Use wrote:

4.4 You may only submit user-generated projects that were created with (1) the Scratch website editor or (2) an unmodified copy of the Scratch editor compiled from the source code described in Section 5.3. You may not upload any projects that were created, by you or by anyone else, with a modified version of the Scratch editor.
The Scratch Team is kind of lax enforcing this (especially if you count that 5.3 talks about the 1.4 editor…) but just be aware this is in the ToU.
tUrtleBloxMC1
Scratcher
100+ posts

Write scratch - with text?

jumpingtj wrote:

Hi! This might not be the right forum, but…

I've been looking into the sb3 format. It's just a zip with projects assest, but also a project.json file that contains the code.
Is it possible to write this project.json file using Python? And for the syntax, scratchblocks already exists - it could piggyback off that?
But at that point we could probably steal the parser for scratchblocks so could piviot to JS.

I'd be happy to write in Python, JS or Go - JS using scratchblocks syntax might be the way.

Any ideas?

Thanks,
jumpingtj (;

try Katnip. for more info click there —> Katnip
snoopythe3
Scratcher
500+ posts

Write scratch - with text?

imfh wrote:

Note that per section 4.4 of the Terms of Use, you cannot upload any projects created with a Python script. The projects must be user generated with an unmodified Scratch editor.

That doesn't mean creating Scratch projects in those ways isn't allowed, you just can't upload those projects.

Terms of Use wrote:

4.4 You may only submit user-generated projects that were created with (1) the Scratch website editor or (2) an unmodified copy of the Scratch editor compiled from the source code described in Section 5.3. You may not upload any projects that were created, by you or by anyone else, with a modified version of the Scratch editor.
The Scratch Team is kind of lax enforcing this (especially if you count that 5.3 talks about the 1.4 editor…) but just be aware this is in the ToU.
Does that mean that you arent allowed to upload projects made in turbowarp D:
BigNate469
Scratcher
1000+ posts

Write scratch - with text?

snoopythe3 wrote:

imfh wrote:

snip
Does that mean that you arent allowed to upload projects made in turbowarp D:
Yes.
Jeffalo
Scratcher
1000+ posts

Write scratch - with text?

BigNate469 wrote:

snoopythe3 wrote:

imfh wrote:

snip
Does that mean that you arent allowed to upload projects made in turbowarp D:
Yes.
although - this is not regularly enforced and it's probably only there because they want all projects hosted on the scratch website to be playable with vanilla scratch. (eg. they don't want you piggy backing off of scratch's hosting to make projects that only work elsewhere)

there's a project that sounds like something you're looking for: https://github.com/DavidBuchanan314/boiga. it lets you write scratch projects like this
from boiga import *
project = Project()
cat = project.new_sprite("Scratch Cat")
cat.add_costume("scratchcat", "examples/assets/scratchcat.svg", center=(48, 50))
cat.on_flag([
	Say("Hello, world!"),
])
project.save("examples/out/Boiga Examples: Hello World.sb3")

Powered by DjangoBB