I'm checking on this now (give me a few minutes to edit this with a more accurate response), but I'm positive I've gotten it to work, using the same~similar script block structure as yours, and before I've gone and checked, I can see that you're using "ShowMenu", whereas I use "show menu", so this might be your problem, but I'm not sure yet. Let me now go check on my own code, to see if I have it working, without it mentioning the room description before the character creation process is finished.
Err, I also use the Game Object's "Start" script, using a "Call function" to the~my character creation script block (as the type: Function), so maybe that's why mine works, whereas your direct script block doesn't.
here's my code, which works fine (the character creation script finishes first, before the room description and etc occurs):
<game name="testing game stuff">
<start type="script">
character_creation_function
</start>
</game>
<function name="character_creation_function"><![CDATA[
msg ("What is your name?")
get input {
player.alias = result
msg ("-" + player.alias)
msg ("What is your age?")
get input {
player.age = result
msg ("-" + player.age)
if (ToInt (player.age) < 13) {
player.age = 13
}
if (ToInt (player.age) >= 13 and ToInt (player.age) < 20) {
player.age_status = "teen"
} else if (ToInt (player.age) >= 20) {
player.age_status = "adult"
}
msg ("-" + player.age_status)
show menu ("What is your gender?", split ("male;female",";"), false) {
player.gender = result
}
}
}
</function>