If you haven't already, first read the customization overview.
"Game Attributes" refers to some high-level variables that define the state of your game. When making a League File, don't have to specify them. Any you leave out will just get their default values. Some attributes that might be worth playing with are described here:
{ "version": 33, "gameAttributes": [ { "key": "userTid", "value": 15 }, { "key": "phase", "value": 0 }, { "key": "daysLeft", "value": 0 }, { "key": "ownerMood", "value": { "wins": 0, "playoffs": 0, "money": 0 } }, { "key": "season", "value": 2013 }, { "key": "startingSeason", "value": 2013 }, { "key": "gracePeriodEnd", "value": 2015 }, { "key": "numGamesPlayoffSeries", "value": [7, 7, 7, 7] }, { "key": "confs", "value": [ {"cid": 0, "name": "Eastern Conference"}, {"cid": 1, "name": "Western Conference"} ] }, { "key": "divs", "value": [ {"did": 0, "cid": 0, "name": "Atlantic"}, {"did": 1, "cid": 0, "name": "Central"}, {"did": 2, "cid": 0, "name": "Southeast"}, {"did": 3, "cid": 1, "name": "Southwest"}, {"did": 4, "cid": 1, "name": "Northwest"}, {"did": 5, "cid": 1, "name": "Pacific"} ] } ] }
userTid
is the ID number of the team you are managing, from 0 to 30. Setting it here will make it the default for new leagues created with this League File, but users can still change it if they want.
phase
is the "phase" of the game, set by one of the following numbers:
So by setting the phase, you can pick when your game starts. So if you want to create a League File that starts with the draft, you can do it!
daysLeft
only has an effect if you set your phase to 8 (free agency). It defines the number of days left before the preseason starts.
The values in ownerMood
define how the owner feels about you. Positive numbers are good (max for each is 1), negative numbers are bad. If the sum ever drops below -1, you are fired.
numGamesPlayoffSeries
is an array containing the number of games in each round of playoffs. For instance, if you want the old NBA style of a 4 round playoff where the first round is 5 games, set it to [5, 7, 7, 7]
. This setting also determines the number of playoff teams, 2number of rounds. The default is 4 rounds (16 teams) with 7 games each, but it will auto adjust to fewer rounds if you have fewer than 16 teams. Previously there was a setting called numPlayoffRounds
that let you set the number of rounds - that will continue to work as it did before, but numGamesPlayoffSeries
is the recommended way of changing the length of the playoffs now.
The confs
and divs
properties let you change the conferences and divisions in the league. The default ones are shown above. You can have any number of conferences and divisions except 0. Things to remember:
cid
and did
must start at 0 and increase without gaps, same as tid
for teams.As an example, try this league file with 3 conferences and 12 teams.
The last three attributes listed above are related to the season. season
is the current season. startingSeason
is the first season played in this league. gracePeriodEnd
is the first season you can get fired after. If you set one of these, you should set all of them. You should also specify seasons for any stats, ratings, and attributes for your players and teams.
However, there is a shortcut to make things easier. Move startingSeason
up to the root of the League File (at the same level as gameAttributes
) and it will be used to automatically set all of the season variables everywhere. Or just leave startingSeason
and all the other seasons out completely and the default value will be used.
By default, Grizzled GM Basketball uses names and nationalities similar to players in the NBA. However if you're making a custom league file designed to represent a basketball league in another country, it is annoying when the new players generated in your league all have names like "John Smith". For this reason, you can specify the first and last names you want randomly generated players to have in your league.
Here is an example. Try using it as the League File when you start a new league. Every player will have a first and last name from a US president. First and last names are handled independently, so you can get "Barack Bush". The format of the names data is like this:
{ "gameAttributes": [ { "key": "names", "value": { "first": { "USA": [ ["George", 1], ["John", 2], ["Thomas", 3] ], "Canada": [ ["Bob", 1], ["Aaron", 2], ["Chad", 3] ] }, "last": { "USA": [ ["Washington", 1], ["Adams", 2], ["Jefferson", 3] ], "Canada": [ ["Smith", 1], ["Jones", 2], ["Anderson", 3] ] } } } ] }
You can see how first and last names are defined separately. Each name also has a number associated with it. The number is the relative cumulative frequency. That sounds much more confusing than it is. Basically the purpose is to define the frequency of names, like you might want "John" to be more common than "Ebenezer". The gap between numbers represents the relative frequency of a name. In this case, all the gaps are 1, so all the names appear with equal frequency.
Another thing to keep in mind - the relative cumulative frequencies must always be increasing or bad things will happen. Besides that, make them whatever you want. Scale doesn't matter. It would work just the same if the numbers above were 0.1, 0.2, and 0.3.