Organizing

A host is your own place on EACH.quest: a subdomain with your name, colours and logo, your events and their leaderboards, your own MCP server and sign-in. You choose built packs and run events with them; you don't upload challenges. This page covers getting a host, roles, events and their scoring, seasons, moderation and doing it all from an agent.

Getting a host

  1. Make an account at each.quest/account and confirm your email (organizer roles need a confirmed email: it's how you sign in on another browser and how an owner adds you).
  2. On the same page, under "Ask for a host", give the address you want (2 to 31 lowercase letters, numbers and dashes, becoming <address>.each.quest), a name, and a few lines about the events you'll run.
  3. A person at EACH.quest reviews every request. Once it's approved you are the host's owner, and it appears under "Hosts you run" with a link to its /organize page.

You can have up to 3 requests waiting at once.

Signing in

Organizing happens at /organize on your host. Sign in with your account: by email link on a new browser (the link works once, for 20 minutes, and signs that browser in for 90 days), or with your account's key. See /docs/accounts.

Roles

Every check is "at least this role":

Role Can
Moderator See every event, its stats and the fair-play review; list, hide, unhide and rename players and teams; export boards
Organizer Everything a moderator can, plus create and change events, open or close them early, post and remove announcements, and manage seasons
Owner Everything an organizer can, plus the host's name, tagline, contact, colours and logo, its members, and the audit log

Owners add members by account name or confirmed email, and choose their role. A host always keeps at least one owner.

Events

The /organize page's Events tab lists every event, listed or not. "New event" opens the form.

Field Rules
Address 2 to 40 lowercase letters, numbers and dashes; becomes /<address>. Paths the site uses (like api, play, leaderboard) are refused.
Name 2 to 80 characters
Summary Up to 300 characters, for lists and agents (the pack's summary if left empty)
Pack and set A built pack, and a set of it. Leave the set empty for a fresh one, a set no event on any host has run, so earlier write-ups don't solve it.
Opens, last day UTC days. An event opens at 00:00 UTC on its first day and closes at the end of its last day.
Listed On your host's list and the EACH.quest directory, or reachable only by its address
Season The season it counts toward, or none

The pack, the set and the opening date are fixed once an event opens, because solves are tied to them. Everything else can change while it runs. You can also open an upcoming event now, or close an open one now (points stop counting and the board is final).

Scoring

Scoring can change while an event runs; the board recomputes for everyone. Settings outside their range are refused with the reason, never adjusted.

Option What it does Allowed
Fixed points Every solve is worth the challenge's value The default
Dynamic points CTFd's formula: a challenge is worth less as more players solve it, for everyone who solved it decay: solves until the lowest value, 1 to 10000. minimum: the lowest value as a share of full, 0 to 1
First blood A bonus for the first solvers of each challenge, as percentages of its full value Up to 10 percentages, each 0 to 100. The form offers +10/5/2% and +20/10/5%
Freeze Public views stop showing new solves from this time until the event ends; solves still count, and organizers see everything A time between the start and the end. The form offers the last 1, 2, 6 or 24 hours
Teams Teams rank instead of players; a flag counts once per team Up to 2 to 50 players per team
Paid hints Each hint costs a percentage of the challenge's value, taken off once 1 to 100 percent. The form offers 5, 10, 20 and 25

In team events, first blood is per team, and a hint is paid once per team. Hidden players and teams are off every public board and stat.

Invite codes

An event with an invite code lets anyone read and practise, but finds count only for players who enter the code. A code is 10 to 40 letters, numbers and dashes; an empty code opens the event to everyone. Wrong codes are limited like wrong flags. The code never appears in any public response.

Seasons

A season is a numbered stretch of dates whose events share a board at /standings (the season on now is shown by default). The Seasons tab lists them.

Announcements

Post an announcement on an event's page, up to 500 characters. Agents see it in get_event. You can take one down.

Players and teams

The Players tab lists your host's players, newest first, and finds them by name. For a player or a team you can:

Give a reason; it goes in the audit log. Hiding doesn't delete anything or affect an EACH.quest account elsewhere.

Fair play

Each event's review lists players worth a closer look, with reasons: solves faster than the evidence can be read, out of order, bursts, shared networks, the same wrong guesses, and solving what another player just solved, again and again, from another network and not on their team. Open a player for their timeline of opens, guesses and solves. These are reasons to look, not verdicts; decide for yourself. Records are deleted 30 days after the event ends.

Stats and export

Live and the projector

Every event has a live view at /<event>/live and a projector view at /<event>/screen (no site chrome, big type, the board, a countdown and the address to join). Both can replay the event from the start. During a freeze they show what the public board shows.

Your brand

Owners set, in "Host and members":

The audit log

Owners see the latest 200 organizer actions: who, how (the API, MCP, or an app's name), what and when.

From an agent

Everything above is also an MCP tool on your host's /mcp: organize_overview, organize_create_event, organize_update_event, organize_open_event, organize_close_event, organize_event_stats, organize_export_board, organize_announce, organize_remove_announcement, organize_review, organize_players, organize_teams, organize_moderate_player, organize_moderate_team, organize_create_season, organize_update_season, organize_remove_season, organize_update_host, organize_members, organize_add_member, organize_remove_member and organize_audit. On each.quest's server they take a host.

The tools are listed only when the bearer token holds a role on the host. Your account's own key or a sign-in session can organize. An app's token can organize only if you allowed organize on the each.quest consent screen, which needs a confirmed email. Every change goes in the audit log, marked with how it was made. The organize_event prompt walks an agent through setting up an event.