Buttons

STonitor has a button configuration YAML file. This can be used to create aliases/nicknames for button names or button IDs in Jailbreak logs, it can also be used to specify that you wish for that button to be ignored in JB log parsing (for things like button griefs), this is mostly used for safe buttons to lower the amount of false positives (like cells opening or buttons similar to that). You can find the file in data/buttons.yaml in STonitor’s directory. There are already some default values filled in.

The file itself is split into two large categories: normal and regex. Normal allows you to specify individual button names or IDs to configure them, and is pretty simple to use. Regex allows you to use RegEx(p) to specify groups of button names, Regex is fairly advanced and it’s not recommended you use it unless you know what you’re doing.

Each configuration regardless of if it’s normal mode or regex mode has two parameters (ignore and alias). A simple example using normal button names is the following:

celldoors:
  ignore: true
  alias: Cell Button

The ignore value in each configuration can be either true or false. true means that that button will be ignored in detection operations (such as button grief detection). false means that it will still be detected (this is the default value).

The alias value is to specify an alias for that specific button. In the example above, celldoors will be replaced with Cell Button when it’s shown in STonitor’s output. null means the name will be unchanged (this is the default value)

If you’re inexperienced with YAML, it’s recommend you add single quotes to the start and end of each value, to avoid you accidentally using formatting characters (ignore and alias are fine, no need to add quotes around them). true, false, and null should not be surrounded with quotes either as they are not literals (unless you want the name of a button to be null for some reason, then surround it with quotes in that case). The above example would become:

'celldoors':
  ignore: true
  alias: 'Cell Button'

Both ignore and alias must be present even if they’re not being used. If you do not fill in one of the required arguments, it will be created with default values. For ignore, the default is false, for alias, the default is null.

Normal

Normal mode is easy, specify the button name that shows in logs (as shown above, celldoors is the button name in that example). If you want to use a Button ID, use the format '#id here', for example: '#12345'. Note that using single quotes IS A MUST in this case, as # is a formatting character in YAML. Here are examples for both methods (ignore and alias are random values in both examples):

Button Name

'celldoors':
  ignore: true
  alias: 'Cell Button'

Button ID

'#123456':
  ignore: false
  alias: 'Some random button'

Regex

Warning

Do not use Regex unless you know exactly what you’re doing

STonitor uses re.fullmatch with the Regex and button name (you can’t use Regex for Button IDs), this means that the Regex must fully match the button name, not just contain a match to the Regex. If you want it to just need to contain the Regex, add .* to the start and end of the regex. It’s recommended to use Regex101 to build your Regex and test if it works properly (make sure to set the flavor to Python).

To use Regex, simply put the regex where Button Name and Button ID would be in normal mode. For example:

'piano_key_\ws?':
  ignore: true
  alias: Piano Key

Note: Precedence

Normal takes precedence over Regex, which means that if something is both a match for a normal config and a regex config, the normal config is the one that will be used.

Both normal and regex are processed in order, which means that if something matches both the first and last value, the config of the first value is the one that will be used.