Just playing around, this seems to function just fine.
Type TSingleton Global singleton:TSingleton Field value:Int Function Create:TSingleton() If singleton = Null Then singleton = New TSingleton Return singleton End Function End Type Local a:TSingleton = TSingleton.Create() a.value = 100 Local b:TSingleton = TSingleton.Create() Print b.value