Skip to content

AWMC QueryBot Command Reference ​

This page describes account, upload, BREAK, and admin commands. For full query commands such as song lookup, B50, song guessing, and data reports, see Command Help.

Version note

Account features have been merged into QueryBot. The old Koishi maiBot's priority card keys, unbind cards, account locking, protection mode, and account read/write features have migrated to the AWMC Gateway API; the bulk upsert-all is not exposed to users.

Account write operations (scores, items, profile edits) have been upgraded to the AWMC API v2-3 session model: the Bot submits a job, the server executes it in the background, and the Bot automatically confirms and polls the server session. Users must still confirm the operation summary and risks before submission. See Section 8.

1. General Rules ​

  • The command prefix is determined by the platform configuration; this page writes no / by default.
  • Account and upload flows reference the triggering message; since the original message containing sensitive credentials is recalled first, group chat results use @user markers instead.
  • Interactive flows generally support 取消, cancel, q, or 退出 to cancel.
  • QR codes, official QR links, and Tokens are all sensitive credentials; the Bot tries to recall them first.
  • External calls generate a Ref_ID; if something goes wrong, provide it to an admin instead of sending a Token or UID.

2. Agreement & Account ​

CommandDescription
用户协议View the current agreement link and confirmation method
同意用户协议 <full confirmation phrase>Confirm the agreement; sending the full confirmation phrase directly also works
撤回用户协议Withdraw consent for the current version
不同意共享我的数据Disable anonymized public sharing and training use of scores/Rating/trends (enabled by default; see Terms)
mai账号View the account feature help
mai绑定 / maibindInteractive bind or claim of a maimai account
mai绑定 <QR code or link>Submit and bind in one step
mai解绑Unbind the maimai account; upload Tokens are kept
mai状态 / mymaiView full account status; re-asks for the QR code when the cache is stale
舞萌状态 / maisServer failure-rate line chart + live status (see Command Help)
maipingCheck AWMC API connectivity
mai地图View play regions (when supported)
mai预览 / 预览Query the account preview; costs 5 BREAK on success
mai道具 / 道具Query all items; costs 5 BREAK on success
mai门状态 / 查门 / 门状态Query Kaleidx Gate discovery, key, and clear status; costs 5 BREAK on success (see the v2-3 note below)
mai查询opt <version>Query the Mai2 option file

Gate status also shows the Gate name: 1 Blue Gate, 2 White Gate, 3 Purple Gate, 4 Black Gate, 5 Yellow Gate, 6 Red Gate, 7 Prism Tower, 8 Outer Gate, 9 Gate of Hope, and 10 Inner Gate.

Upstream v2-3 removed gate-status and event queries

After the server upgrades to v2-3 it no longer provides the gate status (get-kaleidx-scope) or game event (get-game-event) read endpoints; at that point mai门状态 / maievent report that the query has been removed, and account items can be inspected with mai道具 instead. Gate status changes use mai改门 (see Section 8), whose write endpoint supports gates 1–6.

Supported QR inputs:

text
SGWCMAID...
https://wq.wahlap.net/qrcode/img/MAID....png
https://wq.wahlap.net/qrcode/req/MAID....html

All API commands that use account QR credentials check the cache lifetime (QR generation time + 10 minutes). When the cache expires, stale credentials are never reused; send the latest SGWCMAID, official QR link, or QR image, and re-run the original command after verification refresh succeeds.

The Bot re-asks at most 3 times when credentials are invalid, expired, return 500/empty, or the identity does not match.

Admins can tune the QR-related live configuration with BREAK配置; the common keys are:

KeyDescription
one_time_qrcode1 = single-use QR: each QR serves exactly one command that needs it, later commands require a new one (default 0, reused for 10 minutes)
qrcode_freeze_enabled / qrcode_freeze_secondsFreeze a user after 3 consecutive QR failures, and for how long
checkin_cooldown_modeCheck-in cooldown: default 24h; set it to daily to restore the old 00:00 reset

3. Score-Tracker Binding & Uploads ​

CommandDescription
dfbind / 绑定水鱼 / 水鱼授权Bind Diving Fish OAuth (recommended for both queries and uploads)
dfstatus / 水鱼授权状态Check Diving Fish OAuth status
dfunbind / 解绑水鱼Revoke Diving Fish OAuth
mai绑定水鱼 <Token> / maibindfish <Token>Bind a compatibility Token (managed separately from OAuth)
mai解绑水鱼Unbind the Diving Fish Token
lxbindBind Lxns via OAuth (recommended)
lxunbindUnbind Lxns OAuth
mai绑定落雪 <Import Token> / maibindlx <Import Token>Bind a Lxns compatibility Token
mai解绑落雪Unbind the Lxns compatibility Token
maiu [QR code or link]Upload to Diving Fish
maiul [QR code or link]Upload to Lxns
maiua [QR code or link]Upload to both Diving Fish and Lxns

All three uploads share the daily first-success-free allowance. The default prices after that are 2 BREAK for Diving Fish, 2 BREAK for Lxns, and 3 BREAK for both. Failures, timeouts, and cancellations are never charged.

QR-free quick updates & automatic updates ​

Version and prerequisites

This describes the current QueryBot source and requires a Bot release plus an upstream service supporting rival reads; it does not certify that every deployment has these features. Prices, durations, and capacity are configurable; follow the live Bot's prompts. Bind your maimai account with mai绑定 first. For Diving Fish or Lxns uploads, complete dfbind / lxbind OAuth binding; Token-only bindings are not used by this quick-update path.

CommandDescription
mai对手同步 / rival同步Read the bound account's scores without a new QR; sync AWMCNET and any OAuth-bound trackers
导 / u / 更 / 更新Same action when the entire message is this shortcut; ignored during group games, so use the full command instead
mai自动更新 [hours] / 自动更新 [hours]Enable timed background updates; default 3 hours; accepts 6, 6小时, or 6h
查自动更新 / mai查自动更新Show remaining time, next sync, count, and latest result
自动更新关闭 / mai自动更新关闭End the period early; unused time is not refunded
查任务 / 查进度Inspect background upload tasks; queued does not mean the external tracker has finished
  • Updates merge with existing snapshots: older records are preserved and achievements are replaced only when higher. A default 300-second user cooldown starts only after a successful sync; failed pulls, quota rejection, or empty results do not start it, so you can retry immediately.
  • FC/FS markers and PC counts are not refreshed. Send a fresh QR for a complete update; this path is not a full QR upload.
  • Automatic updates use the same path, normally every 15 minutes, also constrained by the quick-update cooldown.
  • Default duration is 1–12 hours, up to 10 users server-wide, with one active period per user.
  • Default price is 30 BREAK/hour (90 for 3 hours), prepaid after replying 确认; any other reply cancels. This is not success-only per-sync billing, and early closure is not refunded.

Admins can adjust these with BREAK配置 <key> <value>:

KeyDefault / purpose
rival_sync_cooldown_seconds300, quick-update cooldown in seconds; 0 disables it
auto_update_enabled1, global automatic-update switch
auto_update_fee_per_hour30, BREAK per hour
auto_update_default_hours / auto_update_max_hours3 / 12, default / maximum period
auto_update_interval_minutes15, sync interval in minutes (also constrained by cooldown)
auto_update_max_sessions10, active-user limit

4. Direct QR & PC ​

Sending SGWCMAID... or a supported official link directly triggers a PC sync, then uploads to Diving Fish, Lxns, or both according to binding status. If no score tracker is bound, only the PC is synced.

CommandDescription
更新pc数Sync PC using cached or latest QR
我的pc数View personal PC stats
pc数 <song>View PC for a specific chart
pc50B50 sorted by PC
pca50Rating B50 re-sorted by PC
游玩排行50Top 50 most-played charts library-wide
pc排行All synced users ranked by total PC

Developers: AWMCNET chunked sync

When QueryBot or another server syncs a large amount of scores to AWMCNET, the full snapshot can be split into multiple requests. Set full_snapshot: true on every chunk and reuse the same snapshot_id. Intermediate chunks omit snapshot_final; the last chunk sets snapshot_final: true. On timeout, retry with the same snapshot_id. Full fields and examples are in AWMCNET Bot API.

5. Rank Courses ​

The default rank-course table uses the current CN server version, PRiSM PLUS. Query results render an image containing the LIFE rules, the 4 course tracks, song level/constant, personal best achievement, and anonymous sample stats aggregated from recent server-side scores.

CommandDescription
段位表View queryable rank lists and examples
段位表 <rank>Query a rank course, e.g. 段位表 真二段
<rank>段位表Same as above, e.g. 真二段段位表
段位表 <rank> @userRender the target user's personal score display

Rank resources prefer the player's current nameplate and official dani Plate. Anonymous samples come from scores recently synced on the server that have not opted out of data sharing; low-sample or cold-start cases fall back to bundled samples. The footer marks the data source and notes "for practice reference; arcade results are authoritative".

6. BREAK & Tickets ​

CommandDescription
AWMC签到 / 签到Check in; available again 24 h after the last successful check-in
我的AWMCView BREAK, check-in streak, call stats, recent transactions, invoice success/failure rate and returnCode=0 stats; auto-attaches the group song-guess chart in groups
AWMC帮助View pricing and reward details
转账BREAK @用户 数量Transfer BREAK
BREAK抽奖 [1-1000]Lottery; default 2 BREAK per draw
发票 / fp <2/3/5>Request 2x, 3x, or 5x tickets
mai查票 / 查票Query valid tickets (type, stock, expiry); default 1 BREAK on success; never shows the account UID

Irreversible tickets

Tickets must be used on the cabinet once issued; do not stockpile them. Issuance cannot be undone.

Successful issuance defaults to 20 BREAK for 2x, 30 BREAK for 3x, or 50 BREAK for 5x. Failure after an actual issuance submission incurs a default fixed 100 BREAK failure penalty (insufficient funds do not produce a negative balance). Pre-submit QR validation or balance failures and local quota rejection do not incur that penalty. An existing unused multiplier ticket can instead trigger a default 20 BREAK penalty when blocked; single-use QR mode skips that stock check and post-write stock verification. Live configuration and Bot prompts take precedence. If the outcome is uncertain, check 查任务 before attempting issuance again.

7. Score & Item Writes ​

CommandDescription
mai改成绩 / 改成绩 / 改分Interactive song/difficulty/score selection; 258 BREAK per chart on success
mai改成绩 / 改分 <song> <difficulty> <achievement> <DX score> [FC] [FS] [simple/pro]Edit scores in one line
mai删成绩 / 删成绩 / 删分Interactive song and difficulty selection; 50 BREAK per chart on success
mai删成绩 / 删分 <song> <difficulty>Delete scores in one line
mai改道具 / 改道具High-risk interactive item mutation; 100 BREAK per successful action
mai改道具 / 改道具 <itemKind> <itemId> <add/del>Prefill parameters; risk confirmation is still required

Bulk scores (up to 20, charged per chart) ​

mai改成绩 accepts newline- or semicolon-separated (;) input and submits up to 20 scores in a single run:

text
mai改成绩
songA 紫 100.5% 5 AP FDX
songB 黄 99.8% 4 FC FS

mai删成绩 supports bulk input too (one <song> <difficulty> per line).

  • The same difficulty of the same song cannot appear twice.
  • A bulk run must use one mode: either every DX value is a star rating (simple mode) or every DX value is an actual DX score (pro mode).
  • Billing is per chart: default 258 BREAK for each edit or 50 for each deletion; editing 2 charts costs 516 BREAK.
  • After a write the Bot shows the server verification result and uploaded/skipped counts; when the account already satisfies the input it reports "no upload needed".

Interactive entry can also accumulate records: after one entry send 继续添加 (or 继续编辑) to choose another song, 查看列表 to review, or 删曲目 N to remove entry N. Send 完成并提交 (also 完成 / 提交) to review the final list and total, then 确认修改 (or 确认删除 for deletion) to execute. 取消 abandons the batch. Bulk deletion is not guaranteed to work and deleted scores cannot be automatically restored by the Bot; check the list and risks first.

Score format ​

Score commands accept song IDs, full titles, and aliases. During interactive difficulty selection you can send a number: 0 BASIC, 1 ADVANCED, 2 EXPERT, 3 MASTER, 4 Re:MASTER; songs without a Re:MASTER chart only accept 0-3. Difficulty also supports BASIC/ADV/EXP/MAS/Re:MAS, green/yellow/red/purple/white, and "宴" for banquet charts. Achievement can be written as 100.5% or 0.995 (parsed as 99.5%).

  • Simple mode (default): DX score is a star rating 0-5.
  • Pro mode: DX score is the actual DX score; values above 5 automatically select pro mode and validate against the chart maximum.
  • You can explicitly append 简单 or 专业; FC/FCP/AP/APP and FS/FSP/FDX/FDXP are supported.
  • API, parse, timeout, or cancel failures do not charge BREAK; write endpoints never auto-retry.

Item kinds

mai改道具 accepts itemKind 1 nameplate, 2 title, 3 icon, 4 collection, 5 music unlock, 6 MASTER chart unlock, 7 Re:MASTER chart unlock, 10 partner, 11 frame. Use mai改角色 for characters; tickets are not writable as items (buy them on the cabinet or use the ticket command).

Item mutation risk

mai改道具 has not been tested on a real account and may cause data corruption or irreversible consequences, especially itemKind=4/8. The Bot shows an operation summary and requires you to send "我已知晓风险" before executing; continuing means you accept the risk yourself. The bulk upsert-all has no user command.

8. Account Editing & Bulk Operations (v2-3) ​

Account writes now use the AWMC API v2-3 session model: the Bot submits the request, the server executes it in the background (login → multi-round upload → server verification → logout), and the Bot automatically performs "create + immediate confirm" and polls the result. No extra server-session confirmation is needed, but users must first confirm the summary, total, and risks. An individual upload session usually takes 1–2 minutes. This is not a duration guarantee for bulk operations.

Bulk operations are untested — strongly discouraged

mai批量编辑 and mai全解锁 have not been tested. Upstream processing may take up to about 30 minutes and is very likely to get stuck. Check 查任务 if the outcome is uncertain; never blindly resubmit a write.

mai改资料 (aliases 资料修改 / 改资料 / 资料命令) is a hub entry that lists every write command with its current price and offers buttons that jump straight into each command.

CommandDescriptionPrice (charged on success)
mai批量编辑 / 批量编辑 / 批量改Collect mixed-type edits and run them serially; untested, strongly discouraged1500 BREAK for the entire batch, once on the first confirmed success
mai全解锁 [music/master/remaster] [version ID]Unlock all music / MASTER / Re:MASTER; untested, strongly discouraged1500 BREAK per successful run
mai改门 <gate 1–6 or name> <found/key/both/off>Change Kaleidx Gate state50 BREAK per run
mai改rating <0~99999>Change the displayed Rating (does not raise the historical best)50 BREAK per run
mai改里程 <0~99999>Change maimile points50 BREAK per run
mai改地图库存 <0~999>Change map stock50 BREAK per run
mai改游玩次数 <total> [current version]Change play counts50 BREAK per run
mai改段位 <rank or ID>Change the rank course (0–23)50 BREAK per run
mai改阶级 <class or ID>Change the class (0–25)50 BREAK per run
mai改搭档 <character or ID>Fill all five partner slots with that character50 BREAK per run
mai改角色 <character or ID> <level> [awakening]Change character level / awakening50 BREAK per run
mai改亲密度 <partner or ID> <level>Change partner intimacy50 BREAK per run
mai完成地图 <map or ID…>Temporarily disabled: upstream save verification fails (5006)Not executed
mai推进地图 <map or ID…>Temporarily disabled: upstream save verification fails (5006)Not executed
mai改登录奖励 <bonus or ID…>Temporarily disabled: upstream save verification fails (5006)Not executed
mai重置版本Reset to the game version currently used by the service50 BREAK per run
查进度 [<session_id>]View your task board or a specified upload session (aliases 查任务 / mai查任务 / 查上传任务 / 查会话)Free

Bulk editing: several edits in one conversation ​

Each v2-3 upload endpoint only accepts its own kind of data (scores / items / profile fields), so mixed types cannot be merged into a single request. Bulk editing therefore collects edits in one conversation and runs several upload sessions serially:

text
mai批量编辑
改rating 16000
改道具 5 11479 add
改成绩 songA 紫 100.5% 5 AP FDX
完成
确认修改
  • Send one edit per message, up to 3 items (each item is one upload session, about 1–2 minutes).
  • Send several messages or multiple lines; 继续添加 continues entry, 查看列表 reviews it, and 删曲目 N removes item N.
  • Send 完成并提交 (also 完成 / 提交) to review the list and total, then 确认修改 to execute (取消 to quit).
  • The entire mai批量编辑 batch costs a flat 1500 BREAK, regardless of item count or type. The first confirmed successful item triggers the one-time charge; no confirmed success means no charge. Removing pending entries or cancelling before execution is free.
  • Expired-QR continuation resumes only unfinished items, never replays confirmed successes, and does not charge again if the flat fee was already paid.
  • Explicit failures are reported; uncertain outcomes require checking 查任务 before any resubmission. A billing error stops further operations: verify the ledger rather than retrying.
  • This flat fee applies only to mai批量编辑. Multi-chart mai改成绩 / mai删成绩 still cost 258 / 50 BREAK per successful chart, respectively.
  • Untested and strongly discouraged: upstream bulk processing can take up to about 30 minutes and is very likely to get stuck.
  • Supported entries: 改门 / 改rating / 改里程 / 改地图库存 / 改游玩次数 / 改段位 / 改阶级 / 改搭档 / 改角色 / 改亲密度 / 重置版本 / 改道具 / 改成绩 / 删成绩 / 全解锁.
  • 改地图 / 推进地图 / 改登录奖励 are temporarily disabled, including through batch entry and QR continuation.

Name input (edit without knowing IDs) ​

Parameters marked "or name" accept a plain name; the Bot queries the upstream resource catalog and converts it to the right ID:

text
mai改门 紫色之门 found     # gate name → ID 3
mai改角色 星 <level>       # character name → character ID
  • Matching happens upstream (case-insensitive, keyword based).
  • When several resources share the name, the Bot lists candidates — use a more precise name or enter the ID directly.
  • Rank/class names come from upstream and rank names carry a version prefix (e.g. 1.17_初段), so entering the numeric value (rank 0~23, class 0~25) is recommended.

One-click unlock ​

text
mai全解锁             # all music
mai全解锁 master      # all MASTER charts
mai全解锁 remaster 25 # Re:MASTER within a version range

The candidate list is generated upstream and tracks the account already owns are skipped automatically (nothing is uploaded when everything is skipped). A successful run costs 1500 BREAK, regardless of how many tracks are unlocked. Untested and strongly discouraged: upstream processing can take up to about 30 minutes and is very likely to get stuck. Do not blindly repeat an uncertain write.

Billing & failure handling ​

  • All prices above can be adjusted in the database configuration (admin BREAK配置).
  • Clear upstream failures (rejected parameters, abnormal account state, …) do not charge BREAK; a failure during execution reports the concrete reason.
  • On timeout or network loss the Bot never replays the write (to avoid duplicates); use 查进度 to check what actually happened.
  • Writes support expired-QR continuation: after the Bot reports an expired QR code, send a fresh one and the original operation continues.
  • Most edits create one play record and affect the displayed Rating; it recalculates after one play on the cabinet.

Without an ID, 查任务 / 查进度 also show QR, background sync, and ticket tasks. Ordinary users see their own tasks; admins can see recent server-wide tasks. Explicit session_id queries also respect permissions. A result marked "needs checking" may already have been applied.

9. Admin Commands ​

The following commands are limited to the Bot's super admins or plugin admins:

CommandDescription
查询REF <Ref_ID>View the redacted full processing chain
封禁用户 <user> [reason]Ban a user
解封用户 <user>Unban a user
封禁列表View active bans
管理面板 / WebUIView the WebUI address and config status
查看AWMC <user>View a user's BREAK profile
设置BREAK <user> <amount>Set the balance directly
增减BREAK <user> <amount>Increase or decrease the balance
BREAK配置 [key value]View or modify BREAK default parameters (prices, one_time_qrcode, pick_sensitive_words, …; applied immediately, ≤30 s across processes)
迁移Koishi 检查 <database>Read-only precheck for Koishi account migration
迁移Koishi 确认 <database>Confirm migration of accounts, Tokens, and agreement records
发票统计 / ticket统计 / returnCode统计Global invoice success/failure and returnCode=0 stats; add days, e.g. 发票统计 7
存储状态View SQLite/YAML/MySQL storage status
存储迁移 检查 <source> <target>Precheck data migration
存储迁移 确认 <source> <target>Confirm migration
存储同步Immediately sync the configured remote storage backend
mai配额设置 <category> <window=limit,…>Set shared AWMC API quota, e.g. mai配额设置 read 15m=200,1h=600,5h=2000; on / off toggles the global limit
自动更新列表 / mai自动更新列表List server-wide automatic-update periods; append 删除 <index> to force-close one without a refund
mai配额重置Clear every quota window's usage (with a hot reload)
更新定数表Rebuild rating / plate table backgrounds after a catalogue update (the Bot reminds you when signatures change)

Unified storage (MySQL / YAML)

Packing can be skipped when the working set is unchanged; unchanged MySQL files can be reused; startup sync runs in the background and does not block the Bot from receiving messages. See admin 存储状态 / 存储同步 for details.

The WebUI and admin interfaces never return QR codes, Tokens, or full arcade UIDs; admin modifications are also recorded with a Ref_ID.

10. Interactive Examples ​

Bind and upload to both trackers ​

text
用户协议
mai绑定
mai绑定水鱼 <Token>
lxbind
maiua

Expired QR code ​

text
Bot: QR cache expired, please send the latest QR (up to 3 times)
User: SGWCMAID...
Bot: Verification succeeded, continuing the original operation

Query issue ​

text
User: mymai
Bot: Replies referencing that message with account status and Ref_ID

Bulk scores (up to 20, charged per chart) ​

text
User: mai改成绩
       songA 紫 100.5% 5 AP FDX
       songB 黄 99.8% 4 FC FS
Bot: ⚠️ About to write 2 scores in bulk (default total: 516 BREAK)
     Send "确认修改" to submit
User: 确认修改
Bot: ✅ 2 scores written + server verification result + billing + Ref_ID

Bulk editing (several mixed-type edits in one run) ​

text
User: mai批量编辑
Bot: 📝 Bulk edit mode (up to 3 items; flat 1500 BREAK for the entire batch)
     ⚠️ Untested, strongly discouraged: up to about 30 minutes and very likely to get stuck
User: 改rating 16000
Bot: ✅ Added 1/3: displayed Rating → 16000
User: 改道具 5 11479 add
Bot: ✅ Added 2/3: item add: music unlock · itemId=11479
User: 完成
Bot: ⚠️ About to run 2 items serially (1500 BREAK once on the first confirmed success) …
User: 确认修改
Bot: ✅ Bulk edit finished 2/2 + per-item results + billing + Ref_ID

One-click unlock and name input ​

text
User: mai全解锁 master
Bot: ⚠️ One-click unlock (MASTER): 45 candidates (already-owned tracks are skipped)
     Send "确认解锁" to continue
User: 确认解锁
Bot: ✅ Submitted + server verification result

User: mai改门 紫色之门 found
Bot: ⚠️ About to run gate edit: gate 紫色之门 (ID 3) → open   ← name resolved to ID
User: 确认修改

Checking an upload session (查进度) ​

text
User: 查任务
Bot: Task board image: in-progress / completed / needs-check sections, plus steps and "about X seconds left"

User: 查进度 b26759bec50e42d89efe43186a98c40d
Bot: Upload session …: completed / processing (query again later, free)

Released under the MIT License.