> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/resources/mango-achievements/developer-guide/events.md).

# Events

The same API as events, plus one to listen to.

Equivalents of the exports, for callers that prefer events.

```lua
TriggerEvent('mango_achievements:addProgress', src, 'repeat_offender', 1)
TriggerEvent('mango_achievements:setProgress', src, 'road_trip', 50000)
TriggerEvent('mango_achievements:unlock',      src, 'kifflom')
TriggerEvent('mango_achievements:reset',       src, 'bank_job')
TriggerEvent('mango_achievements:resetAll',    src)
TriggerEvent('mango_achievements:addStat',     src, 'prison_sentences', 1)
TriggerEvent('mango_achievements:setStat',     src, 'vehicles_owned', 4)
```

{% hint style="danger" %}
**These are server-to-server only, on purpose.** They are registered as ordinary events rather than net events, so a player cannot trigger their own progress and rewards from a modified game client. Calling them from a client does nothing.
{% endhint %}

## Listening for unlocks

```lua
AddEventHandler('mango_achievements:unlocked', function(src, achievementId, completions)
    print(('%s earned %s (x%d)'):format(GetPlayerName(src), achievementId, completions))
end)
```

Useful for announcing rare unlocks in chat, posting to your own logging system, or granting something the reward types do not cover.
