A funnel is an ordered list of event names. StaffHQ counts how many players complete each step in sequence within a configurable time window. The result shows you where players drop off on flows that matter: onboarding, store purchases, progression gates, or anything else you can express as a sequence of events.
How funnels work
A player enters the funnel the first time they fire step 1. They advance to step 2 only if they fire step 2 after step 1, within the conversion window. Drop-off at any step is the number of players who completed the previous step but did not complete the current one within the window.
The default conversion window is 7 days. You can set it to anywhere between 1 and 90 days when creating or editing a funnel in the dashboard.
Example: new-player onboarding
A typical onboarding funnel for a survival server might look like this:
If 200 players start the funnel, 140 complete the tutorial, and 80 buy a kit, the funnel shows a 70% conversion from step 1 to 2 and a 57% conversion from step 2 to 3. The biggest drop-off is at the kit purchase, so that is where to focus your attention.
session_start is an internal StaffHQ event fired automatically on every player join. You can use it as the first step of any funnel without any custom tracking code.Defining a funnel in the dashboard
Open the Funnels page and click "New funnel". Give it a name, add steps by typing event names, set the conversion window, and save. The funnel runs immediately against historical data.
How drop-off is calculated
Drop-off at step N is the count of players who completed step N-1 but did not complete step N within the conversion window starting from when they completed step N-1. A player who eventually completes step N after the window has expired is counted as dropped.
If a player completes step N multiple times, only the first occurrence within the window counts. The conversion window resets at each step, not at the start of the funnel.
What you need to use funnels
Funnels are built on top of Event Tracking. You must be sending the relevant custom events from your plugin before a funnel that references those events will have data. Internal events like session_start are always available.