KANA CARDS

Account

Username
Password

Dota 2 Player

Link your OpenDota account ID. Future features may include granting you a card representing yourself as a player.

Your Tags

Twitch Account

My Roster

This week: pts Season: pts

Draw

Common
Rare
Epic
Legendary

Season Standings

RankUserSeason pts

Weekly Standings

RankUserWeek pts

Players

Player Team Matches Avg pts Total pts MVPs

Player average performance

#PlayerMAvg

Single match performance

RankPlayerFantasy pts

MVP leaderboard

RankPlayerMVPs

Teams

TeamMatchesPlayers

Season Schedule

Getting Started

Kana Cards is a fan-made card-collecting game tied to real Dota 2 league matches. Collect cards, build a roster, and score points based on how your players actually perform each week.

Cards & Drawing

  • Each card represents a real player from the Finnish Dota 2 league. Cards come in four rarities: Common, Rare, Epic, Legendary.
  • Draw a card by spending 1 token. Cards are generated fresh at draw time (rarity and player are rolled individually, not pulled from a shared pre-built deck) — the system prefers players you do not yet own — duplicates are only possible once you have a card for every available player.
  • Higher rarity cards receive a flat point bonus on top of base stats and may come with stat modifiers that amplify specific scoring categories.

Roster & Weekly Lock

  • Activate up to 5 cards as your active roster. Remaining cards sit on the bench and do not score.
  • Every week the roster locks automatically. Locked cards earn fantasy points from every league match played during that week.
  • You can swap bench cards in and out freely before the lock, but cannot change the roster once the week is locked.

Earning Tokens

  • +1 token at the start of each new week.
  • Watch streams on Twitch — linked viewers receive token drops when the broadcaster selects a match MVP.
  • Redeem promo codes distributed by admins for bonus tokens.

Watching on Twitch

Linking your account

  • Open the Kana Cards panel on the league's Twitch stream and link your account: go to Profile → Generate Twitch Code, then enter the 6-character code in the Twitch panel. The code expires after 10 minutes.
  • Once linked, your token balance is shown in the panel, and watching a linked stream makes you eligible for a token drop whenever the broadcaster confirms a match MVP.

Looking to broadcast instead of watch? See the Streamers subtab above.

Scoring & Modifiers

Fantasy points are calculated per match from raw in-game stats. Most stats are multiplied by a weight and summed. Deaths use a survival bonus pool: you start with a fixed point reward for surviving, reduced by a set amount per death — never going below zero.

Stat Weights

StatPoints per unit

Rarity Bonus

Flat multiplier applied to a card's total score.

RarityBonus

Card Modifiers

Modifiers are assigned at draw time and each boost one scoring stat's contribution.

RarityModifiers

The confirmed match MVP (see the Streamers subtab) also receives a bonus on their fantasy score for that specific match, applied retroactively and reflected in all leaderboards and roster totals. Current MVP bonus: .

Weights are configured by administrators and may be adjusted between seasons. The values above are live — they update whenever an admin changes the weights.

User Management

UserTagsTokensActions

Week Management

LabelStartEndLockedRosters

Player Management

NameTeamOpenDota IDActive CardsStatus

Audit Log

TimeActorActionDetail

League Management

IDNameMatchesMonitoredActions

Tag Definitions

Define tag types. Grant them to users via User Management above.

KeyLabel

Promo Codes

CodeTokensUses

Scoring Weights

StatWeight

Notifications

Broadcast a one-time message to all logged-in players during the active window.

MessageStartEndSeen

Token Grant Events

All logged-in players claim tokens automatically during the active window.

TokensStartEndClaims

Refresh Schedule Cache

Busts the in-memory cache and re-fetches from the Google Sheet.

Recalculate Fantasy Points

Applies current weights to all stored match stats.

Re-enrich Player Profiles

Fetches hero stats and ban data for all players, then regenerates AI bios if ANTHROPIC_API_KEY is set.

Season Lifecycle

Archive final standings before resetting for the next season. Standings are computed live and are destroyed by reset — always run End Season first.

Deletes matches, weeks, stats, the Player Pool, and all cards — retains users, tags, archives
SeasonArchivedUsers

Matches

MatchLeagueTeam 1Team 2Start TimeMVPAction