*see the bolded part, for how to create a list in the GUI~Editor*
*and read below the bolded part too, as noobs don't often realize or understand this aspect*
--------
you can cheat (hehe), though it's a bit more time-consuming (and it's hard remembering GUI~Editor <-> Code conversions, lol):
-------
if you can work with code, put it in as code, then switch back to the GUI~Editor, letting the game engine itself, find and create the GUI~Editor scripts for it, which then allows you to see how it's done in the GUI~Editor.
Also, you can write any code you want through the GUI~Editor 's scripts via using this script of it:
Add a~new script -> Output -> Print a message -> Print [EXPRESSION] -> (type in whatever or any script that you want and it'll work ~ it'll convert what you type in, into the correct GUI~Editor script for~of it)
this script, Add a~new script -> Output -> Print a message -> Print [EXPRESSION], can do ANY~ALL script(s) that you want! It's the "super script", so if you can't find a script in the GUI~Editor (or maybe it just doesn't have the script, lol), then just use this script to do what you want. Though using this script (as it allows for), is literally just writing in the code itself, hehe

And, *just slightly* less powerful, is this script too:
Add a~new script -> Variables -> Set a variable or an attribute
---------
two ways to view the game code:
1. open up a quest game (or library) file (name_of_file.aslx) with notepad, wordpad, or notepad++
2. within the GUI~Editor, at the top is a button that looks like a notepaper (it's between the "play" and the "?-help" buttons), this notepaper button is a toggle between the GUI~Editor mode and the Code View (in-code) mode.
--------
unless, you already have a "code logic" mentality and~or already know coding, how to do stuff with the GUI~Editor and its scripts, isn't very intuitive...
and, unfortunately, the GUI~Editor doesn't make this clear at all, but to do (create) a new list:
Add a~new script -> Output -> Print a message -> Print [EXPRESSION] -> name_of_object.name_of_list = NewStringList ()
~OR~
Add a~new script -> Variables -> Set a variable or an attribute -> name_of_object.name_of_list = NewStringList ()
~OR~
Add a~new script -> Objects -> Create an object -> Name: (whatever), Type [NAME]: stringlist (or objectlist) // err, I'm getting an error, but I think if done correctly, this will create a list, unless lists aren't considered as "Objects", and thus this way won't work obviously.
// notice how, what you type in, is the same. This is the script in code form for creating a new list
// if you want to use some other list (such as the player's inventory or a room's objects), then just change the "NewStringList" to whatever it needs to be ~ you'll have to look this up or ask us
and then, to add (or remove) items to (or from) a list:
Add a~new script -> Variables -> Add a value to a list (or remove a value from a list)--------------------
literally 95% of what you use to make your game will be:
1. Add a~new script -> Variables -> Set a variable or attribute
2. Add a~new script -> Scripts -> If... (or Switch...)
you can do almost ANYTHING~EVERYTHING with just these two scripts! seriously~literally !!!
----
also, extremely (80% of your game, lol ~ slightly less useful than the above two scripts) useful scripts:
Boolean ("flag") Attribute usage:
1. Add a~new script -> Variables -> Set a variable or attribute
3. Add a~new script -> Variables -> Set (or Unset) object flag
using~err, making, whatever lol~ (and thus calling) Functions:
4. Functions -> Add -> (make your function)
5. Add a~new script -> Scripts -> Call function -> (type in the name of the function that you want to "call"~use~activate~do)