# Events

```lua
AddEventHandler('koja-trucker:delivery:completed', function(data)
    print(('%s earned $%s'):format(data.identifier, data.money))
end)
```

:::hint{type="info"}
These fire **server-side**. The `src` field is the player's server id; depending on convoy/passenger flow it may differ from the leader — always trust `identifier` for the player.
:::

## koja-trucker:mission:started

Fired when a player successfully starts a delivery.

```lua
{
  src,            -- server id
  identifier,     -- player identifier
  mission_id,     -- order id
  category,       -- default|urgent|dangerous|fragile|illegal|business
  required_class, -- 1|2|3
}
```

## koja-trucker:delivery:completed

Fired when a delivery is paid out (also fires for convoy passengers).

```lua
{
  src, identifier,
  money,          -- net payout
  xp,
  km,             -- route distance
  elapsed,        -- seconds taken
  category,
  from, to,       -- city names
  company_id,     -- nil if independent
  late,           -- boolean (urgent deadline missed)
}
```

## koja-trucker:company:created

```lua
{
  src, identifier,
  company_id,
  name,
  tag,            -- nil if none
}
```

## koja-trucker:skill:purchased

```lua
{
  src, identifier,
  skill_id,
  level,          -- new level
}
```

## koja-trucker:promo:redeemed

```lua
{
  src, identifier,
  code,
  kind,           -- 'money' | 'xp' | 'sp'
  multiplier,
}
```

## Example: reward streaks in another resource

```lua
local streak = {}

AddEventHandler('koja-trucker:delivery:completed', function(d)
    if d.late then streak[d.identifier] = 0; return end
    streak[d.identifier] = (streak[d.identifier] or 0) + 1
    if streak[d.identifier] == 10 then
        -- 10 on-time deliveries in a row → gift a boost
        exports['koja-trucker']:GrantPromoEffect(d.src, 'xp', 2.0, 1800)
    end
end)
```

## Related pages

- [Exports](/jobs/trucker/configuration/api/exports) — Koja Trucker exposes a stable, documented set of server-side exports so you can integrate it with your own resources.
- [API](/jobs/trucker/configuration/api) — back to the section overview
