← Back to Import Suite
Documentation

Import Suite — User Guide

Batch import settings for Unity. Define templates that describe how textures, meshes, audio and sprites should be imported, then apply them to a folder in one click.

Overview

Import Suite lets you define import templates that describe exactly how Unity should import each type of asset — textures, meshes, audio, and sprites. You then apply a template to a folder (or a single asset) in one click, and Import Suite sets the correct TextureImporter, ModelImporter, or AudioImporter settings for every file automatically.

Templates contain one or more modules (one per asset type). Each module has one or more rules. Rules use filename suffixes, prefixes, folder paths, and file extensions to decide which settings to apply to each file.

What Import Suite does NOT do

  • It does not modify the actual asset content — only the importer settings stored in the .meta file.
  • It does not upload or transmit any data outside your project.
  • It does not run automatically unless you turn on Auto-Apply on Import in Settings.

Quick Start

  1. Open Import Suite — Go to Tools › itsMakingThings › Import Suite › Open ImportSuite. The tool opens as a dockable editor window.
  2. Generate the default templates — If no templates appear in the dropdown, go to Tools › itsMakingThings › Import Suite › Regenerate Default Profiles. This creates a set of ready-to-use templates for URP, HDRP, and Built-in RP, across three quality tiers (High / General / Low). The same menu item refreshes the bundled profiles after a tool update — it deletes and recreates every isBuiltIn template; user-created profiles are untouched.
  3. Choose a template — On the Apply tab, select a template from the dropdown that matches your render pipeline and target platform.
  4. Set a target — Drag a folder from the Project window into the Target field, or drag a single asset to process just that file.
  5. Apply — Click Apply Import Settings. Import Suite scans the target, matches each asset to the best rule, and reimports any that need changes.

Tip — name your assets first. If your textures don’t use a consistent suffix convention yet, visit the Rename tab first to batch-add suffixes like _N, _D, or _ORM. That lets the template rules identify each texture type automatically.

Apply Tab

The Apply tab is where you run Import Suite against your assets. It has three sections: Template, Scope, and Asset Type Filter.

Template

Select which template to apply. Default templates are grouped by render pipeline in the dropdown (URP / HDRP / Standard RP). User-created templates appear below them with no prefix.

Scope

Two modes are available:

  • Process Selected Assets Only — only assets currently highlighted in the Project window are processed. Useful for testing a template on one or two files before running it on a whole folder.
  • Target folder or asset — drag any folder to process all assets inside it. Drag a single asset to process just that file. Enable Include Subfolders to recurse into nested folders.

Asset Type Filter

Each module in the selected template appears as a checkbox here. Uncheck a type to skip those assets in the current run without modifying the template itself. For example, uncheck Meshes to apply only texture settings from a template that includes both.

Results, Unprocessed Assets, and Undo

After Apply finishes, a summary bar shows Processed / Skipped / Errors. If any assets were skipped because no rule matched them, a View N unprocessed assets button appears. Click it to open the Unprocessed Assets window.

An Undo button also appears directly below the summary whenever at least one asset was processed. Clicking it restores the .meta file content for every processed asset to the state it was in before Apply ran, then triggers a reimport. See Undo History for details and limitations.

Apply Import Settings button

Clicking Apply Import Settings opens the Apply Import Settings window, which combines preview, compliance scan, and apply into a single view. Inside that window you can review every asset grouped by outcome, see settings compliance for matched rules, rename inline, exclude individual assets, run an Apply or Apply-Compression-Only batch, and Undo from the same place — all without leaving Import Suite.

Apply Import Settings Window

The Apply Import Settings button on the Apply tab opens a single window that combines what used to be three separate tools — preview, compliance scan, and apply. Every asset in scope is listed and grouped by outcome.

Outcome groups

GroupWhat it means
Will be appliedA module and a rule both matched this asset, and the current importer settings differ from the rule. Each row has a checkbox (checked by default), an editable name field, and the Status column shows ✗ Out of sync (N). Hover the status text for the field-by-field diff popup.
CompliantA rule matched the asset and its current settings already match. The Status column shows ✓ Compliant. The group is collapsed by default and rows are unchecked — they will be skipped on Apply unless you tick them explicitly. Useful for forcing a reimport on an already-compliant asset.
No rule matchedA module can handle this asset type, but no rule scored high enough — and the module’s catch-all is either disabled or absent. Rows show the same columns as Will be applied, but with in the Target Rule and Status columns. Renaming a row to satisfy a rule will reclassify it on the next refresh.
SkippedFiltered, excluded, unsupported, or no-importer assets. The group is collapsed by default. Each row shows a Reason column with one of: Filter, Excluded, No Module, Compliant, No Importer, Unsupported.

Row columns

  • Checkbox — include or exclude this row from the Apply batch.
  • Ping — highlights the asset in the Project window.
  • Asset Name — editable text field. Type a new name, then click Apply in the Rename column to rename on disk; click Reset to discard the unsaved edit. Both buttons are disabled until the text actually differs from disk.
  • Path — the asset’s directory, ellipsis-clipped if long; full path appears in the tooltip.
  • Type — Unity asset icon. Hover to open a floating asset preview popup with a full thumbnail and filename label.
  • Target Rule — the matched rule name, or if nothing matched.
  • Status — settings compliance badge. Hover an out-of-sync status for the field-by-field diff popup.
  • VRAM — one column per build platform (PC, Android, iOS, WebGL), estimated GPU memory cost under the matched rule. Coloured green when the rule would reduce VRAM, red when it would increase it. No texture load required — estimated from importer metadata only.
  • ! — non-multiple-of-4 warning for textures whose source dimensions are not divisible by 4 (BCn block-compression artefact risk). Hover for the explanation.

Status badge — settings compliance

The Status column tells you at a glance whether each row’s importer settings already match the matched rule:

  • ✓ Compliant (green) — current settings already match the rule.
  • ✗ Out of sync (N) (orange) — N field(s) differ. Hover the text for the diff popup showing every field as Field / Current → Target.
  • — no rule matched, so there is nothing to compare.

The footer has three action buttons before Apply, plus a post-apply state:

  • Apply Compression Only (N) — applies only compression-related fields (texture platform overrides, mesh compression, audio loadType / compressionFormat / quality / sampleRate) to the checked rows. Other settings are left untouched. Useful for iterating on compression without disturbing custom configurations.
  • Cancel — closes the window without applying anything.
  • Confirm Apply (N) — applies all settings to the checked rows.

After Apply runs, the window stays open and the footer transitions to a result line plus an Undo button and a Close button.

Filter bar and exclusion list

The filter bar above the asset list lets you toggle which module types are visible (Textures / Meshes / Audio / Sprites) and add include/exclude name filters. There’s also a collapsible Exclusion List panel showing every asset on the project-level exclusion list with a Remove button per row. With Auto-update enabled, unchecking an asset in Will be applied adds it to the exclusion list (and re-checking removes it).

Auto-refresh

An Auto-refresh toggle re-scans the scope whenever assets are imported or the project changes, even when the window doesn’t have focus — so changes made in the Apply tab or to assets on disk are reflected in real time. A Refresh button is available for a manual one-shot rescan when auto-refresh is off.

Row tinting

If File Size Warnings thresholds are configured in the Settings tab, any row whose source file on disk exceeds the threshold is tinted with a subtle orange overlay. Thresholds apply to the raw file, not the build-time compressed size.

Fields checked per module type

  • Textures — Texture Type (when override is on), sRGB, Alpha Source, Alpha Transparent, Mip Maps, Mip Filter, Wrap Mode, Filter Mode, Aniso Level, Read/Write, NPOT Scale, Streaming Mips, plus per-platform Max Size and Format for each platform override defined in the rule.
  • Meshes — every scene, geometry, normal, rig, animation, and material setting the rule writes; differs from texture diffs only in scope.
  • Audio — Force To Mono, Load In Background, Ambisonic, Load Type, Compression Format, Quality, Sample Rate.
  • Sprites — Sprite Mode, Pixels Per Unit, Mip Maps, Filter Mode, Wrap Mode, Compression, Mesh Type, Extrude Edges.

Typical workflow. Open the window on a folder you haven’t processed before. Sort by Status to find out-of-sync assets, hover to see what would change, uncheck anything you want to skip, and click Confirm Apply. The Compliant group stays collapsed by default so the focus stays on assets that need attention.

Profiles Tab

Templates are ScriptableObject assets stored in your project. The Profiles tab lets you create, duplicate, export, import, and preview them.

Default Profiles

The default templates are read-only reference configurations shown under the Default Profiles header at the top of the tab. They are grouped by render pipeline — URP, HDRP, and Built-in RP — each in its own collapsible foldout. Each template has a Preview button that opens a read-only inspector window so you can inspect the full settings, and a Copy button that duplicates the template into your own templates folder as a fully editable copy.

My Profiles

Templates you create or import are listed here. Click the template name to open an inline editor showing its modules and rules.

ButtonWhat it does
New BlankCreates an empty template in your configured templates folder.
Copy DefaultDropdown listing all nine default templates. Select one to create an editable copy.
Import JSONLoads a previously exported .json template file. All modules and rules are recreated as sub-assets.
From PresetsOpens the Preset Import window — scans the project for Unity .preset files and builds catch-all rules from them.
EditExpands the inline editor for this template.
Export JSONSaves the template as a .json file you can share between projects or team members.
DeletePermanently deletes this template from the project. Cannot be undone.

Importing from Unity Presets

Unity’s built-in Preset system lets you save importer settings as .preset assets. If your project already has presets configured, Import Suite can convert them into template rules automatically.

Click From Presets on the Profiles tab to open the Preset Import window. All .preset assets in the project are listed, grouped by importer type (TextureImporter and AudioImporter are supported). Select the presets you want, choose whether to add them to an existing profile or create a new one, and click Import.

Note — all imported rules are catch-alls. Rules created from presets have no match criteria set — they will match every asset of that type. Open the template editor after importing and add suffixes, prefixes, or folder paths to each rule to narrow its scope.

Template Structure

Each template contains one or more modules:

  • TextureImporterModule — controls texture settings (format, compression, mips, etc.)
  • MeshImporterModule — controls mesh settings (compression, index format, read/write, etc.)
  • AudioImporterModule — controls audio settings (load type, compression format, quality, etc.)
  • SpriteImporterModule — controls sprite-specific settings (pixels-per-unit, mesh type, etc.)

Each module has an Is Enabled checkbox to skip that type entirely, and a dedicated Catch-All Rule section that provides a fallback for assets that don’t match any named rule.

Naming Convention

Each profile has a Naming Convention dropdown. It sets the project-wide convention applied to every rule in that profile:

ConventionWhat it means
Suffix (default)Assets must end with the canonical suffix, e.g. Rock_D.png.
PrefixAssets must start with the required prefix, e.g. T_Rock.png.
Prefix + SuffixAssets must have both, e.g. T_Rock_D.png.

All rules inherit this setting by default. To use a different style for one specific rule, enable the Override toggle that appears to the right of the Naming Style row inside that rule’s Match Rule criteria.

Rules Inside a Module

Each module holds a list of rules. A rule combines a set of match criteria with the import settings to apply when the criteria are met. Click the foldout arrow on any rule to expand and edit it. Use the Duplicate button on any rule header to create a copy of that rule immediately below it.

Rules are evaluated from top to bottom. The highest-scoring rule wins. If two rules tie, the first one in the list is used. If two rules share the same name, their foldout headers display Name (duplicate) so the conflict is visible at a glance.

Match Rule Editor

Each rule has a set of match criteria fields. The Naming Style row at the top of the criteria block shows (from profile) by default, meaning the rule inherits the profile’s Naming Convention setting. Enable the Override toggle to unlock the dropdown.

Naming StyleWhat is checkedCompliance result
Suffix Required (default)Suffix criteria only. Prefix fields are greyed out and ignored.Correct when the filename ends with the canonical suffix.
Prefix RequiredPrefix criteria only. Suffix fields are greyed out and ignored.Correct when the filename starts with the canonical prefix (or alias).
Prefix And Suffix RequiredBoth prefix and suffix criteria are active.Correct only when the filename has both.

Greyed-out fields are truly ignored. When fields are greyed out (suffix for Prefix Required, prefix for Suffix Required), any text already in those fields has no effect on rule matching or compliance scoring.

Prefix “Also Accepts” Aliases

Like the suffix section, the prefix section supports alias entries via an Also Accepts row. Click the + button to add an alias prefix. Alias prefixes match the same rule as the canonical Required Prefix, but assets that match via an alias are shown as yellow (Alias Variant) in the Naming Compliance scan, with the canonical name shown in the tooltip.

Rename Tab

The Rename tab lets you batch-rename assets using up to eight composable operations, applied in this fixed order:

  1. Remove From Text
  2. Text Replace
  3. Add Prefix
  4. Add Suffix
  5. Remove Prefix
  6. Remove Suffix
  7. Format Text (capitalisation)
  8. Normalise Suffixes

Each operation has an Enabled toggle. The toggle is fully manual: having text in a field does not automatically enable it.

Scope

Choose either your current Project window selection (Process Selected Assets Only), or drag a folder or asset into the Target field. When a folder is set, an optional Include Subfolders toggle recurses into nested folders.

The Skip assets already matching the naming convention checkbox appears directly below the Target field. When on, assets whose filenames already satisfy the active profile’s suffix or prefix rules are excluded from both Preview Renames and Apply Now. Requires an active profile; has no effect if none is selected.

Preview and Apply

  • Preview Renames — opens a window showing every asset that will be renamed, with the old name in red and the new name in green. Each row has a checkbox — untick any asset to exclude it. The window has an Auto-refresh toggle.
  • Apply Now — performs the rename immediately without a preview. After completion, an Undo button appears below the result summary.
  • Clear All — resets all operation fields and disables all operations. Scope settings are preserved.

Naming Compliance

The Scan for Naming Compliance button opens the Naming Compliance window, which audits every asset in scope against the active profile’s naming rules without renaming anything.

Format Text — Capitalisation Styles

StyleExample output
PascalCaseT_RockWall_D
camelCaseT_rockWall_D
snake_caseT_rock_wall_D
Pascal_CaseT_Rock_Wall_D
UPPER_CASET_ROCK_WALL_D
lowercaseT_rockwall_D
UPPERCASET_ROCKWALL_D

Note on prefix/suffix preservation. Format Text treats the segment before the first underscore as a prefix (T_) and the segment after the last underscore as a suffix (_D). Only the middle section is reformatted.

Naming Compliance Window

Opened via Scan for Naming Compliance on the Rename tab, this window audits every asset in scope against the active profile’s naming rules. No files are renamed — it is entirely read-only unless you use the inline edit fields.

Status groups

GroupColourWhat it means
Non-compliantRedThe filename would be changed by the current rename operations — it does not match the expected canonical form.
Alias variantYellowThe filename matches via a recognised alias rather than the canonical form. Technically valid, but not the canonical form.
UnknownGreyThe asset matched the catch-all rule but its suffix is not listed in any rule’s accepted suffixes.
CorrectGreenThe filename already matches the configured naming convention. No action needed.

Inline renaming

Every row has an editable text field showing the current filename (without extension). Edit the name directly and click Apply to rename the asset on disk immediately — the window rescans and reclassifies all entries automatically.

Auto-refresh

The window has an Auto-refresh toggle. When on, the scan automatically re-runs whenever assets are imported or the project changes.

Settings Tab

Auto-Apply on Import

When enabled, Import Suite runs automatically every time Unity imports an asset — including assets imported by package updates and third-party tools.

Caution. Leave Auto-Apply off until you are confident your template settings are correct. It affects every imported asset. Unlike manual Apply, Auto-Apply does not create an undo history entry — only the manual Apply and Rename tabs support Undo.

Options available when Auto-Apply is on:

  • Template — which template is applied automatically.
  • Show a message in the Unity Console — logs one line per processed asset.
  • Skip assets that already have Import Suite settings applied — prevents settings being re-applied when an asset is reimported for an unrelated reason.
  • New Assets Only — only process assets being imported for the very first time.

Folder-Specific Auto-Apply

You can assign a different template to specific folders so that assets in those folders are processed with specialised settings rather than the global template.

The Folder-Specific Auto-Apply section lists all folder rules. Each rule maps a folder (identified by its GUID) to a template path. When an asset is imported, Import Suite checks for a folder rule whose path is the longest prefix of the asset’s path — the most specific match wins.

  • Click Add and drag a folder from the Project window to create a new rule.
  • Use the template dropdown on each row to change the template assigned to that folder.
  • Enable Fallback Rule to apply a separate template to assets that are inside the tracked folders but don’t match any folder-specific rule.

Example. Map Assets/Characters/ to a URP_High template and Assets/Environment/ to a URP_General template. The global Auto-Apply template is used for everything else.

Exclusion List

Any asset or folder in the Exclusion List is skipped by Auto-Apply entirely, regardless of folder rules or template settings.

  • Drag an asset or folder into the Add object field to exclude it.
  • Assets are tracked by GUID, so exclusions survive moves and renames.
  • Click Remove on any row to re-enable Auto-Apply for that item.
  • Click Clean Missing to remove stale entries for assets that have been deleted from the project.

File Size Warnings

Set per-type file size thresholds (in MB) to catch source assets that are larger than expected. In the Apply Import Settings window, any row whose on-disk size exceeds its threshold is tinted with an orange overlay.

  • Textures / Sprites (MB) — applies to all texture and sprite assets.
  • Audio (MB) — applies to audio clip assets.
  • Meshes (MB) — applies to mesh and model assets.

Set any threshold to 0 to disable size warnings for that type. These thresholds are project-level settings (stored in ImportSuiteProjectSettings.asset) so the same values apply to every team member once the file is committed to version control.

General Preferences

  • Default Folder for Import Suite Templates — where new templates are saved.
  • Console Log Level — Silent, Warnings and Errors Only (default), or Full Verbose.
  • Large Batch Confirmation Threshold — Import Suite asks for confirmation before processing more than this many assets. Default: 500. Set to 0 to disable.

Project Settings

Import Suite uses a two-tier settings system to separate configuration that should be the same for everyone on a team from personal preferences that belong on a single machine.

Project-level settings — commit to version control

Stored at Assets/itsMakingThings/ImportSuite/ImportSuiteProjectSettings.asset. Add it to version control so every team member shares the same configuration.

The following settings are project-level:

  • Auto-Apply enabled, template path, log to console, skip already-applied, new assets only.
  • Folder-specific Auto-Apply rules.
  • Exclusion list (assets and folders).
  • Default templates folder.
  • Batch confirmation threshold.
  • Console log level.
  • File size warnings (Textures / Sprites, Audio, Meshes — in MB).

Per-user settings — stay in EditorPrefs

The following are personal preferences that stay on each individual’s machine:

  • Active tab (which tab was open when you last closed the tool).
  • Apply tab — target folder, include subfolders, process selected only.
  • Apply tab — last selected template in the dropdown.
  • All Rename tab field values, enabled states, and foldout states.
  • Auto-Apply processed-path cache.

Onboarding a new team member. Because all the meaningful configuration lives in the project settings asset, a new team member gets the correct Import Suite setup as soon as they open the project — no manual configuration required.

Undo History

Import Suite records every manual Apply Import Settings and Apply Now (Rename) batch to disk so you can reverse the operation with one click. An Undo button appears in the result area of each tab immediately after the batch completes.

How it works

  • Apply undo — before the batch runs, the raw .meta file content of every candidate asset is read from disk. After the batch completes, a history file is written containing the old .meta content for only the assets that were actually modified. Clicking Undo writes that content back to disk and calls AssetDatabase.Refresh().
  • Rename undo — the old and new filename for every successfully renamed asset is recorded. Clicking Undo calls AssetDatabase.RenameAsset in reverse for each entry.

Storage and limits

History files are written to Library/ImportSuiteHistory/. This folder is gitignored and per-machine. Up to 10 entries are kept; the oldest is pruned automatically. Each tab tracks its own last operation independently. Only one level of undo is available per tab.

Limitations

  • Auto-Apply does not participate. The background postprocessor does not write history entries.
  • Moved or deleted assets are skipped. If an asset is moved or deleted after the operation but before Undo is clicked, the undo for that asset is skipped with a warning in the Console. All other assets in the batch are still restored.
  • Clearing Library/ removes history. Unity sometimes clears the Library folder to force a full reimport. When that happens, undo history is gone.

Best practice — version control. Committing your .meta files to Git (or another VCS) gives you unlimited, multi-level undo for any batch operation via git checkout -- Assets/. Import Suite’s built-in undo is a convenience for quick reversals.

How Matching Works

When Import Suite processes an asset, it asks each enabled module: “Which of your rules best matches this file?” The module scores each rule against the asset path and picks the winner.

Scoring

Each rule starts at score 0. Every match criterion that is set and matches adds +1 to the score. Any criterion that is set and does not match immediately disqualifies the rule (score = −1). A rule with no criteria at all scores exactly 0 and matches any asset — this is the catch-all pattern.

CriterionWhat it checks
File ExtensionOne or more extensions (e.g. .png, .tga). The asset must match at least one.
Required Prefix / Also AcceptsThe filename must start with the canonical prefix or one of its aliases. Only evaluated when Naming Style is Prefix Required or Prefix & Suffix Required.
Accepted SuffixesThe last _-delimited segment of the filename (e.g. _N in Rock_N.png). Only evaluated when Naming Style is Suffix Required or Prefix & Suffix Required.
Name ContainsA substring that must appear anywhere in the filename (case-insensitive).
Folder PathThe asset must be inside this folder. Enable Include Subfolders on the rule to match nested folders too.

Naming Style gates matching. The Naming Style dropdown on each rule controls which criteria are actually evaluated during matching — not just which fields are greyed out in the UI. Fields that are greyed out are completely ignored at runtime, even if they contain text from a previous configuration.

Tie-breaking

When two rules have the same score, the rule that appears earlier in the list wins. Arrange your rules from most specific to least specific.

Multiple accepted suffixes and prefix aliases

A single rule can accept many suffix aliases. For example, a Normal Map rule might list _N, _Normal, _NRM, and _NormalMap — any file ending in one of those strings gets the same Normal Map settings. Similarly, a Static Mesh rule can list SM_ as canonical and S_ as a prefix alias.

Catch-All Rules

Each module can have a dedicated Catch-All Rule that matches any asset of that type when no explicit named rule wins. It acts as a safe default for files that don’t have a recognised suffix, prefix, or other match criteria.

The amber Catch-All section

In the template inspector, the catch-all rule is shown as a distinct amber-tinted section at the top of each module editor — visually separate from the named rules list below it. It has its own Enable Catch-All checkbox; by default it is disabled for new modules so it cannot accidentally process assets you haven’t explicitly configured.

Catch-all is powerful — use deliberately. When enabled, the catch-all rule processes every asset of that module’s type that doesn’t match a named rule. In a folder that mixes many asset types this can be unexpectedly broad.

Texture catch-all — Override Texture Type

The texture module’s catch-all rule has an Override Texture Type toggle that is off by default. When off, the catch-all will not change the texture type (Default, Normal Map, Sprite, Cookie, etc.) already set on the asset — it only applies the other settings defined in the rule such as compression format, max size, sRGB, and mip maps.

This prevents the catch-all from inadvertently converting 2D Sprites, UI textures, Normal Maps, or Cookies to Default type when they happen not to match any named rule. Named rules default to Override Texture Type on so they always set the type you configured.

Mesh catch-all — Apply Global Scale

The mesh module’s catch-all rule has an Apply Global Scale toggle that is off by default. When off, the catch-all leaves the Scale Factor on each asset unchanged. This prevents the catch-all from applying a single uniform scale to meshes from different artists who may have delivered them at different scales.

When to enable the catch-all

  • You have a folder of assets that share the same import settings regardless of naming, and you don’t want to add a suffix rule for each one.
  • You are applying a template to a mixed folder and want a safe fallback for any assets that don’t match a specific rule.

When catch-all is disabled, assets that match no named rule are reported in the Unprocessed Assets window rather than being silently processed with a fallback. This is the recommended setting when your team has a strict naming convention.

Unprocessed Assets Window

The Unprocessed Assets window opens automatically (via the button on the Apply tab) after a run that skipped assets because no template rule matched them.

This window lists each skipped asset with:

  • The filename and extension
  • The folder path
  • A Select button that highlights the asset in the Project window and pings it
  • A Rename to field and Rename button for inline renaming without leaving Import Suite

GUID-based source of truth

The window tracks assets by their Unity GUID, not by path. If you rename an asset in the Project window, the window detects the change on the next project update and refreshes the path automatically.

Typical workflow. Run Apply → open the Unprocessed Assets window → rename files to add the correct suffix (_N, _ORM, etc.) → run Apply again. The files now match a rule and receive the correct settings.

Default Templates

Default templates are generated via Tools › itsMakingThings › Import Suite › Regenerate Default Profiles and saved as read-only assets under ImportSuite/DefaultProfiles/. The bundled set covers the most common pipeline and quality combinations:

PipelineQualityDesktop (BC7)Mobile (ASTC)
URPHighmax 4096 pxASTC 4×4, max 2048 px
URPGeneralmax 2048 pxASTC 6×6, max 1024 px
URPLowmax 1024 pxASTC 8×8, max 512 px
HDRPHighmax 4096 pxASTC 4×4, max 2048 px
HDRPGeneralmax 2048 pxASTC 6×6, max 1024 px
HDRPLowmax 1024 pxASTC 8×8, max 512 px
Built-in RPHighmax 4096 pxASTC 4×4, max 2048 px
Built-in RPGeneralmax 2048 pxASTC 6×6, max 1024 px
Built-in RPLowmax 1024 pxASTC 8×8, max 512 px

Each template includes platform overrides for desktop (BC7) and mobile (ASTC) within a single template — you don’t need separate templates per platform. Every template contains rules for 13 texture types, 3 sprite types, 3 mesh types, and 3 audio types.

To customise a default template, click Copy on the Profiles tab. An editable duplicate is created in your templates folder.

Understanding Default Profiles

The nine default templates are not arbitrary starting points — each format and size limit was chosen with a specific platform constraint or visual quality trade-off in mind.

The Three Quality Tiers

Every pipeline (URP, HDRP, Built-in RP) ships in three quality tiers. The tier controls both the maximum texture resolution allowed on each platform and the ASTC block size used on mobile. Everything else — compression algorithm family, channel assignments, sRGB flag — stays the same across tiers.

TierStandalone maxAndroid / iOS maxWebGL maxMobile ASTC blockMobile BPP
High4096 px2048 px2048 px4×48.0
General2048 px1024 px1024 px6×63.56
Low1024 px512 px512 px8×82.0

The Desktop format column is always BC7 (or BC4/BC5 for single- and dual-channel maps) regardless of tier. The size cap is the main lever on desktop. On mobile, both the ASTC block size and the size cap change together, so a tier change has a compounded effect on GPU memory.

Desktop Compression — BC Formats

BC (Block Compression) formats are the DX10-era standard supported natively by all current PC GPUs. The GPU stores the texture in compressed form in VRAM — it never needs to be decompressed to a full-colour buffer at rest. Each format divides the texture into 4×4 pixel blocks, storing 128 bits per block.

FormatChannelsBPPBest forNotes
BC41 (R)4Roughness, Metallic, AO, HeightStores a single greyscale channel with high precision. Half the memory of BC7 for textures that only ever use one channel.
BC52 (RG)8Normal mapsStores two independent BC4 channels (R and G). Unity reconstructs the blue channel in the shader as sqrt(1 - r² - g²). Highest-quality option for normal maps on desktop.
BC74 (RGBA)8Albedo, Emissive, Packed maps, Metallic Smoothness, anything with alphaModern general-purpose format. Same bit budget as DXT5 (BC3) but with substantially better quality.

Why not DXT1 / DXT5? DXT1 (BC1) and DXT5 (BC3) are older formats from DirectX 6 era hardware. BC7 encodes the same 4×4 blocks but uses its bits more intelligently — it can choose between multiple sub-modes per block to minimise error. The default templates use BC7 everywhere a four-channel format is needed and BC4/BC5 where fewer channels allow it.

BC6H for HDR emissive. BC6H stores three 16-bit float channels (RGB, no alpha) and is designed for HDR textures. If your project uses very high-range emissive maps, you can switch the Emissive rule’s desktop format from BC7 to BC6H.

Mobile Compression — ASTC

ASTC (Adaptive Scalable Texture Compression) is an ARM-developed format supported on all modern mobile GPUs. Unlike the BC family, which uses a fixed 4×4 pixel block, ASTC lets you choose the block size — larger blocks compress more aggressively at the cost of quality.

Every ASTC block stores exactly 128 bits regardless of size. The bits-per-pixel (BPP) therefore decreases as the block covers more pixels:

BlockBPPRelative to RGBA32Use when…
ASTC 4×48.0~4× smallerMaximum quality — characters, hero assets, cutscenes
ASTC 5×55.12~6× smallerHigh quality — primary environment textures
ASTC 6×63.56~9× smallerBalanced — good default for most projects
ASTC 8×82.0~16× smallerPerformance mode — background elements, older devices
ASTC 10×101.28~25× smallerAggressive — tiling textures, distant terrain
ASTC 12×120.89~36× smallerMinimum quality — UI backgrounds, thumbnails

The default templates map the three quality tiers to ASTC 4×4, 6×6, and 8×8.

Device compatibility

  • Android — all devices running OpenGL ES 3.1 or Vulkan (released 2014 or later). The default templates target this as the minimum baseline.
  • iOS — all devices with an A8 chip or later (iPhone 6, iPad Air 2, released 2014). All currently App-Store-eligible devices support ASTC.

WebGL Compression — ETC2

WebGL 2.0 guarantees ETC2 support in its core specification — no extension needed. DXT/S3TC is not guaranteed on mobile browsers, so the default templates use ETC2 for WebGL to ensure the build works everywhere.

FormatBPPAlpha?Best for
ETC2_RGBA88YesAlbedo, normal maps, emissive, packed maps, anything needing alpha or full colour
ETC2_RGB44NoRoughness, metallic, AO, height — opaque single-channel maps

The choice between ETC2_RGBA8 and ETC2_RGB4 for WebGL mirrors the BC7 vs BC4 split on desktop: single-channel maps drop to the 4 bpp opaque format, saving 50% of GPU memory at no quality cost.

Per-Type Format Rationale

The table below shows the format chosen for each texture type and explains why. “Mobile” refers to the canonical ASTC block for the tier; the block size changes between High / General / Low but the logic for choosing ASTC over another format stays the same.

Texture typeDesktopMobileWebGLRationale
Albedo / Base ColorBC7ASTCETC2_RGBA8Needs full RGBA. Alpha carries transparency or cutout. BC7 gives the highest colour fidelity of any 8 bpp four-channel format.
Normal MapBC5ASTCETC2_RGBA8BC5 stores RG independently. Unity reconstructs B in the shader. Avoids the quality loss of swizzling normals into DXT5 channels.
Packed Map (ORM / MADS)BC7ASTCETC2_RGBA8Three or four channels packed together. BC7 preserves each channel independently. Marked linear, no sRGB curve applied.
Metallic SmoothnessBC7ASTCETC2_RGBA8Two meaningful channels: R = metallic, A = smoothness. BC7 covers the RGBA block correctly.
Roughness / Metallic / AO / HeightBC4ASTCETC2_RGB4Single greyscale channel. BC4 is exactly 4 bpp — half the cost of BC7 with no wasted channels.
EmissiveBC7ASTCETC2_RGBA8Full RGB colour is needed. Alpha sometimes carries an emissive mask. sRGB is enabled.
VFX / MaskBC7ASTCETC2_RGBA8Particle and effect textures need alpha for soft edges or dissolve masks. Marked linear.
Detail Normal MapBC5ASTCETC2_RGBA8Same encoding as Normal Map but capped at a smaller max size.

Render Pipeline Differences

The compression format choices are identical across URP, HDRP, and Built-in RP — the same physics of GPU formats applies regardless of which render pipeline you use. The differences between the three pipeline families are about naming conventions and packed-map channel layouts.

Packed map: URP and Built-in RP → _ORM

URP and the Built-in RP follow the ORM convention for packed channel maps:

  • R — Occlusion (ambient occlusion)
  • G — Roughness
  • B — Metallic

Accepted suffixes: _ORM, _Packed, _MSK, _Mask.

Packed map: HDRP → _MADS

HDRP uses the MADS convention to match Unity’s HDRP Lit shader mask map input:

  • R — Metallic
  • G — Ambient Occlusion
  • B — Detail mask
  • A — Smoothness (not roughness)

Accepted suffixes: _MADS, _MaskMap, _Packed. If you are converting a URP project to HDRP, your ORM textures will need to be rebaked with the correct HDRP channel layout — renaming the suffix alone is not enough.

Suffix conventions: Albedo

URP and HDRP use the Base Color terminology (_BC, _BaseColor, _Albedo, _D, etc.). The Built-in RP profile additionally lists _Diffuse as an alias because the older Built-in shaders commonly used “Diffuse” to describe the albedo input. All three pipelines accept _A, _D, _Color, and _Col as aliases.

Audio quality per tier

The audio rules vary slightly by quality tier. Background music (BGM) uses a higher Vorbis quality setting in the High tier and a lower one in Low, reducing audio file size in the Low profile. SFX clips use ADPCM in all tiers (fast random access, good for short clips), so they are unaffected by the quality tier selection.

Choosing a Tier

Start with General

The General tier is the intended default for most projects. It targets a 1024 px mobile cap and ASTC 6×6 — a reasonable balance between visual quality and GPU memory pressure across a wide device range. Most mid-tier Android and all modern iOS devices handle this comfortably.

Upgrade to High when…

  • The project targets modern high-end devices only (iPhone 15 Pro, flagship Android).
  • You are building a premium title where texture quality is a selling point.
  • You are making a VR application — low resolution per-eye magnifies compression artefacts significantly, and the High tier’s ASTC 4×4 is recommended.
  • You have verified that your device-target GPU memory budget can sustain the larger textures.

Use Low when…

  • The project targets low-end Android devices (2–3 GB RAM, older Mali/Adreno GPUs).
  • You are building a casual or hyper-casual game where fast download size matters more than texture fidelity.
  • The project is memory-constrained (e.g. a WebGL build where download size is a primary concern).

Mix tiers with folder-specific Auto-Apply

You are not restricted to a single tier for an entire project. Use Folder-Specific Auto-Apply to assign different templates to different folders — for example, apply the High template to Assets/Characters/ and the General template to Assets/Environment/. Hero assets that the player focuses on in close-up get premium quality; background elements stay budget-friendly.

Create a custom profile when…

  • You need an ASTC block size not covered by a built-in tier (e.g. ASTC 5×5 or ASTC 10×10).
  • Your project uses a non-standard naming convention (custom suffixes or prefixes).
  • You have console targets (PS5, Xbox Series X) that need platform-specific format overrides.
  • Your team uses a different packed-map convention (e.g. _ARM instead of _ORM).

Use Copy on an existing default template as the starting point rather than New Blank — it gives you a fully populated rule set that you can adjust incrementally.

Unity documentation. Unity’s manual covers the full list of supported formats per platform, including console-specific formats not addressed here.

Default Suffix Reference

The built-in texture rules recognise the following suffixes out of the box. You can add your own in the Templates tab. All texture rules require the T_ prefix in addition to one of the accepted suffixes (e.g. T_Rock_N.png, T_Wall_ORM.png).

Rule nameAccepted suffixesTexture type / settings
Normal Map_N _Normal _NRM _NormalMapNormal Map, linear, no sRGB, BC5 (Standalone), ASTC 4×4 (mobile)
Detail Normal Map_DN _DetailNormal _DetailNNormal Map, linear, smaller max size
Packed MapURP / Built-in RP: _ORM · HDRP: _MADSLinear, no sRGB, BC7 (desktop) / ASTC (mobile). Suffix differs by pipeline.
Metallic Smoothness_MS _MetallicSmoothnessMapLinear, two-channel (metallic in R, smoothness in A), BC7 / ASTC
Roughness / Smoothness_R _Rough _Roughness _S _Smooth _SmoothnessLinear, single channel, BC4 (desktop) / ETC2 (WebGL)
Glossy_G _Gloss _Glossy _GlossinessLinear, single channel, BC4 / ETC2_RGB4
Metallic_M _Met _Metal _MetallicLinear, single channel, BC4 / ETC2_RGB4
Ambient Occlusion_AO _Occ _OcclusionLinear, single channel, BC4 / ETC2_RGB4
Emissive_E _EM _Emiss _Emissive _EmissionsRGB, BC7 / ASTC / ETC2_RGBA8
Mask / VFX_Mask _VFX _FXLinear, alpha transparency on, BC7 / ASTC / ETC2_RGBA8
Height / Displacement_H _Height _Disp _DisplacementLinear, single channel, BC4 / ETC2_RGB4
Base Color / Albedo_D _Diff _Diffuse _A _Alb _Albedo _BC _BaseColor _Color _ColsRGB, alpha transparency, mips enabled, BC7 / ASTC / ETC2_RGBA8
Catch-All Ruleany texture with no recognised suffix (when catch-all is enabled)Applies albedo-style settings as a fallback. Override Texture Type is off by default — existing texture types are preserved.

The mesh module recognises SM_ (Static Mesh) and SK_ (Character / Rig) prefixes. The audio module recognises BGM_ (Music, streamed) and SFX_ (decompressed on load, ADPCM). Unmatched meshes and audio fall through to their respective module catch-all rules when enabled.

Tips & Troubleshooting

I want to check what will happen before reimporting

Click Apply Import Settings on the Apply tab to open the Apply Import Settings window. It runs the full matching logic against your scope and shows the result in groups — Will be applied, Compliant, No rule matched, Skipped — without touching any .meta files until you confirm.

I want to see exactly which fields would change, not just which assets

Open the Apply Import Settings window and hover the Status column on any ✗ Out of sync row. A floating popup shows every field that differs as Field / Current → Target. Settings compliance is reported per-row in this window.

Team members have different Auto-Apply settings

Check that ImportSuiteProjectSettings.asset is committed to version control and that everyone has pulled the latest version. The project settings asset is at Assets/itsMakingThings/ImportSuite/ImportSuiteProjectSettings.asset. Use the Locate button in the Settings tab to find and inspect it. Per-user settings (UI state, workflow fields) are in EditorPrefs and will differ between machines — that is expected.

Settings aren’t being applied

  • Check that the module’s Is Enabled checkbox is on in the template.
  • Check that the asset type is not unchecked in the Asset Type Filter on the Apply tab.
  • Open the template in the Inspector and verify the rule’s match criteria. Use the Preview button on the Profiles tab to inspect a default template’s settings.
  • Enable Full Verbose in Settings and run Apply again. Import Suite logs which rule matched (or didn’t match) each asset.

The wrong rule is being applied

The highest-scoring rule wins. If an unexpected rule is winning, it likely has more matching criteria than the rule you expected. Check the order of your rules — move the more specific rule above the less specific one, or add extra criteria to the correct rule to raise its score.

Assets are showing up as unprocessed

The asset’s filename does not match any named rule in the module, and the module’s Catch-All Rule is disabled. Either:

  • Rename the asset to include a recognised suffix (use the Rename tab or the inline rename in the Unprocessed Assets window).
  • Add the file’s existing suffix to the relevant rule in the template.
  • Enable the Catch-All Rule in the amber section at the top of the module editor if you want a default fallback.

I want to reverse an Apply or Rename batch

Immediately after a batch completes, an Undo button appears in the result area of the Apply or Rename tab. Click it to reverse the operation. If you have already closed or switched away from the tab, the undo button is gone — use version control (git checkout on your .meta files) to restore the previous state instead.

The Rename tab won’t disable an operation

Each Rename operation has an Enabled toggle that is fully manual. Click it to disable, regardless of what is in the text field.

Auto-Apply is running on assets I don’t want it to touch

Auto-Apply runs on every imported asset, including those inside package folders. Use the Folder Path criterion on your rules to restrict them to specific directories, or turn off Auto-Apply and use the Apply tab manually.

Performance — large asset libraries

  • Use the Large Batch Confirmation Threshold in Settings as a safety net.
  • Scope your Apply runs to the smallest folder that contains the assets you actually want to process.
  • The Unprocessed Assets window resolves paths on projectChanged only, so it does not poll continuously and has no per-frame cost when idle.