#strict 3 global func GetContents(bool recursive, object obj) { obj ??= this; var ret = []; for(var i = 0; i < obj->ContentsCount(); ++i) { ret[] = obj->Contents(i); if(recursive) { ArrayAppendArray(ret, obj->Contents(i)->GetContents(true)); } } return ret; }