Website
The source of truth
Public event information, entrants, standings, schedules, race links, volunteer coverage, and results live alongside the organizer configuration pages.
Help and reference
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.
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
Public event information, entrants, standings, schedules, race links, volunteer coverage, and results live alongside the organizer configuration pages.
Discord
Players schedule matches in dedicated threads. Volunteers receive requests and updates. Private async threads guide runners and give staff result controls.
racetime.gg
HTH can create official and practice rooms, invite entrants, distribute seeds, run settings drafts, announce race rules, and follow room results.
Brackets and broadcasts
start.gg and Challonge can provide matchups and receive results. Restream information can be shared with ZeldaSpeedRuns and SpeedGaming workflows when configured.
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.
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.
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.
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.
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.
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.
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.

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.
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.
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.
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.
Restream coordinators assign channels and coverage. Volunteer requests show the open roles for upcoming races, and staff confirm the final roster.
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.
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.
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.

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.

Restream coordinators add the broadcast and choose the production roster. See the restream coordinator workflow for the complete race-day process.
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.
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.

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.
!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.


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.
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.

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


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.

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.
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 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 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.
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.

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.
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
Responsible for the event as a whole and for decisions that affect participants, schedules, automation, and results.
Broadcast coverage
Coordinates restream coverage for an event or game, normally for one or more assigned languages.
Event volunteer applications
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
An approved commentator, tracker, or other helper. Approval is role- and language-specific and is separate from assignment to a race.
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.
Because formats and community workflows vary, new events start with a short conversation. It helps to bring the following information:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.