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

Daily Rewards Configuration

When dashboard-backed configuration is enabled, use the Daily Rewards dashboard first because live settings may be stored in MongoDB instead of reading only the local JSON5 file.

Config Files

  • Runtime config: configuration/daily_rewards.json5
  • English template: plugins/daily_rewards/data/configs/en-daily_rewards.json5
  • German template: plugins/daily_rewards/data/configs/de-daily_rewards.json5
  • Assets: plugins/daily_rewards/data/assets/

Main Settings

FieldTypeDefaultNotes
enabledbooleantrueEnables calendar updates and claims.
settings.updateTimestring00:00Local HH:mm time for the daily update.
settings.timezonestringEurope/LondonIANA timezone used for all calendar dates.
settings.yearRoundbooleantrueUses the full current month when enabled.
settings.activeMonthinteger12Event month from 1-12 when year-round mode is off.
settings.startDayinteger1First claimable day in single-month mode.
settings.endDayinteger24Last claimable day in single-month mode.
settings.cooldownMsinteger5000Short per-member button cooldown.
settings.updateCheckIntervalMsinteger60000How often the scheduler checks the local date and update time.
settings.testing.enabledbooleanfalseEnables testing behavior and the configured test day.
settings.testing.currentDayinteger1Calendar day used while testing is enabled.
permissions.dailyrewards_commandstringmanagementAthena permission required for the update command.

Image Settings

calendar_image controls the calendar background, overlay, current-day colors, closed-day colors, borders, glow, and shadow. leaderboard_image controls the leaderboard background, empty-state text, rows, ranks, names, and reward text.

All images render at 1600×1000 before Discord uploads them.

Monthly Assets

monthly_assets.backgrounds and monthly_assets.leaderboards contain one value for each key from jan through dec. Use a relative filename from the plugin’s data/assets folder or an empty string for the color-based fallback.

Absolute paths and paths that leave the assets directory are rejected.

Rarity Chances

monthly_chances contains a chance weight for every rarity and month:

  • common_rewards
  • uncommon_rewards
  • rare_rewards
  • epic_rewards
  • legendary_rewards

The values are weights. They do not need to total 100, but each active rarity must have a positive value and at least one reward. The plugin normalizes the eligible weights when it selects a reward.

Reward Pools

Each item inside rewards.<rarity> uses this shape:

{ type: "XP", // XP, COINS, ROLE, or MESSAGE amount: 100, // Used by XP and COINS content: "", // Used by MESSAGE role_id: "" // Used by ROLE }

rarities.<rarity> controls the displayed name, embed color, thumbnail image, and fallback chance. Monthly chance values are used for live selection.

Language And Placeholders

The lang section controls the command, reward responses, calendar embed, leaderboard labels, countdowns, logs, and errors. Reward messages can use:

{content}, {role}, {amount}, {user}, {username}, {usertag}, {color}, {image}, {rarity}, and {roll}.

Calendar and log messages use additional values such as {day}, {endDay}, {month}, {year}, {count}, and {bot} where supported.

The plugin ships English and German config templates. The included custom dashboard schema is currently English.