Skip to content

ausspeedruns/asm-graphics

Repository files navigation

ASM Graphics

ASM-Graphics Logo

The on-stream graphics used during AusSpeedruns's marathon events.

GitHub Events Used In Twitch Status Twitter Follow

Before using

This is only intended to be used as an education tool. Please learn from the code to be able to create your own layouts. Do not download and use as is!

Table of Contents

Features

  • Ticker/Omnibar system
  • Support for 12 different game layouts
    • Widescreen / 16:9
    • Widescreen 2p / 16:9
    • Widescreen 3p / 16:9
    • Standard / 4:3
    • Standard 2p / 4:3
    • Standard Portrait / 3:4
    • Nintendo GameBoy & GameBoy Color
    • Nintendo GameBoy Advance
    • Nintendo GameBoy Advance 2p
    • Nintendo DS
    • Nintendo DS 2p
    • Nintendo 3DS
    • 11:8 (World's Hardest Game)
  • Race and Co-op
  • Couch and Host names
  • Audio indicators
  • Intermission screen
  • Online functionality with OBS support
  • Custom host dashboard
  • Automatic incentive data
  • Custom nodecg-speedcontrol schedule import
  • Runner tablet
  • X32 Connectivity

Requirements

To use the OBS audio indicators you must have OBS-WebSocket version 5.0.0. This plugin comes by default in OBS v28.

Installation

Currently no automated builds are active. You must install and build this manually.

  1. Install NodeCG
  2. Install nodecg-speedcontrol
  3. Starting from the root NodeCG folder
cd bundles
git clone https://github.com/ausspeedruns/asm-graphics.git
cd asm-graphics
npm i
npm run build
npm run start

Usage

Config Schema

The config schema is used to define URLs, API keys and to enable/disable certain features.

If you have nodecg-cli installed just run the nodecg defaultconfig command to generate the config file to then edit, else create a config file in nodecg/cfg/asm-graphics.json.

  • obs
    • Enables the use of OBS-WebSocket in the bundle, currently used for audio indicators but previously used to remotely change scenes during online events.
    • enabled: Boolean
    • port: Number
    • ip: String
    • password: String
  • twitch
  • twitter
    • Get tweets about the event to display on stream. Will work for ~30 mins and then break.
    • enabled: Boolean
    • key: String
      • Twitter API key
    • secret: String
      • Twitter API secret key
    • bearer: String
      • Twitter API bearer key
    • rules: Object[]
      • Twitter API rules on what to search for
      • Currently unused
  • hostname: String
    • Used when hosting NodeCG on an external server with a domain name
    • Only used to configure a URL for online mode
  • tilitfy
    • enabled: Boolean
    • key: String
      • Tiltify API key
    • campaign: String
      • Tiltify campaign ID
  • graphql
    • Used for getting incentives and runner information from the ausspeedruns.com website
    • url: String
      • URL for GraphQL server
    • event: String
      • Event's short name to filter results from the graphql server

Events used in

  • ASM2024
  • ASDH2024
  • ASGX2024
  • PAX2023
  • ASM2023
  • ASGX2023
  • ASAP2022
  • ASM2022
  • PAX2021
  • ASM2021
  • FAST2020
  • PAX Online 2020
  • ASM2020

License

asm-graphics is provided under the Mozilla Public License v2.0, which is available to read in the LICENSE file.

Authors

Contributing

Thank you for your interest in contributing to this project. While we welcome any issues or pull requests that you may have, please be aware that we may not be able to address them or provide a response. If you would like to help with the development of this project, we recommend reaching out to us directly via the AusSpeedruns Discord or Twitter. This will allow us to discuss potential contributions and determine the best way for you to get involved.

Credits