Shockwave
Discord bot · team voice manager

Split the lobby.
Draft the roster.
Move out.

Shockwave looks at who's in your voice channel, builds two balanced teams, hands out lanes, and moves everyone into the right channel. It's all done with slash commands, in the time it takes to type them.

or run your own instance →

Shockwave crest: a stone-and-gold orb wrapped in lightning inside a shield
Team 1
Kestrel Bramble Onyx Wrenna Tovik
Team 2
Fennmark Dusk Corvid Yarrow Halcyon
↑ actual output of /make-teams, rendered exactly as Discord shows it

Draft night, start to finish

How a session actually runs

This is the one place order genuinely matters: it's the sequence most servers follow on a real scrim night.

01

Point the bot at your voice channels

An admin runs /set with team1/team2 once per server. Shockwave creates the channels if they don't exist yet. If your games aren't 5v5, also set its optional size so commands like /notify know how big a game to advertise. Skip this and Shockwave falls back to Team-1/Team-2 the first time a game starts.

02

Get everyone in one voice channel

Whoever runs the next command needs to be sitting in the channel with the group; that's how Shockwave knows who's playing.

03

Build the roster: casual or ranked

Shuffle instantly with /make-teams, or let two captains draft live with /captains and /choose. Either way it's a casual game, elo untouched. Want it to count? Add ranked:true to either one and it balances teams by elo and updates it when the winner's in. Full breakdown, side by side: casual vs. ranked setup →

04

Move everyone out, open the books

Press Start on the posted roster to drop each player straight into their team's channel, open a one-minute window for everyone to /wager gold on who wins, and post the winner-report message (a button for each team, plus Cancel Game), all at once.

05

Report the winner, whenever the game ends

No need to wait for the betting window to close: press that same message's button for the winning team the moment the game actually finishes (then Confirm) to settle every bet, update game records (and elo for ranked games), and move both teams back to the original channel automatically.

06

Handle the edge cases

Cancel Game on the report message ends the game early and refunds any bets. Pressed the wrong team's button? /report-correct-winner fixes a misreported result after the fact.


Running a bracket, not just a scrim

Tournaments are a second, separate flow

Everything above is one game at a time. For a real bracket, Shockwave has a parallel system built around persistent teams instead of an ad-hoc roster.

01

Stand up persistent teams

/team-create makes a named team with a captain and a target size; it sticks around across sessions. Captains grow the roster with /team-invite and give it a home with /team-set.

02

Open the tournament and register

/tournament-create sets the name, team size, and bracket size once for the server. Captains bring their own team in with /tournament-register.

03

Build the bracket and play it out

/tournament-create-bracket seeds a real single- or double-elimination tree; /tournament-start then plays it match by match (one at a time with betting, or every match in the round at once), updating the bracket in chat as each result comes in. Double elimination keeps going through a losers bracket and Grand Finals before there's a champion.

Full tournament & team command reference →


What it handles

Six things, done well

Team setup

Name your team channels, set squad size, and reset a session's state before the next one starts.

See setup commands →

Team formation

Random split, live captain draft, or lane roles for a 5-player squad, or go ranked with an elo-balanced split and tracked elo.

See formation commands →

Voice channel ops

Move a whole roster in one call, bring everyone back after, or send someone a one-click invite.

See voice ops →

Betting & economy

A gold balance for every member, daily gold, pari-mutuel bets on who wins each game, and heads-up wagers between two players.

See betting commands →

Tournaments & teams

Persistent named teams with captains and their own voice channel, registered into a real single- or double-elimination bracket that plays itself out match by match.

See tournament commands →

Utility

A dice roll for who gets first pick, and a full command list when someone forgets the syntax.

See utility commands →