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.
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.
Configure FaustBot
In FaustBot, go to Integrations → Crowd Control. FaustBot connects
via the local Crowd Control SDK on port 58430.
Connect
Click Connect. FaustBot will connect to the running Crowd Control session. The status should show Connected.
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 effectEffect Started A timed effect beganEffect Ended A timed effect finishedEffect Refunded An effect was refundedCoins Purchased A viewer bought coinsSession Started Crowd Control session beganSession Ended Crowd Control session endedEffect 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 gameEffects
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
# 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
# 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
# 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
# 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 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.