From NSwiki, the NationStates encyclopedia.
Jump to: navigation, search

NSFootySim is a program written in Java used to scorinate domestic football leagues and cups as well as some international competitions such as the World Cup. Though not originally intended as a competitor to the highly successful Leagion, its market share has been growing due to its usefulness as a somewhat more user-friendly alternative.

The current release of the program is version 2.0.1, released on August 11, 2006. The program is licensed under the GNU General Public License, and its source code is included in the download.


The program will generate results for all matches in leagues consisting of two or more teams (the theoretical maximum is 32,767 teams, but this is untested). Each team can play each other team either once at home and once away or once on neutral ground. At the user's discretion, draws can be disallowed, requiring tied matches to proceed into extra time or penalty shootouts if necessary to determine a winner.

In addition, single-elimination cup-style knockout tournaments are possible with any even number of teams; rounds will be generated until an odd number of teams remain. Such tournaments, like the leagues, may consist of two matches or one in each round. An option exists to randomize the fixtures for the first round of the cup; otherwise matchups will proceed in the order defined in the input file.


Unlike Leagion, NSFootySim does not have an "interactive mode" allowing one to scorinate matches without creating an input file. It has also occasionally been reported that all matches are generated with 0-0 scores. The cause of this has not yet been determined, but it is usually fixed by simply restarting the program.


The program was originally created in the late summer of 2003 by Bedistan as a simple DOS-based utility to generate scores of individual matches. At the time, it was programmed in C. In its first year of development, it underwent several wholesale rewrites and language changes, being converted to Java for version 0.2, back to C for 0.2.5, then to Visual Basic for version 0.3. During this time, it gained a graphical interface, a first among non-spreadsheet-based scorinators. It also became more powerful while simultaneously becoming more limited in scope – though it now had the capability to generate an entire league season with one click of the mouse, it could do so only for the Bedistani leagues, which were hard-coded into the program.

A major breakthrough in version 0.4 (June 2004) using some source code from Leagion paved the way for leagues of arbitrary size to be able to be generated, and generation of results for custom leagues was made available in version 0.4.1. For a few days, it would only work for leagues with an even number of teams, but odd-league capabilities were added in version 0.4.3 along with settings to further help customize the league such as specifying whether teams played each other once or twice, whether or not to allow draws, and how many league points are awarded for a win, draw, or loss (allowing for such things as the Rejistanian 4/2/1 point system).

The program finally returned to Java in version 0.5 (August 2004), and shortly thereafter the ability to generate cup-style tournament results was added. Version 0.6 (September 2004) introduced the ability to generate partial seasons and resume them later. Version 0.7 (September 2004) introduced mostly minor changes that were nevertheless big steps toward segregating the program from the Bedistani league structure and therefore making it more useful to the general public. The later 0.7 releases and 0.8 (December 2004) gave end-users more power than ever before by being able to customize almost every facet of the formulae used by the program for result generation. At this point, the author planned to implement a "deluxe mode" for the program that would produce a more realistic simulation all the way down to the individual player level, but the idea was soon scrapped as it went against the program's ideal of being as easy to use as possible.

Version 0.9 (December 2005) introduced optional style modifiers to the program and redesigned the interface. These two changes also required significant changes to be made to the format of the input file.

Version 1.0 (January 2006, the first "full" release, incorporated the ability to allow teams to enter cup competitions in different rounds, and version 1.1 (February 2006) added the ability to generate results for multiple divisions or leagues in one input file.

Though the program was made available on request to #sport regulars beginning in the fall of 2004, version 0.8.3a (August 15, 2005) was the first official public release of the program.

Current development

Projected features for the near future:

  • Interdivisional play

Leagues scorinated with NSFootySim

In alphabetical order by nation:

NSFootySim is also the scorinator used to scorinate the International Association Football League, which is currently contested by eight nations.

  • Swilatia Cup

Old versions

Older versions of the program are provided here for convenience:

  • 1.2.4 – uses old (albeit simpler) input file format, lacks many 2.0 features
  • 1.2.0 – some computers have issues with 1.2.4; this is the last known version before it believed to be fully functional on all computers (no Unicode support)
  • 1.1.3 – results still output to multiple files
  • 1.0.0 – no multidivisional support
  • 0.9.7 – no custom fixtures
  • 0.9.0
  • 0.8.3a – first released version, uses original input file format

NationStates World Cup
Editions: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38
Affiliated tournaments: Baptism of Fire | Cup of Harmony | Under-21 World Cup
Scorinating: KPB ranking system | Leagion | NSFootySim | Role play ranks (RPR) | Style modifiers
Related articles: World Cup Committee | FAQs | Player Hall of Fame | Nation Hall of Fame | Football