# Optimising textures on a FiveM server

> A texture optimisation workflow for FiveM servers: auditing what you stream, target resolutions, compression and mipmaps, and batch conversion.

Source: https://fam-tools.com/guides/fivem-texture-optimization · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 11 min

**Short answer.** Audit your streamed resources (sizes, oversized-asset warnings), set target resolutions per asset type (for example 2K for hero vehicle bodies, 1K for most details and clothing, 512 for small props), compress with BC1/BC7 and full mipmaps, remove duplicate and unused assets, and re-check. Do the largest files first; stop when warnings are gone and players stop reporting texture loss.

## Key points

- Start with the biggest files — they pay back most.
- Most textures do not need more than 2K; many need 1K.
- Compress everything (BC1/BC7) and keep mipmaps.
- Delete duplicates and unused variants.
- Measure before and after (warnings, download size, player reports).

Texture loss, slow first joins and crashes in busy areas usually have the same root: too many oversized textures streamed at once. Optimising them is the single most effective performance work on an asset-heavy server — and it shrinks download size too.

## Step 1: audit

- List stream folders by size — the largest resources first.
- Collect every oversized-asset line from the console — see [the warning explained](https://fam-tools.com/guides/fivem-oversized-assets-warning).
- Note which areas players report texture loss in (downtown MLOs, car meets).

## Step 2: target sizes

| Asset | Sensible maximum |
| --- | --- |
| Vehicle body / livery | 2048 |
| Vehicle interior, wheels, details | 1024 |
| Clothing items | 1024 (2048 for hero uniforms) |
| MLO walls and floors | 1024–2048 (tiling textures can be smaller) |
| Small props and decals | 256–512 |
| Minimap tiles | As designed — our maps are pre-optimised |

## Step 3: compress and rebuild

- Uncompressed (A8R8G8B8) → BC1 for opaque, BC7 or BC3 with alpha, BC5/BC3 for normal maps.
- Always a full mipmap chain.
- Batch-convert with texconv, then re-import into the `.ytd` with CodeWalker or OpenIV, keeping texture names.

Format details (with a worked memory table) are on our weapons site: [DDS formats](https://fivem-weapons.com/guides/fivem-dds-texture-formats-dxt-bc7) and [mipmaps](https://fivem-weapons.com/guides/fivem-mipmaps-explained).

## Step 4: remove what you do not use

- Vehicle packs often ship several colour variants — keep the ones you sell.
- Two resources streaming the same file name: keep one.
- Old MLOs nobody visits: remove or disable.

## Step 5: measure

Compare the total stream size, the number of oversized warnings and texture-loss reports before and after. Client-side effects are covered in [client FPS optimisation](https://fam-tools.com/guides/fivem-client-fps-optimization).

## Questions

### How do I fix texture loss on my FiveM server?

Reduce oversized textures (downscale to 2K/1K, compress with mipmaps) and remove duplicate or unused streamed assets.

### Will lower resolution textures look bad?

Rarely at normal viewing distances. 4K textures on small objects waste memory without visible gain.

### Does optimising textures reduce download size?

Yes — smaller, compressed textures download faster on first join.

### Can I optimise escrowed assets?

No. Ask the creator for an optimised version or replace the asset.

## Related

- https://fam-tools.com/guides/fivem-oversized-assets-warning
- https://fam-tools.com/guides/fivem-texture-budget-streaming-memory
- https://fam-tools.com/guides/fivem-client-fps-optimization
- https://fam-tools.com/guides/fivem-too-many-resources
