If you renamed the file but Scratch says "Error: Could not read project file," the internal structure is wrong. Scratch requires a specific file inside the ZIP to be named exactly project.json.
| Problem | Likely Cause | Fix |
|---------|--------------|-----|
| File loads but sprites are missing | assets folder is missing or incorrectly named | Ensure the folder is exactly assets (lowercase) |
| "Corrupted file" error after renaming | ZIP contains extra system files | Use 7-Zip or WinRAR to delete __MACOSX folder before renaming |
| Works on computer but not on Scratch website | File size > 50 MB | Compress images/sounds or split the project |
| project.json not found | You zipped the parent folder | Re-zip the contents only (Step 3 above) |
"We could not open this project":
Assets missing (Costumes/Sounds are blank):
An .sb3 file is essentially a renamed .zip archive containing a project.json file and various assets (images and sounds). While converting between the two is common for editing, errors often occur when re-compressing the files into the Scratch format. The "Direct Conversion" Fix
If you have unzipped an .sb3 file to edit its contents and need to turn it back into a functional Scratch project, follow these steps to avoid common corruption errors:
Do Not Zip the Folder: A common mistake is zipping the parent folder itself. Scratch will not recognize the file if the project.json is buried inside a sub-folder. convert zip to sb3 fix
Select Internal Files: Open your unzipped folder, select all the individual files and folders inside (like project.json and the assets), right-click, and choose "Send to → Compressed (zipped) folder".
Rename Extension: Change the resulting .zip extension to .sb3.
Note: Ensure "File name extensions" are visible in your file explorer settings, or you might accidentally name it project.sb3.zip. Fixing Corrupted .sb3 Files
If your project fails to load after conversion or shows a "validation error" in Scratch, it is likely due to a bug in the JSON structure.
TurboWarp sb3fix: This specialized tool sb3fix checks for known failure cases (such as missing assetId properties) and automatically repairs the JSON code to make the project readable again.
Manual JSON Upload: If only the logic is broken but assets are safe, you can try uploading the project.json file directly into a new Scratch project. If the assets were already on the Scratch server, they may link up automatically. Troubleshooting Common Errors If you renamed the file but Scratch says
Missing assetId: If you get an error stating a costume is missing a required property, check the project.json inside your zip. Each costume must have a valid assetId and md5ext pointing to a file in the same archive.
Case Sensitivity: Scratch is sensitive to file names. Ensure the assets in your zip match the filenames referenced in the project.json exactly. sb3fix - fix corrupted Scratch projects - TurboWarp
Here’s a concise, polished write-up on converting a Scratch project packaged as a .zip into an .sb3 file and common fixes when it fails.
Most online tutorials tell you to simply rename project.zip to project.sb3.
Does that work? Sometimes. But if you are searching for a "fix," it probably didn't work for you.
Corruption Fixes
Nested ZIP Handling
Metadata Restoration
One-Click Conversion & Download
Smart ZIP-to-SB3 Repair & Conversion
If the file came from a reliable source, it might just be misnamed.
If you regularly handle corrupted Scratch files, consider these tools: The Fix:
# Example Python fix for SB3 corruption
import zipfile, os
def fix_sb3(corrupt_file):
with zipfile.ZipFile(corrupt_file, 'r') as z:
z.extractall("temp_fix")
with zipfile.ZipFile("fixed.sb3", 'w') as z:
for file in os.listdir("temp_fix"):
z.write(os.path.join("temp_fix", file), file)
print("Fixed SB3 created.")