Help and reference

HTH organizer and volunteer guide

This guide explains where event work happens, how a race moves from bracket import to result reporting, and what organizers, coordinators, participants, and volunteers each need to do.

Every event is configured differently. If a tab or option shown here is missing, it may be disabled for your event or your account may not have that role.

What are you here to do?

Where HTH work happens

HTH connects the services an event already uses. The website is the status and configuration layer; Discord handles day-to-day coordination; racetime.gg runs the race; bracket and broadcast services exchange match and coverage data.

Website

The source of truth

Public event information, entrants, standings, schedules, race links, volunteer coverage, and results live alongside the organizer configuration pages.

Discord

The day-to-day workspace

Players schedule matches in dedicated threads. Volunteers receive requests and updates. Private async threads guide runners and give staff result controls.

racetime.gg

The race room

HTH can create official and practice rooms, invite entrants, distribute seeds, run settings drafts, announce race rules, and follow room results.

Brackets and broadcasts

The external connections

start.gg and Challonge can provide matchups and receive results. Restream information can be shared with ZeldaSpeedRuns and SpeedGaming workflows when configured.

What organizers can do, and where

Open an event from the HTH home page. Organizer-only tabs appear in its navigation once your HTH account has been added to the organizer team.

Races

Import bracket matches or create races manually, review scheduling and room status, and open a race to edit its start time, room, restream URLs, and restream coordinator. Organizers can also cancel a race permanently or pair two nearby 1v1s into one shared restream room.

Normal scheduling and rescheduling usually happens in the match's Discord thread. The web editor is also available for organizer corrections and exceptional cases.

Configure

Control automatic start.gg imports, minimum scheduling notice, close-result and break handling, FPA announcements, async availability, force-start timing, and Discord scheduled events.

This area also links to restream coordinator management, recurring weekly schedules, the event's public info-page editor, start.gg round labels, and round-specific scheduling deadlines or restream-consent rules.

Volunteer Setup

Choose the volunteer roles needed for each language, required minimum and maximum staffing, optional Discord roles, and whether role applications are approved automatically. Review the volunteer pool, approve applications, reuse volunteers from another event, and configure Discord request and ping workflows.

Qualifiers

Create or edit live qualifier and seeding races, choose whether qualifier scores are hidden, configure an announcement role, and enable guided Discord threads for qualifier asyncs.

Asyncs

Prepare qualifier, seeding, and tiebreaker async windows and their seed data. The page shows the configured seed or permalink, hash, start and end window, and lets organizers update or retire that async.

Setup (global administrators)

Initial event identity and infrastructure live here: dates, visibility, format, external links, Discord server and channel IDs, participant role, randomizer version, signup requirements, and the organizer list. Ask a global administrator when one of these foundations needs to change.

Configure page for Casual Boots Tournament 2026
Configure controls imports, scheduling notice, result-review rules, async behavior, and Discord scheduled events. Open the image for the full-size interface.

Registration and teams

Participants sign in with Discord or racetime.gg and connect any other account required by the event. Depending on the format, HTH can accept solo entries, create or confirm teams, collect event-specific answers, enforce eligibility requirements, and expose a personal status page.

Participants

  • Enter before the event deadline and answer the event's registration questions.
  • Invite or confirm teammates when the format uses teams.
  • Use My Status to review registration, qualification, and team state.
  • Use Find Teammates when the event makes that page available.

Organizers

  • Review entrants, incomplete teams, and unconfirmed members.
  • Correct identities or team membership when self-service is no longer appropriate.
  • Sync participant identifiers with the configured bracket platform.
  • Handle resignations, opt-outs, eligibility, and qualification status.

A typical event lifecycle

  1. 1

    Design and setup

    Tell us the format, game, bracket source, ruleset, Discord structure, signup requirements, async needs, and broadcast workflow. HTH is configured around the event rather than forcing every event into the same template.

  2. 2

    Registration

    Players sign in with Discord or racetime.gg and connect any other required accounts. HTH can collect solo or team entries, custom choices, eligibility requirements, and qualification status.

  3. 3

    Matches and scheduling

    Bracket matches can be imported automatically. HTH creates scheduling threads where players agree on a live time or schedule their individual async parts using Discord commands.

  4. 4

    Coverage

    Restream coordinators assign channels and coverage. Volunteer requests show the open roles for upcoming races, and staff confirm the final roster.

  5. 5

    Race day and results

    Rooms, seeds, notifications, scheduled events, and result reporting run according to the event configuration. Organizers step in for close finishes, forfeits, FPA calls, retimes, or other cases that need judgment.

A live match, end to end

The Races tab is the organizer's status board. Player coordination happens mainly in Discord, while HTH keeps the schedule, race room, bracket, volunteers, and restream information connected.

1

Import or create the matchup

HTH can import bracket matches from start.gg or Challonge, create races manually, or generate recurring races from a weekly schedule. The Races page shows start time, round, entrants, room and broadcast links, seed state, consent, and volunteer coverage.

Races page for Casual Boots Tournament 2026
The Races page is the authoritative overview for organizers. Click any screenshot in this guide to open it full size.
2

Players schedule in Discord

The Mayor opens a match thread for the entrants. The thread lists the commands for scheduling a live race, scheduling individual async parts, rescheduling, or removing a schedule. Natural-language times and profile timezones are supported, and multi-game matches can schedule later games separately.

Discord match scheduling thread created by The Mayor
A newly created Discord scheduling thread explains the available commands and each runner's timezone.
3

Coverage is prepared

Restream coordinators add the broadcast and choose the production roster. See the restream coordinator workflow for the complete race-day process.

4

HTH opens the room and distributes the seed

At the configured times, The Mayor can create the racetime.gg room, invite entrants, apply restream delay, promote the monitor, announce event information, roll or fetch the seed, and post the seed link and hash.

Exact timing depends on the event configuration. A room or seed may be created immediately when a race is scheduled at short notice.

5

Results are checked and reported

Straightforward results can be posted to Discord and reported back to the bracket automatically. Close finishes, breaks, FPA calls, forfeits, retimes, or incomplete external data wait for an organizer.

The Mayor creating a racetime.gg room, inviting entrants, and posting the seed
A real room-opening and seed-distribution sequence.

Restream coordinator workflow

A restream coordinator handles coverage for scheduled races: attach the broadcast destination, assign the racetime.gg restreamer, select the production volunteers, and ensure the assigned restreamer releases the room's auto-start when the broadcast is ready. This role does not grant access to event configuration, scheduling changes, seeds, or result decisions.

1. Add the restreamFrom Races, open the race editor. Enter the Restream URL and Restreamer for the correct language, then save. Use a racetime.gg profile URL, racetime.gg user ID, HTH user ID, or “me” when assigning yourself.
2. Select volunteersOpen Manage Volunteers from the race. Review each person's role, language, status, and note; confirm the people who are assigned, decline signups you will not use, or return a confirmed signup to Pending.
3. Prepare the roomHTH invites the assigned restreamer to racetime.gg and promotes them to race monitor. Verify runner feeds, delay, layouts, commentary, tracking, and the broadcast destination before releasing the start.
Optional: confirm restream presenceEvents configured to auto-start races with restreams leave auto-start enabled when the room opens. Once restream coverage is present, an authorized race monitor types !restream to disable auto-start and engage the usual restream readiness gate. If nobody arrives to run the restream, auto-start remains enabled.
4. Signal broadcast readinessThe assigned restreamer types !ready in the racetime.gg room. This unlocks auto-start; with multiple language restreams, HTH waits until every assigned restreamer has used the command.

What !ready means

!ready is a broadcast gate, not the entrant Ready button. Only the racetime.gg account assigned as a restreamer for that race can use it. Wait until the stream is genuinely ready: the channel is live, the correct runner feeds are visible, and the production team is prepared.

If HTH says that only restreamers can use the command, check the Restreamer field—not just the Restream URL—and make sure it identifies the same racetime.gg account currently in the room. When no restreamer identity was assigned, an organizer must arrange race-monitor access before the start can be controlled.

Race editor with restream URL and racetime.gg restreamer fields for each language
Set the broadcast URL and the person operating it for the appropriate language. Shared-room races keep these settings on the primary race.
Manage Volunteers page with a pending commentary signup and confirmation controls
Pending means interested, not assigned. Confirm the final roster for each role and language after reviewing volunteer notes and staffing counts.

Coordinator checklist

  • Confirm the URL points to the correct channel and language.
  • Assign the actual racetime.gg user who will operate the restream.
  • Choose commentary, tracking, and other configured roles in Manage Volunteers.
  • Tell replacements or declined volunteers promptly; HTH sends status updates for roster changes.
  • Use !ready only after every broadcast dependency is ready for the race to begin.

Important limits

  • A restream coordinator cannot change the schedule, room URL, seed, cancellation state, or shared-room pairing.
  • Confirming a volunteer automatically declines that person's overlapping pending signups.
  • For a shared restream room, edit coverage and volunteers on the primary race.
  • If the room is already open and its restream identity is wrong, contact an organizer or race monitor before trying to start.

How volunteer signups work

HTH has two distinct signup stages. A role request establishes that someone is eligible to do a kind of work in a language; a match signup says that an approved volunteer is available for one particular race. Approval for a role never assigns someone to a race by itself.

The usual setup: game-level roles

Most events use the game's shared volunteer roles. A volunteer normally applies once for a role such as Commentary (English) or Tracking (German), and that approval can be reused by every event for that game that uses the shared pool. The event Volunteer page identifies these as game roles and links to the game volunteer page where the application is managed.

An event may change its staffing counts, attach an event-specific Discord role, or disable a shared role without making approved volunteers apply again. Fully event-specific roles are the exception, used when a tournament needs a separate pool.

1. Request and receive a role

Open the Volunteer pageSign in and connect Discord. If the event uses the normal game-level pool, follow its link to the game's volunteer page.
Choose role and languageApply separately for each combination you can fill, such as English commentary or German tracking. Add an application note when useful.
Wait for approvalAuto-approved roles become available immediately. Otherwise the request stays Pending: game administrators or a restream coordinator for that language review game roles, while event organizers and volunteer managers review event-specific roles.
Join the eligible poolApproved means the volunteer may sign up for compatible races. It does not mean they are scheduled or confirmed for any of them.
Signed-in Volunteer page showing game-level commentary and tracking roles by language
The Volunteer page explicitly shows that these roles are managed at game level. Approval is tied to the role and language, not to one race.

2. Sign up for a specific race

Once approved, a volunteer can express interest in individual live races. This second signup is deliberately temporary and still needs a roster decision.

Choose an open raceUse the event Volunteer page or a signup button in HTH's Discord request. Only compatible approved roles are offered.
Submit availabilityChoose the role and add an optional note about language, co-commentators, timing, or other useful context.
Pending is not assignedAn organizer, restream coordinator, or volunteer manager with race signup permission reviews the interested volunteers, staffing target, notes, language, and possible overlaps.
Confirmed is assignedHTH notifies the selected volunteer and keeps the web and Discord rosters current. The volunteer can withdraw before the race if plans change.
Discord volunteer request listing open races, missing roles, and signup buttons
Discord requests advertise individual races after role approval. Each button starts a match signup; it does not create or approve a volunteer role.
Match volunteer signup page with a pending commentary signup and organizer controls
A pending match signup means interested, not assigned. Organizers and authorized coordinators confirm or decline the final roster.

Finding volunteers automatically

Organizers choose how far before a race HTH posts a volunteer request. The announcement groups upcoming races, shows confirmed and pending coverage, and offers signup buttons. Separate ping workflows can send a daily or weekly digest in a chosen timezone, with their own race window in hours after the ping, or ping per race at chosen lead times. Event-level workflows override game defaults, and ping messages can be removed after the race starts.

Volunteer Setup page with request lead time and Discord ping workflows
Volunteer Setup controls the initial request lead time and optional scheduled or per-race Discord ping workflows.

Guided async racing

HTH supports both bracket matches whose runners complete separate parts and qualifier, seeding, or tiebreaker asyncs requested through the website. When Discord automation is enabled, each run gets a private thread shared with the runner and event staff.

Ready

Seed delivery

The runner clicks READY when prepared. HTH records the state and posts the correct seed, permalink, password, or hash information in the private thread.

Start

Controlled countdown

START COUNTDOWN runs a five-second countdown and records the start. Organizers can configure a delay that force-starts a distributed seed if the button is not pressed in time.

Finish

Runner submission

FINISH captures an estimated time and offers a short revert window. The runner then posts a VOD and the game-specific completion evidence requested in the thread.

Verify

Organizer confirmation

Staff use Confirm Result to record the official time and VOD, or confirm a requested forfeit. Bracket async results remain private until the relevant parts are complete and confirmed.

Match volunteer signups are for live races; async runs use their private staff thread instead.

Asyncs organizer page with seed, start and end window, and edit form
Organizers prepare the seed and availability window on the Asyncs page before runners use their private Discord workflow.

What HTH can automate

Before a race

  • Import new matchups from start.gg or Challonge.
  • Create scheduling threads and enforce scheduling notice or deadlines.
  • Create Discord scheduled events, optionally only for restreamed races.
  • Open recurring weekly races from a schedule.
  • Request volunteers and ping the relevant Discord roles.
  • Publish room, multistream, and restream links on the public schedule.

In the race room

  • Open and configure official racetime.gg rooms.
  • Invite the correct entrants and announce stream-delay or FPA rules.
  • Roll or distribute seeds and support event-specific settings drafts.
  • Track room state, FPA calls, breaks, and finish order.

After a race

  • Post results to configured Discord channels.
  • Report eligible results to the bracket platform.
  • Export race and volunteer data to supported broadcast workflows.
  • Preserve past events, races, standings, seeds, and VOD links.

Automation is intentionally conservative. Close finishes, races using breaks, FPA situations, retimes, forfeits, and incomplete external data may wait for an organizer instead of being reported automatically.

Roles and access

These roles are additive: one person may be an organizer, a restream coordinator, a volunteer manager, and an approved volunteer at the same time. Permissions come from each role separately; organizer access does not automatically approve someone for a volunteer role.

Event-wide operations

Organizer

Responsible for the event as a whole and for decisions that affect participants, schedules, automation, and results.

Can

  • Configure event-level operating rules, rounds, deadlines, and public information.
  • Import, create, edit, cancel, and pair races; correct rooms and schedules.
  • Configure volunteer roles and requests, review applications, and manage every race roster.
  • Manage qualifiers, guided asyncs, restream coordinators, and exceptional results.

Cannot by default

  • Change foundational Setup fields reserved for global administrators.
  • Manage reusable game-wide roles or integrations without separate game-admin access.

Broadcast coverage

Restream coordinator

Coordinates restream coverage for an event or game, normally for one or more assigned languages.

Can

  • Open race editing pages and maintain restream URLs and assigned restreamers.
  • Review game-level volunteer role requests for their assigned languages.
  • Review match volunteer signups and confirm, decline, or reopen roster assignments.
  • Use !ready in racetime.gg when they are the assigned restreamer and the broadcast is prepared.

Cannot

  • Change event configuration, volunteer role definitions, request workflows, qualifiers, or async seeds.
  • Change race rooms, cancel races, or create shared race rooms unless they also have organizer access.

Event volunteer applications

Volunteer manager

Appointed by an event organizer to approve or reject pending event-specific volunteer role requests in all languages.

Managers can view race signups and notes. Organizers can also enable confirmation or rejection of pending race signups for the event, including signups using shared game roles.

This role grants no game-level role approval, role-definition editing, event or race editing, or permission to revoke or reopen previous decisions.

Organizers manage this role under Configure → Manage volunteer managers. Copy from another event adds its managers without replacing existing managers or changing the target event's signup permission.

A specific production role

Volunteer

An approved commentator, tracker, or other helper. Approval is role- and language-specific and is separate from assignment to a race.

Can

  • Apply for available event-level or game-level volunteer roles.
  • Sign up for compatible live races, add notes, and see pending or confirmed status.
  • Withdraw a signup before the race when plans change, or forfeit the underlying role.

Cannot

  • Confirm their own assignment or manage another volunteer's signup.
  • Edit event, race, restream, qualifier, async, or automation settings.

Capability overview

CapabilityOrganizerRestream coordinatorVolunteer managerVolunteer
View public event and race informationYesYesYesYes
Configure event rules, rounds, and deadlinesYesNoNoNo
Change race room, cancellation, or shared-room stateYesNoNoNo
Maintain restream URLs and assignmentsYesCoverage scopeNoNo
Define volunteer roles and request workflowsYesNoNoNo
Review volunteer role requestsEvent rolesGame roles, assigned languageEvent rolesNo
Confirm or decline race volunteer signupsYesCoverage scopeWhen enabled by organizersNo
Apply and sign up as a volunteerIf approvedIf approvedIf approvedYes
Manage qualifiers and async seedsYesNoNoNo
Change foundational event or game setupAdmin role requiredNoNoNo

Other account types

EveryoneCan view public events, schedules, standings, race rooms, restreams, results, and confirmed volunteer coverage.
ParticipantsEnter events, manage their team or status, schedule matches in Discord, request asyncs, and access event-specific practice tools.
Game and global administratorsMaintain reusable game roles and coordinators, platform connections, and the event's foundational setup.

One HTH profile can connect Discord, racetime.gg, and start.gg. Set a profile timezone so schedules and organizer date fields use your local time. Connect Discord before volunteering or using Discord-based organizer and async workflows.

Bring an event to HTH

Because formats and community workflows vary, new events start with a short conversation. It helps to bring the following information:

  • The game, ruleset, format, dates, and expected number of entrants.
  • Whether matchups come from start.gg, Challonge, or are managed manually.
  • The Discord server and the channels intended for scheduling, rooms, results, volunteers, organizers, and asyncs.
  • The volunteer roles, languages, staffing targets, and restream destinations.
  • Signup requirements, qualifier or async plans, scheduling deadlines, and any special seed or draft workflow.

FAQ: something went wrong—what now?

These are the usual recovery paths. Commands must be used in the match's scheduling thread, and some are limited to runners or event organizers. If an event has stricter rules, follow those rules first.

We scheduled the wrong time. How do we change it?

Run /schedule again in the match thread with the corrected time. That reschedules a live race. For an async part, the affected runner uses /schedule-async. HTH updates the race and notifies pending and confirmed volunteers about the new time.

If the race should become unscheduled without otherwise resetting it, use /schedule-remove instead.

The race is postponed. Should I mark it as canceled?

No. Use /schedule-remove to remove the current scheduling, or reschedule directly with /schedule. The organizer-only “Cancel race permanently” checkbox is for a matchup that will not take place at all.

A room or seed was already created, but we need a clean reschedule.

An event organizer can run /reset-race schedule:true in the scheduling thread. This clears the schedule, room, seed, async state, and Discord scheduled event so the race can be scheduled again. Pending and confirmed volunteers are told that the race must be rescheduled.

For a multi-game match, include the game: option when Discord cannot identify one race. If a result had already been recorded, reset it manually on start.gg or Challonge as well.

If only one unplayed async part needs to be rescheduled, an organizer can use /reset-async participant: game:. This preserves the other participants' schedules and results. It cannot be used after the selected participant's seed has been released or their run has started.

The settings draft needs to start over.

An organizer uses /reset-race draft:true. Add the game number for a multi-game match when needed. This resets the draft without deleting the schedule unless schedule:true is also selected.

The racetime.gg room was canceled for inactivity.

A runner in that match or an event organizer can use /restart-room in the scheduling thread. It only works for a live-scheduled race whose start time has arrived and whose room was cleared after inactivity; it does not open an upcoming room early.

A volunteer can no longer make the race.

Before the race starts, the volunteer can withdraw on the match signup page or use the withdrawal button in HTH's Discord message. The request post and roster update automatically. After the race has started, contact the restream coordinator or an organizer directly—the self-service withdrawal is closed.

The wrong volunteer was confirmed, or coverage changed.

Open the race's Manage Volunteers or Match Volunteer Signups page. An organizer or restream coordinator can decline a pending signup, revert a confirmed signup to Pending, or confirm a replacement. Recheck the staffing count and the correct language before finishing.

The Discord volunteer request is missing or looks stale.

On Volunteer Setup, confirm that automatic request posts are enabled and that the race falls inside the configured lead-time window. Check the role bindings and scheduled start, then use Check Now to run the request check immediately. Existing posts normally refresh when schedules, role bindings, or signups change.

I clicked FINISH in an async by mistake, or I need to forfeit.

Use the short Finish Revert opportunity in the private async thread and continue the run. For a genuine forfeit, use the Forfeit button and confirm it; an organizer must then confirm the forfeit before it is recorded. If the controls are gone or the submitted data is wrong, ask an organizer in that private thread rather than starting another run.

The finish was close, FPA was invoked, or breaks were used.

Do not rush a manual bracket result. HTH may intentionally withhold automatic reporting for a close finish, FPA situation, configured break condition, or retime window. Preserve the VODs and room information, then let an organizer or race monitor review and record the official result. Runners should use !fpa only according to the event's race rules.

The race finished, but the bracket did not update.

First check whether HTH is deliberately waiting for review because of a close finish, breaks, FPA, a forfeit, a retime, or incomplete external identifiers. Confirm the result and participant mapping, then have an organizer correct the bracket manually if automatic reporting cannot proceed.

A tab, button, or command shown in this guide is missing.

Check that you are signed into the intended HTH account, that Discord is connected when required, and that your event role was assigned. Features such as asyncs, volunteer roles, scheduled events, and bracket integrations can be disabled per event. Editing tools are also hidden after an event ends. Ask an organizer or HTH administrator if the access still looks wrong.