# Core Resources (/docs/core)

The `[core]` folder of ESX Legacy contains `es_extended` plus a set of small
resources that provide the UI, character creation, inventory and utilities the
framework relies on. This page lists every core resource in ESX Legacy 1.16.4,
what it does and whether you can remove it.

## Resource overview [#resource-overview]

| Resource | Purpose | Side | Required? |
| --- | --- | --- | --- |
| [esx_lib](/docs/core/esx_lib) | Shared library (xLib): callbacks, streaming, points, validation, SQL catalog | Shared | Yes, es_extended depends on it |
| [es_extended](/docs/es_extended) | The framework itself: players, jobs, accounts, items | Shared | Yes |
| [esx_notify](/docs/core/esx_notify) | Toast notifications behind `ESX.ShowNotification` | Client | Yes in practice |
| [esx_textui](/docs/core/esx_textui) | Persistent prompt behind `ESX.TextUI` | Client | Yes in practice |
| [esx_progressbar](/docs/core/esx_progressbar) | Timed progress bar behind `ESX.Progressbar` | Client | Yes in practice |
| [esx_context](/docs/core/esx_context) | Mouse context menus and small forms (`ESX.OpenContext`) | Client | Yes in practice |
| [esx_menu_default](/docs/core/esx_menu_default) | Classic keyboard menu (`ESX.UI.Menu`, type `default`) | Client | Needed by most addons |
| [esx_menu_dialog](/docs/core/esx_menu_dialog) | Text and number input dialog (type `dialog`) | Client | Needed by most addons |
| [esx_menu_list](/docs/core/esx_menu_list) | Table-style list menu (type `list`) | Client | Needed by some addons |
| [skinchanger](/docs/core/skinchanger) | Applies ped model, clothes and face data | Client | Yes, `ESX.SpawnPlayer` waits for it |
| [esx_skin](/docs/core/esx_skin) | Character appearance editor and skin storage | Shared | Yes for character creation |
| [esx_identity](/docs/core/esx_identity) | Registration form: name, date of birth, sex, height | Shared | Yes for character registration |
| [esx_multicharacter](/docs/core/esx_multicharacter) | Character selection with several slots per player | Shared | No |
| [esx_inventory](/docs/core/esx_inventory) | Default slot inventory and storages | Shared | Unless you use ox_inventory |
| [esx_whitelist](/docs/core/esx_whitelist) | Identifier or Discord-role whitelist with admin panel | Shared | No (disabled by default) |
| [esx_loadingscreen](/docs/core/esx_loadingscreen) | Loading screen while connecting | Client | No |
| [esx_chat_theme](/docs/core/esx_chat_theme) | Visual theme for the cfx `chat` resource | Client | No |
| [cron](/docs/core/cron) | Daily scheduled tasks via `cron:runAt` | Server | Only for addons that use it (esx_society, esx_vehicleshop) |

<Callout type="info" title="Yes in practice">
es_extended does not list these as manifest dependencies, but its client
functions call them directly. If one of them is missing, `ESX.ShowNotification`,
`ESX.TextUI`, `ESX.Progressbar` or `ESX.OpenContext` throws
`Resource [name] is Missing!`.
</Callout>

## Recommended ensure order [#recommended-ensure-order]

The official txAdmin recipe starts the core like this:

```bash title="server.cfg"
ensure chat
ensure oxmysql
ensure esx_lib

ensure es_extended
ensure [core]

ensure [standalone]
ensure [esx_addons]
```

`ensure [core]` starts every resource in the folder. Each resource declares its
dependencies in `fxmanifest.lua` (for example esx_multicharacter depends on
esx_context, esx_identity and esx_skin), so FiveM starts them in a valid order.
If you list resources one by one, follow the dependency order:

```bash title="server.cfg"
ensure chat
ensure oxmysql
ensure esx_lib
ensure es_extended
ensure cron
ensure esx_notify
ensure esx_textui
ensure esx_progressbar
ensure esx_context
ensure esx_menu_default
ensure esx_menu_dialog
ensure esx_menu_list
ensure skinchanger
ensure esx_skin
ensure esx_identity
ensure esx_multicharacter
ensure esx_inventory
ensure esx_whitelist
ensure esx_loadingscreen
ensure esx_chat_theme
```

Leave out the optional resources you do not use. See
[server.cfg](/docs/getting-started/server-cfg) for the full file.

## Explore the core resources [#explore-the-core-resources]

<Cards>
  <Card title="esx_lib" href="/docs/core/esx_lib">The xLib library every ESX resource builds on.</Card>
  <Card title="esx_notify" href="/docs/core/esx_notify">Notifications, types, positions and events.</Card>
  <Card title="esx_context" href="/docs/core/esx_context">Context menus and forms with ESX.OpenContext.</Card>
  <Card title="esx_menu_default" href="/docs/core/esx_menu_default">The classic ESX.UI.Menu API.</Card>
  <Card title="esx_inventory" href="/docs/core/esx_inventory">Default inventory, storages and exports.</Card>
  <Card title="esx_multicharacter" href="/docs/core/esx_multicharacter">Character slots, selection and admin commands.</Card>
  <Card title="esx_whitelist" href="/docs/core/esx_whitelist">Whitelist modes, panel, Discord roles and SQL.</Card>
  <Card title="cron" href="/docs/core/cron">Run server tasks at a fixed time each day.</Card>
</Cards>

## Related [#related]

- [Installation](/docs/getting-started/installation)
- [server.cfg](/docs/getting-started/server-cfg)
- [es_extended](/docs/es_extended)
- [Official addons](/docs/addons)
