Skip to main content
Installation guide and dependencies for FNX Advanced IDS.

๐Ÿ“ฆ Dependencies


Before installing FNX Advanced IDS, make sure your server has the following resources installed and working correctly.
  1. Community Bridge
    This resource is mandatory, It is used to handle framework compatibility (ESX, QBCore, Qbox), inventory systems and UI / menu / notify / target systems
  2. screenshot-basic
    This resource is used to take player photos and generate document images You also need a MySQL resource:
  • Recommended: oxmysql
  • Supported: mysql-async\
โš ๏ธ** Important Notes**
  • Make sure community_bridge starts BEFORE fnx-advancedids
  • Make sure screenshot-basic is working correctly, otherwise photos will not work

๐Ÿ“ฆ Supported Frameworks and Inventory Systems

Inventories and frameworks are auto detected and they donโ€™t need a manual configuration. Frameworks:
  • ESX
  • QBCORE
  • QBOX
Inventories:
  • ox_inventory
  • qb-inventory
  • qs-inventory
  • core_inventory
  • codem-inventory
  • origen_inventory
  • ps-inventory
  • jpr-inventory
  • tgiann-inventory
โš ๏ธ Note All supported inventories are compatible, however metadata handling may vary depending on the inventory version and configuration.

โš™๏ธ Configuration

This guide will show you exactly where and how to configure the script, step by step. You do NOT need any coding experience to follow this.

๐Ÿ“ Step 1 โ€” Open the Configuration File

All main configuration is done inside this file
settings/public/client/cfg.lua

Step 2 - Create a custom card

Inside cfg.lua, scroll to
ClientCfg.Cards = { .. }
thatโ€™s the default id card configuration
Image
to create a custom card, like a MEDICARE card, follow this example
["medicare"] = {
    type = "medicare", 
    label = "Medicare Card",
    header = "LOS SANTOS MEDICARE",
    expiration = "1Y",--[[
        D, -- day
        M, --month
        Y, --year
        H, --hours
        m, --minutes
        s --seconds
    ]]
    requiredFields = { "first_name", "last_name", "height", "sex", "dob", "nationality" },
    useServerSetter = false,

    theme = {
        accentColor = "FF2A8C82",
        colorFactor = 0.84,
        displayMode = "top-right",
        backgroundImage = "",
        backgroundPosition = "center",
        backgroundSize = "cover",
        photoPosition = "left",
        logoImage = "https://i.ibb.co/QvMqhxFT/fenix-logo.png",
        sealImage = "https://i.ibb.co/B2nR6nHm/los-santos-seal.webp",
        labelColor = "#d4d4d8",
        valueColor = "#fafafa"
    }

    --[[        --DYNAMIC DATA
        fields = { 
            {
                key = "", --?
                label = "",
                value = ""
            }
        },
        created_at = 1735689600,
        expires_at = 1767225600,
        id = -1,
        image_url = "https://dummyimage.com/512x512/1f2937/f9fafb.png&text=MARIO+ROSSI", 
    ]]
},
the index, is the card name
["medicare"] = 
type is supposed to be the same as the index
type = "medicare", 
The label and header fields are the ones displayed on top-left of the card, see the picture as reference
label = "Drive card",
header = "City of los santos",
Image
This requiredFields contains the fields that you want to show up on the card, you can also create custom fields and much more, each card can be unique in the use.
requiredFields = { "first_name", "last_name", "height", "sex", "dob", "nationality" },
This option, set the as a license the item name on the player data.
useServerSetter = false,
** no more is explained because is mainly styling job. we hape you enjoyed your custom card creation.

๐Ÿ“ Step 3 - Points configuration

Inside cfg.lua, find:
ClientCfg.Points = { ... }
These are the locations where players can obtain documents, you can add new points, remove or change them.
takeDataFromUserInput = false,
This config, allow the player to set manually the data displayed on the type of license thatโ€™s going to obtain, this feature is active on the fake id point, be default for driving licenses, id card and firearm license is set on false, because we get the data automatically.
type = "drive",
itโ€™s the card previously created thatโ€™s going to be given trought this point.
price = {
    money = 500,
    bank = 500
}
in any point you can also change price, remove it bank / cash or other accounts like black_money
requiredItems = {
	["water"] = 10,
},
in any point, you can set one or more required items to obtain a card, this can be useful for the fake id creation point, it works in this way
requiredServerLicense = {
	["drive"] = true,
},
in any point, you can set that to get a determinate item you need to have another license saved on your framework, for example, on the sample config above, to get the access to this license (we will say thats the flight permit) you need to mandatory have the โ€œdriveโ€ license saved on your core (for example, in esx_license ) thatโ€™s the car driving license.
allowDuplicate = true, 
it means that on this point, the card can be taken as many times the players wants to