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

Daily Rewards Setup

Requirements

  • AthenaBot 2.2.0 or newer
  • The core plugin enabled
  • A channel for the calendar
  • An optional private channel for claim logs
  • canvas and moment-timezone (auto-installed by Athena)

Installation

  1. Place the daily_rewards folder in plugins/.
  2. Start AthenaBot once to generate configuration/daily_rewards.json5 and install its packages.
  3. Use /setup to assign daily_rewards_channel.
  4. Assign daily_rewards_log if staff should receive claim logs.
  5. Set settings.timezone and choose year-round or single-month operation.
  6. Review every reward pool and replace example role IDs or prize text.
  7. Restart AthenaBot after changing the local config.
  8. Run /dailyrewards update and test one claim with a disposable account.

Discord Permissions

AthenaBot needs:

  • View Channel, Send Messages, Embed Links, and Attach Files in the calendar channel
  • The same message permissions in the log channel when logging is enabled
  • Manage Roles for ROLE rewards
  • A bot role above every reward role it needs to assign

Calendar Mode

Use settings.yearRound to select the schedule:

ValueBehavior
trueUses every day of the current month. activeMonth, startDay, and endDay are ignored.
falseRuns only during activeMonth, from startDay through endDay.

activeMonth uses 1 for January through 12 for December.

Timezone And Update Time

Set a valid IANA timezone such as America/Chicago or Europe/London. The plugin uses that timezone for daily claims, monthly selection, countdowns, and the scheduled settings.updateTime. Invalid timezone values fall back to UTC.

Monthly Artwork

Place custom images inside:

plugins/daily_rewards/data/assets/

Then set the matching file under monthly_assets.backgrounds or monthly_assets.leaderboards. Paths must be relative to the assets folder. Leave a month blank to use the configured background color instead.

First Test

  1. Confirm /dailyrewards update posts the calendar and leaderboard.
  2. Check that the current day is highlighted and its claim button is enabled.
  3. Claim from a disposable member account.
  4. Confirm a second claim is blocked for the same date.
  5. Verify the reward, private response, leaderboard update, and log entry.

settings.testing.enabled bypasses normal stale-calendar and duplicate-claim protections. Use it only while setting up the plugin, then turn it off before members can access the calendar.