STO Discord bot

Roblox verification

Use the Verify Roblox button in an attendance reply, or /verify, for a private link. Authorize your own Roblox account, return to Discord, review the username and confirm. No administrator linking command is required. Never share verification links or credentials. Roblox handles passwords. Website roster, server nickname, team role and division role must still match before attendance is saved.

Attendance

In any readable server channel, say you can or cannot attend a race. Unlinked members receive a verification notice, throttled to one per minute. Clear direct phrases save without AI; conversational wording uses bounded AI and sender-only confirmation. Nothing is saved until that confirmation. The saved reply states whether the configured team owner received a DM. Repeated identical statuses do not resend successful notifications. Failed DMs and ownerless teams are reported explicitly. Attendance does not sign replacements.

Questions and humor

Natural league questions, mentions and replies work in the configured questions channel. Exact schedule lookups use published data without AI. Other questions use current website context for short conversational replies, with published details attached. Harmless banter can use AI when the bot is addressed. Politics, religion, harassment and unrelated requests are out of scope. AI cannot execute commands, change identities, assign roles or save attendance. It can make mistakes; check the published details. Ordinary chatter is not sent to AI.

Administrator setup

Use /sto-admin to configure the questions channel, separate division roles, shared team roles and optional owners. All management actions check Administrator permission. Keep DISCORD_TOKEN in Cloudflare Secrets, enable Discord Message Content Intent and leave the Interactions Endpoint blank. Grant only necessary channel and role permissions, never Administrator. Team roles must have zero permissions and sit below the bot.

Roblox OAuth: category Account Linking Tools, scopes openid and profile, redirect https://bot.stoleague.com/verify/callback. Set ROBLOX_CLIENT_ID as a Worker text variable and ROBLOX_CLIENT_SECRET as a Secret. Roblox private-mode apps have a small testing quota; public rollout requires Roblox review.

Limits and privacy

Actions: 10/minute per user, 30/minute and 1500/day globally. AI: five requests/minute per user, no personal daily cap. Workers AI has a shared 7000-neuron UTC-day ceiling: 700 burst neurons plus the remaining allowance released through the day. Banter can use only the lower 80-percent spending allowance; league questions and semantic attendance have priority. Known token usage reconciles reservations; failed or unknown usage keeps the full reservation. Verification has separate anti-spam limits and never uses AI. Direct attendance and exact schedule lookups do not need AI. No unlimited replies or guaranteed uptime. Safety notices are throttled to prevent spam. Free hosting allowances are shared with other account workloads.

Privacy notice ยท Usage terms