For the complete documentation index, see llms.txt. This page is also available as Markdown.

Operators

Operators

Operators in TorqueScript behave very similarly to operators in real world math and other programming languages. You should recognize quite a few of these from math classes you took in school, but with small syntactical changes. The rest of this section will explain the syntax and show a brief example, but we will cover these in depth in later guides.

Arithmetic Operators

These are your basic math ops.

Operator
Name
Example
Explanation

*

multiplication

$a * $b

Multiply $a and $b.

/

division

$a / $b

Divide $a by $b.

%

modulo

$a % $b

Remainder of $a divided by $b.

+

addition

$a + $b

Add $a and $b.

-

subtraction

$a - $b

Subtract $b from $a.

++

auto-increment

(post-fix only)

$a++

Increment $a.

--

auto-decrement

(post-fix only)

$b--

Decrement $b.

Quote

++$a is illegal. The value of $a++ is that of the incremented variable: auto-increment is post-fix in syntax, but pre-increment in sematics (the variable is incremented, before the return value is calculated). This behavior is unlike that of C and C++.

Quote

--$b is illegal. The value of $a-- is that of the decremented variable: auto-decrement is post-fix in syntax, but pre-decrement in sematics (the variable is decremented, before the return value is calculated). This behavior is unlike that of C and C++.

Relational Operators

Used in comparing values and variables against each other.

Operator
Name
Example
Explanation

<

Less than

$a < $b

1 if $a is less than $b

>

More than

$a > $b

1 if $a is greater than $b

<=

Less than or Equal to

$a <= $b

1 if $a is less than or equal to $b

>=

More than or Equal to

$a >= $b

1 if $a is greater than or equal to $b

==

Equal to

$a == $b

1 if $a is equal to $b

!=

Not equal to

$a != $b

1 if $a is not equal to $b

!

Logical NOT

!$a

1 if $a is 0

&&

Logical AND

$a && $b

1 if $a and $b are both non-zero

||

Logical OR

$a || $b

1 if either $a or $b is non-zero

$=

String equal to

$c $= $d

1 if $c equal to $d.

!$=

String not equal to

$c !$= $d

1 if $c not equal to $d.

Bitwise Operators

Used for comparing and shifting bits.

Operator
Name
Example
Explanation

~

Bitwise complement

~$a

flip bits 1 to 0 and 0 to 1

&

Bitwise AND

$a & $b

composite of elements where bits in same position are 1

|

Bitwise OR

$a | $b

composite of elements where bits 1 in either of the two elements

^

Bitwise XOR

$a ^ $b

composite of elements where bits in same position are opposite

<<

Left Shift

$a << 3

element shifted left by 3 and padded with zeros

>>

Right Shift

$a >> 3

element shifted right by 3 and padded with zeros

Assignment Operators

Used for setting the value of variables.

Operator
Name
Example
Explanation

=

Assignment

$a = $b;

Assign value of $b to $a

op=

Assignment Operators

$a op= $b;

Equivalent to $a = $a op $b, where op can be any of: * / % + - & | ^ << >>

Quote

The value of an assignment is the value being assigned, so $a = $b = $c is legal.

String Operators

There are special values you can use to concatenate strings and variables. Concatenation refers to the joining of multiple values into a single variable. The following is the basic syntax:

You can use string operators similarly to how you use mathematical operators (=, +, -, *). You have four operators at your disposal:

Operator
Name
Example
Explanation

@

String concatenation

$c @ $d

Concatenates strings $c and $d into a single string. Numeric literals/variables convert to strings.

NL

New Line

$c NL $d

Concatenates strings $c and $d into a single string separated by new-line. Such a string can be decomposed with getRecord()

TAB

Tab

$c TAB $d

Concatenates strings $c and $d into a single string separated by tab. Such a string can be decomposed with getField()

SPC

Space

$c SPC $d

Concatenates strings $c and $d into a single string separated by space. Such a string can be decomposed with getWord()

Miscellaneous Operators

General programming operators.

Operator
Name
Example
Explanation

? :

Conditional

x ? y : z

Evaluates to y if x equal to 1, else evaluates to z

[]

Array element

$a[5]

Synonymous with $a5

( )

Delimiting, Grouping

t2dGetMin(%a, %b)

if ( $a == $b )

($a+$b)*($c-$d)

Argument list for function call

Used with if, for, while, switch keywords

Control associativity in expressions

{}

Compound statement

if (1) {$a = 1; $b = 2;}

function foo() {$a = 1;}

Delimit multiple statements, optional for if, else, for, while

Required for switch, datablock, new, function

,

Listing

t2dGetMin(%a, %b)

%M[1,2]

Delimiter for arguments

::

Namespace

Item::onCollision()

This definition of the onCollision() function is in the Item namespace

.

Field/Method selection

%obj.field

%obj.method()

Select a console method or field

//

Single-line comment

// This is a comment

Used to comment out a single line of code

/* */

Multi-line comment

/*This is a a

multi-line

comment*/

Used to comment out multiple consecutive lines

/* opens the comment, and */ closes it

Quote

There is no “comma operator”, as defined in C/C++; $a = 1, $b = 2; is a parse error.

Last updated