Getting Started

ScvmBot is a self-hosted Discord bot. You run it on your own machine or server — there is no public hosted instance at this time.


Prerequisites


Installation

1. Clone the repository

git clone https://github.com/ChrisMartin86/ScvmBot.git
cd ScvmBot

2. Configure your Discord bot settings

cp bot/appsettings.example.json bot/appsettings.json

Edit bot/appsettings.json with your Discord bot token:

{
  "Discord": {
    "Token": "<YOUR_DISCORD_BOT_TOKEN>",
    "GuildIds": []
  },
  "Bot": {
    "SyncCommands": false
  }
}

Configuration options:

Setting Required Notes
Token Yes Your bot’s Discord token from the Discord Developer Portal
GuildIds No Leave empty for global registration, or specify one or more Discord server IDs for guild-specific registration
SyncCommands No Set to true to auto-sync commands on startup (default: false)

Guild vs. Global Registration:

3. Run the bot

dotnet run --project bot

Docker Deployment

If you prefer Docker:

docker-compose up --build

The included docker-compose.yml and Dockerfile handle the build and runtime environment.

Environment variables you can configure:

Variable Required Notes
DISCORD_TOKEN Yes Your bot’s Discord token
DISCORD_GUILD_IDS No Comma-separated list of Discord server IDs. Leave empty for global registration
BOT_SYNC_COMMANDS No Set to true to auto-sync commands (default: true)
LOG_LEVEL_DEFAULT No Logging level (default: Information)

Example with environment variables:

DISCORD_TOKEN=your_token_here DISCORD_GUILD_IDS=123456789,987654321 docker-compose up --build

Or create a .env file:

DISCORD_TOKEN=your_token_here
DISCORD_GUILD_IDS=123456789,987654321
BOT_SYNC_COMMANDS=true

Commands

Once the bot is running and added to your Discord server:

Command Description
/generate morkborg character Generate a single MÖRK BORG character
/generate morkborg party [count] Generate a party of characters (1–10)
/hello Test bot connectivity

Characters are sent to your DMs. In-channel responses confirm delivery and provide download links for generated files.


Reporting Issues

Found a bug or have a feature request?


Contributing

ScvmBot is open source under the MIT license. The project welcomes contributions — check the GitHub repository for details.

Adding a new game system

The bot uses a plugin architecture. To add a new TTRPG system:

  1. Create a directory under bot/Games/YourSystem/
  2. Implement the IGameSystem interface
  3. Register it in Program.cs

The new system will automatically appear under /generate yoursystem. See the MÖRK BORG implementation in bot/Games/MorkBorg/ as a reference.