Installation
Requirements
Required
- oxmysql - Used for persistent leveling and XP storage (GitHub (opens in a new tab))
Optional (Auto-detected)
- ox_lib - Recommended for the best UX (progress bars, notifications, menus). Works without it but falls back to simpler native/framework UI (GitHub (opens in a new tab))
- ox_target or qb-target - For NPC and depot interaction. If neither is installed, the resource falls back to a native textui prompt
- QB-Core, QBox, or ESX - For framework notifications, money, and inventory. Runs standalone if no framework is detected
The resource auto-detects your framework, targeting system, inventory, money system, and notification system. In most setups you can drop it in and ensure it without editing a single Lua file.
Installation Steps
Step 1: Download the Resource
Download legends_firefighter from your Keymaster grants or the store.
Step 2: Extract to Resources
Place the legends_firefighter folder into your server's resources directory.
resources/
└── legends_firefighter/
├── fxmanifest.lua
├── config/
│ ├── config.lua
│ └── routes.lua
├── client/
│ ├── editable.lua
│ ├── main.lua
│ ├── fire.lua
│ ├── zones.lua
│ ├── vehicle.lua
│ ├── extinguisher.lua
│ └── helicopter.lua
├── server/
│ ├── editable.lua
│ ├── main.lua
│ └── leveling.lua
├── bridge/
│ ├── shared/
│ ├── client/
│ └── server/
├── locales/
│ └── en.json
└── html/Step 3: Add to Server Config
Add the following to your server.cfg (adjust for the dependencies you already run):
# Required
ensure oxmysql
# Recommended
ensure ox_lib
# Optional: targeting system (pick one)
ensure ox_target # or qb-target
ensure legends_firefighterImportant: oxmysql and (if used) ox_lib / ox_target must start before legends_firefighter.
Step 4: Verify the Fire Extinguisher Item
Tier 1 (Rookie) missions require players to carry a fire extinguisher weapon (weapon_fireextinguisher). Most frameworks and inventories ship this item by default. If yours does not, add it to your inventory system.
For ox_inventory
The fire extinguisher is included in ox_inventory by default as WEAPON_FIREEXTINGUISHER. No action needed.
For qb-core
['weapon_fireextinguisher'] = {
name = 'weapon_fireextinguisher',
label = 'Fire Extinguisher',
weight = 2500,
type = 'weapon',
ammotype = 'AMMO_FIREEXTINGUISHER',
image = 'weapon_fireextinguisher.png',
unique = true,
useable = false,
description = 'A handheld fire extinguisher.'
}You can change the required item (or remove it entirely) in config/config.lua under missionTiers[1].requiredItem.
Step 5: Configure (Optional)
Customize the job in config/config.lua and your routes in config/routes.lua. See the Configuration page for every option.
Common first-edit targets:
npc.coords— move the fire-station NPC to your mapmissionTiers[2].vehicle.spawnPoint/missionTiers[3].vehicle.spawnPoint— where the firetruck and helicopter spawnrewards.moneyType—'cash'or'bank'leveling.levels[n].xpRequired— how fast players progress between ranksloot.tables.*— what players find when searching a scene
Step 6: Restart Server
Restart your server, or run refresh and ensure legends_firefighter from the live console.
Verification
After installation:
- Travel to the fire station NPC (default coords near Davis Fire Station,
-1067.91, -2378.78, 14.08). A blip labeled Fire Station should appear on your map. - Interact with the NPC (target or textui) and select Rent Firetruck or the equivalent rookie option.
- A GPS route should appear to the first fire location. Drive there and extinguish the fires.
- After each location, return to the depot or advance to the next fire per the on-screen prompt.
- Verify you received payment and the +XP notification on completion.
- Relog or check your database — your level/XP should persist.
Admin / Developer Commands
This resource does not register end-user admin commands by default. Instead it exposes server-side exports for integrations such as anti-cheat kicks or admin panels:
| Export | Usage | Description |
|---|---|---|
GetActiveJobCount | exports.legends_firefighter:GetActiveJobCount() | Returns the number of currently active firefighter jobs |
GetActiveJobs | exports.legends_firefighter:GetActiveJobs() | Returns the active-jobs table keyed by source |
ForceEndJob | exports.legends_firefighter:ForceEndJob(source) | Cancels a specific player's active job (returns true on success) |
See the full list on the Exports & API page.
If you need to grant a player XP via an external system (daily rewards, event bonuses, etc.), you can do so by modifying server/leveling.lua's hooks or by calling the job hooks from server/editable.lua.
Custom Maps & MLOs
The default fire station is placed at the vanilla Davis Fire Station. If you use a custom MLO for the fire department:
- Update
npc.coordsinconfig/config.luato the new entrance - Update
missionTiers[2].vehicle.spawnPointandmissionTiers[3].vehicle.spawnPointto safe spawn points within your MLO - Ensure your fire locations in
config/routes.luaare reachable with the vehicle tier they're assigned to
Need help? Join our Discord (opens in a new tab) and open a support ticket!