Badge challenges are curated map packs that reward a badge upon completion. Each challenge contains a set of beatmaps, and every beatmap carries its own pass requirements — minimum accuracy, minimum combo, maximum miss count, and allowed mods. When you have submitted a qualifying score for every map in a challenge, a redemption key for the linked badge is issued to you automatically. You then useDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Apeuriox/lazybot-renewal/llms.txt
Use this file to discover all available pages before exploring further.
/redeem to claim the badge.
/challenge (/cl) — Browse Active Challenges
Displays all currently active challenges as an image panel. No parameters are needed; the command renders an overview of every challenge that has not yet expired.
The Discord (
SlashCommandInteractionEvent) path for /challenge is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only./cr / /cd — View Challenge Requirements
Shows the full list of beatmaps and their pass requirements for a specific challenge, rendered as an image.
The numeric ID of the challenge, as shown in the
/challenge overview.The Discord (
SlashCommandInteractionEvent) path for /cr / /cd is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only.| Field | Meaning |
|---|---|
| Title + Beatmap ID | Identifies the map |
| Accuracy | Minimum accuracy required (e.g. ≥ 98.00%) |
| Combo | Minimum max combo required |
| Max Miss | Maximum misses allowed |
| Mod restriction | Operator-prefixed mod rule (see below) |
mods_allowed field):
| Prefix | Rule |
|---|---|
= | Exact mod set match |
~ | Must contain these mods |
! | These mods must not appear |
^ | Any of these mods are allowed |
| (none) | Must include these mods |
null | No-mod only |
/submit — Submit a Score to a Challenge
Submits your best score for a specified beatmap within a challenge. Lazybot fetches the score from the osu! API and checks it against every requirement defined in badge_challenge_map for that beatmap.
The ID of the challenge you are submitting to.
The osu! beatmap ID of the map you are submitting.
badge_challenge_submission_details.
The Discord (
SlashCommandInteractionEvent) path for /submit is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only.Score verification is performed live against the osu! API at submission time. Make sure the score you want to submit is already set on your osu! account before running
/submit./genkey — Generate a Redemption Key (Admin)
Creates one or more redemption keys tied to a specific badge. Keys have a configurable use limit and expiry time.
The ID of the badge these keys will unlock.
If
GenMultiKey is false, this is the maximum number of times a single key can be redeemed. If GenMultiKey is true, this many individual single-use keys are generated instead.How long the key(s) remain valid, in seconds from the moment of creation.
true — generate MaxUses separate keys, each redeemable once.false — generate a single key redeemable up to MaxUses times.3, each valid for 10 days (864 000 seconds).
The Discord (
SlashCommandInteractionEvent) path for /genkey is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only./redeem — Redeem a Key for a Badge
Redeems a one-time key to add the linked badge to your collection. The key must match the format AAAA-BBBB-CCCC-DDDD-EEEE (five groups of four uppercase alphanumeric characters separated by hyphens).
The redemption key in
AAAA-BBBB-CCCC-DDDD-EEEE format.^[A-Z0-9]{4}(-[A-Z0-9]{4}){4}$ before processing. After a successful redemption, the key’s used_count is incremented and it is deactivated (is_active = 0) once max_uses is reached.
The Discord (
SlashCommandInteractionEvent) path for /redeem is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only.Full Challenge Completion Flow
Browse Active Challenges
Run
/challenge (or /cl) to see all currently active challenges and their IDs.Inspect Requirements
Run
/cr <challengeId> (or /cd <challengeId>) to view the full beatmap list and pass requirements for the challenge you want to attempt.Set Scores on osu!
Play each map on your osu! account, meeting the accuracy, combo, miss, and mod restrictions shown in the requirements.
Submit Each Map
For every beatmap you’ve passed, run
/submit <challengeId> <beatmapId>. Lazybot verifies your score against the osu! API and logs it on success.Receive Your Key
Once all maps in the challenge are submitted and verified, Lazybot generates a redemption key for the linked badge.
Data Model
| Table | Key Fields | Purpose |
|---|---|---|
badge_challenge_definition | id, name, badge_id, description, create_time, expire_time, is_active | Defines each challenge and the badge it awards |
badge_challenge_map | challenge_id, beatmap_id, required_acc, required_combo, max_accepted_miss, mods_allowed, mode, title_with_version | Individual beatmap entries within a challenge, including all pass requirements |
badge_challenge_submission_details | challenge_id, beatmap_id, player_id, score_id, achieved_acc, achieved_combo, miss_count, mod_used, create_time | Log of verified score submissions against challenge maps |
badge_key | cdkey, badge_id, max_uses, used_count, is_active, created_at, expired_at | Redemption keys, their linked badge, usage counters, and validity window |