Verification flow
End-to-end view of what happens when a user runs /verify.
- Step 1
User runs /verify in your server. The bot replies ephemerally with a Components v2 container including the guild name, Discord username, and a Verify button.
- Step 2
When the user clicks Verify, the API creates a single-use session token bound to (guildId, discordUserId), generates a short profile-code (e.g. MGS-A7P2-K9NX-T4QW), and stores an expiry (default 15 minutes).
- Step 3
The user is sent to a secure verification page that shows the profile-code, with a Copy button and a step-by-step explainer.
- Step 4
The user pastes the profile-code into their Roblox profile description, returns to the page, and confirms by entering their Roblox username.
- Step 5
The API resolves the username to a Roblox user ID, fetches the description through the public Roblox API, and confirms the code is present.
- Step 6
On success, the user/account is upserted, a MemberLink is created (or updated) with status VERIFIED, the session is marked used, and a role-sync job is queued.
- Step 7
The role-sync worker fetches the user's Roblox group memberships, resolves desired roles via the resolver, and applies adds/removes through the Discord REST API. Nicknames are updated if enabled.
- Step 8
A Components v2 success message and an audit log entry close the loop. If a log channel is configured, an embed is posted there.