6 minutes to read
Created by
Calytic
Updated by
Calytic

Configuration

Details on how to configure uMod

Authentication

Player and group information can be stored by uMod in multiple formats

umod/auth.toml

# Driver to use for group and player data storage
driver = "protobuf"
# Default language for players and the server
language = "en"

[players]
# Enable/disable inactive player cleanup
inactive_cleanup = true
# Clean up inactive player data after period
inactive_period = "3w"

[groups]
# Enable/disable default group creation
create_default_groups = true
# Enable/disable automatic player grouping
automatic_grouping = true
# Default group for administrators
administrators = "admin"
# Default group for moderators
moderators = "moderators"
# Default group for all players
players = "default"

Available drivers

The default authentication driver is protobuf for compatibility with legacy Oxide data files.

  • database
  • json
    • File storage in umod/data directory as umod.users.json, umod.groups.json
  • protobuf
    • File storage in umod/data directory as umod.users.data, umod.groups.data

Database driver

When using the database driver, the default connection from the umod/database.toml configuration will be used.

Logging

umod/logging.toml

default = "stack"
format = "[uMod] {date|h:mm tt} [{level}] {message}"

# Aggregate multiple log channels into a single channel
[stack]
channels = [ "daily", "sentry" ]
driver = "stack"
level = "info"

# Multiple file log channel which rotates daily
[daily]
driver = "daily"
level = "info"
path = "umod_{date|yyyy-MM-dd}.log"

# Single file log channel
[single]
driver = "single"
level = "info"
path = "umod.log"

# Sentry remote error channel
[sentry]
driver = "sentry"

The logging configuration file contains some default log channels with sensible defaults. Some options are shared by all log channels, while others are specific to a specific log driver.

Available channel drivers

  • stack - An aggregate log channel
  • single - A single file logger
  • daily - A rotating log driver that rotates daily
  • console - A console logger (used for testing) that prints to Console
  • unity - A unity console logger
  • sentry - A remote logger that integrates with sentry.io

The default stack channel uses a stack logger to combine multiple log channels into a single channel. When a stack logger logs a message, the message is broadcast to all of the loggers specified by the channels option.

The default stack channels option may vary depending on game engine and platform.

All logging messages are acompanied by a severity, debug being the lowest and emergency the highest. The severity of messages logged by a logger may be configured by the level option. The default log level for most loggers is info which logs informational messages and all more important messages, but excludes debug messages.

Log levels

  1. emergency
  2. alert
  3. critical
  4. error
  5. warning
  6. notice
  7. info
  8. debug

Sentry logger

By default the Sentry driver included with uMod will report exceptions to uMod unless (exception_reporting) telemetry is disabled.

Configure a sentry driver with a custom Sentry project.

[sentry]
driver = "sentry"
uri = "https://sentry.io"
project = #######
key = "SentryKey"

Plugins

umod/plugins.toml

[commands]
# Prefixes used to trigger chat commands
chat_command_prefixes = [ '/', '!' ]
# Enable/disable showing if command is not found
unknown_command_replies = true
# Enable/disable showing if command is denied by a gate or permission
denied_command_replies = true

[security]
# Enable/disable sandboxing of plugins for security
sandbox_security = true

[watchers]
# Enable/disable automatic configuration file reloading
config_watchers = false
# Enable/disable automatic plugin loading/reloading
plugin_watchers = true
# List of directories to load plugins from
plugin_directories = [ "universal" ]

Sandbox

Disabling the plugin sandbox may be risky and some GSP's may enforce the sandbox. Always verify the source of plugins before installing them, do not install plugins from untrusted sources.

Individual plugin configuration

Many plugins include custom configurations files which are located in umod/plugins directory and created automatically when a plugin is installed. A plugin configuration file may be in JSON or TOML format.

Web

umod/web.toml

timeout = 30
endpoint = ""

Database

The database configuration is used by the authentication driver and by plugins with named connection options.

umod/database.toml

default = "sqlite"
timeout = 30

# SQLite embedded relational database
[sqlite]
driver = "sqlite"
database = "umod.db"
persistent = true

# MySQL remote relational database
[mysql]
driver = "mysql"
database = "umod"
host = "localhost"
port = 3306
username = "user"
password = "password"
protocol = "socket"
charset = "utf8"
persistent = true

Telemetry

Help us help you by allowing the collection of non-identifying usage details and error reporting.

umod/telemetry.toml

[analytics]
# Allow sending helpful, non-identifying usage information
analytics = true

[reporting]
# Allow sending critical exceptions to developers
exception_reporting = true