A raid signup bot that knows a Druid from a Mage.
Slash command, signup post, buttons, done. Every click is checked against the character behind it, composition is counted as you go, the raid locks 30 minutes before pull, and the bench hears about it when someone ghosts.
- FjorvaltProtection Warrior
- BrightleafRestoration Druid
- PyreclawFire Mage
- HexweaveAffliction Warlock
This is the real rule, not a mockup. Fill the raid, then send the Fire Mage at the tank slot and see how far he gets.
One post. Buttons that check your spec.
Post with /raid create and the embed lands in your raid channel: leader, instance and difficulty, scheduled time, your softres.it link, per-class signups with spec and role emoji, and bench, tentative, and absent sections that fill in as people click.
A raider hits a role button and he confirms the character can actually play it. Switch on the alt button and a healer can offer a second character without signing up twice. Everyone can leave a note on their row, drop a parse link, or confirm their addons on the way in.
- Tank, Healer, DPS, Tentative, Absent, or Withdraw, one button each
- Class and spec checked before the role sticks
- An opt-in Bring an alt button, so nobody signs up twice
- Leave a note, a parse link, or confirm your addons on the way in
- Non-members get pointed at verification or the public link, not a wall
Near pull time, the raid runs itself.
A scheduler ticks every minute. It nudges, locks, benches, builds the voice channel, DMs the lineup, and archives the whole thing when it is over. You show up and pull.
- -24hThe first nudge goes outA DM to everyone who has not signed yet. Anyone on /away is left alone.
- -2hThe second nudge, if it is neededSkipped entirely when the roster is already full. Tentatives get 30 minutes to commit.
- -30mSignups lock, overflow benchesThe lineup that posts is the lineup you raid. The bench gets told, not forgotten.
- 0:00Voice opens, DMs landRole, party, voice channel, the softres.it link, and assignments, one DM each.
- +5hIt closes itselfFarewell, loot summary, attendance widget, voice channel gone, thread archived.
The clock for a 20:00 Tuesday. Every step is a job the scheduler already runs, not a setting you have to wire up.
- Nobody chases the ghostTentatives get a 30-minute nudge to confirm, unsigned raiders get 24h and 2h DMs. He does the asking so your officers stop doing it in general.
- Locked before the stoneSignups close at minus 30 and the overflow benches itself, so there is no frantic reshuffle while people are already zoning in.
- Nothing lingers afterVoice closes, the thread archives, the loot summary posts. No orphan voice room sitting in the channel list until next Tuesday.
- Minutes before pull, signups lock
- 30Minutes before pull, signups lock
- Nudges before anyone has to chase
- 2Nudges before anyone has to chase
- After start, it closes itself
- 5hAfter start, it closes itself
Shout for a tank in trade chat, without handing over your Discord.
/raid pug-invite gives a raid leader up to three links for one night, each one scoped somewhere different. A web signup page, a Discord invite that lands on your sign-up channel, and a comms invite phrased for pasting into trade.
None of them is a key to the server. A stranger arriving on one gets the sign-up channel, or the raid thread and voice, and that is where the map ends. Members already inside are the other case, and Hootus flags it on the spot: anyone already in this server gets nothing from that link. For them there is /raid invite, which opens the thread and voice for one person you name.
- Web signup
A page in a browser, share it anywhere
A link to that one raid. They sign in with Discord, type a character name, and the page reads the armory before they pick a role. Nobody needs to be in your server to apply, and a raid leader still says yes or no to every one.
- Discord signup
Lands them in the sign-up channel
The same apply, for the player who would rather not leave Discord. Whoever uses it arrives on the Applicant role, gets a DM naming the raid, and applies in the sign-up channel. Stays off until you switch Discord raid signups on.
- Comms invite
Written to be pasted into trade chat
Join us on Discord, then the link, already in a code block so you can copy it in one go. This is the shortcut for someone you have already agreed to raid with: they arrive on the PUG role with the raid thread and voice open, no second approval.
What the web signup asks a stranger for.
The longest of the three routes, and still nobody has to take their word for the character.
Make the raid public
One toggle and the raid gets a signup page anyone can open. There is a guild-wide link too, for your own roster.
They type a character name
The page pulls the armory data, they pick a main role and an optional alt role. No guild membership, no account setup, just Discord identify.
A raid leader approves in Discord
Class and spec are validated against your flavour on the way in, same as the buttons do it.
The invite lands when the raid locks
An approved signup who is not in your server yet gets the comms invite DMed at lock, and joining opens the raid thread and the raid voice. No bespoke role is minted for the night. They sit on the PUG role, same as every other guest.
The parts nobody signed up for.
The chore was never the raid. It was the bookkeeping stuck to it: rewriting the same Tuesday post, working out who wants pinging, and tracking who is on holiday.
- Templates
Save the night once, post it again next week.
Keep a raid setup and reuse it. Mark a template public and it lands in a gallery other guilds can browse, and theirs turn up in yours, so a new guild can lift a Karazhan night that already works instead of building one from nothing.
- Pings
Only the people who asked for the ping.
Nobody wants every mention. Members pick theirs with /notifications tags, from the Notify me button on the board, or on the way through verification. Post a raid and only those roles get pinged, and he tells you how many people it reached.
- Away
Being away stops looking like ghosting.
/away set takes two weeks, a date, or unknown when there is not one. The guild gets a board of who is out and when they are back, and the reminder DMs leave them alone until then.
- Logs
Paste the Warcraft Logs link, that is the whole job.
Wire up a raid-log channel and every report dropped in it gets read: bosses down, who was in each fight, and which of your raids it belongs to. Two nights close enough that he cannot tell them apart, and he asks rather than guesses. /raid log attaches one by hand, detach takes it back off.
- Series
A cadence that drafts the raids for you.
Set a weekly or every-N-week series and he drafts each raid ahead of time, then posts an Approve or Skip button in Discord. Being honest: it is built and it works, but no guild has actually run a night off one yet.
Druid clicks tank, bot says yes.
Mage clicks tank, bot says nice try.
You know the drill without him. A pinned message with reaction emoji, someone asking in general every Tuesday who is tanking, and the 19:55 scramble when it turns out the Boomkin picked the shield emoji because it looked good. That is the part he takes.
Calendar with a tank emoji, or raid ops.
A general scheduler posts an event and counts who clicked. It does not know what a Feral Druid is, so a Mage can sign as tank and nobody finds out until pull. You count healers by hand at 19:55, recurring events sit behind a paywall, and nobody gets pinged when they ghost.
None of that is a bug in those bots. They were built for book clubs and Rocket League. This one was built for a Tuesday Karazhan run.
- Class and spec checked on every signup
- Composition tracked live as people click
- Auto-lock, auto-bench, auto-voice, auto-archive
- Bench pings and unsigned nudges on a timer
- Your softres.it link on the post, the reminder, and the lock DM
- Attendance read from raid voice, not from who said they would come
- Warcraft Logs reports read out of your log channel, no command needed
Push the raid button.
Add HootusPlootus, walk the wizard, post your first signup. He checks the comp, locks the raid at minus 30, and pings the bench. You show up and pull.


