Integration

Crowd Control

Let viewers interact with your games through Crowd Control effects, creating chaotic and entertaining gameplay moments.

Overview

FaustBot integrates with Crowd Control to extend viewer interaction beyond the game:

Effect Triggers

React when viewers activate effects.

Coin Tracking

Monitor viewer coin balances.

Queue Management

View and manage effect queues.

Effect Control

Enable, disable, or price effects.

Session Stats

Track coins spent and effects used.

Combo Actions

Chain stream actions with game effects.

Setup

Connect Crowd Control

Link FaustBot to your Crowd Control session to receive effect events.

1

Start Crowd Control

Launch the Crowd Control desktop app and start a session for your supported game. Make sure effects are working in-game first.

2

Configure FaustBot

In FaustBot, go to Integrations → Crowd Control. FaustBot connects via the local Crowd Control SDK on port 58430.

Screenshot: Crowd Control settings
3

Connect

Click Connect. FaustBot will connect to the running Crowd Control session. The status should show Connected.

4

Test Effects

Have a viewer trigger an effect or use the Crowd Control test feature. FaustBot should receive the event and you can now create triggers for it.

Game Support

Crowd Control works with hundreds of games. Check their website for supported titles. FaustBot receives events for any game that works with Crowd Control.

Triggers

Respond to Crowd Control events:

Effect Triggered A viewer activated an effect
Effect Started A timed effect began
Effect Ended A timed effect finished
Effect Refunded An effect was refunded
Coins Purchased A viewer bought coins
Session Started Crowd Control session began
Session Ended Crowd Control session ended

Effect Trigger Variables

These variables are available in your actions:

%ccEffectId% Unique ID of the effect
%ccEffectName% Display name of the effect
%ccEffectType% Effect type (instant, timed, etc.)
%ccViewerName% Name of viewer who triggered it
%ccCoinCost% Coin cost of the effect
%ccDuration% Duration in seconds (timed effects)
%ccQuantity% Number of times triggered
%ccGameName% Name of the current game

Effects

Effect Control

Enable Effect

Make an effect available.

Disable Effect

Temporarily disable an effect.

Set Price

Change an effect's coin cost.

Refund Effect

Refund coins for an effect.

Queue Management

Pause Queue

Pause the effect queue.

Resume Queue

Resume queued effects.

Clear Queue

Clear all pending effects.

Get Queue

List pending effects.

Coins

Give Coins

Award coins to a viewer.

Get Balance

Check viewer's coin balance.

Get Leaderboard

Top coin spenders list.

Scripting API

Control Crowd Control from your scripts:

Effect Handling

Handle triggered effects
# Get effect details from trigger
effect_name = CPH.GetArg("ccEffectName")
viewer = CPH.GetArg("ccViewerName")
cost = CPH.GetArg("ccCoinCost")

# Announce the effect
CPH.SendMessage(f"{viewer} triggered {effect_name} for {cost} coins!")

# React based on effect type
if "chaos" in effect_name.lower():
    CPH.ObsShowSource("Alerts", "ChaosOverlay")
    CPH.PlaySound("chaos_alert.mp3")

Effect Control

Enable, disable, and price effects
# Disable a troublesome effect temporarily
CPH.CrowdControlDisableEffect("spawn_enemies")

# Re-enable after cooldown
CPH.Wait(60000)  # 1 minute
CPH.CrowdControlEnableEffect("spawn_enemies")

# Change effect pricing
CPH.CrowdControlSetEffectPrice("super_speed", 500)

# Make an effect free for a limited time
CPH.CrowdControlSetEffectPrice("heal_player", 0)
CPH.SendMessage("Healing is FREE for the next 2 minutes!")
CPH.Wait(120000)
CPH.CrowdControlSetEffectPrice("heal_player", 100)

Queue Management

Manage the effect queue
# Pause effects during cutscene
CPH.CrowdControlPauseQueue()
CPH.SendMessage("Effects paused during cutscene!")

# Resume after cutscene
CPH.CrowdControlResumeQueue()
CPH.SendMessage("Effects resumed - chaos continues!")

# Get pending effects
queue = CPH.CrowdControlGetQueue()
CPH.LogInfo(f"Pending effects: {len(queue)}")

for effect in queue:
    CPH.LogInfo(f"  {effect['name']} from {effect['viewer']}")

Coin Management

Manage viewer coins
# Give coins as a reward
CPH.CrowdControlGiveCoins("username", 100)
CPH.SendMessage("Awarded 100 Crowd Control coins!")

# Check viewer balance
balance = CPH.CrowdControlGetBalance("username")
CPH.SendMessage(f"You have {balance} coins!")

# Get top spenders
leaderboard = CPH.CrowdControlGetLeaderboard(5)
CPH.SendMessage("Top Chaos Creators:")
for i, entry in enumerate(leaderboard, 1):
    CPH.SendMessage(f"#{i}: {entry['name']} - {entry['spent']} coins")

Session Statistics

Get session statistics
# Get session stats
stats = CPH.CrowdControlGetSessionStats()

CPH.SendMessage(f"Session Stats:")
CPH.SendMessage(f"  Effects triggered: {stats['effectCount']}")
CPH.SendMessage(f"  Total coins spent: {stats['coinsSpent']}")
CPH.SendMessage(f"  Most popular: {stats['topEffect']}")
CPH.SendMessage(f"  Chaos master: {stats['topViewer']}")

See the full API reference for all available Crowd Control methods.