MMOLove Docs

Heartkeeper Discord bot

The keeper of your server's hearts — votes, streaks and rankings, live in your Discord. Install from your dashboard, configure milestone announcements, and give your community slash commands that show your live MMOLove standing.

Heartkeeper is the official MMOLove Discord bot — the keeper of your server's hearts: votes, streaks and rankings, live in your Discord. It reads your listing's live MMOLove data, so there is nothing to install on your game server: add the bot, pick a channel, done. Free for every listed server.

What it does:

  • Slash commands your community can use anywhere in your Discord — live rank, hearts, vote links with personal cooldowns, streaks and Loyalty Scores.
  • Milestone announcements — a celebration embed in a channel you pick each time your monthly hearts pass another milestone (every 50/100/250/500 hearts, your choice).
  • Spotlight announcements — a once-per-day post when your server is the global Spotlight winner on the MMOLove homepage.

Install

The install starts from your dashboard (not from a public bot listing) so the bot is linked to your listing from the first second:

  1. Open your server's dashboard on MMOLove and head to the Integration tab.
  2. In the Heartkeeper — Discord bot card, click Add to Discord.
  3. Discord asks which of your guilds to add the bot to — pick one and authorize. (You need Manage Server permission in that guild, and you must be the listing's verified owner on MMOLove.)
  4. You land back on the Integration tab with a success banner. Pick an announce channel, tune the milestone settings, and Save.

One Discord guild links to one MMOLove server. Re-running the install re-points the guild — the last install wins — so moving the bot between listings is just installing again from the other listing's dashboard.

Commands

All commands are guild slash commands (they don't work in DMs). This table is kept in sync with the registered command set:

CommandWhat it shows
/voteVote for this server on mmolove — shows whether your daily heart is ready
/rankThis server's live rank on mmolove and the hearts needed to climb
/heartsMonthly and all-time hearts for this server on mmolove
/streakYour personal vote streak with this server
/loyaltyYour Loyalty Score and rank title with this server
/serverThis server's mmolove listing card — rank, hearts, tags and links
/heartkeeperAbout Heartkeeper — commands, what's linked and where to configure it

/streak and /loyalty are personal: they need the caller's Discord account to be linked to their MMOLove account (Profile → Security on mmolove). Unlinked callers get a friendly pointer instead of an error.

Configuration

Everything is configured from the dashboard's Integration tab — there are no in-Discord config commands to memorise:

OptionDefaultMeaning
Announce channelnoneThe text channel milestone + Spotlight embeds are posted to. No channel = no announcements (commands still work).
Announce heart milestonesonToggle the milestone celebration posts.
Milestone step100Announce each time monthly hearts pass another multiple of 50, 100, 250 or 500.

Milestones track monthly hearts and reset with the monthly ranking period. Announcements are checked every 15 minutes, so a milestone post can trail the crossing vote by a few minutes.

Disconnect (same card) makes Heartkeeper forget the guild ↔ listing link. To fully remove the bot, also kick it from the guild in Discord.

Free vs Plus

Heartkeeper's core is free for every listed server. A set of community-growth features ships with Plus — all marked coming soon:

FeatureFreePlus
All slash commands
Milestone announcements
Spotlight-win announcements
DM vote reminders when a supporter's heart is ready🔜
Linked Role tiers for streak & Loyalty milestones🔜
Rich weekly top-voter leaderboards🔜
Custom embed branding🔜

Troubleshooting

Slash commands don't appear in my guild. Global commands can take up to an hour to propagate after first registration (they appear instantly in guilds the bot was just added to). If you self-host the platform, make sure the command set has been registered: pnpm tsx scripts/discord/register-commands.ts (needs DISCORD_APP_ID + DISCORD_BOT_TOKEN).

Commands fail with "This interaction failed". The Discord application's Interactions Endpoint URL must point at the deployed platform — https://mmolove.gg/api/discord/interactions — under Discord Developer Portal → your app → General Information. Discord verifies the endpoint (signature challenge) when you save it.

Milestone/Spotlight posts never arrive. Three things to check on the Integration tab and in Discord:

  1. An announce channel is selected and saved (no channel = announcements off).
  2. Heartkeeper has View Channel + Send Messages + Embed Links permission in that channel — a kicked-and-reinvited bot or a tightened channel override is the usual culprit.
  3. The milestones toggle is on (Spotlight posts only need the channel).

The channel picker says it can't reach my Discord. The bot was probably removed from the guild. Re-invite it with the Add to Discord button — the existing configuration is kept.

I moved my community to a new Discord server. Just run the install again from the dashboard and pick the new guild, then choose a channel and save. The old guild's link is replaced.

On this page