/nodecg-speedcontrol

NodeCG bundle to help facilitate the running of speedrunning marathons, including overlays.

Primary LanguageJavaScriptMIT LicenseMIT

nodecg-speedcontrol

Screenshot

This is a bundle for NodeCG; if you do not understand what that is, we advise you read their website first for more information.

nodecg-speedcontrol, usually known as just "Speedcontrol", is a bundle for the NodeCG broadcast graphics framework/application developed for automating tasks for speedrunning marathons, mainly changing information on overlays and updating the Twitch information.

Some basic information:

  • Import schedules from Horaro.
  • By default, can store information on the run and the players, but can also be customised to store more if needed by advanced users.
  • Automatically change Twitch title and/or game directory if needed.
  • Automatically feature the current player(s) on the FrankerFaceZ featured channels function below the stream.
  • Has an inbuilt timer (powered by livesplit-core); no need to have a seperate application open.
  • Support for some donations trackers can be added with extra bundles (see below).

This bundle doesn't come with any graphics, you will need to create them yourself in another bundle. If you have no experience in developing, you can check out speedcontrol-simpletext for an simple example bundle, or check out the API documentation if you're are more advanced user.

If you were developing bundles that relied on this bundle before v1.x was released, please check Migrating from v0.9 to v1.x.

Installation

You will need Node.js (10.x LTS tested) and git installed to install NodeCG, then see the NodeCG documentation on how to install that. I also suggest installing nodecg-cli; information on that is also on the documentation just linked.

  • nodecg install speedcontrol/nodecg-speedcontrol to install the latest version of nodecg-speedcontrol

This bundle can run without any extra configuration, but it's needed to use all of the functionality. Please see the Configuration documentation for more information. You may also want to read the Schedule Formatting documentation for advice on formatting your schedules before importing.

tl;dr installation

Install Node.js (10.x LTS tested) and git, then make a folder anywhere and open a command prompt/shell/bash window, then run these commands in order:

npm install bower -g
npm install nodecg-cli -g
nodecg setup
nodecg install speedcontrol/nodecg-speedcontrol
nodecg start

Basic Usage

Once installed, go to https://localhost:9090 (unless you have overridden the defaults in the NodeCG config) to access the dashboard.

To import a schedule, go to the Run Modifications workspace along the top, and look for the Horaro Schedule Import panel. Paste in a Horaro schedule URL into the text box (it will be automatically pre-filled if you set schedule.defaultURL in this bundles config) and click Load Schedule Data.

Schedule Import Before

Next you will see a list of dropdowns. These are used to select which columns in your schedule relate to which information in the run data. The import tries to automatically select the appropriate columns, but if something is wrong you can change it here. Also available here is an option on how the players in the Players column should be split; see the Schedule Formatting documentation for more information on what these options mean and how the Players column data should be formatted. Once you have everything selected correctly, click on the Import button.

Schedule Import Settings

The schedule will begin importing. If you have the speedrun.com lookup enabled (by default it's enabled) this import may take a while, so be patient. Once the import is done, this panel will turn back to how it was before, and the runs will be listed in the Run Player and Run Editor panels.

Schedule Importing

To start "playing" runs, go back to the Main Workspace and find the Run Player panel, and click on the big Play _ button at the top.

Run Player Play Button

Next to the above panel should be the Run Timer panel. This should be very self explanitory; use the play button to start the timer and use the tick button to end it. You can also reset it if needed, pause it and also use the pencil to edit the time if needed for any reason.

Run Timer Stopped

If you have enabled the Twitch integration in this bundle's config, there will be a panel in Main Workspace called Twitch Control, which will have a button to set up the connection with Twitch. Use this to connect the application to your Twitch account.

Twitch Control Login

Once you have done the above, make sure to turn the auto-sync on in the panel, otherwise it will not be done when you change runs. You can also manually update the title, game and the Twitch usernames for the FrankerFaceZ featured channels integration if you have this enabled.

Twitch Control Logged In

Extra Support Bundles

Alongside the main bundle, there are some extra bundles that we maintain that you may also want to use for speedrunning marathons. See their GitHub pages for more detailed information on how to use them. Be warned they are somewhat undocumented as of now.

To easily install: nodecg install speedcontrol/BUNDLE-NAME

Where has this bundle been used before?

(This is not an exhaustive list.)

Authors/Contributors

Originally developed by Charleon, now mainly developed by zoton2.

With help from:

  • btrim
  • Zephyyrr
  • Planks

Contribution/Development

The master branch will always be the most recent stable release, while all development work is done in the dev branch; if you want to use experimental unfinished features or contribute, use that branch.

If you need to report an issue, you can do that on GitHub.

Feel free to raise an issue/Pull Request if you have used our bundle(s) for a marathon and would like to be linked above.