EndCore Framework

Introduction

What EndCore is, what ships with it, how the resources fit together, and where to go next.

EndCore is a free, open-source framework for building apocalypse and zombie survival servers on FiveM. It gives you a working survival game out of the box: characters who get hungry, thirsty, irradiated and infected, a zombie population that hunts by sight and sound, a grid inventory, scavenged vehicles, traders, crafting, player-built bases, parties, skills and quests.

It is not a roleplay framework with zombies bolted on. Survival is part of the core, and every other resource is built around it.

What makes EndCore different

  • Survival state lives in the core. Hunger, thirst, radiation, infection, immunity and body temperature are ticked by en-core on the server. Every resource reads and changes the same numbers. See Survival system.
  • One library, no third-party dependencies. EndCore ships its own library (@en-core/lib/init.lua) with callbacks, commands, keybinds, streaming helpers, UI services and interfaces for inventory, targeting, minigames, the radial menu, skills and parties. There is no ox_lib, ox_inventory or ox_target dependency. See Library overview.
  • One design system. Every interface uses en-ui: the same colours, type, icons, notifications, progress bars and dialogs. See Design system.
  • Groups instead of gangs. Players found persistent groups of survivors with ranks, and form short-lived parties for a session. See Groups and en-party.
  • Placed content. Admins place traders, garages, crafting benches, quest NPCs, spawn points and zombie zones in game from the en-admin Build tab, with no restart. See Content registry.
  • Compatibility bridges. en-core answers the main QB-Core, QBX and ESX exports, so many existing scripts keep working. See Running QB and ESX scripts.

The resources

Everything lives in one [encore] folder. en-core and en-ui are the foundation; the rest are gameplay resources you can keep, tune or replace.

Foundation

ResourceWhat it does
en-corePlayers and characters, survival simulation, money, jobs, groups, XP and levels, the content registry, world population control and the QB/QBX/ESX bridges. Also serves the library. See Core overview.
en-uiThe design system (CSS and JS for every interface) and the shared notifications, progress bar, prompt and input dialog. See Design system.

Joining and the player

ResourceWhat it does
en-loadingThe loading screen.
en-multicharacterCharacter selection, creation and deletion.
en-clothingCharacter creator, barbers, and clothing as wearable inventory items with warmth and radiation protection.
en-hudThe survival HUD: vitals, compass, vehicle panel, zone banners and a Geiger counter.
en-respawnThe death screen, the wait, and choosing where to wake up.

The world

ResourceWhat it does
en-zombiesThe zombie director, AI, hot zones and safe zones, infection and corpse loot.
en-weathersyncServer clock, weather cycle and ambient temperature that pushes on body temperature.
en-consumablesWhat food, drink and medicine actually do.

Items and interaction

ResourceWhat it does
en-inventorySpatial grid inventory, backpacks, trunks, stashes, ground bags, weapons and death bags.
en-targetLook-at interactions (hold Left Alt).
en-radialmenuHold-to-open radial wheel (F1).
en-minigamesSkill check, lockpick, hotwire and sequence games.

Economy and progression

ResourceWhat it does
en-shopsNPC traders with limited stock, scarcity pricing and barter.
en-craftingRecipes by hand, at workbenches and at campfires.
en-skillsSkills that improve by doing, plus a perk tree.
en-questsQuest-giver NPCs with story quests, side jobs and daily tasks.

Vehicles, bases and people

ResourceWhat it does
en-garagesAbandoned vehicles to scavenge, claiming, garages, dealers, fuel and repairs.
en-vehiclekeysPhysical keys, lockpicking and hotwiring.
en-propertiesPlayer-built bases with territory, upkeep and raiding.
en-doorlockLocks for map doors with job, group, item and passcode rules.
en-partyShort-lived teams with shared XP and loot, and the group menu.
en-adminAdmin panel (F10), noclip, and the Build tab for placing content in game.

How the pieces talk to each other

EndCore resources don't call each other's inventory, targeting or skill code directly. They call the library (encore.inventory.addItem, encore.target.addModel, encore.skills.getBonus and so on), and the library forwards to the resource that implements that interface. If a resource isn't running, the call falls back safely: a missing skills resource means every bonus is 0, a missing party resource means every player is a party of one.

This is why you can remove resources you don't want and the rest keep working, and why you can write your own resources against the same API. See Inventory interface and Target interface.

Where to go next

  1. Check the Requirements.
  2. Follow Installation to get a server running.
  3. Read Configuration to find every config file.
  4. Work through Building a zombie server to turn the defaults into your own survival loop.
  5. When you're ready to extend it, start with Add an item and Writing a resource.