SpikeCup
Discord bot for Valorant

You play.The tournament runs itself.

One-click sign-ups, rank-balanced teams, map veto in the match channel and results read from Riot match history. From check-in to the final, no spreadsheets.

  • Free up to 64 players
  • No card needed
  • European Portuguese, Brazilian Portuguese and English
SpikeCup APP
#partida-12 · today at 21:14
Map veto · Quarter-finals
Friday Cup · MD1 · alternating bans
Clutch FCVSThe Lurkers

How it works

A Friday night, start to finish

This is what happens in an eight-team tournament. The organizer types two commands. Everything else is buttons players press inside Discord itself.

  1. MON · 18:00

    Sign-ups open

    The announcement appears in the channel with a button. Anyone without a rank on their profile enters their Riot ID in the same step and the bot imports it.

    /tournament create Organizer
  2. FRI · 20:30

    Channel check-in

    Check-in opens in the tournament channel and every player presses “I'm here”. Anyone who forgets gets a DM reminder. Those who don’t confirm miss the draw, and the server can suspend repeat no-shows.

    button “I'm here” Players
  3. FRI · 21:00

    Balanced draw

    Teams come out levelled by rank and composition. Nobody ends up with the server's three Immortals.

    /tournament start Organizer
  4. FRI · 21:05

    Channel and veto

    Each match gets a private channel with both teams. The veto happens there, in turns, and whoever did not make the last ban picks the side.

    map buttons Captains
  5. FRI · 21:50

    The score arrives on its own

    The bot finds the match in Riot match history and posts the score as reported. Teams just press Confirm.

    button “Confirm” Bot + teams
  6. FRI · 23:40

    Final on stream

    The bracket updates on the public page and in the OBS overlay. The champion gets the 🏆 badge on their profile.

    public page + overlay Everyone
Built for Valorant

What a generic bot does not know

Any tournament bot knows teams and brackets. This one also knows ranks, maps, sides and scores up to 13.

Balancing

Fair teams before the first round

The draw reads each player's rank, imported from Riot, from Iron to Radiant, and splits the teams so the gap between them is minimal.

  • Rank imported from Riot by Riot ID, not typed by hand
  • Takes composition into account, not just the number
  • On the Club plan, ranks refresh on their own

Clutch FC 5 players

  • rafa.exe IMMORTAL 1
  • Bia do Smoke DIAMOND 2
  • tiagoOP PLATINUM 3
  • Nuno97 GOLD 2
  • marta SILVER 3

The Lurkers 5 players

  • vandalzinho ASCENDANT 3
  • K4tana DIAMOND 1
  • joao.sage PLATINUM 3
  • Inês GOLD 3
  • pdr GOLD 1
50.6%1.2 pp apart49.4%
Results

Nobody has to type the score

Once the match ends, the bot finds it in Riot match history and posts the score as reported in the channel. Teams confirm with one click. If the bot picked up the wrong custom game, just press Dispute before the bracket moves on.

  • Enforces Valorant rules: 13 rounds and overtime from 12–12
  • Without match history, one team reports and the other confirms
  • Free plan: 20 automatic results per month
14 Ascent
overtime
12
Clutch FCThe Lurkers
Clutch FCK / D / AACS
rafa.exe MVP27 / 17 / 6289
Bia do Smoke19 / 18 / 11221
tiagoOP16 / 19 / 9192

Illustrative example · read from Riot match history at 21:51 · waiting for confirmation

Formats

Real double elimination, for free

Lose and you drop to the lower bracket instead of going home. And if the lower-bracket team wins the grand final, there is a reset: the upper-bracket team deserves to lose twice too.

UPPER · FINAL Clutch FC2 The Lurkers1 LOWER · FINAL The Lurkers2 Spike Plant0 drops to lower GRAND FINAL Clutch FC0 The Lurkers1 RESET 1-1 in the final one more game
Free

Single elimination

Straightforward, with byes handed out when the team count does not fit.

Free

Double elimination

Upper and lower brackets, with a grand-final reset.

Free

League

Round robin, organised by matchdays.

Club

Swiss and groups

For big tournaments, with a group stage and qualification.

Compare

What changes against a bracket bot

A generic bracket bot runs the bracket. The rest — ranks, maps, scores — is left for someone to do by hand in a sheet or a message.

On tournament nightGeneric bracket botThis bot
Each player’s rankTyped by hand at sign-upImported from Riot by Riot ID
Balanced teamsRandom draw or done by handBy rank and composition
Map and side vetoAgreed in a conversationButtons in the match channel
ResultSomeone types the scoreRead from Riot match history, confirmed by the teams
Impossible score (13–12)Accepted without warningRefused, with the rule explained
Double-elimination grand finalDepends on the botReset when the lower team wins
StreamingScreenshot of the bracketOBS overlay that updates itself
Entry feesTransfers checked by handPayPal link per entrant and a list of who paid

Comparison with a generic bracket bot, naming none: every bot has its own features. The right column only describes what this bot does today.

For streamers

The bracket goes into OBS with a link

Paste the overlay URL as a browser source. It refreshes on its own, without flicker, and shows the upper bracket, the lower bracket, or both stacked.

  • Dark theme locked in, readable over gameplay
  • On the free plan it carries a discreet corner mark

…/stream?view=lower

Between tournaments

The server does not sit idle until Friday

/queue

Permanent queues

When the queue fills up, a custom match opens with balanced teams. On the Club plan there are separate queues per tier.

/duel

Duels

One-off matches against another team. The bot handles the map, the channel and the result.

/maps pickem

Map pick’em

The server votes on the maps it wants out. The ones left become the veto pool.

These are just a few examples. The full command list, with search, is in the manual.

Pricing

Players never pay to play

Signing up, checking in, vetoing maps and reporting results always works, on any plan. What you pay for is scale and automation.

Community

€0forever

Full tournaments, start to finish. No card.

Concurrent tournaments
2
Players per tournament
64
Automatic results
20 / month
Queue matches
60 / month
Recurring tournaments
1
Start for free

Club For weekly leagues

€4.99/ month · or €49.90 / year (two months free)

For those who run it seriously, every week.

Concurrent tournaments
10
Players per tournament
unlimited
Automatic results
unlimited
Bracket image, unbranded overlay
included
Swiss, groups, CSV export
included
Try the Club

Extra tournament

€1.99 · 5 for €7.99 · 10 for €12.99

For the weekend when more people show up than expected. One-off payment, no subscription.

Entry fees

€49.99 · one-time payment

PayPal links per entrant and tracking of who has paid. The money goes straight to the organizer.

Supporter

€2.99 / month

Cosmetics for the profile card. No in-game advantage whatsoever.

Questions

Before you add it

Do I need to grant administrator permissions?

No. The invite asks for what it needs: creating match channels, managing rank roles, publishing the tournament as a server event, sending messages and uploading bracket images. It never asks for Administrator or privileged intents.

What languages does it work in?

European Portuguese, Brazilian Portuguese and English. Each person sees replies in their own Discord language. Channel announcements go out in the server language. Discord does not tell the two Portuguese variants apart, so a Portuguese server picks its own in /config.

Where does the rank come from?

With /profile verify, the player enters their Riot ID and the bot imports the rank from Riot. Anyone who would rather not do that sends a screenshot with /profile proof, and an organizer approves it.

What if the Riot API is down?

Nothing stops. The result is confirmed manually by both teams, as it always worked.

Can I test it alone, without gathering people?

Yes. /test fill 16 fills the tournament with test players and you can play it through to the final on your own. Those players never enter the rankings.

What happens to my data?

/profile delete deletes your profile and personal data. The privacy policy explains what is stored and for how long.

The next tournament
organizes itself.