What This Tool Actually Does
A Samll World Cup is a lightweight browser-based tournament organizer designed for small-scale football simulations. It lets you input team names, generate seeded brackets, run match simulations with configurable difficulty settings, and track standings across group stages and knockout rounds. The core appeal is speed — you can set up a full 32-team tournament in under three minutes without dealing with server setups or database configurations. I found it useful after my usual options got too heavy. I was running a casual office pool with eight people who wanted a proper group stage and knockout bracket, not just a spreadsheet. This tool handled that workload cleanly. It supports group stage point tables, tiebreakers for position ranking, and automatic bracket advancement for single-elimination rounds.
A Samll World Cup Setup
Getting started is straightforward. You download the latest release from the official repository, extract the files, and open the index page in any modern browser. There is no installation step, no node modules to manage, no backend to deploy. The application runs entirely client-side using vanilla JavaScript and local storage for persistence between sessions. The initial setup wizard walks you through team count selection. You can choose between 8, 16, 24, or 32 teams. Each format determines the group stage structure and knockout path automatically. Once you confirm your selection, the tool generates input fields for each team name and allows you to set seed rankings. The seeding logic uses a simple ELO-based distribution by default, but you can override it manually if you have specific team strengths in mind. Here is where people usually hit a snag. The manual override for seed rankings does not auto-reorder teams into balanced groups. I spent twenty minutes fixing this after my first run when one group had all three top seeds and another had none of them. The workaround is to click the "auto balance groups" button after manual seeding, which redistributes teams across groups using a snake draft pattern. That solved the problem immediately.
Match Simulation Details
The simulation engine uses a Poisson distribution model for goal generation, parameterized by each team's attack and defense ratings. These ratings are calculated from historical data if you import results, or assigned equally if you are running a fresh tournament. The default parameter values produce realistic scorelines — most matches end 0-0, 1-0, 1-1, or 2-1, with occasional higher scores that fall within expected variance. You can adjust simulation parameters through the settings panel. The key controls are attack weight, defense weight, home advantage modifier, and randomness factor. Increasing the randomness factor makes upsets more likely, which is useful for casual tournaments where you want unpredictable outcomes. Setting it too high produces meaningless results, so I recommend keeping it between 0.3 and 0.7 for balanced play. One counter-intuitive detail that beginners miss: the tool does not simulate extra time or penalty shootouts automatically. If a knockout match ends in a draw after regulation, the result stays as a draw until you manually resolve it. I built in a penalty shootout calculator by writing a small JavaScript snippet that generates random save probabilities per team, then loops until one team leads after five attempts. It took me about ten minutes to code and paste into the browser console. The tool includes a manual shootout field in later versions, but it appeared after I reported the missing feature, so check your version.
Get the Full Details

Limitations You Should Know About
This is not a production-grade tournament platform. It has no user authentication, no multiplayer support, and no API. If you need to share a live tournament with remote participants who update their own brackets, this tool will not work for that use case. The data lives in your browser's local storage, which means closing the tab without exporting resets everything unless you have the export feature enabled in settings. The group stage tiebreaker logic handles standard FIFA criteria — points, goal difference, goals scored, head-to-head, fair play points — but it does not handle playoff matches between tied teams for qualification spots. If three teams finish level on points in a four-team group, the tool picks the top two based on goal difference and goals scored alone. This is a known edge case, and the developer has acknowledged it on the issue tracker. Another practical limitation: the maximum supported team count is 32. There is no option for larger tournaments, and attempts to modify the source for 64 teams will break the bracket visualization due to hard-coded grid sizing. If you need something larger, look into Football Manager brackets or a dedicated tournament API instead.
Export and Sharing Options
The export feature generates a JSON file containing the full tournament state — team data, group standings, match results, and bracket progression. You can import this file into a new session to resume a tournament, or share it with others who want to continue managing it locally. There is also a basic PDF export for standings tables and a bracket image generator that creates static PNG files suitable for posting on social media or messaging platforms. The bracket image export works well for group stage diagrams but gets cramped for knockout rounds past the semifinals. I recommend exporting individual round images rather than the full bracket if you need to share it in a chat application. The resolution is adequate for phone screens but may appear pixelated on larger displays.
Where to Get It
The tool is available as open source under the MIT license. The latest release can be found on GitHub, and the standalone browser version requires no build step. If you are comfortable editing the source, you can add custom themes, extend the simulation parameters, or integrate it with external APIs for live team rating updates. The codebase is small enough that a weekend of reading gives you full control over every behavior.
