[IDLE] CompilationErrorException: (19,29): error CS1525: Invalid expression term '<'

I used data and build a perfect working config in OB1.

But when I use the same data to build the config in OB2 I keep getting a bunch of errors.

Url Encode:
Output variable (String): US
Settings: Input: <input.USER> (I also tried <input.USERNAME>)

So therefore my post data would be (This is not the actual post data but an example)

username=<US password=

I tried Default, Credentials & Emails as wordlist type but still get these errors.

What does these errors mean:

[IDLE] CompilationErrorException: (19,29): error CS1525: Invalid expression term ‘<’

[IDLE] (19,1530): error CS0103: The name ‘application’ does not exist in the current context

Hi,

Open your OpenBullet2\UserData\Environment.ini

Check your slice string on wordlist match with what you need

Check this example:

Probably, in further you maybe want call a output result from a block in url, so remind to use do not use data. or input

If you like openbullet please learn and help other peoples.

You need read carefully:

If you don’t understand yet, take your time and keep trying to solve your problem by different ways

Variables in OB2 work in a much different way than in OB1. To understand the reason behind this change, you should know that configs get transpiled down to C# and then compiled for speed before being executed. OB1 system was interpreted from LoliScript at runtime, so it was much slower. C# is a strongly typed language and hence variables are associated with a type, for example int for integers and string for strings. In OB1 everything was a string (or list of strings, or dictionaries of strings) but in OB2 there are additional types.

The type of an OB2 variable can be: Bool, ByteArray, Dictionary of Strings, Float, Int, List of Strings, String and Enum. Variables are created mainly through the Output variable field of blocks, which is present in a good amount of blocks. This field will let you know the type of the variable that will be created. This field usually comes with an additional option called Is capture, which lets the bot know that a specific variable needs to be saved and written to the Captured Data if you get a hit.

Input parameters of blocks also have a specific type, as in OB1. You are able to choose from up to 3 different modes for inputting data into those parameters, depending on their type. The fixed mode allows you to specify a fixed value which is always the same for each execution, for example 42 or hello . The variable mode allows you to use a previously created variable as an input value for that parameter. If the original value is of a different type with respect to the parameter type, it will be automatically converted for you (for example if you have an integer and you try to pass it to a string parameter, it will automatically be read as a string).

Finally, the interpolated mode is very close to how it worked in OB1, where you can use the syntax here is my <variable> , where variable is the name of the variable that you want to insert inside the string. This mode is only available for String, List of String and Dictionary of String parameters.

2 Likes

Thank you for your advice and detailed response.

1 Like