Automatically detects, repairs, and converts misnamed, corrupted, or incomplete .zip files (originally Scratch projects) into fully functional .sb3 files that the Scratch editor can open.
| 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) |
If you regularly handle corrupted Scratch files, consider these tools:
# 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.")
An .sb3 file is a ZIP file. The only difference is the file extension.
Here is how to fix the conversion based on your situation.
Do not just rename the broken file. Instead, rebuild the SB3 correctly.
Target Keyword: convert zip to sb3 fix Word Count: ~1,500 Reading Time: 6 minutes
| Error Message | What It Means | The Fix |
| :--- | :--- | :--- |
| "Not a valid Scratch 3 project" | The file lacks project.json at the root level. | Use Method 2 above to re-zip only the inner contents, not the folder. |
| "File size too large" | You have an HD video or hundreds of assets inside. | Convert large WAVs to MP3 (64kbps) and large PNGs to JPEG before re-zipping. |
| Scratch crashes on load | Corrupt asset inside the ZIP (e.g., a damaged image). | Extract the ZIP, delete the newest asset you added, then re-zip as SB3. |
| "Sprite missing" | The ZIP contains files, but the project.json references missing files. | Re-extract and ensure every image listed in the JSON is physically present. |
Extract the problematic ZIP into a new, empty folder.