Strings either need to have a $ at the end *or* you pre-declare as string. IE:
either:
fooString$ = "bar" // legit, declares a string variable and assigns value
or:
fooString as string
fooString = "bar" // legit, first declaring the variable, then assigning value
not:
fooString = "bar" // cause an error as AGK2 thinks variables that are not pre-declared and do not have an # (float) or $ (string) at the end, is an integer.
---
Whilst AGK2 do not have many types, it do enforce strong typing on the ones it do. So if you come from dynamically typed languages (python, JS etc) you need get used to type-conversion. On the bright side, strongly typed languages are proven to be more productive - which sounds counter-intuitive at first.