@OurJud:
the 'code:wait === (GUI~Editor:key press)' Script won't work for this issue. Good guess though, you're thinking on the rihgt track, but it's not quite how the 'wait' script works.
------------
the 'start' (and other scripts) are a bit 'buggy' (probably not really buggy, just that I and you, don't understand the 'order of operations' of scripts as well as we need to, obviously, as I too have this issue sometimes too).
you need to understand this with scripts (and this is the limit of my own knowledge of 'order of operations' with scripting, grr):
1
|.\
|..2A
|
2B
2A and 2B will run at the same time, as you see that 1 has dual paths, one path to 2A and the other to 2B
possible fixes:
1A. your 'if~else if~else' scripts aren't done right (in the example above: 2A), causing them to not activate, and thus you go to the below script (in the example above: 2B).
1B. you haven't 'nested' (indented, or in the GUI~Editor, you clicked on the wrong 'add a script' circle buttons) properly.
2. you can try the 'on ready' command~script~function~whatever it is~is called (
http://docs.textadventures.co.uk/quest/ ... ready.html ), ask if you can't figure out how to set it up properly, use it, and~or don't understand how it works or what it does. But, I think this will only wait upon (in the example above), 1 to finish, which doesn't help you at all, as it's not what you want, which is, not having 2B running until 2A is done.
3. try to craft~design your scripting so that it is all within a single indented script block~chain:
(start)
Z
-> Y
->-> X
->->-> W
->->->-> V
...........(finish)
4. other ways to manipulate it, using different scripting methods: 'start' script + a Timer (
http://docs.textadventures.co.uk/quest/ ... timer.html ) ~ Turnscript (
http://docs.textadventures.co.uk/quest/ ... cript.html )
5. other ways to manipulate it, using a cunning coding trick, of flags (such as a Boolean or Integer), for example (using a Boolean):
handled_1_flag = false
1
-> 2A {
->-> handled_1_flag = true
-> }
3: if (handled_1_flag = true) {
-> 2B
} else if (handled_1_flag = false) {
// loop (run this Function again)
}
the problem with this (the above), is that it might be in an endless loop forever, as we still haven't created a way for it to do 2A before 3.
6. possibly changing the order of scripts settings in the 'game' (the special game object), so that the 'room description' script is last...
7. or if really desperate... we can turn off the automatic 'room description' and call upon it ourself, so that we make sure that the 'start' (or other) Scripts can finish first in their entirety, before we run (call upon) the 'room description' script.
--------
I'd need to see your entire game code, to see if you made mistakes, or if we got to come up with a creative way to get it to work.