Skip to content

About

Draft Arcs leader and lore cards over a shared link — no server, the whole draft lives in the URL.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Arcs draft

A small web page for drafting leader and lore cards in Arcs before game night. Everyone picks in their own time, with room to think about combos, and setup at the table goes quickly. One person enters the names and deals. Every pick produces a new link, which goes to the next player. The whole draft lives in that link, so there is no server, no account and nothing to install.

Unofficial fan tool, not affiliated with Buried Giant Studios, which publishes Arcs, or with Leder Games, its original publisher. Card images load from the official card library when a draft is opened, and the card text comes from the same place.

How a draft works

The page follows the Leaders & Lore setup from the rulebook. Turn order is shuffled, and the first name holds initiative. Picks start with the player to the right of initiative and go counterclockwise. Each turn a player takes one card, until everyone holds one leader and their lore cards.

Variants, all chosen at setup and carried in the link:

Setting Choices
Cards Base game only (8 leaders, 14 lore), or base game plus the Leaders & Lore pack (16 leaders, 28 lore)
Lore cards each 1 (rulebook), 2 (the rulebook's variant) or 3
Cards on offer Rulebook rows: one more leader than players, and one more lore card than the players take in total. Wider rows: twice as many leaders as players, and lore + 2 lore cards per player. Deal and pick: each player gets a hand of 2 leaders and lore + 1 lore cards to choose from.
Pick order Rulebook: the same order every round. Snake: the order reverses each round.

In deal and pick, every hand is visible to anyone who opens the link.

Development

Plain ES modules with no build step. The repo root is the site, so GitHub Pages can serve it as is.

npm install        # jsdom, for the UI tests
npm start          # http://localhost:8000 — modules don't load from file://
npm test           # node:test, unit and UI tests
npm run sync-cards # regenerate src/cards.js from the official card library

Requires Node 22 or later.

Path Contents
src/cards.js Leader and lore card data, including each card's image URL, generated by scripts/sync-cards.mjs
src/draft.js Draft rules as pure functions: row sizes, dealing, pick order, pick legality
src/codec.js Encoding a draft into the link and decoding it back, with full validation
src/text.js Rendering card text markup to HTML
src/app.js Views and event handling; mount(root, window) starts the page
test/ Unit tests for each module, plus UI tests that mount the page in jsdom

The link format

The hash holds base64url text with five fields separated by |: player names joined with ~, the leader row, the lore row, the picks, and the options. Rows list card indices in base 36, one character each. Each pick is one letter, A–Z for a leader slot and a–z for a lore slot. Links made before variants existed have only the first four fields, and they still open with the rulebook settings.

Because links store cards by their position in src/cards.js, cards may only ever be appended. The sync script refuses to write a file that would reorder or remove a card.

Card images, text and errata

The page shows each card as the scan from the card library, loaded from the library's CDN. No image is stored in this repository. src/cards.js keeps the transcribed text as well: it is the image's text alternative, and the page falls back to a plain text card when a scan fails to load. If the library ever moves its images, every card shows the text version until npm run sync-cards has picked up the new URLs.

npm run sync-cards downloads the card library and applies published errata that change card text. It warns about any new erratum for these cards that hasn't been reviewed yet. The errata currently applied are Upstart's Callow, Agitator's Irregular and Living Structures' Prune. The scans still show the printed wording, so the page prints the corrected ability under each of these three cards.

License

The code is released under the MIT License. The card names and card text in src/cards.js belong to Buried Giant Studios, the publisher of Arcs; they are reproduced as fan reference and are not covered by the MIT License. The card images are not in this repository at all; the page loads them from Buried Giant's card library. See NOTICE.

About

Draft Arcs leader and lore cards over a shared link — no server, the whole draft lives in the URL.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages