Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion streamerbot/1.get-started/_faq/1.assign-action.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
description: Why can I no longer assign an action to an event?
---

Since update v0.2.0, the actions are no longer assigned in the event, but the other way round. In the `Actions` tab, you will now find a `Triggers` area in which you can select an event/trigger like commands, a subscription, an OBS event and many more triggers for the respective action.
Since Streamer.bot v0.2.0, the actions are no longer assigned in the event, but the other way round. In the `Actions` tab, you will now find a `Triggers` area in which you can select an event/trigger like commands, a subscription, an OBS event and many more triggers for the respective action.

![Add Trigger Animation](../assets/add-trigger.gif)
4 changes: 3 additions & 1 deletion streamerbot/1.get-started/_faq/12.exclude-users.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
description: How can I exclude bots/certain users from an action like *First Words*?
---

For the most cases, this can be accomplished by an if/else-subaction (`Core -> Logic -> If/Else`). The goal is to check for the username and if it matches, break the action (`if user equals (Ignore Case) TheUserName break, else continue`). You can also make use of groups (`Settings -> Groups`) and check if a user is in a group (e.g. `Twitch -> User Groups -> User In Group`) and break the action if they are.
For the most cases, this can be accomplished by an if/else-subaction (`Core -> Logic -> If/Else`). The goal is to check for the username and if it matches, break the action. So for `Input` we enter the variable `%userName%`, choose `Equals (Ignore Case)` as the `Operation` and the actual username in the `Value` field. And to make it break, we then add a `Core -> Logic -> Break` subaction into `True Result`.

You can also make use of groups (`Settings -> Groups`) and check if a user is in a group (e.g. `Twitch -> User Groups -> User In Group`) and break the action if they are.

![Exclude User Example](../assets/exclude-user.png)
6 changes: 3 additions & 3 deletions streamerbot/1.get-started/_faq/13.user-in-group.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
description: How do I check whether a user is in a group?
---
Since version 0.2.3, platform-specific group sub-actions have been introduced, accessible in the context menu under `User Groups`. If you want to check whether a Twitch user is in a group via sub-actions, navigate to `Twitch -> User Groups -> User In Group`. You can either input a direct username or use a variable such as `%userName%` or `%targetUserName%`, followed by the group name. The sub-action will generate a variable called `inGroup`, which you can utilize in an if/else sub-action (`if inGroup Equals True continue, else break`).
Since version 0.2.3, platform-specific group sub-actions have been introduced, accessible in the context menu under `User Groups`. If you want to check whether a Twitch user is in a group via sub-actions, navigate to `Twitch -> User Groups -> User In Group`. You can either input a direct username or use a variable such as `%userName%` or `%targetUserName%`, followed by the group name. The sub-action will generate a variable called `inGroup`, which you can utilize in an if/else sub-action (`if %inGroup% Equals True continue (do nothing), else break with the break subaction`).

This can also be done in C#. Create a subaction `Core -> C# -> Execute C# Code`) and paste the code below in there. Replace *group1* with the name of your group. Hit *Save and Compile* afterwards. This will provide the `%inGroup%` variable, that you can then check against in an if/else-subaction (`if inGroup equals True continue, else break`).
This can also be done in C#. Create a subaction `Core -> C# -> Execute C# Code`) and paste the code below in there. Replace *group1* with the name of your group. Hit *Save and Compile* afterwards. This will provide the `%inGroup%` variable, that you can then check against in an if/else-subaction (`if %inGroup% Equals True continue (do nothing), else break with the break subaction`).
Since 0.2.3, all C# group methods require a platform property, like shown below in the code example.

**After 0.2.3**
Expand Down Expand Up @@ -39,4 +39,4 @@ public class CPHInline
return true;
}
}
```
```
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Can I get a dynamic delay of an OBS media source?

Yes, this can be done with OBS Raw (`OBS -> Raw`) and a [GetMediaInputStatus request](<https://obs-raw.streamer.bot/#GetMediaInputStatus>). Paste the code below into the Raw subaction and replace the inputName with the name of your media source. This request will populate a `%obsRaw.mediaDuration%` variable that gives the media duration in milliseconds. You can then use that variable within the `Delay` subaction.

__Note__: For the variable to populate, the media source needs to be visible. Use a `Set Source Visibility State` subaction to make it visible, add a delay of 100ms and then use the Raw subaction. (Example: [see here](<https://i.imgur.com/mSk7leg.png>))
__Note__: For the variable to populate, the media source needs to be visible. Use a `Set Source Visibility State` subaction to make it visible, add a delay of 100ms and then use the Raw subaction. (Example: [see here](<https://docs.streamer.bot/1.get-started/assets/dynamic-delay.png>))

```json
{
Expand Down
4 changes: 2 additions & 2 deletions streamerbot/1.get-started/_faq/16.obs-filter-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Can StreamerBot change the settings within a filter (like Move Valu

This can be done with an OBS Raw subaction (`OBS -> Raw`) and a [SetSourceFilterSettings request](<https://obs-raw.streamer.bot/#SetSourceFilterSettings>). To find out what the correct settings for a request are called, you can manually set the settings on your filter and do a [**Get**SourceFilter request](<https://obs-raw.streamer.bot/#GetSourceFilter>) beforehand. This will give you the list of settings.

In [this example](<https://i.imgur.com/DLDHeyo.png>) a GetSourceFilter request for a *Move Value* filter with a *Type Writer* effect on a text source was done and returned `"settings_text"`. So we use that in our **Set**SourceFilterSettings request [like so](<https://i.imgur.com/zODVEtJ.png>).
In [this example](<https://docs.streamer.bot/1.get-started/assets/raw-getsourcefiltersettings.png>) a GetSourceFilter request for a *Move Value* filter with a *Type Writer* effect on a text source was done and returned `"settings_text"`. So we use that in our **Set**SourceFilterSettings request [like so](<https://docs.streamer.bot/1.get-started/assets/raw-setsourcefiltersettings.png>).

You can also use variables within the request (__Note__: If you click "Test" on the Raw subaction, the variable won't be populated. In that case you will have to test the entire action).

Expand All @@ -21,4 +21,4 @@ You can also use variables within the request (__Note__: If you click "Test" on
}
}
```
This can also be done for filters on a scene, but you won’t be able to select it on the OBS Raw website. In that case, do a request in a subaction, use the scene name as the sourceName and hit “Test”.
This can also be done for filters on a scene, but you won’t be able to select it on the OBS Raw website. In that case, do a request in a subaction, use the scene name as the sourceName and hit “Test”.
6 changes: 3 additions & 3 deletions streamerbot/1.get-started/_faq/17.current-game-toggle.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ description: How can I enable actions/rewards/commands based on the current game
---

There are two options. The first one would be to trigger whenever you change your category on Twitch. You'd use the [Stream Update](<https://docs.streamer.bot/api/triggers/twitch/general/stream-update>) trigger and create an if/else-subaction (`Core -> Logic -> If/Else`) to check for:
`if gameName equals GameX do ActionY`, where ActionY would contain all subactions to enable/disable whatever you want.
`if %gameName% Equals GameXYZ` and put the action you want to run into the `True Result`. That action would contain all subactions to enable/disable whatever you want.

The second option is to check for when the game process starts on your PC. You'd use the [Process Started](<https://docs.streamer.bot/api/triggers/core/processes/process-started>) trigger (`Core -> Processes -> Process Started`) for that. You can then specify the name within the trigger, it usually is just the name that pops up in your [task manager](<https://i.imgur.com/KM6XS0b.png>). If there are multiple process names available, try them out one by one and see which one triggers the action.
The second option is to check for when the game process starts on your PC. You'd use the [Process Started](<https://docs.streamer.bot/api/triggers/core/processes/process-started>) trigger (`Core -> Processes -> Process Started`) for that. You can then specify the name within the trigger, it usually is just the name that pops up in your [task manager](<https://docs.streamer.bot/1.get-started/assets/process-example.png>). If there are multiple process names available, try them out one by one and see which one triggers the action. Make sure process watcher is enabled in Streamer.bot's settings, too.

**Note**: Some games with anticheat will prevent you from using the process as a trigger.
**Note**: Some games with anticheat will prevent you from using the process as a trigger.
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
description: Why are my variables like %user% or %rawInput% not parsing when using Quick Actions from the internal chat?
---

The variables for the Quick Action Bar are different from the ones in commands or rewards. It's `%displayName%` instead of `%user%` or `%message%` instead of `%rawInput%`. To see all available variables on the Quick Action Bar, doubleclick the action in the `Action Queues -> Action History` tab.
The variables for the Quick Action Bar are different from the ones in commands or rewards. It's `%displayName%` instead of `%user%` or `%message%` instead of `%rawInput%`. To see all available variables on the Quick Action Bar, doubleclick the action in the `Actions & Queues -> Action History` tab.
2 changes: 1 addition & 1 deletion streamerbot/1.get-started/_faq/2.tts-delay.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
description: Is it possible to have a dynamic delay for the duration of the TTS?
---

With v.0.2.3 you are now able to use the new `Speaker.bot -> Speak` subaction. This requires a websocket connection. Navigate to `Settings -> Websocket Server` in **Speaker.bot** and start the server. In **Streamer.bot** then go to `Integrations -> Speaker.bot` and connect it there. You can then check *Delay* on the subaction and the upcoming subactions will wait until TTS has finished. Checking the *Delay* box also populates the `%duration%` variable (ms).
Since Streamer.bot v.0.2.3 you are able to use the new `Speaker.bot -> Speak` subaction. This requires a websocket connection. Navigate to `Settings -> Websocket Server` in **Speaker.bot** and start the server. In **Streamer.bot** then go to `Integrations -> Speaker.bot` and connect it there. You can then check *Delay* on the subaction and the upcoming subactions will wait until TTS has finished. Checking the *Delay* box also populates the `%duration%` variable (ms).

![Speakerbot Speak Subaction](../assets/tts-delay.png)
5 changes: 3 additions & 2 deletions streamerbot/1.get-started/_faq/26.obs-alerts-after-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
description: Actions are triggering but OBS Alerts are not showing up?
---

After updating Streamer.bot or OBS, some of your OBS alerts are not working correctly anymore? You confirmed that they are running in your action history (`Action Queues -> Action History`), and they also work fine when testing the OBS subactions themselves?
After updating Streamer.bot or OBS, some of your OBS alerts are not working correctly anymore? You confirmed that they are running in your action history (`Actions & Queues -> Action History`), and they also work fine when testing the OBS subactions themselves?

The usual fix for this would be to go to `StreamApps -> OBS`, here you right-click the OBS connection which you are using to display your alerts, then click on `Update All Actions to...`. This will update **ALL** your OBS sub-actions to that specific OBS connection, so be also mindful when you use it. If you don't want to update all your sub-actions you'd have to go to each action and "update" the OBS subaction by re-setting them to the OBS connection again.

The usual fix for this would be to go to `StreamApps -> OBS`, here you right-click the OBS connection which you are using to display your alerts, then click on `Update All Actions to...`. This will update **ALL** your OBS sub-actions to that specific OBS connection, so be also mindful when you use it. If you don't want to update all your sub-actions you'd have to go to each action and "update" the OBS subaction by re-setting them to the OBS connection again.
2 changes: 1 addition & 1 deletion streamerbot/1.get-started/_faq/3.tts-speaks-twice.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
description: My TTS is speaking twice, why's that?
---

On rare occasions the UDP broadcast can cause SpeakerBot to speak twice. StreamerBot v0.2.3 now has a websocket speak subaction (`Speaker.bot -> Speak`) that won't cause this issue. As for the UDP subaction, a PC restart will fix this.
On rare occasions the UDP broadcast can cause SpeakerBot to speak twice. StreamerBot v0.2.3 introduced a websocket speak subaction (`Speaker.bot -> Speak`) that won't cause this issue. As for the UDP subaction, either disabling the second (unused) network adapter or a PC restart will fix this.
17 changes: 17 additions & 0 deletions streamerbot/1.get-started/_faq/34.switch-subaction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
description: How does a Switch subaction work?
---

A `Core -> Logic -> Switch` subaction takes an input (such as a variable) and compares it against multiple cases. If the input matches one of the cases, the subactions inside that case will run. It works similarly to an *If/Else* subaction, but instead of being limited to just `True` or `False`, it allows for many different options.

In this example, we use `%userName%` as the input, with individual usernames defined as cases.

To add a new case, right-click the subaction and select **Add Case**. Enter the desired value, then click **Add** and **OK** when you’re finished. You can include multiple values within a single case, or just keep one — it’s up to you. Add as many cases as you need.

Next, add the subactions to each case. In our example, we use `Send Message` subactions to give specific users a personalized welcome message.

The **Default** case acts as a *catch-all*: if none of the cases above it match, the default case will be used instead.

*Note: If you are using numbers, make sure to check `Auto Type`*

![Switch Subaction](../assets/switch.png)
15 changes: 15 additions & 0 deletions streamerbot/1.get-started/_faq/35.while-subaction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
description: How does a While subaction work?
---

A `Core -> Logic -> While` subaction allows you to create a loop that runs until a certain condition is met. Once the condition is no longer true, the loop stops executing.

In this example, we create a numeric variable `%myNumber%` and set it to `1`. With each loop cycle, we increment this variable by `1` using a math-inline operation, then post a message. We want to repeat this process until the variable reaches the value `5`.

For the configuration, we use `%myNumber%` as the **Input**, `Less Than` as the **Operation**, and `5` as the **Value**. This means that as long as the variable is less than `5`, the loop will continue to run. Once it reaches `5`, the loop ends and execution continues with any subactions that follow.

**⚠️ Note:** A misconfigured *While* subaction can cause an infinite loop. In such a case, you’ll need to exit Streamer.bot to stop it. Be careful when setting up loops and always ensure you have valid break conditions.



![Switch Subaction](../assets/while.png)
4 changes: 2 additions & 2 deletions streamerbot/1.get-started/_faq/5.random-subaction.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
description: How do I run a random subaction?
---

You can either rightclick an action and check *Random*, so a single subaction within the action is being picked randomly. Or you can create a group within the subactions, then rightclick that group and check *Random*. This will then only run a random subaction **within** the group. All the other subactions in the action outside the group will run from top to bottom as usual. (Example: [see here](<https://i.imgur.com/V60zhg5.gif>))
You can either rightclick an action and check *Random*, so a single subaction within the action is being picked randomly. Or you can create a group within the subactions, then rightclick that group and check *Random*. This will then only run a random subaction **within** the group. All the other subactions in the action outside the group will run from top to bottom as usual. (Example: [see here](<https://docs.streamer.bot/1.get-started/assets/random-group.gif>))

**Note**: Once "Random" is checked, you can rightclick the subactions and set their weight to set their probabilities.
**Note**: Once "Random" is checked, you can rightclick the subactions and set their weight to set their probabilities.
2 changes: 1 addition & 1 deletion streamerbot/1.get-started/_faq/6.view-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ description: How do I know which variables are available?

The easiest way would be to check out the [Streamer.bot docs](/api) and look for the trigger or subaction you are using. A full list of variables will be given there, e.g. [Twitch Follow trigger](/api/triggers/twitch/channel/follow).

A second method would be to run the action, then go into the **Action Queues** tab, into the **Action History** and then doubleclick the action that has run. This will give you all variables that have been populated. (Example: [see here](<https://i.imgur.com/sc2Mo41.png>))
A second method would be to run the action, then go into the **Action Queues** tab, into the **Action History** and then doubleclick the action that has run. This will give you all variables that have been populated. (Example: [see here](<https://docs.streamer.bot/1.get-started/assets/action-history.png>))
5 changes: 4 additions & 1 deletion streamerbot/1.get-started/_faq/8.twitch-user-info.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@
description: How do I get the profile picture or most recent game of a Twitch user?
---

Those variables are being populated by the *Get User Info For Target* subaction (`Twitch -> User`). For *Source Type* you can then choose between different sources. *User* is the one who redeems the trigger (e.g. the one who follows on a *Follow* trigger or uses the command on a *Command Triggered* trigger). *From Input* uses the `%rawInput%` as the target, so the command `!command nate1280` would populate the variables for user *nate1280*. Just make sure the command location is set to *Start* in its settings. You can also choose *Variable* and type a variable like `%randomUser0%` in there if you have a preceding *Add Random Viewer* subaction.
Those variables are being populated by the *Get User Info For Target* subaction (`Twitch -> User`). The `User Login` field can either be a plain username or you use variables. If it's the redeemer, it'd be `%userName%`, if it was a targeted user from a command like `!hug nate1280`, you'd want to type `%input0%` in there. So it can be **any** variable, but it obviously depends what trigger you are using.


![Add Trigger Animation](../assets/twitch-target-user-info.png)
2 changes: 1 addition & 1 deletion streamerbot/1.get-started/_faq/9.action-blocking.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: How do I prevent my actions from overlapping/running multiple times at once?
---

1. Go into the `Action Queues` tab, then into `Queues` and create a new queue (`Rightclick -> Add`). Give it any name you like.
1. Go into the `Actions & Queues` tab, then into `Queues` and create a new queue (`Rightclick -> Add`). Give it any name you like.

2. Check `Blocking` and click `Ok`.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified streamerbot/1.get-started/assets/add-trigger.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified streamerbot/1.get-started/assets/cpr-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified streamerbot/1.get-started/assets/exclude-user.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified streamerbot/1.get-started/assets/math-inline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added streamerbot/1.get-started/assets/switch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified streamerbot/1.get-started/assets/tts-delay.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added streamerbot/1.get-started/assets/while.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading