What is Invictus?
Invictus is a football tournament simulator you can run straight in your browser — or install on Android. No sign-up, no server, no ads. Everything lives in local storage.
🌐 Live demo: invictus-tournament-maker.vercel.app
📱 Android: itch.io page
🐙 GitHub: orazchollaev/invictus-tournament-maker
Why I built it
I wanted a simple tool to simulate fantasy tournaments with friends — Champions League-style brackets, custom teams, multi-season leagues. Everything I found was either too complex, paid, or required an account. So I built my own.
What it can do
Three competition formats
- Knockout — single-elimination bracket with optional two-legged ties, aggregate scoring, penalty shootouts, and a third-place match.
- Group Stage + Knockout — round-robin groups feed into a knockout bracket. Handles wildcard spots, cross-seeding (1st Group A vs 2nd Group B), no-rematch mode.
- League — full round-robin with a standings table. Supports multiple tiers with promotion and relegation between them. ### Simulate or play it out yourself
Every match lets you enter scores manually. Or hit Simulate and let the engine handle it. Three tuning knobs:
| Setting | What it does |
|---|---|
| Surprise Factor | 0 = strongest team always wins. 100 = pure chaos. |
| Home Advantage | Power boost for the home side. |
| Form Factor | Recent form affects team strength. Win streaks make you stronger. |
Monte Carlo simulation (new in v1.9)
Run 10,000 simulations of your tournament in one click and get a probability breakdown — who's likely to win, reach the final, or get knocked out early. Great for answering "what are the actual odds?"
Multi-season history
When a tournament ends, start a new season with the same teams. All seasons are numbered (S1, S2, …) and nothing is lost. The history section tracks:
- Champions and title streaks
- All-time standings table
- Biggest wins, most clean sheets, total goals
- Per-team records broken down by season ### Draw modes
Each new season can be drawn randomly, seeded (best teams kept apart), or manually by dragging teams into position.
Tech stack
- Vue 3 + TypeScript
- Vite for bundling
- Capacitor for Android packaging
- vue-i18n — EN / TR / RU / ES / PT support
- All data stored in localStorage — no backend
What's next
- More sports formats (basketball, hockey)
- Export bracket as image (PNG export is already there for the bracket view)
- More languages
Try it
👉 invictus-tournament-maker.vercel.app
Load one of the sample datasets (Champions League, World Cup, etc.) to get started in seconds. Feedback and PRs welcome on GitHub.
Top comments (0)