Assets
assetsImport, generate, or find art and audio for Godot projects: create placeholders, search CC0 libraries, use AI generators, set import options, and list existing files.
Instructions
Get art and audio into the game. Instant procedural placeholders (no key needed) keep prototypes playable; free CC0 libraries (Poly Haven textures/HDRIs/models, ambientCG PBR materials, Poly Pizza low-poly models) are searched and imported with credits recorded in res://CREDITS.md; optional AI generators (images via OpenAI, sound effects via ElevenLabs, 3D models via Meshy) use keys from the server environment. Also import presets (pixel art, normal maps) and an inventory of existing assets.
Actions:
providers: {} which sources/generators are available (API keys configured).
placeholder: {path: res://assets/sprites/player.png, kind?: sprite|spritesheet|tileset|icon, shape?: rounded|rect|circle|triangle|diamond|capsule|star, size?: [32,32], color?, outline?, face?, frames? (spritesheet), colors? (tileset: one tile per color)} generate placeholder art instantly.
search: {query, source?: polyhaven|ambientcg|polypizza, type?: texture|hdri|model, limit?=10} search free asset libraries.
download: {source, id, resolution?='1k', dest?: res:// folder, material?=true} import an asset from search results. Textures also get a ready StandardMaterial3D .tres; HDRIs are for skies; models are glTF/GLB you can instance.
generate_image: {prompt, path: res://assets/sprites/x.png, size?: [64,64] (downscale after generating), transparent?=true, pixel_art?, style?} AI image (sprites, icons, backgrounds, textures). Needs OPENAI_API_KEY.
generate_sfx: {prompt: 'retro coin pickup', path: res://assets/sfx/coin.mp3, duration?} AI sound effect. Needs ELEVENLABS_API_KEY.
generate_model: {prompt, path: res://assets/models/x.glb, texture?=true, wait_seconds?=60} AI 3D model (takes minutes; returns a job id to poll). Needs MESHY_API_KEY.
job: {id, wait_seconds?} poll a 3D generation job; downloads the model when done.
import_options: {path | paths, preset?: pixel_art|2d|3d_texture|normal_map|ui, options?: {raw .import params}} change import settings and reimport. No preset/options = show current settings.
process_image: {path, resize?: [w,h], nearest?, trim?, save_as?} trim/resize an image (e.g. downscale a generated sprite to 32x32 with nearest).
inventory: {path?} project assets grouped by type (textures, audio, models, fonts, scenes, materials).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Asset id from search, or job id. | |
| dest | No | Destination res:// folder or file. | |
| kind | No | Placeholder kind. | |
| path | No | res:// file path. | |
| size | No | [width, height] in px. | |
| type | No | texture | hdri | model. | |
| color | No | Hex color. | |
| limit | No | Max results. | |
| paths | No | Several res:// paths. | |
| query | No | Search text. | |
| shape | No | Placeholder shape. | |
| action | Yes | What to do. See the tool description for each action's parameters. | |
| preset | No | Import preset. | |
| prompt | No | What to generate. | |
| source | No | polyhaven | ambientcg | polypizza. | |
| options | No | Raw import options. | |
| resolution | No | 1k, 2k, 4k. |