Settings: Messages
The words your customers see for every refusal and event. Atlas has a sensible default for each one; reword any of them in your own voice.
Open it now:Settings, Messages
Edit a message
The list on the left groups every message, with a search box and a filter for customized ones, and a dot marks each message you changed ("N of M customized" at the top). Pick one and you see its default, the variables you can use, a few presets to start from, and a box for your text. A saved message replaces the default from the next sign-in on. Reset to default deletes your version.
| Option | Does |
|---|---|
| Variables | Click one to insert it where your cursor is. It is replaced with the real value when the message is sent, for example {USERNAME} or {EXPIRY}. |
| Force exit after showing this message | The program closes once the customer acknowledges the message. Use it for hard stops such as banned or expired, where you want the program to end, not retry. |
What can be changed
| Group | Messages |
|---|---|
| License issues | Invalid key, expired, paused. |
| Bans and security | Temporarily banned, permanently banned, hardware banned. |
| Device and network binding | Hardware mismatch, IP mismatch, unauthorized build. |
| Concurrency and rate limits | Too many sessions, rate-limited. |
| Network and location | VPN or proxy detected, geofence violation, country blocked. |
| System | Application disabled, server configuration error, clock skew, invalid request, malformed request, replay blocked. |
| Lifecycle events | Startup, login success, login failed, first launch, first login, logout, session terminated, ban issued, hardware reset, license renewed, license expired, admin broadcast. |
| Account: registration | Username taken, email taken, invalid email, email required, key required, account registered. |
| Account: sign-in | Wrong username or password, account paused, account expired. |
| Account: verification | Wrong code, expired code, locked out, hardware mismatch, already used, bad format, session lost, resend cooldown, no email on file, device trusted, account verified. |
| Account: key redemption | Redeemed, invalid key, key already used, key paused, key has no duration, account not found, hardware mismatch. |
| Account: password reset | Locked out, code expired, wrong code, password too weak, already completed, reset done. |
A few messages stay generic on purpose, so an attacker learns nothing from them: the invalid API key, malformed request and internal error replies.
Variables
| Variables | Available in |
|---|---|
{IP}, {HWID}, {LICENSE}, {DEVICE} | Almost every message. |
{EXPIRY}, {LEVEL}, {NOTE}, {LOCATION}, {REGISTERED_HWID}, {LAST_IP} | License messages. |
{SESSIONS}, {MAX_SESSIONS} | Too many sessions and lifecycle events. |
{USERNAME}, {EMAIL}, {ATTEMPTS_LEFT}, {COOLDOWN}, {CODE_TTL_MIN}, {DAYS_ADDED} | Account messages. |
{COUNTRY}, {REASON}, {BAN_TYPE} | Network, ban and pause messages. |
The box under each message lists exactly which variables it accepts. A message is also where a customer reads what to do next, so say it: what happened, and who to contact. Why a sign-in was refused lists the cause behind each one.