EndCore Framework

Installation

Download EndCore, lay out the resources, set up oxmysql and server.cfg, grant admin, and make your first character.

This page takes you from an empty FXServer to a character standing in the world. It assumes you already have a working FiveM server with txAdmin or a plain server.cfg, and that you have met the Requirements.

1. Download EndCore

Get the latest release from the download page or from the EndCore GitHub organisation. Extract the archive somewhere temporary.

2. Lay out the resources

Copy the [encore] folder into your server's resources folder. The square brackets make it a category folder, so FXServer can start everything inside it with one line.

text
resources/
  oxmysql/
  [encore]/
    en-core/
    en-ui/
    en-admin/
    en-clothing/
    en-consumables/
    en-crafting/
    en-doorlock/
    en-garages/
    en-hud/
    en-inventory/
    en-loading/
    en-minigames/
    en-multicharacter/
    en-party/
    en-properties/
    en-quests/
    en-radialmenu/
    en-respawn/
    en-shops/
    en-skills/
    en-target/
    en-vehiclekeys/
    en-weathersync/
    en-zombies/

Don't rename the folders. Resource names such as en-core and en-inventory are part of the API; other resources look them up by name.

Warning

Remove any other framework, inventory or target resource from your server first (qb-core, es_extended, ox_inventory and similar). Running the real qb-core, qbx_core or es_extended switches EndCore's compatibility bridge for it off.

3. Install oxmysql

Download a current oxmysql release and place it in resources/oxmysql. EndCore needs nothing else from it.

4. Create the database

Create an empty database (for example endcore) and a user with permission to create and alter tables in it. You do not need to import encore.sql.

On boot, en-core creates and migrates its tables (players, encore_groups, encore_group_members, encore_content). The other resources create their own when they start, such as encore_inventories, encore_vehicles and encore_bases. See Database.

5. Edit server.cfg

Add the connection string, then ensure resources in this order: oxmysql, then en-ui, then en-core, then the rest of the category.

cfg
# Database (use your own user, password and database name)
set mysql_connection_string "mysql://endcore_user:CHANGE_ME@localhost/endcore?charset=utf8mb4"

sv_licenseKey "<your-license-key>"
sv_enforceGameBuild 3095
set onesync on

# Default Cfx resources
ensure chat
ensure mapmanager
ensure spawnmanager
ensure sessionmanager
ensure hardcap

# Must start before en-core
ensure oxmysql

# EndCore: en-ui first, then en-core, then everything else in the category
ensure en-ui
ensure en-core
ensure [encore]

# Admin permissions
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_ace group.admin encore.whitelist allow
add_ace group.admin encore.bypassclosed allow
add_principal identifier.fivem:<your-fivem-id> group.admin

ensure [encore] starts every resource in the folder. en-ui and en-core are already running by then, and each gameplay resource declares its own dependencies, so FXServer starts them in a safe order.

If you use txAdmin, OneSync and the license key are usually set by txAdmin, so leave those two lines out.

6. Grant yourself admin

EndCore's admin commands are restricted to the group.admin principal, and the admin panel checks the command.admin ACE that comes with it. The last line of the block above puts your account in that group.

Replace <your-fivem-id> with your own identifier. You can use any identifier type FXServer knows, for example:

cfg
add_principal identifier.fivem:1234567 group.admin
add_principal identifier.license:0123456789abcdef0123456789abcdef01234567 group.admin

Two extra ACEs are included above:

ACEWhat it allows
encore.whitelistConnecting while whitelist = true in en-core/config/server.lua.
encore.bypassclosedConnecting while closedServer = true, handy while you build.

7. Start the server

Start or restart the server and watch the console. A healthy boot shows en-core loading without database errors and a line for each active compatibility bridge, such as [EndCore] qb-core compatibility bridge active.

8. First join

  1. Connect. The EndCore loading screen (en-loading) stays up until character selection is ready.
  2. Character selection opens (en-multicharacter). Each license gets 3 character slots by default.
  3. Choose to create a survivor and enter a first name, last name, date of birth, gender and nationality.
  4. The character creator opens (en-clothing). Set up the face and hair; the new survivor starts wearing a T-shirt, jeans and sneakers.
  5. You spawn at Burton Checkpoint, a safe zone where no zombies spawn, with the starter kit: 2 water, 3 bread, a radio, $500 cash and $1,000 in the bank.

Now check that everything is wired up:

  • Press TAB to open the inventory. The cash should be there as an item.
  • Type /charinfo me to see your character, group, money and survival stats.
  • Press F10 to open the admin panel. If it doesn't open, your principal line is wrong.
  • Walk out of the checkpoint. Zombies spawn 65 to 115 m away from you, out of sight.

Troubleshooting

SymptomLikely causeFix
Database setup failed: ... in the consoleoxmysql can't connect, or the user can't create tablesCheck mysql_connection_string: host, user, password and database name. Make sure oxmysql starts before en-core. The core does not work until this succeeds.
en-core refuses to start with a dependency errorOld artifact, OneSync off, or oxmysql/en-ui not startedUpdate the artifact to 7290 or newer, enable OneSync, and ensure oxmysql and en-ui before en-core.
Loading screen never closesen-multicharacter isn't runningen-multicharacter shuts the loading screen down. If you replaced it, your selector must call ShutdownLoadingScreen() and ShutdownLoadingScreenNui().
en-ui is not running; interface calls will do nothingen-ui failed or was not ensuredEnsure en-ui before en-core.
Item "cash" is not defined in en-inventory; cash stays a database balanceen-inventory's item list lacks cashRestore cash in en-inventory/data/items.lua, or set money.cashItem = false to keep cash as a balance on purpose.
Starter items never arriveen-inventory wasn't running at loginThe kit is held back and given on a later login once en-inventory is running.
"You are not whitelisted" or "The server is currently closed"whitelist or closedServer is onGrant encore.whitelist or encore.bypassclosed, or turn the option off in en-core/config/server.lua.
Admin commands say you don't have permissionPrincipal not appliedCheck the add_principal identifier matches the account you joined with, then restart.
qb-core is running; skipping its compatibility bridgeThe real qb-core is installedRemove it if you want EndCore to answer QB exports.
Zombies never spawnStanding in or near a safe zone, or the director is offMove more than 40 m outside safe zones. Run /zombies stats and /zombies director on.

Still stuck? See Getting help.

Next steps