Sb3utility Tutorial -

sb3utiliy tutorial

sb3utility is a Windows program for browsing, extracting, and editing files from Nintendo Switch game backups (.nsp, .xci) and their contents (ROMFS, ExeFS, tickets, saves). Below is a concise tutorial to get started.

Goal: Replace a sprite’s costume with a 4K PNG.

Steps:

  1. Select the target sprite in the left tree.
  2. In the Costumes tab, select the costume you want to replace.
  3. Right-click → Replace.
  4. Choose your high-resolution PNG (or SVG).
  5. Click Apply.
  6. Check the console log: It will say "Replaced costume with new MD5: ..."
  7. Save your project: File → Save Asmy_4k_project.sb3.

Result: When you load this into Scratch, the costume will be displayed crisp, though Scratch may scale it down in the editor—it will retain the original data when exported.

Abstract

SB3Utility is an essential modding tool for several 3D games developed by Illusion, including Honey Select, PlayHome, and AI Shoujo. This paper provides a step-by-step tutorial for using SB3Utility to extract, replace, and manage game assets such as textures, meshes, and animation data. It covers installation, basic operations, common workflows, and troubleshooting tips, aimed at beginner-to-intermediate modders. sb3utility tutorial


Step 1: Download the Latest Release

  • Go to the official GitHub repository (search "sb3utility" on GitHub).
  • Download the latest .exe file for Windows or the .jar file for macOS/Linux (requires Java Runtime Environment).

Installation

To use sb3utility, you'll need to install it first. Run the following command in your terminal:

pip install sb3utility

Step 3: Launch the Tool

  • Double-click SB3Utility.exe or run java -jar SB3Utility.jar.
  • You will see a window with four main panels: File Explorer, Asset List, Preview, and Console Log.

Part 3: Workflow — Exporting Assets (Ripping)

Let’s say you want to export a character or an outfit to edit in Blender or simply view the textures.

1. Opening a File

  • Go to File > Open.
  • Navigate to your game's abdata folder (or chara folder depending on the game).
  • Select a .unity3d file. (e.g., cf_top_00.unity3d for a top outfit).
  • Note: The bottom left window will populate with the file contents.

2. Navigating the "Object Tree"

  • You will see a list of containers (often named p_cf_body_00 or similar).
  • Double-click a container to expand it.
  • Look for Renderers. This is what draws the object on screen.
  • Expand a Renderer to see the Mesh and Materials inside.

3. Exporting a Mesh (3D Model)

  • Click on the Meshes tab at the top.
  • You will see a list of mesh names (e.g., MeshRenderer).
  • Select the mesh you want.
  • Click Export Mesh (usually to .obj or .fbx).
  • Tip: FBX is better for preserving bones/rigging if you plan to edit and re-import.

4. Exporting Textures

  • Click the Texture tab.
  • You will see a list of textures (often labeled _MainTex, _NormalMap, etc.).
  • Select the texture.
  • Click Export Texture.
  • You can now edit this PNG/BMP in Photoshop.

Basic Python example using sb3utils (or manual handling):

import zipfile
import json
import shutil
import os

def extract_sb3(sb3_path, output_dir): with zipfile.ZipFile(sb3_path, 'r') as zip_ref: zip_ref.extractall(output_dir) print(f"Extracted to output_dir")

def repack_sb3(source_dir, output_sb3): with zipfile.ZipFile(output_sb3, 'w', zipfile.ZIP_DEFLATED) as zipf: for root, dirs, files in os.walk(source_dir): for file in files: zipf.write(os.path.join(root, file), arcname=os.path.relpath(os.path.join(root, file), source_dir)) print(f"Created output_sb3")

Example Use Case: Modifying a Project

Let's say you want to modify a project to change the background color of the stage. Here's how you can do it: sb3utiliy tutorial sb3utility is a Windows program for

import sb3utility
# Load a Scratch project
project = sb3utility.Project('path/to/project.sb3')
# Get the stage
stage = project.stage
# Change the background color
stage.bgd = sb3utility.Color(255, 0, 0)  # red
# Save the modified project
project.save('path/to/modified_project.sb3')