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

# Getting Started

> Build your own resource on the atlasBridge Bridge global — integration, hybrid loading, and the API surface.

`atlasBridge` is not just glue for Atlas resources — it is a foundation you can build your own scripts on. Depend on it once and get a single global `Bridge` table with a standard library, protected networking, framework and inventory abstraction, UI, entities, Discord, and permissions, so your resource runs on ESX, QBX, QB-Core, or standalone without rewriting glue.

<Note>
  This section is for developers writing resources on top of the bridge. If you are a server owner installing a purchased Atlas resource, see [Installation](/atlas-bridge/installation) and [Configuration](/atlas-bridge/convars) instead.
</Note>

## Integrate the Bridge global

In your resource's `fxmanifest.lua`:

```lua theme={null}
dependency 'atlasBridge'                 -- enforces load order
shared_script '@atlasBridge/init.lua'    -- gives you the global `Bridge` (client + server)
```

`Bridge` is now available on both the client and the server. Use `Bridge.IsServer` to branch when you need to.

```lua theme={null}
-- client
Bridge.Notify('Welcome!')
local job = Bridge.GetJob()

-- server
if Bridge.RemoveMoney(src, 'cash', 250, 'shop') then
    Bridge.Inventory.AddItem(src, 'fish_trout', 1)
    Bridge.Notify(src, { title = 'Sold', description = '+$250', type = 'success' })
end
```

<Tip>
  For editor autocomplete, point your `.luarc.json` `workspace.library` at `atlasBridge/types`.
</Tip>

## Hybrid loading

The bridge loads like `ox_lib`, with a deliberate split:

* **Pure utilities** (`Math`, `Table`, `Vector`, `Validate`, …) load directly **into your resource's VM** — fast, no boundary cost.
* **Stateful and UI services** (`Net`, `UI`, `Entities`, `Discord`, …) run centrally in `atlasBridge` and are reached through `exports.atlasBridge:*` automatically.

You never call those exports yourself. Calling `Bridge.Net.Emit` or `Bridge.Notify` does the routing for you. This keeps shared state (open menus, tracked entities, the net token store) in one place while keeping hot utility paths local.

## The `Bridge` table at a glance

| Area             | Members                                                                                                                                           |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **UI (client)**  | `Notify` · `Progress` · `TextUI` · `Menu` · `Context` · `Input` · `SkillCheck` · `Confirm` · `Radial` · `Interact` · `Target`                     |
| **UI (server)**  | `Notify` (player-targeted)                                                                                                                        |
| **Framework**    | `Framework` + shortcuts (`GetJob`, `GetMoney`, `AddMoney`, …)                                                                                     |
| **Data**         | `Inventory` · `Entities` *(server)* · `Permissions` *(server)* · `Buckets` *(server)*                                                             |
| **Net**          | `Net` (protected client↔server)                                                                                                                   |
| **Integrations** | `Discord` · `Theme`                                                                                                                               |
| **Lib (shared)** | `Math` `Table` `Vector` `String` `Time` `Color` `Geo` `Scheduler` `Validate` `Plate` `UID` `VehicleProps` `Timers` `Commands` `Class` `Log` `Err` |
| **Lib (client)** | `Streaming` `Cache` `Camera` `Screen` `Zones` `Draw` `Interact` `Blips` `MarkerProp` `LocalPreview` `Ped` `Keybinds`                              |
| **Lib (server)** | `RateLimit` `PlayerState`                                                                                                                         |

Lib namespaces are read-only. See `types/bridge.lua` in the resource for full signatures.

## Where to go next

<CardGroup cols={2}>
  <Card title="Networking" icon="https://mintcdn.com/atlasscripts/BwePy2Q7bMLnl0yQ/icons/plug-filled.svg?fit=max&auto=format&n=BwePy2Q7bMLnl0yQ&q=85&s=523bca8bdf53a69adf80f6699df734b4" href="/atlas-bridge/developer/networking" width="24" height="24" data-path="icons/plug-filled.svg">
    `Bridge.Net` protected events and callbacks, plus `Bridge.Validate`.
  </Card>

  <Card title="Player Data" icon="https://mintcdn.com/atlasscripts/BwePy2Q7bMLnl0yQ/icons/box-filled.svg?fit=max&auto=format&n=BwePy2Q7bMLnl0yQ&q=85&s=c228a3b89453b292c0cedb29c252b3ab" href="/atlas-bridge/developer/player-data" width="24" height="24" data-path="icons/box-filled.svg">
    Framework and inventory: job, money, items, usables, and lifecycle hooks.
  </Card>

  <Card title="Permissions" icon="https://mintcdn.com/atlasscripts/BwePy2Q7bMLnl0yQ/icons/coins-filled.svg?fit=max&auto=format&n=BwePy2Q7bMLnl0yQ&q=85&s=bd777b298410d7d9ce026c158c25f13f" href="/atlas-bridge/developer/permissions" width="24" height="24" data-path="icons/coins-filled.svg">
    ACE- and Discord-role-aware permission nodes, the clear two-step way.
  </Card>

  <Card title="Entities" icon="https://mintcdn.com/atlasscripts/BwePy2Q7bMLnl0yQ/icons/box-filled.svg?fit=max&auto=format&n=BwePy2Q7bMLnl0yQ&q=85&s=c228a3b89453b292c0cedb29c252b3ab" href="/atlas-bridge/developer/entities" width="24" height="24" data-path="icons/box-filled.svg">
    Server-authoritative spawning, tracking, and auto-cleanup.
  </Card>

  <Card title="World Interactions" icon="https://mintcdn.com/atlasscripts/BwePy2Q7bMLnl0yQ/icons/box-filled.svg?fit=max&auto=format&n=BwePy2Q7bMLnl0yQ&q=85&s=c228a3b89453b292c0cedb29c252b3ab" href="/atlas-bridge/developer/world" width="24" height="24" data-path="icons/box-filled.svg">
    Interact prompts, zones, and blips for your own scripts.
  </Card>

  <Card title="UI Library" icon="https://mintcdn.com/atlasscripts/BwePy2Q7bMLnl0yQ/icons/box-filled.svg?fit=max&auto=format&n=BwePy2Q7bMLnl0yQ&q=85&s=c228a3b89453b292c0cedb29c252b3ab" href="/atlas-bridge/ui/overview" width="24" height="24" data-path="icons/box-filled.svg">
    Notify, progress, menus, dialogs, skill checks, radial, and target.
  </Card>
</CardGroup>
