Organizing Events, Races, Legs & Checkpoints
How it's structured
PunchMonkey courses are built as a nested hierarchy. You work top-down: create the event, add one or more races, give each race its legs, and fill each leg with checkpoints.
Event
└── Race (1 or more per event)
└── Leg (1 or more per race)
└── Checkpoint (0 or more per leg)
Nothing is visible to racers until you publish a race (see below). You can build the whole course privately and flip it live when ready.
Event — the container
The top level (e.g. "Spring Scavenger Hunt 2026"). One event per occasion. Options:
- Entry code — leave blank for a public event, or set a code to gate it (private). See Setting up Teams.
- Single Course — a shortcut for the common 1-race / 1-leg event; racers skip the race picker.
- Teams optional — racers run solo under their own name instead of picking a team.
- Info / promo URL — an optional "More info" link shown to racers (your own page).
- Race Finder — optional NFC/QR/GPS so racers can discover the event "At My Location."
Race — what gets published
A race is the unit you publish. Publishing a race makes its legs and checkpoints available to racers and makes the event appear in racer lists. Other races in the same event stay hidden until you publish them individually.
- Race Start / Race Finish — the tags that start the clock and trigger "Race Finished!". Set them by using Set as Race Start/Finish on a leg, or by typing the UIDs on Edit race. (Single Course races mirror their one leg automatically.)
- Publish / Unpublish — review the summary, then make the race live (or hide it again).
- Copy Link to Share Race — a link that drops racers straight into this race.
- Info / promo URL — an optional "Race info" link shown to racers.
Leg — a section of the course
Each leg has its own Start and Finish, each claimable by NFC tag, QR code, and/or GPS (at least one method per side). A racer marks the leg started/finished there.
- You can create a leg first and supply its Start/Finish later — including by importing a GPX/KML and tagging waypoints as Leg Start / Leg Finish.
- Checkpoint ordering — Any (freeform) or Sequential (must be claimed in order).
- Completion bonus — extra points for claiming every checkpoint in the leg.
Checkpoint — a place to claim
Checkpoints live inside a leg and are claimed by NFC, QR, and/or GPS (at least one). See About Checkpoints for the checkpoint types (Hidden, Message, Bearing, Website, Mystery).
- Add Checkpoint one at a time, or Import GPX / KML to create many at once from a recorded course.
- Display order — set by the up/down arrows or the Display order field; PunchMonkey keeps the numbers unique and contiguous (1, 2, 3, …).
Typical flow
- Create the event (set entry code / flags if needed).
- Add a race.
- Add legs; set each leg's start/finish (type them, scan them, or import a GPX).
- Add checkpoints to each leg (individually or via GPX import).
- Set the race's Race Start / Finish (from a leg, or on Edit race).
- Publish the race — now racers can find and run it.
Related: Creating an Event · About Checkpoints · Setting up Teams · NFC Devices