Buttons & Commands

Edit

Share a button #

Export a button

You can export a button by right clicking on the button and selecting Export JSON.
The contents will be copied to your clipboard.

Import a button

You can import a button by right clicking anywhere on an empty space in your deck and selecting Import from JSON.


Edit

Share a deck #

In SAMMI, select a deck you wish to share with someone, right click on it and select Copy Deck. This will copy all your JSON deck data into your clipboard. You can then paste it into a text file to share with others.
To Import a deck, press Paste Deck in SAMMI’s side menu.


Edit

Trigger a button with keyboard press #

You can set up a hotkey to trigger a SAMMI button by right clicking on the button in your deck - Edit Triggers. Press +, select Hotkey and fill out the Key field and optionally check whatever modifiers you want to use (for example Ctrl + K). Don’t forget to hit save!

Hotkey trigger for a button
Hotkey trigger for a button


Edit

Switch decks with a button #

Create a new button. Right click on the button - Edit Settings. You can then set up the button to switch your decks when pressed.

Switch decks with a button
Switch decks with a button


Edit

Set up button cooldowns #

Adding a cooldown for a single button
Use the Overtime command, which artificially increases the duration of the button and prevents it from getting triggered again.

Adding a cooldown for a group of buttons
If you want to put a group of buttons on cooldown as soon as one of them is triggered, you can follow these steps:

  1. Add all buttons to the same group ID (right click on a button - Edit Settings - Group ID).
  2. Make sure Allow Queue is checked for all your buttons in the group (right click on a button - Edit Settings).
  3. Now every time one of the buttons in the same group triggers, it will automatically add any other triggered buttons sharing the same group into a queue, wait for the currently running button to be over and execute the next button in the queue.


Edit

Block buttons from executing temporarily #

You can use Block Button command to temporarily block a button or group from executing.
If you enable Allow Queue (right click on a button - Edit Settings), all the incoming triggers will be savely queued up and executed as soon as you use Block Button command again to unblock the button.
This is extremely useful if you want to make sure you don’t miss any alerts while you’re on a BRB scene.


Edit

Command Delays #

Refer to our Commands-Introduction section to learn more about how command delays work.


Edit

How to see all variables #

Press Variable Viewer in SAMMI. You can see all global and persistent button IDs and click on the individual ones to see their variables.
Learn more about all variable types in our Commands-Variables section.


Edit

Premade variables #

See a list of all premade variables in Commands-Introduction section.


Edit

Variable operators #

There’s a significant difference between White and Yellow box.
The following examples show the usage in yellow boxes.

Operator Description Example
= Assignment. Real values or strings. Strings need to be wrapped in double quotes. Asigns the value on the right to the variable on the right. x = y x = 7 , x = "Hello World"
+= Addition. Real values or strings. Strings need to be wrapped in double quote. Same as x = x + y 7 += 2 = 9
"Hello" += " World" = “Hello World”
-= Subtraction. Real values only. Same as x = x - y 7 -= 2 = 5
*= Multiplication. Real values only. Same as x = x * y 7 *= 2 = 14
/= Division. Real values only. Same as x = x / y 7 /= 2 = 3.5
MOD Modulus. Real values only. Returns the remainder of division. 7 MOD 2 = 1
DIV Integer division. Real values only. Same as division, but the remainder is discarded. 7 DIV 2 = 3
CONCAT Concatenation. Real values or strings. Returns a string with the two values one after the other. 7 CONCAT 2 = “72”
"Hello" CONCAT " World" = “Hello World”
"Player " CONCAT 1 = “Player 1”
&= Bitwise AND. Real values only. Same as x = x & y 7 &= 2 = 2
^= Bitwise XOR. Real values only. Same as x = x ^ y 7 ^= 2 = 5
|= Bitwise OR. Real values only. Same as x = x \| y 7 \|= 2 = 7
« Bitwise Left-Shift. Real wavlues only. Same as x = x << y 5 << 2 = 20
» Bitwise Right-Shift. Real wavlues only. Same as x = x >> y 5 >> 2 = 1
Cos Returns a numeric value between -1 and 1, which represents the cosine of the angle given in radians. Cos 90 = -0.45
Sin Returns a numeric value between -1 and 1, which represents the sine of the angle given in radians Sin 90 = 0.89
Tan Returns a numeric value that represents the tangent of the angle. Tan = Sin/Cos. Tan 90 = -2.00


Edit

Conditional operators #

Applies to all Statement commands.

Operator Description Example
== Equal. Checks whether the variables are equal.
Real values or strings. Strings need to be wrapped in “ “.
1 == 3 = false
"Hello" == "Hello" = true
!= Not Equal. Checks whether the variables are not equal.
Real values or strings. Strings need to be wrapped in “ “.
1 != 3 = true
"Hello" != "Hello" = false
> Greater than. Checks whether the variable is greater than the second variable/value.
Real values only.
1 > 3 = false
3 > 2 = true
< Less than. Checks whether the variable is less than the second variable/value.
Real values only.
1 < 3 = true
3 < 2 = false
>= Greater than or equal. Checks whether the variable is greater than or equal to the second variable/value.
Real values only.
1 >= 3 = false
3 >= 3 = true
<= Less than or equal. Checks whether the variable is less than or equal to the second variable/value.
Real values only.
1 <= 3 = true
3 <= 3 = true


Edit

Complex Math #

You can execute complex math operations in every parameter box, using a mix of variables and real values. Note that there’s a significant difference between White and Yellow box.

Each time you want SAMMI to execute any kind of math, you need to wrap the whole sequence in parentheses: (some math operation), for example (variable+3*5+round(variable2)) or (variable+10) (applies for yellow boxes, as you must use /$$/ in white boxes).

The following examples show the usage in yellow boxes.

Operator Name Example (without parentheses)
+ Add 3+2
- Subtract 3-2
/ Divide (including decimals) 3/2 = 1.5
* Multiply 3*2 = 6
^ XOR 3^2 = 1
| OR 3|2 = 3
& AND 3&2 = 2
$ Hexadecimal $FFF = 4095
round() Round to nearest integer round(3.4) = 3
ceil() Ceil (Round up) ceil(3.4) = 4
floor() Floor (Round down) floor(3.8) = 3
mod Modulus (division remainder). Space required before and after mod. 7 mod 3 = 1 or (7+3) mod (2+4) = 4
div Divide (no decimals). Space required before and after div. 7 div 3 = 2 or (7+3) div (2+4) = 1


Edit

Number vs. String #

String in a programming language is a sequence of characters. It is used to represent text rather than numbers.
Strings are contained within a pair of double quotes, i.e. "Cat" or "Hello World".
Strings can contain numbers, however you must realize that "5" doesn’t have the value of 5, it has the value of 0, the same as "a" does.
You cannot add strings either, i.e. "12" + "34" isn’t "46", it’s "1234". 12 + 34 is 46.
If you wish to convert a string to a number, you can use String to Number command.


Edit

Custom fonts and special characters #

Any characters not supported by SAMMI will be displayed as invisible characters within SAMMI.
The characters themselves are correctly saved and will be correctly displayed outside of SAMMI (such as in your Twitch Send message).


Edit

Wild Cards #

Learn more about wild cards and their usage in our Triggers-Introduction section.


Edit

Convert stacks from LioranBoard 1 #

If you’re using the same .ini files from LioranBoard 1, you will notice that your stringified stacks don’t get properly parsed when loaded back into SAMMI (they end up being objects instead of arrays).

Use this Stack to Array converter button:

Import JSON button