Server configuration
Configure your Vital.server at runtime via config.yaml.
Overview
Every Vital.server ships with a config.yaml in its root directory, pre-populated with defaults. It is the single source of truth for runtime behaviour — modify the values, restart the server, and changes take effect immediately.
If the config file is absent or malformed, the server falls back to built-in defaults and emits a diagnostic to the console. A missing file is non-fatal.
Configuration
Default configuration as shipped with every Vital.server.
# =============================================================================
# Vital Sandbox — Server Configuration
# =============================================================================
server:
name: "Vital Sandbox Server"
version: "1.0.0"
description: "A Vital Sandbox server"
network:
port: 7777
max_peers: 32
http:
port: 7778
discord:
enabled: false
application_id: "0"
state: "Playing on {server_name}"
details: "{player_count}/{max_players} players"
large_image_key: ""
large_image_text: ""
small_image_key: ""
small_image_text: ""
social:
discord_invite: ""
website: ""Server
Controls the display name, version string, and description exposed to clients and integrations.
server:
name: "Vital Sandbox Server"
version: "1.0.0"
description: "A Vital Sandbox server"| Key | Type | Default | Description |
|---|---|---|---|
name | string | "Vital Sandbox Server" | Display name shown in the client UI and Discord Rich Presence |
version | string | "1.0.0" | Version identifier used for compatibility checks |
description | string | "" | Optional description shown in the client UI |
Network
Controls the ENet multiplayer transport layer. Clients connect to the port defined here.
network:
port: 7777
max_peers: 32Both values directly affect client connectivity — change them with care.
port— Clients must target this exact port to establish a connection. Any change requires updating client configuration and firewall rules accordinglymax_peers— Once the limit is reached, incoming connections are refused until a slot becomes available
| Key | Type | Default | Description |
|---|---|---|---|
port | integer | 7777 | TCP port the ENet multiplayer server listens on |
max_peers | integer | 32 | Maximum number of concurrent client connections |
HTTP
Controls the asset delivery server. Clients fetch assets such as models and textures from this port at runtime.
http:
port: 7778The HTTP server operates independently of the ENet transport layer.
- Both ports must be reachable — clients require the network port to connect and the HTTP port to stream assets; blocking either will result in a failed session
- Separate firewall rules — ensure both ports are open in your firewall and, if applicable, forwarded correctly in your network configuration
| Key | Type | Default | Description |
|---|---|---|---|
port | integer | 7778 | Port the HTTP asset delivery server listens on |
Discord
Configures Discord Rich Presence. This section only applies to client builds — it has no effect on server-only deployments.
discord:
enabled: false
application_id: "0"
state: "Playing on {server_name}"
details: "{player_count}/{max_players} players"
large_image_key: ""
large_image_text: ""
small_image_key: ""
small_image_text: ""Image asset keys must be registered before use.
- Register assets — upload and name your images in the Discord Developer Portal under Rich Presence → Art Assets
application_id— must be a valid numeric string; non-numeric or empty values are treated as0and Rich Presence will not initialise- Placeholders —
stateanddetailssupport{server_name},{player_count}, and{max_players}, resolved at runtime
| Key | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Enables or disables Discord Rich Presence |
application_id | string | "0" | Application ID from the Discord Developer Portal — must be numeric |
state | string | "Playing on {server_name}" | State line displayed below the game name |
details | string | "{player_count}/{max_players} players" | Details line displayed above the state |
large_image_key | string | "" | Asset key for the large Rich Presence image |
large_image_text | string | "" | Tooltip text for the large image |
small_image_key | string | "" | Asset key for the small Rich Presence image |
small_image_text | string | "" | Tooltip text for the small image |
The state and details fields support the following runtime placeholders:
| Placeholder | Resolves To |
|---|---|
{server_name} | Value of server.name |
{player_count} | Current number of connected players |
{max_players} | Value of network.max_peers |
Social
Defines community links surfaced in the client UI.
social:
discord_invite: ""
website: ""| Key | Type | Default | Description |
|---|---|---|---|
discord_invite | string | "" | Discord server invite URL |
website | string | "" | Website URL |