Para darle color a las partículas no puedo usar hexadecimales ni rgb, por lo que estoy obligado a usar números que no entiendo que lógica siguen, ya que encuentro algunos de 3 dígitos como otros de 9 dígitos.

¿Alguien me explica esto?

Usa el sistema BGR (Blue Green Red) y ocupa 3 bytes por color. Sí, utiliza binarios.
Por ejemplo, el rojo, su valor es 255, que en binario es:

00000000 00000000 11111111
     B             G           R

Como ves, el 255 hace que sólo haya color rojo en la mezcla.

Ahora, por ejemplo el amarillo, es 65535 (256^2 - 1), que en binario es:

00000000 11111111 11111111
      B            G            R

Es una mezcla entre rojo y verde.

Y el blanco, es 16777215 (256^3 - 1), que en binario es:

11111111 11111111 11111111
      B            G           R

Una mezcla de los tres.
alaberga regué el café.

BA:STFW&RTFM

En el manual, el valor de los colores está en decimal, en lugar de hexadecimal.

Cabe mencionar que en GMS sí se pueden escribir números hexadecimales, solo tienes que poner el símbolo $, ejemplo a = $A0F478;

Otra forma de crear colores personalizados es usar las funciones make_colour_rgb, make_colour_hsv, merge_colour.