forgehub. A small, independent toolbox

Circlecard Fixtures

Why does Circlecard Fixtures reject my pasted roster?

Circlecard Fixtures checks each physical line for control characters, trims its edges, checks its length and rejects duplicate names ignoring case. It then requires 2–20 entrants. Repair the reported line and generate again; tabs can fail even at the edge of a name, and visually similar names are not always treated as duplicates.

Open Circlecard Fixtures

Start with the reported line, including blank lines

Choose Generate fixtures and read the error before replacing the whole roster. The parser stops at its first problem, so fixing one line may reveal another error on the next attempt. The input stays available for correction; a failed attempt does not silently discard a troublesome entrant and create a partial competition.

A line number refers to the original pasted lines, including empty ones. If line 1 is Alder Club, line 2 is blank and line 3 is ALDER CLUB, a duplicate error points to line 3. Count the blank line when locating it. Ordinary empty lines are ignored as entrants, but still occupy positions in the pasted text.

Remove tabs before relying on edge trimming

The control-character check happens before trimming or skipping blank lines. A leading tab followed by Brookside therefore fails rather than becoming Brookside. A line containing only a tab also fails rather than being ignored. Ordinary spaces around a name, however, are trimmed.

When copying from a table, check whether a row contains a name, a tab and another column such as a contact or seed number. Paste only the name column, with one entrant per line. For a stubborn control-character error, retype the affected line as a plain name. Unicode format controls are also rejected, so an invisible character can cause rejection.

Resolve duplicates without inventing extra entrants

After trimming, the app lowercases each name to check uniqueness. Alder Club and ALDER CLUB collide, as do Brookside and Brookside with ordinary trailing spaces. If these are two copies of one team, remove the extra line. If they represent different teams, use recognizable labels such as Brookside Juniors and Brookside Seniors.

This comparison does not establish whether two labels refer to the same club. Interior spaces are not collapsed: North Club and North Club, with two spaces, remain different strings. Unicode normalization and locale-specific comparison are not performed either. Review near-identical labels yourself rather than treating successful generation as proof that you have no accidental duplicates.

Check name length and roster size separately

Each trimmed name may contain up to 40 Unicode code points. This is not necessarily the number of visible symbols: a letter followed by a combining accent takes two code points. Elaborate decorative sequences can contain several code points or rejected format controls. If a decorative name fails, shorten it to a simple readable team label.

The roster must contain 2–20 accepted names. Blank lines do not help reach the minimum, and a line containing several comma-separated names remains one entrant. Put each real entrant on its own line. If you have more than 20, this worksheet cannot generate one complete competition for that roster; removing real teams changes the competition being modeled.

Generate again and inspect the cleaned names

After repairing the reported line, choose Generate fixtures again. Continue until validation succeeds, then inspect the entrant names in the result and the complete selectable sheet. Check that cleanup preserved the actual teams and their intended order, especially if you replaced pasted lines manually.

Every roster edit clears existing fixtures and the report and disables downloading until generation succeeds again. Keep a separate copy of your intended roster while repairing it. Reset or reload discards work, and there is no saved history. Once the corrected roster is confirmed, save its current sheet before leaving.

AI-assisted ForgeHub editorial. App capabilities were checked against its implementation; this guide is not an independent review.

Frequently asked questions

Why is a blank-looking line rejected?

A line containing a tab or another rejected control character is checked before blank-line removal. Delete that line entirely or replace its contents with ordinary spaces if you intend it to be empty.

Will changing capitalization make two names unique?

No. Duplicate comparison uses the trimmed name converted with JavaScript toLowerCase. Give genuinely different entrants distinguishable labels instead of relying on capitalization.

Does passing validation prove I entered each club once?

No. Interior spacing differences and Unicode representations can remain distinct. Review names that look alike or describe the same club, even if both were accepted.

Can I repair the roster without losing the pasted text?

Yes. Validation preserves entered text for correction. Editing clears any generated fixtures and report, so generate again after repairing it. Reset or reload discards the roster.