> For the complete documentation index, see [llms.txt](https://code-after-sex.gitbook.io/script-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://code-after-sex.gitbook.io/script-documentation/cas-fishing/configuration/notifications-and-languages.md).

# Notifications and languages

Choose a notification system and translate CAS Fishing. Supports VORP, cas-notification, cas-simplenotify, RSGCore and chat.

***

## Notifications

Pick which resource puts messages on screen.

```lua
Config.Notify = {
  provider = 'auto',
  title    = 'Fishing',
  duration = 4000,
}
```

| Provider           | Uses                                               |
| ------------------ | -------------------------------------------------- |
| `auto`             | The first one installed, then chat                 |
| `vorp`             | VORP Core's own notifications                      |
| `cas-notification` | `infoNotification` / `successNotification` / error |
| `cas-simplenotify` | `showNotification`                                 |
| `rsg`              | `RSGCore:Notify`                                   |
| `chat`             | Plain chat lines. Always works, needs nothing      |

`auto` tries cas-notification, then cas-simplenotify, then your framework, then chat.

VORP has five shapes to choose from:

```lua
vorp = { style = 'left' },   -- left | top | tip | simpletop | bottomright
```

{% hint style="info" %}
`/notifytest` shows which provider is active. `/notifytest vorp` forces one, so you can compare them without editing the config and restarting.
{% endhint %}

A message never goes missing. If the chosen provider is not running or throws, the rest are tried in turn, and chat cannot fail.

***

## Languages

Every string the player sees lives in `locales/`.

```lua
-- locales/en.lua
Locales['en'] = {
  ['line.snapped'] = 'The line went and the fish was gone.',
  ['market.sold']  = 'Sold %d fish for $%d.',
}
```

To add a language:

1. Copy `locales/en.lua` to `locales/de.lua`
2. Change the first line to `Locales['de'] = {`
3. Translate the right-hand side
4. Set `Config.Locale = 'de'`

No code changes — the manifest loads everything in `locales/`.

{% hint style="warning" %}
Keep the keys and the `%s` / `%d` placeholders exactly as they are. They are filled in the order they appear.
{% endhint %}

A key with no translation falls back to English rather than showing a blank notification, and a broken placeholder degrades to the raw string instead of throwing.
