Rosters
Four ways to set a roster.
A roster is the list your short codes type against. It binds to a folder, so a season or a weekend is set up once. It is separate from the indexed headshots MatchID matches faces to.
Right-click a folder and choose Set roster…, or use the Roster button in the Browse toolbar. Both open the same modal, which has four tabs.
The four tabs
Existing roster · Build new · From template · Import a file
Existing roster picks one from your library. The roster this folder already uses sorts to the top with a Currently set badge.
Build new pulls squads from the GalleryID Roster Feed. Choose the league, tick the teams, set the shortcode structure and the output columns.
From template starts from a setup you saved earlier, and it is the tab that gives you the one-dropdown game day below.
Import a file takes a TSV, CSV, TXT or XLSX where column A is the short code. Codes have to be unique inside a roster; give each team its own prefix so p1 becomes hp1 and vp1.
Set the folder up once, then pick the opponent. When a template names your own team, the form collapses to a single control: Opponent. Pick who you are playing and both squads are pulled, with a live panel on the right showing exactly what each column will write. Your team stays {team1} and the opponent is {team2}, because the tokens are positional. Change the full setup… opens the whole form again when a game is an exception.
On a folder that already has a roster, the banner at the top of the modal names it and offers Edit roster…. Feed-backed rosters also get Change the team…, which drops you straight back into the opponent picker. An imported file has no feed to pull a second squad from, so it does not offer that.
Cascade to subfolders
On by default, and it resolves live
Subfolders with no roster of their own inherit this one, including folders you create later, because the lookup walks up the tree rather than copying anything down. A subfolder with its own binding is never overridden.
Turning the cascade off does more than stop sharing: it blocks inheritance through that folder entirely, so its subfolders stop seeing a roster from further up as well. Browse marks that state on the folder chip as vetoed.
The grid is editable. Shortcode, number, first, last, team and position, with + Add row for anyone the feed does not carry. Duplicate codes resolve themselves rather than failing: two number 1s on a football roster become p1o and p1d by side of the ball, with p1s for special teams, and other sports go p1a and p1b. Nobody keeps the bare code, deliberately, because a bare code sitting among suffixed siblings looks like the real one and there is no real one. A code you typed yourself is never renamed.
Refresh Roster
Your corrections survive it
Refresh re-pulls the squads and replaces the rows. Anything you corrected by hand is held: edit a name, number, position or team and it is kept as a manual correction that a refresh will not overwrite. Held fields carry an amber mark and a count in the Held column.
Corrections release themselves once the feed catches up, so a roster does not quietly accumulate locks until it has stopped following the feed at all. When that happens the toast tells you which fields went back to tracking, because a silent change to what ships is not acceptable. Click the Held count to release one yourself.
When a roster holds corrections, Refresh asks first: Keep my changes updates everything except your corrected fields. Use the feed takes the feed’s values and drops them, which cannot be undone from there.
Photos you already tagged
Tags are pinned to a roster version
Each rows-replace mints a version, and a tag remembers the version it was made against. Refresh the roster past a trade and last season’s photo still names the player who wore that number when you shot it, rather than whoever wears it now.
A folder can also be pinned deliberately: on the Existing roster tab, Roster version defaults to Latest — follows refreshes and can be set to a dated squad instead. A pin does not cascade to subfolders.
Typing codes
The delimiter, and pulling another column
Type \h1\ in a caption or keyword field and it is replaced the moment the closing character lands, with that row’s column B. Add #2 before the closing delimiter for column C, #3 for D, and so on.
The delimiter is a backslash unless you change it in Settings → Browse & Preview; some people prefer =. A code that matches nothing is left on screen exactly as you typed it, delimiters and all, so you can see the typo rather than losing the text.
Deleting a roster leaves any folder bound to it without one. Tags already written keep their names. Clear binding is the gentler option: it unbinds this folder and lets it fall back to whatever a parent cascades, touching neither the roster nor any photo.