Skip to content
Development
Skill

/assets-pipeline

Use when importing and managing assets — image compression, 3D scene import, audio formats, resource formats, and import configuration

From plugin
godot-prompter
54157 skills9 agents1 hook
Install
$ npx -y skills add jame581/GodotPrompter --skill assets-pipeline --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/assets-pipeline

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when importing and managing assets — image compression, 3D scene import, audio formats, resource formats, and import configuration

SKILL.md

assets-pipeline.SKILL.md
name: assets-pipeline
description: Use when importing and managing assets — image compression, 3D scene import, audio formats, resource formats, and import configuration

Assets Pipeline in Godot 4.3+

All examples target Godot 4.3+ with no deprecated APIs. GDScript is shown first, then C#.

> **Related skills:** **audio-system** for audio playback and bus architecture, **3d-essentials** for 3D materials and lighting, **2d-essentials** for 2D rendering and sprites, **animation-system** for imported animations, **godot-optimization** for asset-related performance, **multithreading** for threaded resource loading.

---

1. How Importing Works

The Import System

When you add a file to `res://`, Godot auto-imports it based on its type. Import settings are stored in `.import` sidecar files alongside the original.

project/
├── textures/
│   ├── player.png           ← original file (committed to VCS)
│   └── player.png.import    ← import settings (committed to VCS)
└── .godot/
    └── imported/            ← compiled cache (NOT committed — .gitignore it)

Key Rules

  • **Never modify files in `.godot/imported/`** — they are regenerated from originals
  • **Commit `.import` files** to version control — they store your settings
  • **Reimport** after changing settings: select file → Import dock → click **Reimport**
  • `.godot/` should be in your `.gitignore`

Changing Import Settings

1. Select the file in the **FileSystem** dock 2. Open the **Import** dock (next to Scene dock by default) 3. Change settings 4. Click **Reimport** (or **Reimport All** for batch changes)

> Import settings can also be set via **Advanced Import Settings** for 3D scenes (double-click the `.glb`/`.gltf` file).

---

2. Image Import

Compression Modes

| Mode | Quality | VRAM | File Size | Use For | |----------------|-----------|----------|-----------|----------------------------------| | **Lossless** | Perfect | High | Large | Pixel art, UI elements | | **Lossy** | Good | High | Small | Large photos, backgrounds | | **VRAM Compressed** | Reduced | Low | Small | 3D textures, large 2D sprites | | **VRAM Uncompressed** | Perfect | High | Large | When VRAM compression artifacts are unacceptable | | **Basis Universal** | Reduced | Low | Very small | Cross-platform, multiple GPU formats |

When to Use Each

Pixel art / UI icons       → Lossless (no artifacts, crisp pixels)
2D game sprites            → Lossless (small sprites) or VRAM Compressed (large sprites)
3D textures (albedo, normal) → VRAM Compressed (saves GPU memory)
Large backgrounds          → Lossy or VRAM Compressed
Mobile targets             → VRAM Compressed (essential for memory)

Key Import Settings

| Setting | Description | Default | |--------------------|-----------------------------------------------|-------------| | **Compress > Mode** | Compression algorithm (see table above) | VRAM Compressed | | **Mipmaps > Generate** | Generate mipmaps for distance rendering | Off | | **Process > Fix Alpha Border** | Prevents dark outlines on transparent sprites | On | | **Process > Premult Alpha** | Pre-multiply alpha (avoids dark halos) | Off | | **Flags > Filter** | Bilinear filtering (smooth) vs nearest (crisp) | Linear | | **Flags > Repeat** | Enable texture tiling | Disabled |

Pixel Art Setup

For crisp pixel art, set these project-wide:

**Project Settings > Rendering > Textures > Canvas Textures > Default Texture Filter** → `Nearest`

Or per-image in Import dock: **Filter** → `Nearest`

Enabling Mipmaps

Mipmaps prevent shimmering on textures viewed at an angle or from a distance. Required for 3D textures; optional for 2D.

  • **3D textures:** Always enable mipmaps (Import dock → Mipmaps → Generate → On)
  • **2D sprites:** Usually off (unless you use Camera2D zoom)
  • **UI textures:** Off (rendered at fixed scale)

> **Godot 4.7+:** DDS import supports the R8 and R8G8 texture formats. ([GH-116307](https://github.com/godotengine/godot/pull/116307))

---

3. 3D Scene Import

Supported Formats

| Format | Extension | Recommendation | |-----------|-------------|----------------------------------------------| | **glTF** | `.gltf`, `.glb` | **Recommended** — open standard, best support | | **Blend** | `.blend` | Direct Blender import (requires Blender installed) | | **FBX** | `.fbx` | Good for legacy pipelines | | **Collada** | `.dae` | Older format, use glTF if possible | | **OBJ** | `.obj` | Static meshes only — no animations/rigs |

> **glTF is the recommended format.** It has the best Godot support, is an open standard, and preserves materials, animations, and rigs accurately.

Node Naming Conventions

Godot auto-creates appropriate node types based on **suffixes** in your 3D model's object names:

| Suffix | Generated Node | Example Name | |-----------------------|---------------------------|----------------------------| | `-col` | StaticBody3D + collision | `Wall-col` | | `-convcol` | ConvexPolygonShape3D | `Rock-convcol` | | `-rigid` | RigidBody3D | `Barrel-rigid` | | `-navmesh` | NavigationRegion3D | `Floor-navmesh` | | `-occluder` | OccluderInstance3D | `BigWall-occluder` |

In Blender:                  In Godot (after import):
Wall-col                  →  StaticBody3D
├── Wall (mesh)           →    ├── MeshInstance3D
                          →    └── CollisionShape3D (auto-generated)

Import Dock Settings

Select the imported `.glb`/`.gltf` in FileSystem, then in the Import dock:

| Setting | Description | |----------------------------|--------------------------------------------------| | **Root Type** | Override root node type (Node3D, RigidBody3D, etc.) | | **Root Name** | Custom name for the root node | | **Meshes > Generate LOD** | Auto-generate LOD levels (on by default) | | **Meshes > Light Baking** | Static or Dynamic for lightmap baking | | **Animation > Import** | Enable/disable animation import | | **Animation > FPS** | Bake animation at this framerate |

> **Godot

Read more
Ships withgodot-prompter

Agentic skills framework for Godot 4.x game development. Gives AI coding agents domain-specific expertise for GDScript and C# projects.

Get the whole plugin