> ## 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.

# Exports

# Exports & Events

## Open the selector

Two equivalent paths — pick whichever fits your code style:

```lua theme={"dark"}
-- Server export
exports['awoken_spawn']:open(src, opts)

-- Server event (for use from a multichar or another resource)
TriggerEvent('awoken_spawn:server:requestOpen', src, opts)
```

`opts` is optional and, when present, may include:

```lua theme={"dark"}
{
    isNewCharacter = false,             -- routes through Config.open.skipForNewCharacter
    lastLocation   = vector3(x, y, z),  -- override "last location" coords
}
```

## Post-spawn hook (server)

Fires after a spawn is confirmed and the player is at their destination:

```lua theme={"dark"}
AddEventHandler('awoken_spawn:server:playerSpawned', function(src, card, player)
    -- src    = player server id
    -- card   = the chosen spawn card
    -- player = the framework player object (whatever your bridge adapter returns)
end)
```

Use this for loadouts, vehicle assignment, welcome messages — anything that runs after a confirmed spawn.

## Bridge ready (server)

Fires once when the framework bridge finishes detection:

```lua theme={"dark"}
AddEventHandler('awoken_spawn:server:bridgeReady', function(name)
    -- name = 'qbox' | 'qbcore' | 'esx' | 'standalone'
end)
```

## Multichar integration

Wire your standalone multichar into the open flow:

```lua theme={"dark"}
AddEventHandler('your_multichar:CharacterSelected', function(source)
    TriggerEvent('awoken_spawn:server:requestOpen', source, {
        isNewCharacter = false,
        lastLocation   = vector3(x, y, z),
    })
end)
```

Or list its event in `Config.open.multichar` — see [Installation](installation.mdx).
