Custom rosters

Troubleshooting

What the Rosters menu's messages mean, and what to do about them.

The checker catches most of these before you share. It reads your files the way the game does, and it can check a published repository by its address.

Adding a repository

“not found (404): check the address”
There's no roster-repository.json where the game looked. Check that you gave the address of the folder it's in (or of the file itself), and that the file's name is exactly roster-repository.json, in lowercase. On GitHub, the repository has to be public, with the file at the top or in the folder you linked to.
“That address didn't send JSON (a web page, or nothing): check it's the repository's address”
The address leads to a web page rather than your files. That happens with share links from Google Drive, Dropbox or OneDrive, and with servers that answer a missing file with their home page. Use an address that serves the file itself.
“plain http isn't allowed: use an https:// address”
The game only reads https:// addresses. Most hosts give you one for free.
“the server wants a user name and password (401): add them under Sign in”
It's a private server. Open the repository in the Rosters menu, pick Sign in, and enter them.
"the server didn't take that user name and password (401)" and "the server won't let this sign-in read it (403)"
The sign-in is wrong, or the account can't read that folder.
“the server sent it on to another server, so the password wasn't sent there”
The server redirected the game somewhere else, and the game won't take a password to another server. Use the address the server redirects to.
"Not valid JSON at line 12, column 5: …"

There's a typing mistake at that spot. The usual ones:

The game says Look for
expected ',' or '}' or expected ',' or ']' A missing comma just before that spot. At the very end of the file, a missing } or ].
expected a field name in quotes A comma after the last item in { }, a name without double quotes, or a comment.
unexpected ']' A comma after the last item in [ ].
unexpected ''' Single quotes around text. JSON needs double quotes.
unexpected '/' A comment. JSON can't have them.
it ends too soon The file stops partway through.
"This isn't a repository index (its format is "…", expected “bladeybiscuit.roster-repository”)"
The file's format is missing or misspelt, or the address points at a different file (like a pack). The same goes for “This isn't a roster set index” and roster-set.json.
“A roster set in the repository index has no id or an unsafe index path”
A set is missing its id, or its index breaks the rules for paths. A space in a folder name is the usual cause.
“An update in roster set “…” has a bad date ("…") or an unsafe path”
Dates are yyyy-MM-dd, like 2026-10-05, and have to be real days. Paths follow the rules.
"… is format 2; this version of the game reads up to 1. Update the game to use it."
The file was made for a newer version of the game.

Installing

"the download doesn't match its checksum (it may be updating on the server: try again in a few minutes)"

The pack isn't the file its sha256 describes. Usually it's one of these:

  • You've just published. GitHub and many hosts keep copies of files for a few minutes. Wait and try again.
  • The pack changed after you worked out its checksum. Work it out again and update roster-set.json.
  • Your upload changed the file. Git on Windows can change a file's line endings. Have the checker check the published repository by its address, and it tells you the checksum of the file as it's served.
"This isn't a roster pack (its format is "…", expected “bladeybiscuit.rosters”)"
The pack's format is missing or misspelt, or file points at the wrong file.
“art/PIN.png doesn't match its checksum” and “art/PIN.png is 53386 bytes, not the 51274 the pack says”
A picture isn't the file the pack's files describes. Changed a picture? Give the checker the folder and copy in the files list it writes. Just published? Wait a few minutes, as for a pack.
“art/PIN.png isn't the PNG picture its name says”
The file was renamed rather than saved as that kind: a JPEG called .png, say. Save it again as the kind its name says.
“art/PIN.png is 8192 × 8192 pixels; a picture can be at most 4096 each way”
Make it smaller. A logo only needs 512 × 512.
“This roster pack's files come to more than 512 MB”
An update's pictures can come to 512 MB at most. Save the big ones smaller, or as JPEGs.
"Installed … · 2 art problem(s)"
It installed, but the pack names pictures the game left out: one not in files, say. The teams show their colours instead. The checker lists each one.
“This roster pack has 1 team(s); a league needs at least two”
Add another team, or check each team is inside the teams list.
“Installed … · 1 team(s) filled out”
Not an error. A team's lineup had holes, and the game filled them. The checker shows you which spots.

Importing a zip

“The zip has no roster-repository.json at the top or in one folder, so it isn't a roster repository”
The file is either too deep in the zip or named differently. Zip the repository folder itself, not the folder above it. On Windows, check the name hasn't become roster-repository.json.txt: turn on file name extensions in File Explorer's View menu to see.
“The zip has an unsafe path in it ("…"), so it wasn't imported”
A file or folder name breaks the rules for paths, usually with a space. The folder the whole repository sits in can have any name.
“The zip has two files called “…” (maybe differing only in capitals), so it wasn't imported”
Rename one. Windows and Macs treat Pack.json and pack.json as the same file.
“This isn't a zip file”
The file isn't a zip, or it didn't finish downloading.

A zip is also refused if it has more than 20,000 files, a file over 32 MB, or more than 1 GB in all.

In the game

My league isn't in team select.
Adding a repository doesn't install anything. Open the repository, pick a set, then pick a date. Installed sets are listed at the top of Settings ▸ Rosters.
A player shows up as “Call-up”.

The team's lineup had a hole and nobody to fill it. Check that:

  • the team has 15 skaters and a goalie;
  • each player's team matches the team's id exactly, capitals included;
  • each player's id is a number, not in quotes. A player whose id is in quotes is skipped.
A player is average at everything.
Their ratings aren't being read. Check that they're inside "ratings": { … }, that the names are spelt exactly as on the ratings page (capitals included: shotPower, not shotpower), and that the numbers aren't in quotes.
Players are in the wrong positions.
A forward line is [left wing, center, right wing], with the center in the middle. A pair is [left D, right D].
Everyone's the same size.
heightCm is in centimetres (185) and weightKg in kilograms (90). A height under 100 is ignored.
A team's in navy and white.
Its colors are missing or not written as # and six hex digits, like #1E4D2B.
My update doesn't show up.
Pick Check for updates in Settings ▸ Rosters. If you've only just published, give it a few minutes. Then check the new update is in roster-set.json.

Still stuck?

Email support@bladesandbiscuits.hockey with the message the game shows and, if you can, a link to your files.