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.jsonwhere 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 exactlyroster-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 '}'orexpected ',' or ']'A missing comma just before that spot. At the very end of the file, a missing }or].expected a field name in quotesA 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 soonThe file stops partway through. - "This isn't a repository index (its format is "…", expected “bladeybiscuit.roster-repository”)"
- The file's
formatis 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” androster-set.json. - “A roster set in the repository index has no id or an unsafe index path”
- A set is missing its
id, or itsindexbreaks 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, like2026-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
sha256describes. 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
formatis missing or misspelt, orfilepoints 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
filesdescribes. Changed a picture? Give the checker the folder and copy in thefileslist 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
teamslist. - “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.jsonandpack.jsonas 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
teammatches the team'sidexactly, capitals included; - each player's
idis a number, not in quotes. A player whoseidis 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, notshotpower), 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.
heightCmis in centimetres (185) andweightKgin kilograms (90). A height under 100 is ignored.- A team's in navy and white.
- Its
colorsare 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.