Skip to main content

Project folder layout

A Talesmith project is an ordinary folder. Everything the game uses lives in assets/; the editor keeps its own state in .talesmith/. This page lists what each part is for and what to commit.

A typical project​

Coin Run/
.gitignore written with the project: ignores .talesmith/, bin/ and obj/
build.json the Build dialog's settings
Coin Run.Scripts.csproj the scripts' project for your IDE, kept up to date by the editor
assets/
config/
game.json title, window, renderer, start scene, timing
input.json input actions and their bindings
physics.json gravity, collision layer names and matrix (when you change them)
plugins.json plugins you switched off and their settings (when you change them)
scenes/ .tscene scenes
prefabs/ .tprefab prefabs
sprites/ textures and .tatlas sprite atlases
maps/ .hexy tile maps
audio/ .wav and .ogg sounds and music
scripts/ C# scripts
bin/ compiled scripts, rebuilt by the editor
plugins/ one folder per plugin; not assets, so no .meta files
effects/ particle presets saved from the Particles panel
lighting/ lighting presets saved from the Lighting panel
.talesmith/ the editor's state for this project
builds/ exported games, by default

New projects start with config, scenes, sprites, audio, maps, prefabs and scripts. The other folders appear when something is saved into them. Apart from config, the folder names are a convention: assets can live anywhere under assets/, and you can move them in the Assets panel without breaking anything.

The config folder​

FileWritten byHolds
game.jsonProject Settings › GameThe title, window size, renderer, start scene, update rate, texture filtering, background color, frame rate limits and whether the game pauses in the background
input.jsonProject Settings › InputThe input actions scripts read by name, such as Jump, with their bindings
physics.jsonProject Settings › PhysicsDefault gravity, names of the 32 collision layers and which layers collide
plugins.jsonThe Plugins panelPlugins that are switched off, and plugin settings

See Project settings. The formats are described in Project configuration.

.meta files​

Every file and folder in assets/ has a .meta file beside it, such as hero.png.meta. It holds the asset's guid, which scenes and prefabs use to refer to it, and its import settings. The editor creates and moves .meta files along with their assets.

  • Commit .meta files with their assets. Without them, a fresh checkout gets new guids and every reference to the asset breaks.
  • Do not edit them by hand. Change import settings in the asset inspector instead.
  • When you move or rename files outside the editor, move the .meta file too. If you forget, the editor pairs them up again when the file's contents are unchanged.

See .meta files for the format.

The .talesmith folder​

EntryHolds
layout.jsonThe panel layout and your saved layouts
editor.jsonPer-project editor state: viewport cameras per scene, recent scenes, recent components
thumbnail.pngThe picture of the project in the hub
thumbnails/Asset thumbnails for the Assets panel
cache/The asset database's cache of file hashes
trash/Assets you deleted in the editor, in a folder per deletion
captures/Screenshots and profiler reports taken in the Game panel

All of it is safe to delete while the editor is closed. You lose your layout, cameras and the trash; the editor rebuilds the rest.

What to commit​

Commit:

  • assets/, including every .meta file and config/.
  • build.json, so everyone builds with the same settings.
  • .gitignore.

Leave out:

  • .talesmith/, which is personal editor state.
  • bin/ and obj/ folders, including assets/scripts/bin.
  • builds/, or wherever your builds go.
  • The .Scripts.csproj file is optional. The editor writes it again whenever the project opens.

The .gitignore every new project gets covers .talesmith/, bin/ and obj/. Add builds/ yourself if you keep builds in the project folder.