ZenGM Hockey is a highly customizable game. Most of this is done through God Mode, where a ton of customization settings are available. However it is possible to go even further by making custom League Files, which contain the data of a ZenGM Hockey league - teams, players, stats, etc. League Files have two main purposes:

  1. They allow you to use League Files created by others, or create your own to share. You might find some of these on Reddit.
  2. They allow you to make a copy of a league you are playing. This allows you to have a backup of a league or to share a league across two computers. Within any league, go to "Tools > Export League" to create a League File.

To use a League File, create a new league and select "Upload league file" under "Customize".

It is also possible to import only a draft class or only team info (cities, names, etc) from a League File. For draft classes this is done at Players > Draft > Draft Scouting, and also read this for more information. For team info, go to Tools > Edit Team Info (only available after enabling God Mode).

Editing League Files

League Files are text files in JSON format. You can add/remove/edit nearly any part of it.

The easiest way to see what a League File looks like is to create one for one of your leagues. Within a league, go to Tools > Export League. That will bring you to a page that allows you to select which components you want to export. Note that you don't have to export everything, and that default values will be filled in for components that are not included in the League File.

What components should you include in your League File? It depends on your goal. If you want an exact copy of a specific league, you should select everything (except possibly Box Scores, since they take up a lot of space). If you want to create some customized rosters for others to use, you probably should just define the teams and the players, and then leave out most of the rest so their default values are used.

What is the best way to edit a League File? I'm not exactly sure. You can open a file in any text editor and edit it by hand. But if you're making one from scratch, you might be better off writing some code to generate it.

League Files are divided into multiple sections, which are the root elements of the JSON data structure. These sections are described below. Most are relatively simple and self-explanatory if you just look at an exported League File. Some are a bit more complicated and have links to more comprehensive information. The most important ones are players and teams.

There are also a number of other sections, most of which you would leave completely out of a League File you plan on sharing with others. They mainly define the internal state of your current specific league.

Debugging League Files

Debugging can be tricky. Ultimately, the only way to be sure is to try it out. However there is a JSON Schema file you can use to catch some errors. Here is some documentation on how to use it.