STUK uses the most recent version of nodecg-speedcontrol, unaltered outside of this configuration file, which has been set to configure speedcontrol to the STUK package's needs. The schema below has been adapted from the official nodecg-speedcontrol scheme, and tailored to understanding its use within STUK's package.
language String Language code. Supports English (en) and Japanese (ja):
twitch Object Contains Twitch integration settings. See Twitch Integration Setup for details.
enabled Boolean Whether to enable Twitch integration.
clientID String A Twitch application Client ID. This option is required when login.twitch.enabled = true.
clientSecret String A Twitch application Client Secret. This option is required when login.twitch.enabled = true.
redirectURI String The redirect URI for Twitch to send users upon successfully logging into Twitch. If only using locally, this should be set to http://localhost:9092/nodecg-speedcontrol/twitchauth.
streamTitle String The pre-set title that Twitch will display for each run. The fields surrounded by double-braces denote fields that will be acquired from the run data.
tagPlayersInStreamTitle Boolean Determines whether player names in the Twitch title will be preceded by an "@" symbol, making them clickable links to the player's own Twitch channel. Highly recommended to leave as true as this removes the need for a chatbot to share runners' Twitch channels.
streamDefaultGame String The pre-set category that Twitch will display if a valid Twitch category has not been assigned to a run.
ffzIntegration Boolean Whether FrankerFaceZ integration is enabled. Since Twitch now allows tagging players in the stream title, this integration isn't overly useful anymore.
horaro Object Contains Horaro import settings. Due to the way STUK is configured to benefit from Oengus' custom data field, it is not recommended to import your schedule from Horaro.
defaultURL String The default URL displayed on the Horaro Import Panel.
disableSpeedrunComLookup Boolean Whether looking up player data on Speedrun.com during an important should be skipped. If set to false the import will try to find the player's Twitch username, country and pronouns from Speedrun.com.
oengus Object Contains Oengus import settings. These settings can be left at their default values, as the entries on the dashboard can be edited. You can still set them up here first though.
defaultMarathon String The default marathon name displayed in the marathon URL field of the Oengus Import Panel.
defaultSchedule String The default schedule name displayed in the schedule URL field of the Oengus Import Panel.
disableSpeedrunComLookup Boolean Whether looking up player data on Speedrun.com during an import should be skipped. If set to false the import will try to find the player's Twitch username, country and pronouns from Speedrun.com. The required data is already provided by Oengus, so you should leave this as true.
customData Object Allows users to create custom fields in the run editor. The default configuration has been specifically written for STUK to provide fields for hosts and commentators, layout codes, stream ids, and camera usage. Do not change these settings unless you know what you're doing.
player Object Define custom fields for each player. STUK requires custom fields for the runner's stream ID and whether they're using the layout's cam area.
name String The name of the field displayed in the run editor.
key String The key of the field referenced in code.
run Object Define custom fields for each run. STUK requires custom fields for the run's layout code, the host's name and pronouns, and up to three commentator names and pronouns.
name String The name of the field displayed in the run editor.
key String The key of the field referenced in code.
ignoreMarkdown Boolean Determines whether imports should attempt to strip any markdown in the column's data for that run.
{
"language": "en",
"twitch": {
"enabled": true,
"clientID": "",
"clientSecret": "",
"redirectURI": "https://{YOUR_DEPLOYMENT_URL_HERE}/nodecg-speedcontrol/twitchauth",
"streamTitle": "{YOUR_MARATHON_NAME_HERE} - {{game}} | {{category}} - {{players}}",
"tagPlayersInStreamTitle": true,
"streamDefaultGame": "Special Events",
"ffzIntegration": false
},
"horaro": {
"defaultURL": "https://horaro.org/event/schedule",
"disableSpeedrunComLookup": true
},
"oengus": {
"defaultMarathon": "SHORTNAME",
"defaultSchedule": "SLUG",
"disableSpeedrunComLookup": true
},
"customData": {
"player": [
{
"name": "Stream",
"key": "stream"
},
{
"name": "Cam",
"key": "cam"
}
],
"run": [
{
"name": "Layout Code",
"key": "layout",
"ignoreMarkdown": false
},
{
"name": "C1 Name",
"key": "commentator1Name",
"ignoreMarkdown": false
},
{
"name": "C1 Pronouns",
"key": "commentator1Pronouns",
"ignoreMarkdown": false
},
{
"name": "C2 Name",
"key": "commentator2Name",
"ignoreMarkdown": false
},
{
"name": "C2 Pronouns",
"key": "commentator2Pronouns",
"ignoreMarkdown": false
},
{
"name": "C3 Name",
"key": "commentator3Name",
"ignoreMarkdown": false
},
{
"name": "C3 Pronouns",
"key": "commentator3Pronouns",
"ignoreMarkdown": false
},
{
"name": "Host Name",
"key": "hostName",
"ignoreMarkdown": false
},
{
"name": "Host Pronouns",
"key": "hostPronouns",
"ignoreMarkdown": false
}
]
}
}
Twitch integration allows NodeCG to automatically update your marathon's Twitch channel title and category with the current run. You can also manually edit these details on the fly and run ads from the NodeCG dashboard.
Set twitch.enabled to true in the config file.
Register a new Application on your Twitch Developers Console. If you've already set up an Application for enabling Twitch Authorisation, you can edit that application instead.
Give it a suitable name and set the OAuth Redirect URL to https://{YOUR_DEPLOYMENT_URL_HERE}/nodecg-speedcontrol/twitchauth.
If testing locally, this will be http://localhost:9092/nodecg-speedcontrol/twitchauth
If you're editing your existing application simply add this URL as an additional Redirect URL.
You also need to set the same URL in the twitch.redirectURI entry in the config file.
Set the category as 'Broadcaster Suite' and Client Type as 'Confidential'
Copy your Client ID and paste it into the twitch.clientID entry in the config file.
Create a New Secret, and copy and paste it into the twitch.clientSecret entry in the config file. If you're editing your existing application, you'll be forced to create a new secret in order to reveal it. You'll need to update nodecg.json with this new secret.
Save your Twitch application.
Set the rest of the entries of the twitch object in the config file as needed. When you launch the dashboard, the Twitch Control Panel will display a "Connect to Twitch" button which can be used to authorise nodecg-speedcontrol with Twitch.