Krotox Engine › Docs › Krotox Manual › The Editor
How Krotox tracks assets with .meta files, the texture import settings and presets, packing sprites into an atlas, and auditing what your build will contain.
Everything your game uses lives under the project's Assets/ folder: images, audio, fonts, scenes, prefabs, scripts and data assets. This page covers how Krotox keeps track of them and how to prepare textures for 2D.
Every asset is identified by a random 64-bit asset handle, not by its file name. The handle is stored in a .meta file (YAML) next to the asset:
Assets/Textures/player.png
Assets/Textures/player.png.meta <- keeps player.png's handle
Scenes and prefabs refer to assets by handle. Because the handle survives renames, moves and other machines, a scene keeps pointing at the right texture after you reorganize folders or a teammate pulls your changes.
Always commit.metafiles with their assets, and move or rename assets inside the Content Browser rather than in your file manager when you can. A lost.metafile gives the asset a new handle, and every reference to the old one breaks.
Copy files into Assets/ (or a subfolder) with your file manager, or drag them into the Content Browser. The editor picks them up and creates their .meta files.
| Kind | Formats |
|---|---|
| Images | .png, .jpg / .jpeg, .bmp |
| Audio | .wav, .mp3, .ogg, .flac |
| Scenes and prefabs | .ktx, .prefab |
| Scripts | .cs |
| Data assets | .ktxasset (ScriptableObject) |
| Animation | .ktxanim, .ktxanimctrl |
The Content Browser labels each thumbnail with a type badge (Scene, Prefab, C#, Audio, Anim, Texture) and can filter by type.
Select one or more textures in the Content Browser and open View ▸ Import. Changes apply to every selected texture; press Apply Settings to save them, or Rebake / Reimport Texture to rebuild the texture now.
| Mode | What it does | Use it for |
|---|---|---|
| Lossless | Exact pixels, stored as the original file. Full RGBA8 in video memory. | Pixel art, UI, anything with sharp edges or flat colours. |
| Lossy | Re-encoded as JPEG with a Quality setting. Much smaller download, but full size once decoded. | Large photographic backgrounds where download size matters. |
| VRAM Compressed | Block-compressed and kept compressed on the GPU, using 4–8× less video memory. ASTC on Android. Has a VRAM Quality setting: Fast, Balanced or High. | Big textures on phones, where memory is tight. |
| VRAM Uncompressed | Raw RGBA8 on disk too. Largest files, nothing to decode at load. | Rare; textures that must load as fast as possible. |
| Preset | Sets up |
|---|---|
| Pixel Art / UI | Exact pixels with no mipmaps, so edges stay crisp. |
| Photographic Art | Settings for smooth, photographic images, with mipmaps. |
| VRAM Compressed | GPU block compression. |
| 3D / Uncompressed | Uncompressed, for 3D materials. |
For pixel-art games, also set the project's scaling mode to Pixel Perfect so the whole screen scales in whole-number steps. See Windows builds, resolution & scaling.
A sprite sheet is one image holding many frames in a grid. The Sprite Renderer can draw a single cell: turn on Use Sub Texture, set the Cell Size in pixels (for example 16×16), pick the cell with Sub Texture Coords, and set Sprite Size to the number of cells the sprite spans (2, 1 for a 32×16 sprite on a 16×16 grid). The Animated Sprite component plays a sequence of cells. See the 2D component reference.
Many small images cost more than one big one: each texture change can break a draw batch. The atlas generator packs images into a single sheet.
| Setting | What it does |
|---|---|
| Padding | Transparent gap between sprites. A sample near a sprite's edge reaches into its neighbour, so with no gap you see colour bleeding. 2 px suits most filtered atlases; pixel art with nearest filtering can use 0. |
| Extrude | Repeats each sprite's border pixels into the gap, so filtering blends toward the sprite's own edge colour instead of a dark fringe. Capped at the padding. |
| Max Size, Power of Two, Force Square | Limits and shape of the sheet. |
| Sort order | Height, area or name. Name packs less tightly but gives a stable layout that diffs well in version control. |
The preview draws the sheet on a checkerboard with each sprite's bounds and gap. Hover a sprite for its name and source rectangle. The occupancy bar shows how much of the sheet is real sprite pixels, so you can see what padding and power-of-two rounding cost.
Tools ▸ Asset Dependency Visualizer... shows how assets reference each other across the whole project.
Check the Build Report before shipping. It is the quickest way to find the one oversized background that doubles your data.pak.
For shared game data (weapon stats, level tables, dialogue), right-click in the Content Browser and choose Create Scriptable Object. It creates a .ktxasset from one of your C# classes, edited in the Scriptable Object panel. Scripts reference it from an inspector field. See Prefabs, scenes & saving.
Cache/ holds generated data: the compiled shader cache, font atlases and auto-save copies. File ▸ Clear Project Cache deletes it; the editor rebuilds what it needs. Try it first when something looks stale after an update.