---
title: "Server configuration"
description: "Every server.cfg setting Asphyxia reads, and what each one does."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.asphyxia.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Server configuration

Asphyxia splits its settings in two. A handful of secrets and integrations live
in `server.cfg`, because they're specific to one machine. Everything about *how
the anti-cheat behaves* lives on your dashboard's
[Configuration page](/website/configuration), so you can change it without
touching a file.

## Required

These three come from your dashboard when you create a server. Asphyxia won't
start without all of them.

| Convar | Description |
| :--- | :--- |
| `asphyxia_license` | Your license key. Verified with the Asphyxia API at startup. |
| `asphyxia_server_id` | Identifies which server's configuration to download. |
| `asphyxia_shared_secret` | Signs and encrypts everything sent to the Asphyxia API. |

```ini title="server.cfg"
set asphyxia_license       "your-license-key"
set asphyxia_server_id     "your-server-id"
set asphyxia_shared_secret "your-shared-secret"
```

> **Caution**
>
> Use `set`, not `setr`. `setr` publishes a value to every connected client — your
> shared secret would be readable by anyone who joins.

## Optional

| Convar | Default | Description |
| :--- | :--- | :--- |
| `asphyxia_ban_webhook` | *(none)* | Discord webhook URL. Ban screenshots are uploaded here. |
| `asphyxia_discord_bot_token` | *(none)* | Bot token for [Discord Lookup](/website/discord-lookup). |
| `asphyxia_debug` | `false` | Turns on debug mode — see below. |

## Discord bot token

The dashboard's [Discord Lookup](/website/discord-lookup) tool asks your game
server to look up a Discord account, and your game server needs a bot token to
ask Discord. The token stays on your machine — it is never sent to the
dashboard or to Asphyxia.

1. **Create an application**

   Open Discord's [Developer Portal](https://discord.com/developers/applications)
   and click **New Application**. Name it whatever you like.

2. **Add a bot and copy its token**

   Go to **Bot** in the sidebar, then **Reset Token**. Discord shows the token
   exactly once — copy it now.

3. **Put it in server.cfg**

```ini title="server.cfg"
set asphyxia_discord_bot_token "your-bot-token"
```

   Restart the resource and the lookup tool starts working.

No privileged intents and no server memberships are needed — looking up a
public profile works for any Discord account.

> **Caution**
>
> Treat the token like a password. Anyone who has it can act as your bot. If your
> `server.cfg` lives in Git, keep this line out of it.

## Ban webhook

When Asphyxia bans someone it captures their screen and posts the image to a
Discord webhook, then attaches the resulting link to the ban record so you can
see it later from the dashboard's [Bans page](/website/bans).

```ini title="server.cfg"
set asphyxia_ban_webhook "https://discord.com/api/webhooks/..."
```

Without this, bans still work — they just have no screenshot attached.

## Debug mode

```ini title="server.cfg"
set asphyxia_debug "true"
```

Debug mode lets you trigger detections on a live server without punishing
anyone. While it's on:

- Bans are recorded in memory only — nothing is written to the database.
- Nobody is disconnected, and no Discord webhooks fire.
- Admins with `bypassDetections` are **not** exempt, so you can test as yourself.
- Extra diagnostic lines appear in the console.

> **Caution**
>
> Debug mode means your server is not actually protected. Turn it off before
> going live.

Source: https://docs.asphyxia.dev/anticheat/server-config/index.mdx
