Lazybot ships two interactive minigames for QQ group chats: a song-identification challenge built on real beatmap backgrounds from players’ BP lists, and a player-name guessing game that obfuscates osu! usernames character by character. Both games are per-group and run entirely in chat — no external app required.Documentation 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.
/song — Song Title Guess
The Discord (
SlashCommandInteractionEvent) path for /song is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only.Song Guess draws beatmap backgrounds from the local asset cache. The background image for a given beatmap set must already be cached on the bot host; if the file is missing, the reveal step will fail with an error.
/song picks a random beatmap from the BP top-200 of a randomly selected linked player, crops and scales the background image, and sends it to the group. Players then type their best guess at the song title inline. Only one game can run per group at a time; a new game automatically starts if the previous one timed out.
How it works
Start a new game
Invoke The bot replies:
/song in any group chat where Lazybot is present. The bot selects a random linked user, pulls a random entry from their top-200 BP, and posts the (scaled-down) beatmap background image together with the source player’s name and the current zoom level.Submit a guess
Reply by invoking
/song again with your answer as the argument. The bot uses Jaro-Winkler similarity (threshold > 0.7) to evaluate your answer — close enough spellings are accepted.- Correct — the bot reveals the full-size background image and confirms the answer along with the beatmap ID.
- Wrong — the bot tells you to try again and suggests
/song &to get a hint.
Request a hint
Append a single
& to get a random hint. The bot reveals either the artist or the mapper name at random./song invocation after expiry, the bot announces the correct answer and immediately starts a fresh game.
Your guess for the song title. Omit entirely to start a new game. Pass
& for a hint (artist or mapper revealed at random). Pass && to end the round and reveal the answer./name — Player Name Guess (Group Edition)
Aliases: /n
The Discord (
SlashCommandInteractionEvent) path for /name is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only./name picks a random osu! username from the group’s linked-player pool, obfuscates it by replacing most characters with *, and challenges players to identify who it is. Each wrong answer reveals one additional character until either the correct name is guessed or all characters are uncovered.
Obfuscation rules (from source):
| Name length | Characters kept visible initially |
|---|---|
| ≤ 3 | 1 |
| 4–5 | 2 |
| 6–9 | 2–3 (random) |
| ≥ 10 | 3–5 (random) |
- Correct —
[Lazybot] 恭喜你,正确答案为 <name> - Wrong — one more character is revealed and the updated puzzle is shown.
- All characters revealed — the game ends automatically with the correct answer.
The osu! username you believe the scrambled name belongs to. Omit to start a new game; any non-empty value other than a correct/incorrect username forces the current game to end early (use
& as a conventional forfeit token)./namelegacy — Player Name Guess (Legacy / All-Users Edition)
Aliases: /nl
The Discord (
SlashCommandInteractionEvent) path for /namelegacy is marked as not yet implemented in the source. This command is currently available on the QQ/OneBot interface only./namelegacy is the legacy variant of the name-guessing game. Instead of pulling from players currently in the group, it queries any linked user from the entire bot database. This is useful in groups where only a few players have linked accounts, or when you want a harder challenge with a wider pool.
All game mechanics — obfuscation, hint reveals, timeout, early-end — are identical to /name.
Because
/namelegacy sources players from the full database rather than live group membership, the answer may be someone who is not in your current group chat./mod — Mod Information
Aliases: /modinfo, /mi
/mod looks up detailed information about any osu! mod and returns a rendered image panel showing what the mod does, its score multiplier, and compatibility notes. Both full names and standard two-letter abbreviations are accepted.
The mod name to look up. Accepts both full names (e.g.
Hidden) and standard abbreviations (e.g. HD). Case-insensitive./ur — Unstable Rate to Accuracy Fitting
Aliases: /accuracy
/ur estimates the theoretical best accuracy achievable for a given OD (Overall Difficulty) and UR (Unstable Rate) value, using a normal distribution model. This is useful for understanding what accuracy your tap consistency corresponds to on maps of different OD.
- OD is optional (max 13.33). If omitted, the bot calculates with a default assumption.
- UR is required. Pass the raw UR value as reported by osu! (e.g.
70,100ur).
The Overall Difficulty of the beatmap. Accepts values up to
13.33. If omitted, the bot uses a default reference value.Your Unstable Rate value as shown in osu! after a play. Plain integer or suffixed with
ur (e.g. 70 or 70ur).Command Reference
/song
Beatmap background guessing game. 5-minute timeout, one game per group. Use
& for a hint, && to forfeit. QQ/OneBot only./name · /n
Player name guess using current group members. Characters reveal one-by-one on wrong answers. 3-minute timeout. QQ/OneBot only.
/namelegacy · /nl
Legacy name guess sourced from the full bot database rather than group members only. QQ/OneBot only.
/mod · /modinfo · /mi
Rendered info panel for any osu! mod. Accepts full names and abbreviations.
/ur · /accuracy
Estimate theoretical accuracy from OD and UR via normal distribution fitting.