Logos
A logo is a picture file that sits beside the pack, named in the pack twice: once in the team's
logo, and once in the pack's files with its checksum and size.
{
"format": "bladeybiscuit.rosters",
"formatVersion": 1,
"league": "POND",
"files": {
"art/PIN.png": { "sha256": "5b244b54c1485fa7d4740e396501b887be4e582dfdb0c5aefb13c0b1c415a199", "size": 51274 },
"art/SAL.png": { "sha256": "ff75284239529f17a1e4792ab9c6cdcebea6cfa76cc0256cea52a822eba36598", "size": 53386 }
},
"teams": [
{ "id": "PIN", "name": "Pinecrest Porcupines", "logo": "art/PIN.png", … },
{ "id": "SAL", "name": "Saltmarsh Sturgeon", "logo": "art/SAL.png", … }
],
…
}
pond/
roster-set.json
2026-10-05/
roster-pack.json
art/
PIN.png
SAL.png
The game shows a logo:
- In team select, beside the team's name.
- On the scoreboard, and on the banners for goals and the three stars.
- On the front of the jersey, as the crest.
A team without a logo shows none.
Making one
- 512 × 512 pixels, square, as a PNG with a transparent background. That's what the BBHL's logos are.
- It sits on dark and on light. Team select puts it on the team's colour, the scoreboard on dark, and the jersey on whichever colour the team's wearing. A dark outline round the shapes keeps it readable on all of them.
- Keep it bold. On the scoreboard it's the size of a fingernail, so fine lines and small writing disappear.
The example repository has a logo for each team to look at.
The files list
Every picture a pack uses is listed in its files, by its path relative
to the pack, with its sha256 and size. When the game installs an update, it downloads each
file, checks it against these, and checks it's really the picture its name says. One that doesn't
match stops the install, so people never get half an update.
| Rule | |
|---|---|
| Kinds | .png and .jpg (or .jpeg) only. |
| Size | At most 4096 pixels each way, and 16 MB a file. |
| All together | An update's pictures can come to 512 MB at most. |
| Paths | The same rules as the rest of a repository: no spaces, no ... |
You don't have to work out the checksums by hand. Give the checker your
repository's folder and it checks every picture and writes the whole files list for you.
Listed but never used, a file is still downloaded, so keep the list to what the pack needs.
Where to keep pictures
Paths can't climb out of the pack's folder, so there are two good layouts:
Beside each update (as above, and in the example). Each dated folder is complete on its own. A new update copies the pictures over. On GitHub that costs nothing extra, since git stores a file that hasn't changed only once.
Shared by every update. Put the packs side by side in the set's folder, named for their dates, with one
artfolder next to them. Updatefileinroster-set.jsonto match:pond/ roster-set.json 2026-10-01.json 2026-10-05.json art/ PIN.png SAL-2.pngWhen you change a picture this way, give it a new name (
SAL-2.png). Older updates still point at the old one, and their checksums need it to stay as it was.
Logos online
Logos stay on each player's own device. In an online game, a friend sees your team's logo if they have the same roster set installed, and no logo if they don't.
Coming: textures for everything
New player models are on the way: skaters and goalies, each with their own helmet, mask and face, and new sticks. When they arrive, a roster set will be able to dress them:
- Team uniforms, home and away, for skaters and goalies.
- Helmets, masks and sticks, for a whole team or one player.
- Faces, player by player.
Each will be a set of texture maps painted onto a template of the model. The templates and how to use them will be here when the models are. The game already downloads and checks this art, so a roster set made for it will work as soon as the models do.