A Blender toolbox add-on for game-asset and general cleanup workflows — batch material organizing, mesh data cleanup, origin tools, naming, and scene cleanup, all in a single sidebar tab.
| Blender | 4.1 or newer |
| Location | View3D > Sidebar (N) > Toolkit |
| Install | Edit > Preferences > Add-ons > Install... with the release zip |
Every tool works on your current selection, supports undo (Ctrl+Z), and reports exactly what it did (and what it skipped) in the status bar.
These rules apply to every tool in the add-on, so batch operations never silently damage your file:
- Linked library data is never modified. Objects or data from linked
.blendfiles are skipped and counted in the report. - Shared (multi-user) data is protected. Tools that would move or destroy geometry skip meshes shared by multiple objects (Alt+D linked duplicates) instead of silently changing objects you didn't select.
- Make Single User (Fix Linked) — when linked duplicates are detected in your selection, a checkbox appears at the top of the panel. Enable it to automatically give each selected object its own copy of the data before processing, so the tools can proceed safely.
- Materials with a fake user are never merged or removed — a fake user is treated as "I want to keep this exactly as it is."
- Empty or invalid selections cancel with a warning instead of pretending to succeed.
Separate by Material Splits every selected multi-material object into one object per material, then removes the now-unused material slots. Objects are processed one at a time, so multi-object edit mode can't bleed changes into the rest of your selection.
Group / Join by Material Sorts the selected objects by material, using one of three criteria:
- Active Material — the highlighted material slot
- First Material — slot 0
- Ignore Multi-Mat Objs — only objects with exactly one material
Then either:
- Move to Collection — moves each group into a collection named after the material. Only collections of the current scene are touched, so objects keep their place in other scenes. Name clashes with linked (read-only) collections are resolved by creating a local collection.
- Join Objects — joins each group into a single object named
Merged_<material>. Active UV maps are renamed to a common name first so the join doesn't produce a pile of stray UV layers. An optional Apply Modifiers toggle converts each object before joining (destructive — a warning appears when selected objects have modifiers).
Clean Unused Slots Removes unused and empty material slots on all selected meshes.
Merge Duplicate Materials
Merges duplicate materials among the materials used by your selected objects — select everything (A) to clean the whole scene, or a few objects to clean just those. Two modes:
- Name mode (default) — merges
Material.001,Material.002, … back intoMaterial. If the base material doesn't exist, the lowest-numbered duplicate is renamed to take its place. - Match by Content — compares materials by their actual node setup, regardless of name: node types and connections, input values (with a small tolerance), textures by file path (so
tex.pngandtex.png.001pointing at the same file count as equal), node groups by content, and frame settings on image sequences / movies. This is the mode to use after importing assets from other software that scattered one material into dozens of identical copies.
The surviving material is the one with the cleanest name (no numeric suffix, then shortest).
- Clear Custom Normals — batch-clears custom split normals; meshes without them are skipped.
- Unify UV Names — renames the active UV map of every selected mesh to the name you enter. Skips meshes where another layer already uses that name (renaming would create a
.001). - Remove Extra UV Maps — deletes every UV map except the active one. Warns you if the render-active layer was among the removed.
- Clear Vertex Data — batch-removes vertex groups, shape keys, and/or color attributes (checkbox per type).
- Delete Loose Geometry — batch-deletes loose vertices, edges, and/or faces on all selected meshes at once.
- Make Single User — gives every selected object its own copy of its object data (fixes Alt+D linked duplicates before joining or editing).
- Set Origin — batch sets the origin of all selected objects to:
- Geometry Center — median of the geometry
- Bounds Center — center of the bounding box
- Bottom Center — bottom center of the bounding box, ideal for props that should sit on the ground. Shape keys are moved along, and children stay in place.
- Batch Rename — find & replace, prefix / suffix, and/or a base name with numbering (
Base_01,Base_02, …). Numbering follows natural sort order, soObj.2comes beforeObj.10. Optionally renames the object data to match. - Data Name = Object Name — syncs data-block names to object names for clean exports.
- Purge Unused Data — recursively removes all orphan data-blocks (the same as Blender's purge, one click away).
- Delete Empty Collections — removes empty collections, including nested ones. Collections referenced by modifiers, Geometry Nodes, or constraints are kept.
- Download the latest release zip (or zip the
toolkit/folder yourself — the folder must be at the zip root). - In Blender:
Edit > Preferences > Add-ons > Install...and pick the zip. - Enable Toolkit in the add-on list. The panel appears in the 3D Viewport sidebar (
Nkey) under the Toolkit tab.
Link the source folder into Blender's add-ons directory so edits apply after a simple Reload Scripts (F3 > Reload Scripts):
# Windows (PowerShell)
New-Item -ItemType Junction -Path "$env:APPDATA\Blender Foundation\Blender\<version>\scripts\addons\toolkit" -Target "<repo>\toolkit"# Linux
ln -s <repo>/toolkit ~/.config/blender/<version>/scripts/addons/toolkit
# macOS
ln -s <repo>/toolkit ~/Library/Application\ Support/Blender/<version>/scripts/addons/toolkit- Built and tested against Blender 4.1+; no deprecated APIs (e.g.
use_auto_smooth) are used. - Grease Pencil materials are excluded from content-based merging (their settings live outside the node tree).
Personal project, shared as-is — use at your own risk. Issues and suggestions are welcome.