Scriptronaut
QC Checker Core 1.0
QC Checker

Core

Catch common Blender scene and asset problems before they are shared, rendered, exported, or reviewed.

50 checks

Ready?

The problem

Production problems are often discovered late, after they have already interrupted another artist, a render, or an export.

Before / after workflow

Before QC Checker, artists manually inspect many scene details. With QC Checker Core, the same production rules can be checked consistently from one Blender panel.

Features → benefits

Production QC checks

Catch modeling, material, naming, rendering, scene, animation, and UV issues earlier.

Automated 1-click quality control

3D artists and technical directors can run 50 production checks across 7 categories in seconds.

Automatic fixes where safe

Correct repeatable issues without turning every QC failure into a manual cleanup task.

Object and check views

Review failures from the perspective that best fits the current cleanup task.

How it works

Who it is for

Blender artists, technical artists, small teams, and productions that want repeatable scene-quality checks without building an internal QC system from scratch.

Comprehensive 50 point inspection

Explore the checks included in QC Checker Core, organized by category.

Check What it does
Animation
Keyframes in Range Checks for object animation keyframes that fall before the scene start frame or after the scene end frame.
NLA Playback Enabled Checks for muted NLA tracks or muted NLA strips on animated objects.
No Empty Actions Checks for objects that have animation data and an assigned Action, but the Action contains no keyframes.
No Empty Animation Data Checks for objects that contain empty animation data. Objects using an Action, NLA strips, or drivers are considered valid.
No Empty NLA Tracks Checks for objects that contain NLA tracks with no strips.
No Static Keyed Values Checks for objects with keyed transform channels where none of the keyed transform values actually change.
Range Boundary Keys Checks whether animated objects have keyframes at both the scene start and end frames.
Materials
Color Space Valid Checks image textures used as normal, roughness, metallic, height, displacement, masks, or other non-color data and verifies that their image color space is set to non-color data. Also checks image textures used purely as color (Base Color, Emission Color, etc.) and verifies they are not set to Non-Color. Images used for both color and non-color purposes are skipped by default because one global image color-space setting cannot be correct for both uses. An image's Alpha output is ignored when it only drives Alpha / Opacity inputs, because color space does not affect alpha.
Material Assigned Checks mesh objects for missing materials, empty material slots, and polygons assigned to invalid or empty material slots.
No Disconnected Shader Nodes Checks materials for shader nodes that are not connected, directly or indirectly, to an active Material Output node.
No Orphan Materials Checks for unused material datablocks, excluding protected, linked, asset, and Blender-managed materials.
No Unused Material Slots Checks for unused material slots. Empty unused slots are reported and can be fixed automatically. Populated unused slots are ignored by default because they may be intentional, but can optionally be reported for manual review.
Texture Files Exist Checks if Image textures reference external files that do not exist on disk. Objects using materials containing missing textures are reported so they can be selected directly in the scene.
Modeling
Connected Geometry Checks mesh objects for disconnected geometry components and stray vertices, edges, or faces that are separate from the object's primary mesh body.
Correct Normals Direction Checks mesh objects for faces whose normals disagree with Blender's recalculated face orientation.
Location Applied Checks mesh objects whose normal Location is not zero. The automatic fix strategy is configurable: preserve the current origin/pivot by moving Location into Delta Location, use Blender's native Apply Location behavior, or require a manual fix. Animated or driver-controlled Location is protected from being overwritten under Preserve Pivot mode; this protection does not currently apply under Native Apply Location mode.
Manifold Mesh Checks whether mesh topology is manifold: each surface edge should belong to exactly two faces, with no boundary or non-manifold edges. Loose geometry is handled separately by the Connected Geometry check.
No N-Gons Checks mesh objects for N-gons: polygons with five or more sides.
Rotation Applied Checks if an Object's Rotation is applied (zero rotation in its active rotation mode — Euler, Quaternion, or Axis Angle). When fixed, resets rotation back to identity in Object Mode while permanently baking the object's current physical orientation into the mesh data.
Scale Applied Checks if an Object's Scale is applied (1.0 on all axes). When fixed, resets scale to 1.0 in the sidebar while keeping the object's current visual size — its scale is baked directly into the mesh data instead.
Unique Edges Checks for duplicate edges - two or more edges connecting the exact same pair of vertices.
Unique Faces Checks for duplicate faces that use the same vertices. By default this also includes duplicates with reversed winding (opposite normals); that behavior can be disabled to allow intentional double-sided geometry such as foliage cards.
Unique Vertices Checks for overlapping/duplicate vertices (multiple vertices sharing nearly the same position within a configurable tolerance).
Naming
ASCII Names Checks that object and datablock names contain only ASCII characters; names containing accented characters, non-Latin scripts, or emoji are reported.
Descriptive Names Checks if Object or Datablock names use default Blender names like Cube, Sphere, Camera, Light, etc.
Final Names Checks single-user datablock names for temporary, test, or debug prefixes such as tmp_, temp_, debug_, or test_. The Object name is treated as the authoritative production name.
No Auto Suffixes Checks if Object or Datablock names use Blender's automatic numeric suffixes such as .001, .002, etc.
No Trailing Spaces Checks if Object or Datablock names contain trailing spaces.
Object/Data Name Match Checks that single-user datablock names match their object names across supported object types such as Mesh, Camera, Curve, Armature, and Light. Shared datablocks are ignored. Name collisions that would only produce a Blender-generated numeric suffix are treated as unfixable and are not reported.
Supported Characters Only Checks that Object and Datablock names contain only supported characters. Allowed characters: letters, numbers, underscore ( _ ), hyphen ( - ), period ( . ), and space.
Rendering
Active Single Camera Exists Checks that the scene contains a Camera object, has an active render camera assigned, and that the active camera is enabled for rendering. When Require Single Camera is enabled, the scene must contain exactly one Camera object.
Cycles Denoising Enabled Checks whether Cycles render denoising is enabled.
Full Frame Render Checks if Render Border or Crop to Render Region is enabled.
Output Frame Range Checks whether the scene render frame range matches the frame range used by object Actions and NLA strips (muted NLA tracks and strips are excluded by default). A configurable amount of padding and tolerance can be allowed before this is considered a mismatch.
Render Single Layer Not Left On Checks if 'Render Single Layer' is enabled while more than one view layer exists.
Render Subdivision Levels Checks for Subdivision Surface modifiers whose render subdivision level is significantly higher than the configured maximum or the modifier's viewport subdivision level. If the viewport level is already above the configured maximum, only the relative render-vs-viewport limit is enforced, since this check never recommends lowering render quality below viewport quality.
Resolution Compliance Checks that the scene render resolution percentage matches the configured required percentage (100% by default).
Sample Count Limit Checks whether Cycles render samples are higher than recommended for the current output resolution.
Triangle Budget Checks whether the scene and individual mesh objects are below configurable triangle limits (measured after modifiers are evaluated).
View Layer Rendering Enabled Checks if every view layer has Use for Rendering enabled.
Scene
Auto Save Enabled Checks whether Blender's Auto Save preference is enabled.
Objects in Collections Checks for objects linked directly to the Scene Collection root instead of being organized inside a named collection.
Unit System Specified Checks whether the scene unit system is explicitly set to Metric or Imperial.
World Assigned Checks independently that a World datablock exists in the file and that a World is assigned to the current scene.
UV
Active UV Map Present Checks that mesh objects with polygons have at least one UV map and that a valid UV map is active.
UV Area Valid Checks for UV faces with zero or collapsed UV area.
UV Orientation Checks all UV maps for flipped or mirrored UV faces.
UV Overlap Checks UV maps for overlapping UV faces using Blender's native UV overlap operator. By default, only each mesh's active UV map is checked; scanning every UV map is available as a setting.
UV Within Bounds Checks all UV maps for UV coordinates outside the primary 0-1 tile.
Valid UV Assigned Checks that every polygon has meaningful UV coordinates across all UV maps.

Requirements / compatibility

Blender 4.3 and up.

Ready to inspect the details?