Thank you for volunteering to help out as a host in an upcoming Pixel Perfect Event. If you think of a speedrun marathon as a sandwich, with the run as the filling and the tech being the bread holding the sandwich together, then the host is the soft-spread butter in between, keeping everything connected and stopping it from being a dry, stale experience. Often overlooked, hosts are vital for keeping a marathon running smoothly for the audience member, and with that in mind, we want our hosts to have a bit more control over how they work than the typical marathon might offer.
All voice communications during the stream take place on Discord, in one of three rooms:
Green Room: anyone involved in the event can join this room, and is a casual space to chat.
Back Room: anyone involved in the event can join this room, but is reserved for preparing runners, commentators, and hosts.
LIVE: only @Staff and @PPX-Tech can join this room, this is where the stream takes place. Yourself, runners, and commentators will be moved into this room when ready.
Please ensure you are online and in the Back Room around 20 minutes before your first run as host. A member of the tech team will do a volume check with you during the runner's tech check.
Once you've finished your last run and gone to intermission, please don't dawdle for too long in LIVE as the next run will want to get underway. You're welcome to join the Green Room to chat with others.
What you say, and how you say it on stream, isn't really something that can be taught. It comes with experience, confidence, and practice. As far as vocals are concerned for this marathon, your responsibilities will be as follows:
You'll welcome the audience back to the stream. If you've just started your hosting shift, introduce yourself and let the audience know roughly how long or how many runs you'll be on for. Introduce the next runner and the run they'll be performing, and then hand it over to them. Let the runner introduce their commentators.
This is something you should discuss with the runner beforehand, especially if they have no commentator. Their preference for commentary is also advised on the Volunteer Shifts sheet of the PPM# Full Schedule Google Sheet. If you're both comfortable with it, join in with the runner, whether you know the game they're running or not. Ask questions, congratulate on well-performed tricks, and pass on questions or messages to the runner from the chat. Just remember, it's their run, so they should still take the lead.
Allow the runner and commentators to plug their stream and socials, and they should then hand it back over to you. If you feel like they're taking too long, try to jump in, especially if we're behind schedule. Thank them for the run, advise the viewers what's next, and say we'll be going to a break/intermission. Encourage them to take a break too; get a drink, stretch their legs etc. We don't play ads on the stream, so don't say anything about playing any. If that was your last run as host, say goodbye, plug your socials if you want to, and let folks know who to expect next.
One thing our hosts are not responsible for (yet), is reading out donations. As we're not raising money for charity in our earlier events, you shouldn't have runners handing over to you for messages or donation reading. As this is common, and some runners might forget and do it anyway, you're welcome to read one of our team straplines if you like:
"Pixel Perfect is a speedrunning and game showcase community. We're dedicated to hosting online events that bring video game entertainers and lovers from all backgrounds together to celebrate the video games we love, and the feats we love to show off! Our team shares many years of organizing experience across various marathon communities, and our events are always open to runners of all experiences, abilities and backgrounds."
"The heart of Pixel Perfect's mission is to remind us all that video games and speedrunning are for everyone! We will always remain an inclusive and welcoming community to all. To find our community links, such as our Discord server, or our Twitter and Bluesky pages, visit our website: www.pixelperfect.events."
Please keep swearing to a minimum, think PG-13. If it naturally comes up it’s fine, but we don’t want the entire commentary filled with it. Discussions of politics, race, religion etc, and obscene or degrading content are strictly forbidden. Twitch Terms of Service must be followed at all times:
Remember that Pixel Perfect is an inclusive community, and we pride ourselves on being welcoming to all backgrounds, faiths, orientations and disabilities. Please refrain from using terms or phrases that could be seen as derogatory towards certain people.
Your other responsibility as a Host is to have some control over the stream, mainly the changing between intermission and runs, and controlling the on-screen timer. This is done using an online service called NodeCG, a web-based broadcasting suite. It is connected to and controls the OBS package we use to stream the marathon, and manages the run data, graphics, and Twitch information. You will need to have the following web pages open:
https://nodecg.pixelperfect.events/dashboard/ - our NodeCG dashboard. You'll be asked to log in with Discord or Twitch, which will only give you access if we've specifically set up your account on our server. If you can't log in, DM @J4sp3rr.
https://tech.pixelperfect.events/ - a direct feed of the stream going from OBS with minimal latency. You will likely want to keep it muted, as you'll be able to hear yourself and other Discord users through it. Ensure you watch this stream, and not the Twitch stream, as that will be much further behind. It also shows the preview scene in OBS so you know what scene is queued up.
https://capture.pixelperfect.events/ - not a necessity, but you can also watch the stream the runner is providing by entering their server and name as they appear on the Tech Sheet of the PPM# Full Schedule Google Sheet and clicking "Viewer". This will only include their game audio, so is handy if you're talking to the runner during their run.
This is the NodeCG Main Workspace. You should only need to use this one page; please only change things on other tabs after talking to @Staff or @PPX-Tech. On this tab, you have a bunch of different controls. Hovering over the bar at the top of each will allow you to collapse and move them, you're welcome to do this and reorder the controls as you wish, this won't affect the display for other users. You have the following controls:
This is useful for looking at the information about any run in the marathon. They're all displayed in schedule order and you can click on the arrow on the right to see more details. Your next runner should have had these details double-checked with Tech. Your details as host should also be shown here, as your name and socials will also appear on the stream. If any of these details are incorrect, talk to Tech about correcting them.
You won't need to click on any of the play buttons, switching to the next run is automated elsewhere.
This controls the timer that is displayed on the stream. Whilst active, most of the other controls are disabled. From left to right the buttons are:
Play/Pause ⏵/⏸: The runner or commentator will likely do a countdown and you click this when they say go. Whilst the timer is running, this switches to Pause, which you should only need if there's an issue.
Reset ⏪: Only use this if there is a false start or something happens that causes the runner to restart.
Stop ✔ : When the runner calls time, click stop. You should discuss with the runner beforehand when time is coming up, so you're prepared for it.
Forfeit ❌ : For the setup we have, this actually does the same as Stop, so you don't need to use it.
Undo ↶ : When you push stop, the timer continues to run in the background. If you or the runner made a mistake and pressed Stop too early, use the Undo button to continue the timer at the correct current time.
During a race, each runner will have their own individual Stop, Forfeit and Undo buttons, simply use these as each runner finishes.
After a run, when you transition to Intermission, the timer will automatically reset ready for the next run.
You won't need to use this panel, as we have our own custom relay page instead. You can collapse and ignore it.
This shows the information being sent to Twitch to update the Stream Title, Game Category, and for users with FFZ Integration, Featured Channels. This should all be automated, but if you're hosting any run with multiple runners, you will need to add an extra '@' before every additional runner's name in the title, and then click update. For example, a race would automatically display:
PPM2 - Metal Gear Solid | Any%, Normal, Race - @DrPrufr0ck vs. NickRPGreen
And would need to be changed to:
PPM2 - Metal Gear Solid | Any%, Normal, Race - @DrPrufr0ck vs. @NickRPGreen
This is so that all runners appear in the Twitch stream title as clickable links to their Twitch page (we just can't do this automatically for multiple runners yet):
This is where the majority of the action takes place. If you have a Stream Deck or similar device, this works much the same way, as they are programmable buttons that perform certain actions. Whilst each button appears self-explanatory, there are a couple of extra actions taking place on each, and you need to know these, as you are responsible for pushing them. By having you push these buttons, it means you have much more control over timing and going live when you feel ready, rather than having a tech tell you when to start.
Solo Game: The main "Start The Next Run" button, press this when you and the runner are ready to start. Upon pressing OBS will:
- switch to the Solo Game Layout, displaying the runner's game and camera.
- unmute Discord audio, meaning any talking in the LIVE channel will be heard on the stream. Only start introducing the runner after you've pushed this button.
- start a local recording, which is what we use to upload to YouTube.
Race Game: Same as above, but OBS will switch to the Race Game Layout.
Intermission: To go to intermission only after a run has ended. As you can work out, this does the opposite of the previous buttons. Upon pressing, OBS will:
- switch to the Intermission Layout; during the transition, NodeCG will also automatically progress to the next run.
- mute Discord audio, meaning you are free to talk in the LIVE channel without it going to the stream.
- stop the local recording
Interview/Opening: Go to the Interview or Opening scenes. You won't need to worry about these as Staff will handle going to these scenes.
Closing: If you're hosting the last run on a day that isn't the last day, instead of going to Intermission, push this button to go to the Closing scene. The other actions the button performs are the same as the Intermission button.
Discord Enable/Disable: These manually override Discord audio going to the stream. You shouldn't need to use them, but they're available just in case.
Tech Issue: Whilst the timer is running, the other scene switch buttons are disabled, to avoid accidentally switching whilst a run is in progress. If there is a tech issue and we need to go to Intermission to resolve it, a tech will ping you in #ppmX-general to do so. The Tech Issue button will go to intermission and mute Discord, but it won't stop the recording; you'll also need to pause the timer. A tech will jump onto Discord to tell you what's happening. You can then use the Discord Enable/Disable buttons to talk to the audience and let them know any information the tech has said you can share. Once the issue is over, simply press Solo/Race Game button to continue.