Skip to main content

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.

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.

/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
1

Start a new game

Invoke /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.
/song
The bot replies:
[Lazybot] 取自 <PlayerName> 的BP前200
缩放等级: <level>
2

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.
/song  <your guess here>
  • 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.
If the guess text is more than 1.5× the length of the actual title, it is rejected outright.
3

Request a hint

Append a single & to get a random hint. The bot reveals either the artist or the mapper name at random.
/song &
4

End the game early

Append && to forfeit and reveal the answer immediately.
/song &&
The bot posts the full-size background together with the correct title and BID.
Timeout behaviour — games automatically expire after 5 minutes. On the next /song invocation after expiry, the bot announces the correct answer and immediately starts a fresh game.
answer
string
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 (and its alias /n) draws only from players who are currently in the group and have an osu! account linked via Lazybot. This makes it a more social experience — everyone in the room is a potential answer.
/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 lengthCharacters kept visible initially
≤ 31
4–52
6–92–3 (random)
≥ 103–5 (random)
Spaces are always preserved. Each wrong guess reveals one additional masked character at random. Usage
/name
Start a new game. The bot posts the obfuscated name, e.g.:
[Lazybot] 您的题目是  A***i*
/name  <username>
Submit a guess. Comparison is case-insensitive and trimmed.
  • 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.
/name &
End the round early (any non-empty trailing token triggers early termination). Timeout — games expire after 3 minutes. The next invocation announces the answer and starts fresh.
guess
string
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.
/nl
/nl  <username>
/nl &
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.
/mod <mod name or abbreviation>
Examples
/mod Hidden
/mod HD
/mod HR
/mod DT
/mod FL
If the mod name is unrecognised or the corresponding info page has not been created yet, the bot returns an error:
要么你输入的Mod名有问题,要么此Mod的页面还未创建
mod
string
required
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.
/ur <OD> <UR>
/ur od9 100ur
/accuracy 70
  • 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 bot replies with the estimated accuracy as a text message.
OD
number
The Overall Difficulty of the beatmap. Accepts values up to 13.33. If omitted, the bot uses a default reference value.
UR
number
required
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.

Build docs developers (and LLMs) love