> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectx.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQs

> Frequently asked questions about the Project X XP skill system

<AccordionGroup>
  <Accordion title="What is Project X XP?">
    Project X XP (`projectx-xp`) is a multi-skill XP system with levels, milestones, rewards, buffs, a leaderboard, and a built-in UI. Other resources award XP through server exports, or through [projectx-bridge](/resources/bridge/installation) when `XPSystem` is set to `'projectx'` / `'auto'`.
  </Accordion>

  <Accordion title="What frameworks and inventories are supported?">
    Configure `Framework` and `Inventory` in `config/config.lua` to match your server. Common setups include QBCore, Qbox, and ESX, with inventories such as ox\_inventory and qb-inventory. Inventory is mainly needed if you enable `UseItem` with `x_device`.
  </Accordion>

  <Accordion title="Do I need the Project X Bridge?">
    No — the bridge is optional for projectx-xp itself. It is recommended if you run Project X robberies or other Project X scripts that award XP through the bridge. In that case, set `XPSystem` to `'projectx'` or `'auto'` in the bridge config. See [Bridge Installation](/resources/bridge/installation).
  </Accordion>

  <Accordion title="Why isn't XP awarding / the menu not working?">
    Check start order in `server.cfg`. `projectx-xp` must start **after** your framework, ox\_lib, and oxmysql, and **before** scripts that call XP exports. Example:

    ```cfg theme={null}
    ensure ox_lib
    ensure oxmysql
    ensure projectx-xp
    ```
  </Accordion>

  <Accordion title="How do I migrate from pickle_xp?">
    Import/run with the `player_xp` table in place. Legacy Pickle XP JSON can migrate automatically when the skill keys match entries defined in `Config.Skills`. Align your skill IDs with the old Pickle keys before going live.
  </Accordion>

  <Accordion title="How do I add custom skills?">
    Add a new entry under `Config.Skills` in `config/config.lua` with `Label`, `Description`, `Icon`, `BaseXp`, `Multiplier`, `MaxLevel`, optional `LevelTitles`, and optional `Milestones`. Include the new skill ID in `SkillOrder` if you want it shown in a specific position in the UI.
  </Accordion>

  <Accordion title="How do milestone rewards work? Does SetLevel grant them?">
    Milestones grant configured rewards (`money`, `item`, `export`, etc.) when a player reaches that level through normal XP gain. `SetLevel` does **not** re-grant milestones for levels you set or skip.
  </Accordion>

  <Accordion title="How do XP buffs stack?">
    Multiple buffs can be active at once. Awards use:

    ```text theme={null}
    floor((baseXp + flatBonusTotal) * multiplierTotal)
    ```

    Use `AddXPRaw` when you need to award XP without applying buffs.
  </Accordion>

  <Accordion title="What commands are available?">
    Players can open the menu with `/xp` (or your configured `OpenCommand`) and the `F7` keybind (or your configured `OpenKey`). Testbuff-related commands are for testing buffs only — do not rely on them in production gameplay.
  </Accordion>

  <Accordion title="Can I grant XP from the client?">
    No. Never grant XP from client scripts. Always use server exports such as `AddXP`, or the bridge's server-side `AddExperience` when integrated.
  </Accordion>

  <Accordion title="Where can I get free support?">
    Join the Project X Discord and use the **Free-Support** channel: [https://discord.gg/projectxdev](https://discord.gg/projectxdev)
  </Accordion>
</AccordionGroup>
