Godot and .tres files
Preview Godot resources with everything they point at
A Godot .tres file is a recipe, not an ingredient. A material, a tileset or a set
of sprite frames only makes sense once the textures, sounds and fonts it points at are found.
AssetHoard reads the recipe, finds the ingredients on disk and shows you the finished dish.
What AssetHoard recognises
| File | What happens |
|---|---|
.tres | Indexed as a Godot resource. AssetHoard reads its type and references, then previews it (see supported resource types). |
.gdshader | Indexed as code, previewed with syntax highlighting. |
.gd | Indexed as GDScript source. |
Project or addon .zip | Detected when it contains a project.godot (at the root or one folder down)
or an addons/*/plugin.cfg. Badged as a Godot package, with the project
name, Godot version, author and description read from those files. The thumbnail comes
from a preview.png, icon.png, thumbnail.png or screenshot.png inside the zip. |
.godot/, .import/ | Skipped. They're Godot's cache and never belong in your library. |
.res | Not parsed. Only text .tres files are read. |
Both Godot 4 (format=3) and Godot 3 (format=2) files are
supported. The details panel shows a Godot 4 or Godot 3 badge next to the resource type.
How references are found
A .tres points at other files with res:// paths, which are relative
to the Godot project root. Asset packs rarely ship with the project root intact, so
AssetHoard doesn't rely on project.godot. For each reference it walks up from
the .tres file's folder (up to 10 levels) and at each level tries:
- The full path, for example
textures/grass.png. - Just the filename, for example
grass.png. This catches packs where the author flattened the folders before distributing.
The first match wins. uid:// references aren't used for lookup yet, so a
reference that only works via its UID shows as missing.
References are resolved when you import, again when you open the asset if anything is still unresolved, and on demand via right-click → Re-resolve Godot References.
Associated files
Every .tres asset has an Associated files list in the details
panel. Each reference is in one of three states:
- In your library. Click it to jump to that asset.
- On disk, not imported. The file was found but isn't in your library.
That's fine: previews read it straight from disk, so you don't need to import it. If you
want it in the library anyway, the Import button on the list header
imports the lot into a bundle named after the
.tres. - Not on disk. AssetHoard couldn't find it. Hover to see the path it expected. Use Resolve this reference to pick the right file from ranked suggestions or browse for it, or Reveal expected location to open the folder it should be in. Your choice is remembered and can be reverted.
Referenced files are never imported automatically, and deleting a referenced asset from
your library doesn't break the .tres. The reference simply goes back to "on
disk" (or "not on disk" if the file itself is gone).
Supported resource types
Once references are resolved, AssetHoard files the .tres under the type it
actually is, so a material shows up with your materials, a tileset with your tilesets, and
so on.
| Godot type | Shows up as | Preview |
|---|---|---|
StandardMaterial3D, ORMMaterial3D, SpatialMaterial, ParticlesMaterial | Material | A lit sphere with albedo, normal, roughness, metallic, AO and emission maps applied, plus colour, roughness and metallic values. |
ShaderMaterial | Code | The linked .gdshader source. |
SpriteFrames | Sprite | Animated playback with an animation picker, play/pause, frame stepping and speed
control. Per-frame durations and looping are respected. Opens on idle or default if present. Can be exported as a GIF or PNG frames. |
TileSet | Tileset | The atlas with per-tile tooltips (name, terrain, custom data, flags), collision/terrain/animation indicators, a terrain tint toggle and zoom/pan. Hex and isometric layouts are labelled. Uses the pixel-art renderer by default. |
FontFile, FontVariation, SystemFont | Font | The font viewer, with a dropdown for the base font and any fallbacks. |
AudioStreamRandomizer, AudioStreamPlaylist | Audio | A playlist of the referenced sound files. |
NoiseTexture2D | Texture | Generated live from its noise settings, including colour ramps and normal-map output. |
Procedural noise textures embedded inside a material are generated the same way and applied to the sphere.
Everything else
Any other .tres is still indexed, searchable and has its Associated files list.
Built-in Godot types such as Environment, Animation, Curve or StyleBoxFlat are labelled as Godot built-ins. Resources
backed by your own scripts are labelled as custom resources, with a note that AssetHoard can
index them but doesn't know how to preview their contents. If a resource references exactly
one texture, that texture is used as its thumbnail.
Thumbnails
- SpriteFrames: the first frame of the default animation.
- TileSet: a grid of up to 16 tiles, or the whole atlas if no tiles are defined.
- Fonts: an "Aa" sample.
- Materials: a rendered sphere, generated the first time you open the asset.
- Other resources: the single referenced texture, if there is one.
When a .tres changes on disk, its thumbnail is regenerated.
Dragging into a Godot project
Dragging a .tres out of AssetHoard brings its dependencies with it. AssetHoard
builds a temporary folder with the .tres at the root and every referenced file at
its original res:// path, then drags the contents of that folder. Drop them into
the root of your Godot project and the paths line up with no editing needed.
- The
.tresfile itself is not modified. - References that point at other
.tresfiles are followed too, so a material that points at a noise texture brings both. - Missing references are skipped.
- Dragging several
.tresfiles gives each one its own folder. Dragging a bundle merges everything into one tree without duplicating shared files. - Dragging a mix of
.tresand other files copies them as plain files, without the dependency tree.
To write the same layout to a folder instead, use Export Reference Tree.
Watched folders
New .tres files in a watched folder are processed like any import. Edited .tres files are re-read, their references resolved again and their thumbnails
regenerated.
Searching
Every .tres is tagged with the Godot ecosystem, which appears
under Ecosystem in the sidebar and in Advanced Search. Because resources are
filed under their real type, the normal type filters work too: filter to Materials and your
Godot materials are there.
Current limitations
- Binary
.resfiles aren't read. uid://references aren't used for lookup.- The project root is found by searching upwards rather than read from
project.godot, so an unusual folder layout can leave references unresolved. Resolve this reference fixes these one at a time. - Scenes (
.tscn) aren't previewed. - Shader materials and fonts inside a zip can't be previewed.
- Embedded procedural resources other than noise textures and gradients (for example
CurveTexture) are ignored in previews.