1 Actors
Knut Ahlers edited this page 2023-08-14 01:18:45 +02:00

Available Actions

Add Fields to Event

Add custom fields to the event to be used as template variables later on

- type: eventmod
  attributes:
    # Fields to set in the event (must produce valid JSON: `map[string]any`)
    # Optional: false
    # Type:     string (Supports Templating)
    fields: ""

Add VIP

Add VIP for the given channel

- type: vip
  attributes:
    # Channel to add the VIP to
    # Optional: false
    # Type:     string (Supports Templating)
    channel: ""
    # User to add as VIP
    # Optional: false
    # Type:     string (Supports Templating)
    user: ""

Ban User

Ban user from chat

- type: ban
  attributes:
    # Reason why the user was banned
    # Optional: false
    # Type:     string (Supports Templating)
    reason: ""

Commercial

Start Commercial

- type: commercial
  attributes:
    # Duration of the commercial (must not be longer than 180s and must yield an integer)
    # Optional: false
    # Type:     string (Supports Templating)
    duration: ""

Custom Event

Create a custom event

- type: customevent
  attributes:
    # JSON representation of fields in the event (`map[string]any`)
    # Optional: false
    # Type:     string (Supports Templating)
    fields: "{}"
    # Time until the event is triggered (must be valid duration like 1h, 1h1m, 10s, ...)
    # Optional: true
    # Type:     string (Supports Templating)
    schedule_in: ""

Delay

Delay next action

- type: delay
  attributes:
    # Static delay to wait
    # Optional: true
    # Type:     duration
    delay: 0s
    # Dynamic jitter to add to the static delay (the added extra delay will be between 0 and this value)
    # Optional: true
    # Type:     duration
    jitter: 0s

Delete Message

Delete message which caused the rule to be executed

- type: delete
  # Does not have configuration attributes

Uses link- and clip-scanner to detect links / clips and applies link protection as defined

- type: linkprotect
  attributes:
    # Allowed links (if any is specified all non matching links will cause enforcement action, link must contain any of these strings)
    # Optional: true
    # Type:     array of strings
    allowed_links: []
    # Disallowed links (if any is specified all non matching links will not cause enforcement action, link must contain any of these strings)
    # Optional: true
    # Type:     array of strings
    disallowed_links: []
    # Allowed clip channels (if any is specified clips of all other channels will cause enforcement action, clip-links will be ignored in link-protection when this is used)
    # Optional: true
    # Type:     array of strings
    allowed_clip_channels: []
    # Disallowed clip channels (if any is specified clips of all other channels will not cause enforcement action, clip-links will be ignored in link-protection when this is used)
    # Optional: true
    # Type:     array of strings
    disallowed_clip_channels: []
    # Enforcement action to take when disallowed link / clip is detected (ban, delete, duration-value i.e. 1m)
    # Optional: false
    # Type:     string
    action: ""
    # Reason why the enforcement action was taken
    # Optional: false
    # Type:     string
    reason: ""
    # Stop rule execution when action is applied (i.e. not to post a message after a ban for spam links)
    # Optional: true
    # Type:     bool
    stop_on_action: false
    # Stop rule execution when no action is applied (i.e. not to post a message when no enforcement action is taken)
    # Optional: true
    # Type:     bool
    stop_on_no_action: false

Execute Script / Command

Execute external script / command

- type: script
  attributes:
    # Command to execute
    # Optional: false
    # Type:     array of strings (Supports Templating in each string)
    command: []
    # Do not activate cooldown for route when command exits non-zero
    # Optional: true
    # Type:     bool
    skip_cooldown_on_error: false

FileSay

Takes the content of an URL and pastes it to the current channel

- type: filesay
  attributes:
    # Source of the content to post
    # Optional: false
    # Type:     string (Supports Templating)
    source: ""

Log output

Print info log-line to bot log

- type: log
  attributes:
    # Messsage to log into bot-log
    # Optional: false
    # Type:     string (Supports Templating)
    message: ""

Modify Counter

Update counter values

- type: counter
  attributes:
    # Name of the counter to update
    # Optional: false
    # Type:     string (Supports Templating)
    counter: ""
    # Value to add to the counter
    # Optional: true
    # Type:     string (Supports Templating)
    counter_step: "1"
    # Value to set the counter to
    # Optional: true
    # Type:     string (Supports Templating)
    counter_set: ""

Modify Stream

Update stream information

- type: modchannel
  attributes:
    # Channel to update
    # Optional: false
    # Type:     string (Supports Templating)
    channel: ""
    # Category / Game to set (use `@1234` format to pass an explicit ID)
    # Optional: true
    # Type:     string (Supports Templating)
    game: ""
    # Stream title to set
    # Optional: true
    # Type:     string (Supports Templating)
    title: ""

Modify Variable

Modify variable contents

- type: setvariable
  attributes:
    # Name of the variable to update
    # Optional: false
    # Type:     string (Supports Templating)
    variable: ""
    # Clear variable content and unset the variable
    # Optional: true
    # Type:     bool
    clear: false
    # Value to set the variable to
    # Optional: true
    # Type:     string (Supports Templating)
    set: ""

Nuke Chat

Mass ban, delete, or timeout messages based on regex. Be sure you REALLY know what you do before using this! Used wrongly this will cause a lot of damage!

- type: nuke
  attributes:
    # How long to scan into the past, template must yield a duration (max 10m)
    # Optional: true
    # Type:     string (Supports Templating)
    scan: "10m"
    # What action to take when message matches (delete / ban / <timeout duration>)
    # Optional: true
    # Type:     string (Supports Templating)
    action: "delete"
    # Regular expression (RE2) to select matching messages
    # Optional: false
    # Type:     string (Supports Templating)
    match: ""

Punish User

Apply increasing punishments to user

- type: punish
  attributes:
    # When to lower the punishment level after the last punishment
    # Optional: true
    # Type:     duration
    cooldown: 168h
    # Actions for each punishment level (ban, delete, duration-value i.e. 1m)
    # Optional: false
    # Type:     array of strings
    levels: []
    # Reason why the user was banned / timeouted
    # Optional: true
    # Type:     string
    reason: ""
    # User to apply the action to
    # Optional: false
    # Type:     string (Supports Templating)
    user: ""
    # Unique identifier for this punishment to differentiate between punishments in the same channel
    # Optional: true
    # Type:     string
    uuid: ""

Quote Database

Manage a database of quotes in your channel

- type: quotedb
  attributes:
    # Action to execute (one of: add, del, get)
    # Optional: false
    # Type:     string
    action: ""
    # Index of the quote to work with, must yield a number (required on 'del', optional on 'get')
    # Optional: true
    # Type:     string (Supports Templating)
    index: "0"
    # Quote to add: Format like you like your quote, nothing is added (required on: add)
    # Optional: true
    # Type:     string (Supports Templating)
    quote: ""
    # Format to use when posting a quote (required on: get)
    # Optional: true
    # Type:     string (Supports Templating)
    format: "Quote #{{ .index }}: {{ .quote }}"

Remove VIP

Remove VIP for the given channel

- type: unvip
  attributes:
    # Channel to remove the VIP from
    # Optional: false
    # Type:     string (Supports Templating)
    channel: ""
    # User to remove as VIP
    # Optional: false
    # Type:     string (Supports Templating)
    user: ""

Reset User Punishment

Reset punishment level for user

- type: reset-punish
  attributes:
    # User to reset the level for
    # Optional: false
    # Type:     string (Supports Templating)
    user: ""
    # Unique identifier for this punishment to differentiate between punishments in the same channel
    # Optional: true
    # Type:     string
    uuid: ""

Respond to Message

Respond to message with a new message

- type: respond
  attributes:
    # Message text to send
    # Optional: false
    # Type:     string (Supports Templating)
    message: ""
    # Fallback message text to send if message cannot be generated
    # Optional: true
    # Type:     string (Supports Templating)
    fallback: ""
    # Send message as a native Twitch-reply to the original message
    # Optional: true
    # Type:     bool
    as_reply: false
    # Send message to a different channel than the original message
    # Optional: true
    # Type:     string
    to_channel: ""

Scan for Clips

Scans for clip-links in the message and adds the "clips" field to the event data

- type: clipdetector
  # Does not have configuration attributes

Scans for links in the message and adds the "links" field to the event data

- type: linkdetector
  # Does not have configuration attributes

Send RAW Message

Send raw IRC message

- type: raw
  attributes:
    # Raw message to send (must be a valid IRC protocol message)
    # Optional: false
    # Type:     string (Supports Templating)
    message: ""

Send Whisper

Send a whisper (requires a verified bot!)

- type: whisper
  attributes:
    # Message to whisper to the user
    # Optional: false
    # Type:     string (Supports Templating)
    message: ""
    # User to send the message to
    # Optional: false
    # Type:     string (Supports Templating)
    to: ""

Shoutout

Perform a Twitch-native shoutout

- type: shoutout
  attributes:
    # User to give the shoutout to
    # Optional: false
    # Type:     string (Supports Templating)
    user: ""

Stop Execution

Stop Rule Execution on Condition

- type: stopexec
  attributes:
    # Condition when to stop execution (must evaluate to "true" to stop execution)
    # Optional: false
    # Type:     string (Supports Templating)
    when: ""

Timeout User

Timeout user from chat

- type: timeout
  attributes:
    # Duration of the timeout
    # Optional: false
    # Type:     duration
    duration: 0s
    # Reason why the user was timed out
    # Optional: false
    # Type:     string (Supports Templating)
    reason: ""

Update Shield Mode

Update shield mode for the given channel

- type: shield
  attributes:
    # Whether the shield-mode should be enabled or disabled
    # Optional: false
    # Type:     bool
    enable: false