What is Squirrel

Squirrel is a programming language used in titanfall 2 and northstar mods, it is worth noting that the version of squirrel used by titanfall appears to be a modified version of the langauge

File format

All files using squirrel are saved as .nut or .gnut

when creating mods your mod will typically be a series of functions and callbacks

Squirrel as a typed language

All variables and functions in squirrel must have a type defined on declaration

function dosomething()

is not acceptable and should instead be

void function dosomething()

Similarly when declaring a variable

funnynumber = 69

will not work, instead use:

int funnynumber = 69

Variable types

void: can be used to define functions that do not return a value, but still do things. most of your functions will be void

interger: a whole number

float: a none-whole number.

string: text

entity: an entity and all its associated information

bool: true or false (Squirrel does not treat 1 as true or 0 as false)

array: an ordered list of items indexed from 0, increasing with the number of items such as: 0:"hello",1:1000,2:entity player ...

table: a list of items with indexes defined on object entry such as: "word":"hello", "kilo":1000", "pilot":entity player ...

struct: a series of attributes assigned to a structure and accessed through with structname.variablename

var: Var typically refers to variables that lack any stated type, this will cause issues with many functions unless you use the untyped identifier at the start of your file, or if you use expect type(variable) when passing the variable to that function