-
Notifications
You must be signed in to change notification settings - Fork 0
Home
When an execution error happens, a StarscriptException exception is thrown.
Every expression needs to be surrounded by {}
. Expression blocks can be nested where other expressions are required.
Variables can be simply accessed by their name anywhere in an expression. They can be different every time they are used. You cannot assign new values to variables. When the script tries to access a variable that doesn't exist, it will return null
.
There are 6 value types:
Null represents nothing and is not used by default anywhere.
Can only be true
or false
.
In C#, Starscript numbers are defined as double. When a number with no decimal places is printed it doesn't append .0
after it.
String is just a bunch of text surrounded by '
or "
.
Functions can only be defined in Java and can take any number of arguments. Functions are called like this: foo()
, bar(5, true)
.
Maps can only be defined in C# and act as a collection of other values. Values inside a map are accessed using .
, for example: player.name
.
When converting map to a string Starscript looks for a field named _toString
and evaluates it if it is present.
There are 5 operators:
- Addition
+
: Will add 2 numbers or 1 string and another value of any type automatically converted to a string. - Subtraction
-
: Will subtract 2 numbers. - Multiplication
*
: Will multiply 2 numbers. - Division
/
: Will divide 2 numbers. - Remainder
%
: Will calculate a remainder after a division of 2 numbers. - Exponentiation
^
: Will raise the first number to the power of the second number. - And
and
: Will result in true if both values are truthy. - Or
or
: Will result in true if one of the values is truthy.
Operators follow standard precedence and can be grouped inside parentheses ()
.
A value can be generated conditionally as <condition> ? <expression when condition is true> : <expression when condition is false>
. Example: happy ? 'happy' : 'sad'
.
There are 6 operators:
- Equals
==
: Will check if two values are equal. - Not equals
!=
: Will check if two values are not equal. - Greater
>
: Will check if the first number is greater than the second. - Greater equal
>=
: Will check if the first number is greater or equal to the second. - Less
<
: Will check if the first number is less than the second. - Less equal
<=
: Will check if the first number is less or equal to the second.