ps5upload
Send games, apps and homebrew to a jailbroken PS5, and manage the console from your computer, phone or browser.
Dota 2 Captain’s Mode draft trainer with S–F grading, built on OpenDota data.
GamesJavaScript · CSSGitHub @DirebornEsportsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A Draft Simulator
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Dota 2 Captain's Mode draft trainer. Next.js (App Router) on Vercel, data from the OpenDota API.
/review after the draft./ranked) — fully manual: enter bans, your team's picks (by position) and enemy picks
as they happen in a real ranked All Pick game. Suggests heroes for your position (or any open slot):
pro position data, Immortal win rate, counters vs enemy picks, synergy. Grades your pick and lanes./play) — captain vs captain in a shared room with a 6-character code. Spectators can watch.
The server runs the turns, timers, reserve time and timeouts; each captain gets their own live or blind grades.| Route | Source | Cache |
|---|---|---|
/api/heroes | OpenDota /heroStats (names, roles, portraits, pro + Immortal stats) | 12 h |
/api/matchups/[id] | OpenDota /heroes/{id}/matchups | 24 h |
/api/quiz | OpenDota /proMatches + /matches/{id} | 1 h / 7 d |
Hero portraits load from Valve's CDN using the image path OpenDota returns.
Optional env var: OPENDOTA_API_KEY for higher rate limits.
Rooms are stored in Redis. In Vercel: Project → Storage → add Upstash for Redis (free tier is fine).
It sets KV_REST_API_URL / KV_REST_API_TOKEN automatically; redeploy afterwards.
Without it the app falls back to in-memory rooms, which reset between server instances (local dev only).
Clients poll /api/rooms/[code] once a second.
Redis keys: dl:teams (all teams, JSON), dl:history (latest 400 drafts/quizzes), dl:room:* (multiplayer, 24 h).
API: /api/teams, /api/teams/[id]/import, /api/teams/[id]/match, /api/history, /api/health.
Data saved in a browser by older versions is moved to the database on first visit.
Score = 30 + 0.6 × meta strength + counter value + composition needs, clamped to 0–100.
lib/draft.js — current order (patch 7.40, unchanged through 7.41f): bans F F S S F S S · picks F S · bans F F S · picks S F F S S F · bans F S F S · picks F S. 15 s per ban in ban phase 1, 30 s otherwise, 130 s reserve. A timed-out ban is lost; a timed-out pick is random.
Re-check against the current patch notes when Valve changes the draft.
Captains set Pos 1–5 or Flex for each picked hero (on the board or in the review). Unset heroes are auto-assigned to the best open position.