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

FileWhat happens
.tresIndexed as a Godot resource. AssetHoard reads its type and references, then previews it (see supported resource types).
.gdshaderIndexed as code, previewed with syntax highlighting.
.gdIndexed as GDScript source.
Project or addon .zipDetected 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.
.resNot 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:

  1. The full path, for example textures/grass.png.
  2. 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 typeShows up asPreview
StandardMaterial3D, ORMMaterial3D, SpatialMaterial, ParticlesMaterialMaterialA lit sphere with albedo, normal, roughness, metallic, AO and emission maps applied, plus colour, roughness and metallic values.
ShaderMaterialCodeThe linked .gdshader source.
SpriteFramesSpriteAnimated 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.
TileSetTilesetThe 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, SystemFontFontThe font viewer, with a dropdown for the base font and any fallbacks.
AudioStreamRandomizer, AudioStreamPlaylistAudioA playlist of the referenced sound files.
NoiseTexture2DTextureGenerated 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 .tres file itself is not modified.
  • References that point at other .tres files are followed too, so a material that points at a noise texture brings both.
  • Missing references are skipped.
  • Dragging several .tres files gives each one its own folder. Dragging a bundle merges everything into one tree without duplicating shared files.
  • Dragging a mix of .tres and 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 .res files 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.