Skip to main content
Docs navigation

Emcee experiences

Run live, on-screen moments at your events — drawings, celebrations, audience games — and drive the big screen straight from an nwp command while you work the room.

Emcee Controller

The Emcee Controller is NextWave's fullscreen live tool, served at /emcee/. It puts a member-aware display on the big screen and gives you, the host (or your agent), control over what it shows. The display renders whatever state you push to it — so instead of clicking through a UI mid-event, you can drive the room programmatically.

The model is small: you take control of the display, set its state, and read it back.

Built-in experiences

NextWave ships five live experiences out of the box:

ExperienceSlugWhat it does
Opportunity Drawingopportunity-drawingDraw a winner from eligible members live on screen
Celebration Setcelebration-setSpotlight members for milestones and shout-outs
Would You Ratherwould-you-ratherRun a quick this-or-that audience poll
Caption Clashcaption-clashCrowd-source and vote on captions for an image
Ask Speakerask-speakerCollect and surface audience questions for a speaker

Would You Rather is wyr for short

You can address Would You Rather by its full slug would-you-rather or the shorthand wyr.

Extension experiences

The Emcee Controller is extensible. Add-on experiences live in their own plugins and register into the controller through the emcee hook contract — the same selector grid, the same state-driven display, but with their own logic and their own REST namespace.

ExtensionSlugREST namespace
Bingobingonwp/v1/bingo/
Empowering Differenceseded/v1/

When an extension is installed it appears in the experience selector alongside the built-ins and is driven the same way — you set the display state to its slug and the extension takes over rendering. The hook contract is what lets a separate plugin slot cleanly into the controller without modifying NextWave core.

Driving experiences via the API

Three operations cover the whole loop. First, take control of the display so your commands own what's on screen:

$ nwp emcee take-control --output json

Then set the state — choose an experience and a phase. Here we put Would You Rather into its running phase:

$ nwp emcee set-state --phase running --experience would-you-rather --output json

Read it back any time with get-state to see exactly what the display is rendering:

$ nwp emcee get-state --output json
json
{
  "success": true,
  "data": {
    "phase": "running",
    "experience": "would-you-rather",
    "ext": {
      "bingo": null
    }
  }
}

The full operation set:

  • take-control — claim the display for your session.
  • set-state — push a phase + experience to the screen.
  • get-state — read the current display state.
  • clear-state — reset the display back to idle.

State carries phase + ext.<slug>

The display state always carries a phase (idle, running, and so on) and an experience. Extension data rides along under ext.<slug> — so a Bingo game's called numbers land at ext.bingo and an Empowering Differences session at ext.ed. Read those keys to know exactly what an extension is showing.

Who's on screen

Drawings and celebrations spotlight real members — so the people you draw and shout out come straight from your membership model.