Basketball GM supports custom roster files that define the players to be used in a new league.

Getting a Custom Roster File

There are two sources of roster files:

  1. Download: If someone has made a custom roster file and put it up online, you can download it and use it. You might find some on Reddit.
  2. Export: From within any league, you can export the rosters from any season (current or past) by clicking "Export Rosters" at the bottom of the league menu on the left.

It is also easy to edit these roster files however you want, as is described below.

Using a custom roster file

When you are creating a new league, change the rosters from "Random Players" to "Upload Custom Rosters". Then, select your desired roster file.

Editing a Custom Roster File

A custom roster file is simply a JSON file containing a list of players. You can add/remove/edit any part of it.

One way to do this is to look at the structure of an exported roster file and base your new file off that. This will allow you to see all of the required and optional data you can store in roster files.

Another way to make roster files is to use this cool spreadsheet template created by MFazio23.

Many fields in the roster files are optional. The only required ones are shown below. Any other fields you see in an exported or custom roster file are purely optional.

{
  "startingSeason": 2013,
  "players": [
    {
      "name": "Andrew Phillips",
      "tid": 0,
      "ratings": [
        {
          "hgt": 20,
          "stre": 0,
          "spd": 85,
          "jmp": 50,
          "endu": 55,
          "ins": 68,
          "dnk": 45,
          "ft": 57,
          "fg": 64,
          "tp": 16,
          "blk": 49,
          "stl": 37,
          "drb": 75,
          "pss": 76,
          "reb": 39,
          "pot": 49
        }
      ]
    },
    {
      "name": "Heriberto Braman",
      "tid": 0,
      "ratings": [
        {
          "hgt": 27,
          "stre": 34,
          "spd": 85,
          "jmp": 55,
          "endu": 25,
          "ins": 46,
          "dnk": 42,
          "ft": 42,
          "fg": 54,
          "tp": 72,
          "blk": 48,
          "stl": 40,
          "drb": 72,
          "pss": 75,
          "reb": 44,
          "pot": 52
        }
      ]
    }
  ]
}

A list of things you should know when making a roster file:

You can also specify custom teams by doing something like this:

{
  "startingSeason": 2013,
  "players": [
    ...
  ],
  "teams": [
    {
      "tid": 0,
      "cid": 0,
      "did", 0,
      "region": "Atlanta",
      "name": "Herons",
      "abbrev": "ATL",
      "pop": 5.4
    },
    ...
  ]
}

The contents of each team object is as follows. Note that imgURL is optional.

The game works best with 30 teams, 15 in each conference, and 5 in each division. If you add more teams, it will still work, but generated schedules (and maybe some other aspects of the game) will be less balanced.