Skip to main content
Godot’s import system automatically processes external assets and converts them into engine-optimized formats. The system supports various file types and allows you to create custom importers for specialized formats.

Asset Import Pipeline

When you add files to your project, Godot automatically:
  1. Detects the file type based on extension
  2. Selects an appropriate importer
  3. Processes the file with import settings
  4. Saves the imported resource to .godot/imported/
  5. Creates a .import file to track settings

How Imports Work

ResourceImporter Base Class

All importers inherit from ResourceImporter:

Import Order

Importers run in a specific order to handle dependencies:
  • IMPORT_ORDER_DEFAULT (0) - Most importers
  • IMPORT_ORDER_SCENE (100) - Scene importers (run last)
Scenes import last because they may reference other imported resources like textures and models.

Creating Custom Import Plugins

Extend EditorImportPlugin to create custom importers:
Return OK (or @GlobalScope.OK) for successful imports, other error codes for failures.

Register the Import Plugin

Import Presets

Presets provide predefined configurations for different use cases:

Conditional Options

Show or hide options based on other settings:

Importing 3D Models

For 3D formats like GLTF and FBX, use EditorSceneFormatImporter:

Import Flags

Scene importers can check flags to determine what to import:
  • IMPORT_SCENE - Import as scene
  • IMPORT_ANIMATION - Import animations
  • IMPORT_FAIL_ON_MISSING_DEPENDENCIES - Fail if dependencies missing
  • IMPORT_GENERATE_TANGENT_ARRAYS - Generate tangent arrays
  • IMPORT_USE_NAMED_SKIN_BINDS - Use named skin bindings
  • IMPORT_DISCARD_MESHES_AND_MATERIALS - Import only structure
  • IMPORT_FORCE_DISABLE_MESH_COMPRESSION - Disable compression

Importing Textures

For custom texture formats:

Importing Audio Files

Thread Safety

Indicate if your importer can run in parallel:
Only return true if your importer doesn’t use any shared state or makes thread-safe API calls.

Versioning Imports

Increment the format version when making breaking changes:

Appending External Resources

Import additional dependencies during the import process:

Common Import Patterns

Atlas/Sprite Sheet Importer

CSV Data Importer

Best Practices

Always check file operations and return appropriate error codes. Provide helpful error messages.
Set _get_import_order() correctly so resources import before scenes that use them.
Provide meaningful presets for common use cases (Low/Medium/High quality, etc.).
Use property hints to make options user-friendly with dropdowns, ranges, and clear labels.
Provide clear visible names and descriptions for your import options.

See Also

Editor Plugins

Learn how to create and register editor plugins

Custom Nodes

Create custom node types with tool scripts