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

# Troubleshooting

> Nearly all of it is start order. Here is how to tell, and what the rest means.

<AccordionGroup>
  <Accordion title="An Awoken script says nothing happened" icon="list-check">
    Read the bridge's boot line first. It names what was picked for each job, and it is printed on every start without needing debugging turned on, precisely so this is a five second check.

    ```
    [awoken_bridge] framework: qbx | inventory: ox_inventory | dispatch: none | ...
    ```

    Anything reading `none` that should not be is the answer.
  </Accordion>

  <Accordion title="It did not detect my framework, inventory or dispatch" icon="magnifying-glass">
    Almost always start order. Detection is a resource state check that happens once, at load time, so anything starting **after** the bridge is invisible to it.

    ```cfg server.cfg theme={"dark"}
    ensure ox_lib
    ensure qbx_core            # everything it should find goes above
    ensure ox_inventory
    ensure ps-dispatch
    ensure awoken_bridge
    ensure awoken_pausemenu    # every Awoken script goes below
    ```

    If the order is already right, name it explicitly in `config/core.lua` and detection stops mattering.
  </Accordion>

  <Accordion title="It picked the wrong one" icon="shuffle">
    You are running two of something. Detection takes the first it finds, which is a guess, and a server with two dispatch systems is a server that should say which it means.

    ```lua config/core.lua theme={"dark"}
    Config.Dispatch = 'ps-dispatch'
    ```
  </Accordion>

  <Accordion title="A script errors calling an export at startup" icon="triangle-exclamation">
    The bridge had not started yet. A script calling an export of a resource that has not started gets an error, not a nil.

    Every Awoken script goes below `ensure awoken_bridge` in your `server.cfg`.
  </Accordion>

  <Accordion title="A script says it needs a newer bridge api" icon="code-compare">
    ```
    needs bridge api 2, found 1 (bridge 1.4.0)
    ```

    Exactly what it says: that script wants a contract this bridge does not have yet. Update the bridge. The build number in brackets is there so you can tell at a glance which one is installed.
  </Accordion>

  <Accordion title="An adapter broke after I updated the resource it talks to" icon="plug">
    It happens: these are other people's APIs and they change. Every file under `modules/` ships readable for exactly this reason, so you are not stuck waiting.

    Open `modules/<kind>/<resource>.lua`, fix the call, restart. If it is a public resource, send us the change and we will ship it for everyone.
  </Accordion>

  <Accordion title="Nothing is being logged" icon="file-lines">
    `Config.Logs.enabled` is `false` by default, and the bridge warns at boot if logging is on with no key set. For Discord the value is the full webhook URL; for Fivemerr or Fivemanage it is the API key.
  </Accordion>

  <Accordion title="Crime limits are not doing anything" icon="gauge">
    The activity ceiling is off by default. An empty ladder is no ceiling, so installing the bridge does not quietly change how much crime your server allows. Set your limits in `Config.Activity`.
  </Accordion>

  <Accordion title="The console says 'Could not check for updates'" icon="rotate">
    Either the version file has not been published yet or your server cannot reach `raw.githubusercontent.com`. It is a notice, not a fault. `Config.updateNotifications = false` silences the check and the banner together.
  </Accordion>
</AccordionGroup>

## Still stuck

<Card title="Support" icon="life-ring" href="/support">
  How to reach us, and what to include so the first reply is a useful one.
</Card>
