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:
- Overview - Player status, team composition, and current game actions
- Activity - Message activity charts, reply interaction graph, and activity warnings
/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
- Must be a server moderator
- The link is personal — each moderator must run the command themselves
- The link provides access to the dashboard for your specific server
Managed games: if a managed game (started with
/managedgame) is running on the server,/dashboardreturns 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 │
│ Action badges│ One badge per game action category (see below) │
└──────────────┴────────────────────────────────────────────────────────┘
Action badges show the current game action for each category:
- A badge with a green border and colored text means the player has submitted an action for that category
- A faded badge with italic "No action" means no action has been submitted yet
- Badge label format:
Category: Action text(e.g.,Night: Investigate Alice)
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.
Game Controls Section
Reserved for future game control options.
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):
- Line chart with one colored line per player
- X-axis: dates from game start to today
- Y-axis: number of messages
- Click legend items to show/hide individual players
Single-day view (hourly):
- Line chart with one colored line per player
- X-axis: 24 hours (starting from the "Day starts" hour)
- Y-axis: number of messages in that hour
- Title shows the hour range when a custom start hour is set (e.g.,
Messages per Hour (9am–8am))
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.
- Each node is a player (shown with avatar or colored circle)
- Arrows point from the replier to the original message author
- Arrow thickness reflects the number of replies between those two players
- Only players who have replied to or received replies from another player appear in the graph
- Hover over a node or link to see interaction details
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.
- Both the main chat server and the role server are included in activity counts
- The channel filter narrows results to a single Discord channel
- The "Day starts" hour offsets daily grouping so a game-day that runs from 9am to 9am is counted correctly
Tips
- Bookmark your view — filter selections are preserved in the URL hash, so you can bookmark a specific channel or day view
- Check activity before eliminations — use the Activity Warnings table to quickly identify players who may have been inactive before a day's vote
- Use Reply Interactions to spot alliances — dense reply clusters between players can indicate coordinated discussion
- Switch to hourly view — select Today or Yesterday to see hour-by-hour message patterns for a single day
- Filter by channel — narrow activity data to a specific game channel (e.g., a town square or team channel) to analyze communication in that space