marketplace_import
Import CC0 textures and HDRIs from Polyhaven or AmbientCG into Unreal Engine as UTexture2D, with optional multi-map PBR support.
Instructions
Download a CC0 asset from a marketplace (Polyhaven or AmbientCG) and import it into the project as a UTexture2D via the native import_texture handler. SYNTHETIC bridge-side handler. Polyhaven path: /files/{slug} catalog lookup -> direct download. AmbientCG path: /api/v2/full_json?id={slug}&include=downloadData -> downloads the per-resolution zip -> extracts the Color map (textures) or sole EXR/HDR (hdris) -> hands the file to import_texture. Supports texture (Color/Diffuse map) and hdri (EXR/HDR); model import is parked for a later PR (native handler has no mesh-import wrapper today). When multi_map=true is passed (texture only), the handler additionally pulls Normal/Roughness/AO/Displacement/Metalness when the source ships them — each map lands as a separate UTexture2D named <dest_name>_<map> (Color stays at <dest_name> for back-compat). Asset files: both sources are CC0 (public domain, no attribution required). API access: the Polyhaven public API is licensed for non-commercial and academic use only — commercial integrations require a custom license from Poly Haven (https://polyhaven.com/our-api). AmbientCG's public API and asset files are both CC0.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Marketplace to import from. 'polyhaven' (default) or 'ambientcg'. | |
| slug | Yes | Source-specific asset identifier (e.g. 'aerial_beach_01'). Obtain via marketplace_search. | |
| asset_type | No | 'texture' (diffuse map only in v1), 'hdri' (EXR/HDR sky), or 'model' (not yet implemented). | |
| resolution | No | Asset resolution. Common values: '1k', '2k' (default), '4k', '8k'. Available set depends on the asset; the error message lists what the source actually offers when the request is invalid. | |
| format | No | File format. Defaults to 'png' for textures and 'exr' for HDRIs. Other accepted values fall back to the source's default if the requested format isn't published. | |
| dest_path | No | UE package path. Must start with /Game/. Default /Game/Marketplace. | |
| dest_name | No | Asset name override. Defaults to the slug. | |
| replace_existing | No | Overwrite an existing asset at dest_path/dest_name (default false). | |
| multi_map | No | When true and asset_type='texture', pull every canonical PBR map (color, normal, roughness, ao, displacement, metalness) the source ships and import each as a separate UTexture2D. Color is required; other maps are best-effort. Naming: Color -> <dest_name>; others -> <dest_name>_<map>. Default false (diffuse only, back-compat). |