Guides

Actions

Actions are the core building blocks of FaustBot automation. They contain sequences of effects that execute when triggered by events like chat commands, follows, or donations.

Overview

An Action is a reusable workflow that performs one or more operations. Actions can be triggered by multiple events and can contain complex logic including conditions, loops, and parallel execution.

Action editor overview

Action Components

  • Name & Group - Organize your actions into logical groups
  • Effects - The operations that run when the action executes
  • Cooldowns - Prevent spam with global and per-user cooldowns
  • Permissions - Control who can trigger the action

Creating Actions

To create a new action:

1

Open the Actions Panel

Navigate to the Actions tab in the sidebar, then click the + New Action button.

Click the Add Action button
2

Name Your Action

Give your action a descriptive name and optionally assign it to a group. Groups help organize related actions (e.g., "Chat Commands", "Alerts", "Moderation").

3

Add Effects

Click Add Effect to add operations to your action. Effects run in order from top to bottom.

Adding effects to an action
4

Configure & Save

Configure each effect's settings, set up cooldowns if needed, then save your action.

Effects

Effects are the individual operations within an action. FaustBot provides a wide variety of built-in effects, and plugins can add more.

Core Effects

Send Message

Send a chat message to the current platform

core.send_message

Play Sound

Play an audio file through a selected output

core.play_sound

Set Variable

Store a value in a global or user variable

core.set_variable

HTTP Request

Make GET/POST requests to external APIs

core.http_request

Delay

Pause execution for a specified duration

core.delay

Run Script

Execute C# or C++ code inline

core.script

Platform Effects

These effects work across all connected streaming platforms:

EffectDescription
core.send_announcementSend a highlighted announcement message
core.clear_chatClear all messages in chat
core.set_titleUpdate the stream title
core.set_categoryChange the stream category/game
core.create_clipCreate a clip of the stream
core.start_raidRaid another channel
core.create_pollStart a chat poll
core.create_predictionStart a channel prediction

File Effects

Available File Operations
core.read_file      - Read contents from a file
core.write_file     - Write/overwrite a file
core.append_file    - Append text to a file
core.file_exists    - Check if a file exists

Control Flow

Actions support conditional logic and loops for complex workflows.

Conditionals (If/Else)

Execute effects only when certain conditions are met:

Conditional logic in automation workflows
Example: VIP-only response
If Condition: %isVip% equals "true"
  ├─ Send Message: "Thanks for being a VIP, %user%!"
Else
  └─ Send Message: "Become a VIP to unlock this!"
End If

Loops

Repeat effects a specified number of times or until a condition is met:

Example: Countdown
Set Variable: counter = 5
Loop while: $counter > 0$
  ├─ Send Message: "%counter%..."
  ├─ Delay: 1 second
  └─ Set Variable: counter = $counter - 1$
End Loop
Send Message: "Go!"

Parallel Execution

Run multiple effects simultaneously using parallel blocks. Useful for triggering multiple independent operations without waiting.

Example: Parallel alerts
Run Parallel
  ├─ Play Sound: alert.mp3
  ├─ Send Message: "New follower: %user%!"
  └─ OBS: Show source "FollowAlert"
End Parallel

Cooldowns & Permissions

Cooldowns

Prevent action spam with cooldown settings:

Global Cooldown Time before the action can run again for anyone
User Cooldown Time before the same user can trigger again
Ignore for Mods Moderators bypass cooldowns
Ignore for VIPs VIPs bypass cooldowns
Ignore for Subs Subscribers bypass cooldowns
Cooldown and timing configuration

Permissions

Control who can trigger actions based on user roles:

  • Anyone - All viewers
  • Followers - Only followers
  • Subscribers - Tier 1+ subscribers
  • VIPs - VIP badge holders
  • Moderators - Channel moderators
  • Broadcaster - Channel owner only

You can also configure specific allowed/denied users by username or ID.

Using Variables

Actions have access to event data and stored variables. Use the %variable% syntax to substitute values in effect parameters.

Event Variables

These are automatically available based on the trigger:

Common event variables
%user%          - Username who triggered
%userId%        - User's platform ID
%displayName%   - User's display name
%message%       - Chat message content
%platform%      - Platform name (twitch, youtube, etc.)
%isSubscriber%  - Whether user is subscribed
%isModerator%   - Whether user is a mod
%isVip%         - Whether user is a VIP

Inline Expressions

Use $expression$ for math and function calls:

Expression examples
$random(1, 100)$        - Random number 1-100
$counter + 1$           - Math operations
$upper(%user%)$         - Uppercase username
$length(%message%)$     - Message character count

See the Variables Guide for complete documentation.

Testing Actions

FaustBot provides tools to test your actions without needing live events.

Manual Trigger

Right-click any action and select Test Action to run it immediately. You can provide test values for event variables.

Testing and viewing action execution results

Action History

The Action History panel shows all recent executions with timing, status, and any errors. Use this to debug issues with your actions.

Action history panel showing recent executions

Debugging Tips

  • Use Log effects to output debug information
  • Check the Action History for execution details
  • Disable cooldowns during testing
  • Test with different user roles to verify permissions