Data Types


Sanny Builder supports 32-bit integers and floating-point numbers.


Integers are whole numbers represented as a string of digits from 0 to 9. Negative numbers are denoted by a minus sign (-) in front of them. Examples of valid integer numbers include 0, 1, 123, -10, and -900000.

Sanny also supports hexadecimal and binary notation for integer numbers. Hexadecimal numbers are represented as a string of digits from 0 through 9 and letters from A through F, prefixed with 0x or -0x. For instance, 0xA, 0xFFFF, -0x90. Binary numbers are represented as a string of digits 0 and 1, prefixed with 0b or -0b. For example, 0b0, 0b10110, -0b10000.

For your convenience Sanny's IDE has shortcuts Ctrl+H and Ctrl+B to convert numbers between decimal and hexadecimal/binary notations.

The maximum integer number is 2147483647 (0x7FFFFFFF), and the minimum is -2147483648 (-0x80000000).


Floating-point numbers consist of the whole and fractional parts separated by a period (.). Examples include -100.0, -1.0, and -22.434.

GTA III, unlike other titles, uses 16-bit integer numbers to store decimal values. It means a precision of those values has a step value of 0.0625 units. I.e. you can use a number 0.0625, while 0.0630 will be rounded to 0.0625.

String Literals

A text enclosed between single quotes ' ' is a null-terminated string. It is limited to 15 characters.

03A4: script_name 'MAIN'

Empty strings are allowed: ''.

A text enclosed between " " is a length-prefixed string. Its maximum length cannot exceed 255 characters.

0662: write_debug_message "Hello, world!"

If the literal contains " you must write \ before it.

0662: write_debug_message "Hello, \"world\"! \n 'Here we go!'"

Empty strings are allowed: "".

Model Names

Model IDs defined in .ide files can be referenced by# followed by a valid model name.

0247: request_model #CELLPHONE

Last updated