# FiveM resource load order, and when it actually matters

> FiveM load order explained: which resource wins a stream conflict, when order really matters, and how to structure server.cfg. Fix conflicts fast.

Source: https://fam-tools.com/guides/fivem-resource-load-order · FAM Tools · published 2026-10-25 · updated 2026-10-25 · about 6 min

**Short answer.** FiveM load order explained: which resource wins a stream conflict, when order really matters, and how to structure server.cfg. Fix conflicts fast.

Load order is blamed for a lot of problems it does not cause, and ignored for the one it does. Scripts mostly do not care what started first. Streamed assets absolutely do, and that is where nearly every real load-order bug comes from.

## The rule that matters

When two resources stream an asset with the same name - a model, a texture dictionary, a meta file - the one that starts later wins. That is the whole rule, and it is the reason a texture override pack must be listed after the pack it overrides.

*server.cfg*

```cfg
# base pack first
ensure weapons_base

# the override starts after it, so its textures win
ensure weapons_reskin
```

Reverse those two lines and the reskin loads first, the base pack overwrites it, and you are left wondering why your new textures did nothing.

## When order does not matter

Standalone weapon packs that stream uniquely named assets do not conflict with anything, so they can sit anywhere in the file. Scripts that talk to a framework matter less than people think too - the framework has usually finished loading long before a player connects.

Where script order does matter is exports called at startup. A resource that calls an export from a framework during its own start will fail if the framework has not started yet, which is why frameworks are conventionally listed first.

## A structure that stays predictable

1. Framework and core dependencies first - ox_lib, the framework, the inventory.
2. Shared assets and streamed content next: maps, vehicles, weapon packs.
3. Override packs immediately after whatever they override, never in a separate block far below.
4. Gameplay scripts last, since they depend on everything above.

> **Worth knowing** — Prefer ensure over start. ensure starts a resource, or restarts it if it is already running, which makes repeated restarts behave the same way every time. start silently does nothing if the resource is already up.

## Diagnosing a suspected conflict

1. Comment out every resource that streams similar content except the broken one.
2. Restart fully and check whether the problem disappears. If it does, you have a name collision, not a broken file.
3. Re-enable the others one at a time until it breaks again. The one that breaks it owns the conflicting name.
4. Fix it by renaming the asset in one of the two packs, not by shuffling load order - order only decides which of two conflicting names wins, and the loser is still wrong.

## Questions

### Does load order affect performance?

No. It affects which asset wins a name collision and whether startup exports resolve. Once the server is running, order has no effect on how anything performs.

### Should I use ensure, start or restart in server.cfg?

ensure. start does nothing if the resource is already running, and restart is a console command rather than a config directive.

### Two weapon packs conflict. Which do I rename?

Whichever you control, or whichever is smaller. If both are third-party, rename the one you use less - renaming means changing both the asset filenames and the references inside the model, so less work is better.

## Related

- https://fam-tools.com/guides/fivem-weapon-pink-textures
- https://fam-tools.com/guides/add-custom-weapons-to-fivem
- https://fam-tools.com/guides/ox-inventory-weapon-setup
- https://fam-tools.com/guides/fivem-weapon-not-streaming
