Skip to Content
Haven Documentation is the shared home for product guides, plugin setup, and release docs.

Setup

Requirements

  • AthenaBot with the core plugin enabled
  • A text channel where games and leaderboard updates can be posted
  • Bot permissions in the game channel:
    • Send Messages
    • Embed Links
    • Attach Files
    • Use External Emojis if your game copy uses custom emojis
    • Manage Messages if you want the plugin to delete !game command messages
  • Economy and XP support if you plan to use coin or XP rewards
  • Dashboard access if you want to configure the plugin from the web UI

Installation

  1. Place the plugin folder at plugins/random_games.
  2. Start AthenaBot once so it can generate configuration/randomgames.json5 and configuration/randomgames_lang.json5.
  3. AthenaBot should install required plugin dependencies automatically. If it does not, stop the bot and run:
npm install canvas axios node-schedule moment-timezone
  1. Open the dashboard, go to the randomgames configuration, and set the game channel ID.
  2. Restart AthenaBot after changing channel IDs, reward settings, leaderboard schedules, or dependency state.

If dashboard-backed config storage is enabled, use the dashboard for normal setup. Editing configuration/randomgames.json5 may not change the live config until the dashboard data is updated.

Minimum Working Config

This is the smallest shape needed for manual testing:

{ config: { embedColor: "#6F8FAF", commands: { prefix: "!", gameCommandRole: "", slash: { game: { name: "game", description: "RandomGames utilities", permissionLevel: "everyone" } } }, randomGames: { channelId: "YOUR_GAME_CHANNEL_ID", triggers: { timeInterval: 60, messageCount: 5, cooldown: 30, requireBoth: true } }, countdown: { duration: 5 }, font: "AlfaSlabOne", gameDurations: { Default: 15 }, rewards: { type: "both", coinsDestination: "balance" }, leaderboards: { enable: true, updateInterval: 30, channel: "YOUR_GAME_CHANNEL_ID", timezone: "America/Chicago" }, debug: { Enabled: false } } }

First Test

  1. Start AthenaBot.
  2. In the configured game channel, run:
!game list
  1. Start a random game:
!game random
  1. Start a specific game:
!game trivia
  1. Check a leaderboard:
/game leaderboard type: weekly

If the game starts, posts a countdown, accepts answers, and writes a leaderboard row after a win, the core flow is working.

  • Keep debug.Enabled false for production.
  • Set commands.gameCommandRole only if games should be limited to members with a specific role.
  • Use requireBoth: true if you want games to start only after both message activity and interval timing are satisfied.
  • Start with weekly and monthly announcements enabled, then enable daily announcements only if your server wants frequent winner posts.
  • Test all MVP role IDs before release. The bot can only assign roles below its highest role.