Robolyst Robolyst
The whole toolkit The portal, where the team already talks

Discord

Almost every FTC team runs on Discord, and almost every tool asks them to leave it. The Robolyst bot goes the other way: the work shows up in the channel your team is already in, and what happens there is written back to the portal, so the two never disagree about who claimed a task or who is coming on Saturday.

Free for every team · run by a 501(c)(3)

Saturday’s meeting asking the channel who is coming, and a task thread where the answer went back to the task.

team-schedule sample
Robolyst bot Today at 7:02 AM

Build meeting — Saturday

Intake handoff and driver practice. Bring the spare battery cart.

When
Sat 9:00 AM – 12:00 PM
Where
Room 114, shop door

Cedar Bots · Robolyst

Pressing one writes the attendance row the portal reads. There is no second list kept in Discord to fall out of step.

tasks · forum channel sample
Machine new intake rollers Intake In Progress
  • Robolyst bot Today at 9:12 AM

    Devon K. moved this to In Progress and set the due date to Thursday.

  • Maya R. Today at 4:31 PM

    Rollers are cut. Waiting on the 8mm hex, it shipped Tuesday, so Thursday is tight.

    saved as a comment on the task, under Maya’s name
claim 1 done react to take the task, or finish it
Also in the channel /task claim/order request/checklist run/scout 14231/next/announce

Point it at your own channels

Add the bot to your server once and pick which channel each kind of post goes to. There are seven, and they are separate on purpose: what the team is buying does not belong in the same channel as the build chat.

  • Tasks and checklists go to forum channels: one post per task, one per run
  • Announcements, schedule, match results and orders go to normal channels
  • A leads-only channel takes budget alerts, receipt nags and approvals still waiting
  • A surface you never point anywhere simply never posts. That is how you turn one off
  • Nothing pings by default; you choose per channel whether a post mentions a role, @here or nobody
Channel setup sample
  • Tasks forum build-tasks silent
  • Checklists forum pit silent
  • Announcements announcements @team
  • Schedule general silent
  • Orders purchasing silent
  • Leads only leads @leads
  • Match results not set, never posts silent

Seven surfaces, seven channels of your choosing. /setup reports whatever is still unmapped, and the permissions the bot is missing.

Every task becomes a thread that answers back

A task opens as a forum post. Assignments, status changes, due dates and comments mirror into it as they happen, and a reply in the thread is saved as a comment on the task, attributed to whoever typed it. Nobody copies anything across.

  • /task claim, /task assign, /task due and /task done work inside the thread, no id to paste
  • React to the post to take the task, or to mark it finished
  • Right-click any message → Make a task, and the message becomes one
  • /task mine and /task list filter by status or label, with autocomplete off your own team’s
  • The thread archives itself when the task reaches a done status, if you want it to
build-chat sample
Priya S. Today at 4:02 PM

the intake rollers are chewed, someone has to machine new ones before Thursday

A Robolyst forum thread in Discord titled “Machine new intake rollers”, with claim and mark-done buttons and the task’s activity below it

The thread it opens in #build-tasks. The post carries the task's status and its buttons; underneath it, every assignment, status change and comment, from either side, in the order they happened.

Replying in the thread saves a comment on the task, attributed to whoever typed it.

Inside the thread /task claim/task assign/task due/task done

The schedule asks, and people answer

Meetings and competitions post as a card with three buttons: coming, maybe, out. That answer is the attendance row the portal reads, not a second list kept in Discord, so the register and the channel can never disagree.

  • The day’s schedule posts itself each morning on your team’s clock
  • Meetings become native Discord events, so they sit in the server sidebar too
  • An attendance summary names who never answered, the field that actually costs you people
  • /next and /schedule week answer in public, buttons attached
The meeting card sample
/next: the next thing on the calendar, asked with three buttons. A Robolyst meeting card in Discord showing when and where the build meeting is, with coming, maybe and can’t-make-it buttons
Answers show on the card itself, by name, as they come in. The same meeting card after answers, listing who is coming and who is out

Answers land on the attendance register, not on a second list kept in Discord

Approvals where the decision gets made

/order request opens a form in Discord and posts the request to the channel you chose, with approve and reject buttons on it. Rejecting asks for a reason. Permission is checked before the form opens, so a student never fills one in to be told no afterwards.

  • The request, the decision and who made it land on the same ledger the finance page reads
  • Point orders at a private channel and the approvals stay with the people who make them
  • /order queue is everything still waiting; /order mine is what you asked for
Request something /order request
The Robolyst order request form open inside Discord, asking what you need, how many, cost each, a product link and why

The form opens inside Discord. No tab to find, no login to remember mid-build.

Permission is checked before it opens, so nobody fills one in to be told no afterwards. What comes out is an order on the finance page, priced and attributed.

purchasing sample
The request, posted where the decision gets made. A Robolyst order request posted in Discord with its cost, who asked and the items, under approve and reject buttons
/order queue: everything still waiting, approved in place. The order queue in Discord listing one order waiting on a decision, with approve and reject buttons

Rejecting asks for a reason. The decision and who made it land on the ledger the finance page reads.

Checklists that run in the pit

A checklist run posts as a forum thread with a button per item. Ticking one records who ticked it and when, against the same run the portal shows, which is what you want when the wifi is bad and the only reliable screen at a competition is a phone that is already on Discord.

  • /checklist run starts one from your templates, with autocomplete
  • Runs scheduled ahead of a match post themselves
  • /checklist status says how the open runs are going
pit · Q31 pre-match forum post
3/6
  • Robot weighed Maya R. · 8:41
  • Battery strapped Devon K. · 8:44
  • Driver station on field wifi Maya R. · 8:46
  • Auto path selected
  • Spare batteries on the cart
  • Bumpers on, red
A button per item, ticked on the phone that is already open, and recorded against the same run the portal shows.

The whole FTC archive, on a slash command

Scouting arguments happen in the chat, so the numbers answer there. These commands reply in public, where the rest of the channel can read them, and they work for anyone in the server whether or not they have a Robolyst account.

  • /scout 14231 gives a team’s season: record, metrics and awards
  • /compare 14231 9052: two teams side by side
  • /rank and /match: where you stand at the event you are at, and the match you play next
  • /bracket, /advancement and /awards for an event; /nearby for the teams around you
scouting sample
/scout number:7034 run by anyone in the server, answered in public
The Robolyst bot answering /scout in Discord with team 7034’s record, season metrics, awards and recent results

Record, season metrics, awards and the last matches played: the same numbers the site computes, with buttons through to the team page.

Every season on record, for any team in FTC
Same archive /compare/rank/match/bracket/advancement/awards/nearby

Roles that follow the roster

Map a Robolyst role or subteam to a Discord role once and membership keeps itself in step: a student joining the drive subteam gets the channel, and a graduating one stops getting it. Members link their Discord from their account page, which is also what lets the bot mention the right person when a task is theirs.

  • New joiners get a DM with the one step only they can do: linking their account
  • /setup reports what is unconfigured, including the permissions the bot is missing
  • Everything a member can do through the bot is what their Robolyst role already allows
Role sync roster → server
  • Mentors @mentors 4 members
  • Drive subteam @drive-team 6 members
  • Build subteam @build-crew 11 members
  • Everyone on the roster @cedar-bots 26 members
Robolyst bot Direct message

You have been added to Cedar Bots on Robolyst. Link your account and the bot can hand you tasks, count your RSVP and give you the right channels.

A student joining the drive subteam gets the channel; a graduating one stops getting it. What anyone can do through the bot is what their Robolyst role already allows.

Questions teams ask

We already post to Discord with a webhook. Is this different?
Yes, in the direction it runs. A webhook pushes notifications out; the bot goes both ways: replies become comments, buttons record RSVPs and approvals, and commands read and write your team’s data. Teams that only want the notifications can keep the webhook, which still works.
Can the whole server see our budget?
Only if you point the finance channels at somewhere everyone can read. Each kind of post has its own channel, and the leads-only surface exists so budget alerts and pending approvals go somewhere private. A channel you never set is a channel that never gets posted to.
What can people do without a Robolyst account?
The FTC lookups: team, event, scouting, brackets, awards. Anything touching your team asks them to link a Discord account to a Robolyst one first, and then applies the same role permissions the site does. The bot is never a way around them.
Will it fill the channel with noise?
No post mentions anyone unless you tell it to, per channel. Tasks and checklists live in forum channels, so each one is its own thread rather than a wall of messages, and any surface you would rather not have can be left unmapped.
Does this replace the portal?
It replaces having to open it. The data is the same data (a task claimed in Discord is claimed on the board, an RSVP in Discord is on the attendance register), so the person who prefers the site and the person who lives in the chat are working on one thing.

Discord is one part of the portal.

The roster, the build schedule, your documentation, the money and your public site run on the same free account. Setting it up takes an afternoon.