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

# Server settings

> The server.cfg settings that change what Element Labs products report and enforce.

Five settings in `server.cfg` change what Element Labs products check at start and what they print
to the console. All five have defaults that suit a normal server; you change them to diagnose a
problem or to satisfy a network restriction.

## Contract

Settings are declared in `server.cfg` and read when a resource starts. Changing one takes effect at
the next start.

```cfg theme={null}
setr el:debug "true"
```

Use `setr` rather than `set`. `setr` makes the value visible to the game clients as well, which is
what enables the client side of the debug output. A plain `set` affects the server only.

Place these lines before the `ensure` lines for Element Labs resources.

## Inputs

| Setting                 | Default                            | Accepted values                                 | Effect                                                                                                                                         |
| ----------------------- | ---------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `el:debug`              | `false`                            | `true`, `false`                                 | `true` prints every diagnostic message from every part of every product.                                                                       |
| `el:debug:channels`     | empty                              | `*`, or a comma-separated list of channel names | Prints diagnostic messages from the named channels only. Ignored when `el:debug` is `true`.                                                    |
| `el:dependencyCheck`    | `true`                             | `true`, `false`                                 | `false` stops products from checking the SDK version before they start.                                                                        |
| `el:versionCheck`       | `true`                             | `true`, `false`                                 | `false` stops the server contacting the Element Labs release catalogue at start.                                                               |
| `el:versionChannel`     | `auto`                             | `auto`, `stable`, `candidate`, `off`            | Which releases count as "newer" when reporting that something is out of date.                                                                  |
| `el:versionCatalog`     | The Element Labs release catalogue | A URL                                           | Where the version check reads the catalogue from. Point it at a mirror of your own if you cannot reach the default.                            |
| `el:rpcRequestLimit`    | `120`                              | A whole number                                  | How many requests one player may send a product in one window. Beyond it, the request is answered with `RATE_LIMITED` instead of being served. |
| `el:rpcRequestWindowMs` | `10000`                            | Milliseconds                                    | The length of that window.                                                                                                                     |

### Channel names

A channel is the label in the second bracket of a log line. In this line the channel is `config`:

```text theme={null}
[INFO ] [    Config] [controls] migrated config v1 → v2.
```

Channel names are matched without regard to capitalisation:

```cfg theme={null}
setr el:debug:channels "config,dependencies"
```

### Release channels

`el:versionChannel` decides which published release your installed version is compared against:

| Value       | Compared against                                                                                                                                               |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `auto`      | A stable release when your installed version is a normal release, or a candidate release when your installed version is a pre-release such as `0.1.0-alpha.3`. |
| `stable`    | Stable releases only.                                                                                                                                          |
| `candidate` | Candidate releases only.                                                                                                                                       |
| `off`       | Nothing. No out-of-date notice is printed.                                                                                                                     |

## Outputs

### Debug output

Off by default, and safe to leave off: it is diagnostic detail, not information you need during
normal operation. Turned on, it reports decisions products make at start, such as which of your
resources each capability was matched to:

```text theme={null}
[DEBUG] [FrameworkAdapter] Using "esx" adapter.
```

Turn it off again once you have the answer. It is verbose and it stays verbose.

### The version check

With `el:versionCheck` left at its default, the server makes one request to the public Element Labs
release catalogue shortly after the SDK starts, and compares the result with every installed Element
Labs resource. A resource that is behind is reported once:

```text theme={null}
[WARN ] [VersionCheck] element_map is outdated: v0.1.0-alpha.1 installed, v0.1.0-alpha.3 available.
```

The notice is informational. Nothing stops working and nothing updates itself. See [Update a
product or the SDK](/getting-started/updating).

The request goes to `raw.githubusercontent.com`. If your firewall works from an allowlist, that is the
host to add.

Set `el:versionCheck` to `false` if your server has no outbound internet access, or if you do not
want the request made. Setting `el:versionChannel` to `off` silences the notice but still makes the
request; only `el:versionCheck` prevents it.

`el:versionCatalog` moves the request somewhere else: a mirror inside your own network, for instance.
Whatever answers must return the same document; anything else is reported as an invalid catalogue and
ignored.

### The dependency check

With `el:dependencyCheck` left at its default, a product refuses to start when the SDK is missing,
stopped or outside the versions it accepts. See [SDK version requirements](/sdk/compatibility).

Setting it to `false` lets the product start anyway. This is a way to confirm that a version
mismatch is the cause of a problem, not a way to run a mismatched pair: a product started against an
SDK it was not built for fails later, in less obvious ways. Set it back afterwards.

## Errors

The version check never blocks a start. When the catalogue cannot be reached or cannot be read, it
reports one line and gives up until the next restart:

```text theme={null}
[WARN ] [VersionCheck] Release catalog request failed with status 0.
[WARN ] [VersionCheck] Release catalog response is invalid.
```

A status of `0` usually means the request never left the machine: a firewall rule or a server with
no outbound access. Set `el:versionCheck` to `false` to stop the attempt.

## Example

A `server.cfg` section for a server with no outbound internet access, diagnosing a configuration
problem:

```cfg theme={null}
setr el:versionCheck "false"
setr el:debug:channels "config"

ensure element_sdk
ensure element_map
```

## Related

* [Console messages](/support/console-messages)
* [SDK version requirements](/sdk/compatibility)
* [Supported server resources](/sdk/supported-resources)
* [Releases and versions](/concepts/releases)
