DiscordTools

v1.4.2·Updated 2026-09-09

Client/server tools for collecting full Valheim client logs on a dedicated server.

About this mod Author’s original text

DiscordTools

A BepInEx client/server mod for collecting full client LogOutput.log files on a dedicated Valheim server.

Features

  • Server command:

client-logs {playerNameOrSteamID}

  • Client uploads on logout.
  • Client attempts upload on normal quit.
  • Full log file is gzip-compressed before transfer.
  • Server stores logs by player name and stable player ID for later lookup.
  • Server writes JSON metadata and lookup indexes.
  • Server uploads received logs as.log files to any compatible Discord bot API when configured.

Discord linking, creative inventory, creative biome override, and siege portal client bridge behavior live in PraetorisClient.

How to use

  • Requires a Discord bot with a compatible upload API if you want logs posted to Discord.
  • Install DiscordTools on the dedicated server and on every client that should be able to send logs.
  • Set DISCORDTOOLS_BOT_API_URL and DISCORDTOOLS_BOT_API_KEY on the dedicated server.
  • Start the server and have the player join.
  • Run client-logs {playerNameOrSteamID} on the server to request that player's log.
  • Logs are saved on the server disk and, when configured, sent to Discord as a.log attachment.

Server Storage

Logs are stored under BepInEx/client-logs by default:

client-logs/

players/{playerName}_{playerId}/

player.json

latest.json

logs/{yyyy-MM}/

{timestamp}_{reason}_{playerName}_LogOutput.log.gz

{timestamp}_{reason}_{playerName}_LogOutput.json

index/

players.json

recent.json

incoming/

bot-upload-failed/

Build

dotnet build DiscordTools.csproj

The built DLL is written to bin/Debug/DiscordTools.dll.

Configuration

The plugin GUID is warpalicious.DiscordTools. Configure the generated file:

BepInEx/config/warpalicious.DiscordTools.cfg

Clients do not need the bot URL or API key. Keep bot credentials server-only.

Preferred dedicated-server setup:

export DISCORDTOOLS_BOT_API_URL="

export DISCORDTOOLS_BOT_API_KEY="shared-secret"

The BepInEx config can also be used for private dedicated-server installs, but do not ship a config containing ApiKey to clients:

[BotApi]

PostToBotApi = true

ApiUrl =

ApiKey = shared-secret

Fresh installs default ApiUrl and ApiKey to empty values.

Archived logs are retained for 30 days by default. To keep logs forever, set RetentionDays to 0.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.

Dependencies

Install these first, or the mod will not work:

denikson-BepInExPack_Valheim

File & checksum

Filename
DiscordTools-1.4.2.zip
File size
59.4 KiB