Vital.sandbox

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.server/config.yaml
# =============================================================================
# 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"
KeyTypeDefaultDescription
namestring"Vital Sandbox Server"Display name shown in the client UI and Discord Rich Presence
versionstring"1.0.0"Version identifier used for compatibility checks
descriptionstring""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: 32

Both 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 accordingly
  • max_peers — Once the limit is reached, incoming connections are refused until a slot becomes available
KeyTypeDefaultDescription
portinteger7777TCP port the ENet multiplayer server listens on
max_peersinteger32Maximum 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: 7778

The 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
KeyTypeDefaultDescription
portinteger7778Port 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 as 0 and Rich Presence will not initialise
  • Placeholdersstate and details support {server_name}, {player_count}, and {max_players}, resolved at runtime
KeyTypeDefaultDescription
enabledbooleanfalseEnables or disables Discord Rich Presence
application_idstring"0"Application ID from the Discord Developer Portal — must be numeric
statestring"Playing on {server_name}"State line displayed below the game name
detailsstring"{player_count}/{max_players} players"Details line displayed above the state
large_image_keystring""Asset key for the large Rich Presence image
large_image_textstring""Tooltip text for the large image
small_image_keystring""Asset key for the small Rich Presence image
small_image_textstring""Tooltip text for the small image

The state and details fields support the following runtime placeholders:

PlaceholderResolves 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: ""
KeyTypeDefaultDescription
discord_invitestring""Discord server invite URL
websitestring""Website URL

On this page