Village Vote Dashboard Documentation

Overview

The /dashboard command gives moderators a secure, time-limited link to a web-based game dashboard for monitoring and managing an active game.

The dashboard is split into two tabs:


/dashboard Command

Generate a personal dashboard link for your server's active game.

Usage

/dashboard

No arguments are required. The bot replies with a private link that expires in 5 minutes.

Requirements

Managed games: if a managed game (started with /managedgame) is running on the server, /dashboard returns a link to the managed-game dashboard instead of the classic dashboard described below.

Overview Tab

The Overview tab displays the current state of the game at a glance.

Game Overview Section

A summary grid at the top shows key game stats:

┌─────────────────┬───────────────────────────────────────┐
│ Field           │ Description                           │
├─────────────────┼───────────────────────────────────────┤
│ Game Started    │ Date the game began (if set)          │
│ Total Alive     │ Number of players currently alive     │
│ [Team] Alive    │ Alive / total count per team          │
└─────────────────┴───────────────────────────────────────┘

One "alive" stat card is shown for each team configured in the game, alongside the overall total.

Players Section

Players are listed grouped by team. Each team shows a header with the team name and alive count, followed by a row for each player.

Player row fields:

┌──────────────┬────────────────────────────────────────────────────────┐
│ Field        │ Description                                            │
├──────────────┼────────────────────────────────────────────────────────┤
│ Avatar       │ Player's Discord avatar (or initial fallback)          │
│ Name         │ Player's display name                                  │
│ Status       │ "Alive" (green) or "Dead" (red); dead rows are dimmed  │
│ Location     │ Dropdown of the game's locations (only when location   │
│              │ tracking is on); a badge shows a pending travel request│
│ Action badges│ One badge per game action category (see below)         │
└──────────────┴────────────────────────────────────────────────────────┘

Location dropdown (location tracking on): the player's current location, selectable. Changing it moves the player immediately; a check mark confirms the save, an error reverts the dropdown. The dropdown lists every location, including ones closed to player travel (marked 🔒), because the lock is a player restriction, not a moderator one. Dead rows keep the dropdown so a moderator can stage where a resurrected player appears.

Moves from the dashboard are silent by default. Tick Notify players when I move them above the player list to tell the player in their channel; the checkbox is off on every page load. Any pending travel request the moved player had is marked superseded and its game log message edited to say so.

Travel badge: → Forest next to the dropdown means the player has asked to travel there; the colour follows the request state (orange pending, green accepted or staying, red denied).

Action badges show the current game action for each category:

Category filter bar:

If the game has multiple action categories configured, a filter bar appears above the player list. Click a category name to show only that category's action badges across all players. Click "All" to show all categories.

Location filter bar:

When location tracking is on, a second row of chips lists each location with its alive-player count. Click one to show only the players there; "Everywhere" clears the filter. The selection is kept in the URL hash like the category filter.

Game Controls Section

📍 Locations

Edits the game's location list while the game runs. Everything here is applied in one step when you press Save locations.

📍 Locations                                            [ Track player locations ☑ ]

│ [Town Square      ]  Default   4 players     ☑ Travel     ▲ ▼ ✕
│ [Forest           ]            2 players     ☑ Travel     ▲ ▼ ✕
│ [Crypt            ]            1 player      ☐ Travel     ▲ ▼ ✕
[ e.g., Old Mill              ] [+ Add]
☐ Notify players moved by this change               [ Save locations ]  ● unsaved changes

At most 24 locations are allowed. Every change is summarised in the game log channel.

When the game was created with Show locations as Discord roles, the editor keeps the roles in step too: renames rename the role, new locations get a role, removed locations lose theirs, and relocated players are moved to the right role. New and renamed names are checked against the server's existing roles first; a collision rejects the whole save with the conflicting name so nothing is half-applied. Role problems (for example a missing permission) appear as warnings in the save result; the location change itself still applies. Turning tracking off deletes the roles.

Team Ordering

Teams are listed in the order they appear in the server's teamChannelsList configuration. Teams not in that list follow alphabetically. Players not assigned to any team appear in a "No Team" group at the bottom.


Activity Tab

The Activity tab displays message activity and interaction data across monitored game channels. All data is loaded dynamically from the server.

Filters

┌──────────────┬───────────────────────────────────────────────────────────────────┐
│ Filter       │ Options / Description                                             │
├──────────────┼───────────────────────────────────────────────────────────────────┤
│ Graph        │ Messages — bar/line chart of message counts                       │
│              │ Replies — force-directed graph of reply interactions               │
├──────────────┼───────────────────────────────────────────────────────────────────┤
│ Time         │ Full game — entire game from start date to now                    │
│              │ Today / Yesterday / YYYY-MM-DD — single-day hourly view           │
├──────────────┼───────────────────────────────────────────────────────────────────┤
│ Day starts   │ The hour that defines the start of a "day" (12am–11pm)            │
│              │ Useful for games that run on a non-midnight schedule               │
├──────────────┼───────────────────────────────────────────────────────────────────┤
│ Channel      │ All channels (default) or a specific monitored channel            │
└──────────────┴───────────────────────────────────────────────────────────────────┘

Filter selections are saved in the URL hash so the view can be bookmarked or shared.

Messages Chart

Displays message counts for each player over the selected time period.

Full game view (multi-day):

Single-day view (hourly):

Tip: The full game view automatically switches to hourly format when the game started today (less than one day of data).

Reply Interactions Graph

Displays a force-directed network graph of reply relationships between players.

Note: Only players registered in the game appear as nodes. Replies to non-players or to players outside the game are excluded.

Activity Warnings

Below the chart, a table lists players who may not be meeting minimum activity requirements for the selected time period.

Thresholds (per day or time window):

┌─────────────────────┬───────────────────────────────────┐
│ Requirement         │ Threshold                         │
├─────────────────────┼───────────────────────────────────┤
│ Minimum messages    │ 10 messages                       │
│ Minimum active hours│ Activity across 3 distinct hours  │
└─────────────────────┴───────────────────────────────────┘

A player is flagged if they fall below either threshold on a given day.

Warning table columns:

┌──────────┬───────────────────────────────────────────────────────────┐
│ Column   │ Description                                               │
├──────────┼───────────────────────────────────────────────────────────┤
│ Player   │ Player's display name                                     │
│ Date     │ The day the warning applies to (YYYY-MM-DD)               │
│ Messages │ Number of messages sent that day                          │
│ Hours    │ Number of distinct hours the player was active            │
│ Warning  │ Description of what threshold was not met                 │
└──────────┴───────────────────────────────────────────────────────────┘

Warnings are sorted by date (most recent first), then alphabetically by player name.

Note: Only currently alive players are checked for activity warnings. Dead players are excluded.

Note: Activity warnings are only shown when the Messages graph is selected. They are hidden when viewing Reply Interactions.


Data Scope

The dashboard pulls data from messages recorded since the game's start timestamp. Messages before the game started are excluded from all charts and warnings.


Tips