Bdayblaze help and FAQ

Everything admins and members need, without burying the bot under a wall of docs.

Bdayblaze is a Discord-native birthday bot for servers that want polished celebrations, private operator controls, and practical reliability on lightweight infrastructure. This page explains setup, Studio, media rules, anniversaries, privacy, and the most common troubleshooting paths.

What Bdayblaze is

A privacy-first Discord birthday bot with public celebration posts, private previews, and admin controls that stay inside Discord.

Who it is for

Community servers, friend groups, gaming servers, and admin teams that want celebration polish without a noisy web dashboard.

What stands out

Birthday Capsules, Quests, Timeline cards, anniversaries, recurring annual events, media validation, and restart-safe scheduling.

How it stays practical

Async-first runtime, bounded recovery, low-noise health checks, and no Redis, Celery, or extra worker stack.

Get started fast

  1. 1

    Install the bot

    Add Bdayblaze to the server, then confirm it can see and send messages in the channels you plan to use.

  2. 2

    Open setup

    Use /birthdayadmin setup to choose timezone, routing, eligibility, role behavior, and delivery safety.

  3. 3

    Open Studio

    Use /birthdayadmin studio to manage celebration copy, style, previews, annual events, and the experience-layer tools.

  4. 4

    Run a dry run

    Use /birthdayadmin test-message or Studio preview before treating the live delivery path as ready.

Core commands

Member commands

  • /birthday set, /birthday view, /birthday remove, /birthday privacy
  • /birthday today, /birthday next, /birthday upcoming, /birthday month, /birthday twins, /birthday list
  • /birthday timeline for your timeline or a visible member's profile, countdown, capsule reveal, and history
  • /birthday wish add|list|remove, /birthday capsule preview for your own capsule, /birthday quest status|check-in

Admin commands

  • /birthdayadmin setup, /birthdayadmin studio, /birthdayadmin test-message, /birthdayadmin health
  • /birthdayadmin analytics, /birthdayadmin export, /birthdayadmin import
  • /birthdayadmin member view|set|remove, /birthdayadmin month, /birthdayadmin list, /birthdayadmin timeline
  • /birthdayadmin anniversary settings|sync, /birthdayadmin event add|edit|list|remove, /birthdayadmin surprise queue|fulfill, /birthdayadmin wish remove, /birthdayadmin capsule preview

Admin tools live under /birthdayadmin so the public /birthday picker stays clean for members.

Studio and setup workflow

Birthday Setup

Best for routing, timezone defaults, eligibility, role assignment, anniversary enablement, and safety-oriented operator basics.

Celebration Studio

Best for templates, media, global look, previews, recurring events, server anniversary controls, capsules, quests, and surprises.

Previews

Previews never ping members. They show the selected surface, readiness, and the same compact live route/media truth used across Setup, Studio, and Health.

Health

/birthdayadmin health checks channels, permissions, roles, scheduler lag, recent failures, template issues, and live surface media problems.

Route and media behavior

  • Route, image, and thumbnail resolve independently. A surface can inherit one field and override another.
  • Birthday announcement is the default source for member anniversaries, server anniversaries, and recurring annual events.
  • Inheritance applies only when the target field is truly unset. A saved custom value, even a bad one, does not silently fall back.
  • Server anniversaries and recurring annual events can use an event-level channel override for route only. That override does not replace image or thumbnail.
  • Setup, Studio, previews, and health lead with the live route, media source, and health state, with diagnostics only when needed.
  • Media Tools validates direct HTTPS image, GIF, and WebP URLs. Failed saves never wipe the last saved value.
  • Validate current checks the effective live image and thumbnail, including inherited media, without changing the saved settings.

Anniversaries and recurring events

Member anniversary

Uses tracked join data for eligible members. The dedicated years placeholder is {anniversary.years}.

Server anniversary

Uses the server creation date by default or a custom month/day override. The dedicated years placeholder is {server_anniversary.years_since_creation}.

Recurring annual event

For custom yearly dates such as server birthdays, launch anniversaries, or community traditions. Use event placeholders like {event.name} and {event.date}.

Placeholder validity

{event.name}, {event.date}, and {event.kind} work on member anniversaries, server anniversaries, and recurring annual events only.

Privacy basics

  • Birthday data stays scoped to the current server membership rather than becoming a global cross-server profile.
  • Month and day are required. Birth year is optional.
  • Members can remove their own record with /birthday remove. Admins can also remove records privately.
  • Birthday Capsule wishes stay private until reveal.
  • Blocked Studio content and blocked media are not echoed back into logs as raw text.
  • For the full policy, read the Privacy Policy.

Reliability and recovery notes

  • Scheduling is restart-safe: events are persisted before delivery work runs.
  • Recovery is bounded. If the bot comes back late, Bdayblaze may recover the celebration with a late-delivery note instead of pretending it happened on time.
  • Health checks call out missing channels, missing permissions, bad role hierarchy, invalid media, and recent delivery failures.
  • External media hosts, Discord availability, and hosting interruptions can still block previews or deliveries. The bot aims to fail clearly instead of hiding that state.

FAQ and troubleshooting

Why did my anniversary use the birthday image?

That surface inherits image and thumbnail per field from Birthday announcement when its own field is unset. Studio shows the live result first and keeps source details close by.

Why did a bad image not fall back to the birthday default?

Inheritance only applies when the target field is unset. A saved bad URL stays the effective custom value until you clear or replace it.

Why is preview blocked when readiness looked fine before?

Preview catches template, media, and Discord render issues directly. Treat preview success as the final operator check before trusting live delivery.

What should I do if Health says a route or media source is inherited?

That means the effective live value comes from the Birthday announcement default. Fix the birthday default or save a surface-specific override.

Why can't I use {anniversary.years} in a server anniversary?

Member anniversaries and server anniversaries are separate surfaces. Use {server_anniversary.years_since_creation} for server anniversaries.