Nice job on your first contribution.
As always, there is room for improvement.
Initevents is not longer needed.
The "flow" is a bit erratic. Please take a look at the tutorials, especially script flow to see what I mean.
You really shouldn't be using gosubs to move around in a script the way you are, and when you DO gosub into a sub you should ALWAYS use return to get back to the point in the script where you "came from".
Here's an example:
1 - repeat
2 - gosub do_this
3 - gosub do_that
4 - until #false
6 - sub do_this
7 - stuff
8 - return
10 - sub do_that
11 - more stuff
12 - and more stuff
13 - return
Line 1 and 4 are a pair,
repeat will continue to do everything between it and the next
until, and then check the
until statement to see if it's #TRUE. If it IS true then the condition is met and the script will continue past it. In our case, by setting the
until to #FALSE we ensure it will NEVER be true. Thus making it a good main loop that will loop forever.
Line 2 and 3 are the
gosubs. They will direct the script to immediately find a matching
sub and execute whats inside.
Lines 6-8 are the first
sub. Line 2 will execute and the script will skip down to line 6 and perform anything after the
sub until it hits a
return, in our case the
return is line 8.
At this point you can start to see script flow. Using the numbers (which you would NOT use in a script, just for this posts purposes) the flow of this script is:
1-2-
6-7-8-3-
10-11-12-13-4
That pattern would continuously repeat itself.
Once you get that down, then you can use some condition stuff to determine if you even need to go to the
sub routine.
Like if you need to cure a poison:
if C in #charStatus ; means you are poisoned
gosub CURE
So if there is NO C in your #charStatus (not poisoned) it will NOT execute the next line.
Take a minute or 20 to read through the tutorials. I think you'll pick right up on improvements you could make to your MultiFlute right away! I even have some ideas about combining your sub routines

see anytime you use code in a script that is *really* similar, there is usually a way to reuse the same sub routine.