Crowd Control Integration - Suvidriel/VNyanDoc GitHub Wiki

Announcing VNyan × Crowd Control!

VNyan has proudly partnered with Crowd Control to make VTubing even more interactive! This first-of-it's-kind partnership brings new ways to bridge the divide between the performer, the game, and the audience!

To be direct: VNyan users can now connect their Crowd Control account to allow the Node Graph to react to effects sent to a Crowd Control supported game, or even create your own custom "menu" of effects that allow your viewers to interact directly with your model or your stream!

Table of Contents


Connecting to Crowd Control

To get started, you'll need to authorize VNyan to access your Crowd Control account. This allows VNyan to see your current list of Custom Effects as well as listen and respond to incoming effect requests from a Crowd Control session.

This step is accessed through your VNyan settings:

  1. Open the VNyan Menu UI
  2. Click on the Settings button to open the settings panel
  3. Navigate to the Connections section
  4. choose the Crowd Control tab. You'll be presented with a small panel that shows your current connection status to Crowd Control.
  5. Click on the "Connect" button. This will open a browser tab to Crowd Control's auth site
  6. If prompted, log into Crowd Control by selecting the service associated with your Crowd Control Account
  7. You will be presented with a consent screen asking if VNyan should be allowed to access your account, and describes which permissions it requires. Review these details and click Authorize to proceed
  8. The Crowd Control panel in VNyan should now indicate that you're connected to Crowd Control! VNyan will remember this, so you should need to do this again unless you opt to disconnect the account

c41f7473e3ebd15e676630ddc59fc74f

7feb1af346bf46eda48311b7fe290436

Integration with In-Game Effects

Integrating VNyan with Crowd Control's in-game effects is very easy! This is done through special nodes that can be copied right from the Crowd Control app and pasted into your Node graph! Nodes react to instant effects as well as the starting and stopping of timed effects, giving you the power to create immersive, interactive on-stream experiences that sync with the chaos your viewers are bringing into your game!

Copying Nodes from Crowd Control

Crowd Control Game Effect nodes are a special type of node that aren't available in VNyan's node browser UI, as each node is unique to a specific game and effect. Instead these can be copied from within the Crowd Control desktop app. Please note that this feature is only visible in Crowd Control while VNyan is running.

Finding and copying a node for a game effect takes just a few clicks:

  1. In the Crowd Control desktop app, select your desired game
  2. Navigate to the Effect Manager
  3. Find the game effect that you'd like to copy a node for
  4. Click the VNyan-branded button on the effect entry to copy the node to your clipboard!
  5. In VNyan, right-click an open area in one of your Node Graphs, and choose "Import CC Node" to add the node to your graph!

3df7471bfc29375c26bc4137864e4239

23c0d55ec7a16d5a4347e12c3a697ff8

Using Game Effect Nodes in VNyan

Crowd Control Game Effect nodes are Callback Nodes that are activated on response to specific effect requests from a Crowd Control session. These are configured according to the type of effect and specific elements of the effect itself.

Based on the effect type, you'll get some of these Output Sockets that trigger in response to effect requests:

  • Effect Activated: Instant effects only. Triggers when the relevant game effect is activated in Crowd Control
  • Effect Started: Timed effects only. Triggers when the relevant game effect starts or resumes in Crowd Control
  • Effect Stopped: Timed effects only. Triggers when the relevant game effect completes or pauses in Crowd Control

Note: It is important that your graph handles both the Effect Started and Effect Stopped sockets for timed effects! Many games have situations that may pause a timed effect temporarily or cause it to end earlier than the set duration. Only handling the Effect Started condition will lead to sync issues between your graphs and the actual active Crowd Control effects in-game.

Based on the effect's structure, you'll also get some of these Value Sockets that provide details about the request to use in your graphs:

  • RequestID (text): a unique ID for the specific effect request from Crowd Control. This value has very niche use cases and you likely won't need to use it
  • Viewer Name (text): the display name of the viewer who requested the effect
  • Coin Cost (number): the amount of coins spent by the viewer in order to request the effect
  • Duration (number): timed effects only. The total intended duration of the effect in miliseconds
  • Quantity (number): effects that support quantity only. The quantity chosen by the user when requesting the effect
  • List Parameters (text): If the effect has color-selection parameters, there will be a value socket for each one
  • Color Parameters (color): If the effect has color-selection parameters, there will be a value socket for each one

Custom Crowd Control Effects

When you're not playing a Crowd Control supported game, let the audience take control of your stream instead! VNyan itself is a Crowd Control supported game, and provides ways for you to crate your own menu of custom effects to be offered to your viewers through Crowd Control.

You determine the name, price, and configuration for the effect, viewers request these effects from the Crowd Control UI the same way they do with a supported game, and you use special Callback Nodes to respond to the effect requests through the Node Graph

Effects Menu Panel

Once you've connected VNyan to your Crowd Control account, you'll be provided with a new "Crowd Control" button in VNyan's sidebar. This gives you access to the Crowd Control Menu Manager:

The main view of this panel is a list of your currently-registered custom effects along with a few buttons to manage and maintain the integration:

  • Add, Edit, or Remove effects
  • Copy the node for an effect for use in the Node Graph
  • Import or Export your entire effect menu
  • Copy your Crowd Control Interact link or open it up in-browser
  • See your current Crowd Control session status, and start or stop your session

Effect Editor Form

When you create or edit an effect, the view changes to the Effect Editor Form. In here, you can configure all of the details related to how the effect is presented to viewers in Crowd Control:

Basic Details:

  • Unique ID used to identify the effect to nodes
  • Effect name as shown to users through the Crowd Control UI
  • The group/heading under which the effect will be organized
  • A short description of the effect to be shown to viewers

Effect Configuration Details:

  • The default price for a viewer to request the effect
  • Whether or not viewers can select a quantity when requesting the effect, and minimum/maximum quantity values
    • When an effect supports quantity, the price of the effect request is multiplied by the selected quantity
  • Whether or not the effect is a Timed Effect and has a duration, and the length of that duration. Timed Effects are intended to make something happen for some fixed amount of time and then stop later. They use a node with two output sockets to handle both the "Effect Started" and "Effect Stopped" conditions
  • Settings for default global cooldowns and per-user cooldowns to limit how frequently an effect can be requested

Parameter Details: A list of the different parameters configured for the effect. These allow viewers to provide additional details with their effect request:

  • The ID used to identify the parameter when used in nodes
  • The name of the Parameter as displayed to viewers
  • The type of paramter. Parameters can have either an Options type or a Color type
    • Options: Allows a viewer to choose an item from a list of options. Provides UI to configure ID and display name of each possible option. Viewers are shown this as a list of buttons in the Crowd Control UI
    • Color: Allows the viewer to choose an RGB color. Viewers are shown this as a color picker in the Crowd Control UI

48ea3676030a7d0721b42655a365d876

Using Custom Effect Nodes

Crowd Control Custom Effects use slightly different nodes than the Game Effects, given the dynamic nature of custom effects, which you can change or remove at any time. This means that these nodes don't have unique structures for each effect, and instead have only two nodes: One for Instant Effects, and another for Timed Effects. For both node types, there is a text field to provide the ID of the custom effect to which it should respond.

The Instant Effect node provides these sockets:

  • Output Socket which triggers when the effect is activated
  • RequestID (text): a unique ID for the specific effect request from Crowd Control. This value has very niche use cases and you likely won't need to use it
  • Viewer Name (text): the display name of the viewer who requested the effect
  • Coin Cost (number): the amount of coins spent by the viewer in order to request the effect
  • Quantity (number): The quantity chosen by the user when requesting the effect. Only useful if your effect support quantity selection
  • Parameters (dictionary): A dictionary of the parameter values as determined by viewer selection. The IDs of each parameter are the key for each entry, and the ID of the selected option (for Options-type parameters) or a hex color code (for Color-type parameters) is the value for each entry

The Timed Effect node is very similar, but with a couple notable changes:

  • This node has two output sockets, one for when the effect starts and another for when the effect stops. You must handle both conditions to ensure proper sync between VNyan and the actual current state of active effects.
  • This node has a Duration (number) value socket, which provides the duration of the effect in miliseconds

The Effects Menu panel in VNyan provides a button for each effect to let you quickly copy the correct type of node for an effect, with the ID pre-filled.

c101e2026b15ea590f9823fea0a39c9c

Managing Custom Effects in Crowd Control

VNyan allows you to define effects along with their default values, but these values can also be customized further within the Crowd Control desktop app, just like effects for any supported game! Temporarily adjust prices, cooldowns, durations, dynamic pricing settings and more on the fly! See Crowd Control's documentation for details on this feature.

dab92288fe6347632776beaf30ef5173