I’m assuming you were wondering why it didn’t work? I recommend not using scenes for this. I switched it to a boolean/truth state variable.
Using say as a line break only works in very specific circumstances. I would use [line break] instead, but I didn’t want to change all of that while editing.
I moved the title printing to the look action/room description instead of when play begins. You do need to update your instructions, since “press enter” won’t work.
Your if statements need to have two complete clauses. Inform 7 does not understand English, no matter how much it pretends to. It has to be if the player's command matches "2" or the player's command matches "how to play".
Inform 7 uses whitespace as part of its syntax, so everything in one rule cannot be separated with empty lines. You can, however, indent to x functions (like my to start the game at the bottom), which is what I usually do to organize my rules.
I did comment out reject the player's command because often it’s nice to be able to start transcripts, etc. at the very beginning of the game (or, in my case, tracing rules to see what went wrong). You can keep the error message in, but you may want to reword it.
For the record, ASCII art is difficult because there’s no way to tell how large the interpreter window will be. Check out threads like this one for more details. I did update the title text to use [fixed letter spacing] if you do want the option of ASCII.
Hope this helped. Let me know if you have questions or need clarification on anything I did.
Code
"test" by Hidnook
The story description is "various test environments for various problems.".
The Starting Room is a room. "You see simple furnishings and a closed paper sliding door.".
To print the menu:
say fixed letter spacing;
say "╔════════════════════════════════════════════════════════╗";
say "║ ║";
say "║ TITLE — D E M O ║";
say "║ ║";
say "╚════════════════════════════════════════════════════════╝";
say paragraph break;
say variable letter spacing;
say "1) Start new game";
say "2) How to play";
say "3) Credits";
say "4) Quit";
say "";
say "Choose an option by typing the number or the word (for example: '1' or 'start').".
When play begins:
now title screen is true.
Instead of looking when title screen is true: print the menu.
title screen is a truth state variable. title screen is usually false.
After reading a command when title screen is true:
if the player's command matches "1" or the player's command matches "start":
say "Starting new game...";
start the game;
stop;
if the player's command matches "2" or the player's command matches "how to play":
say "Instructions:";
say "Use standard commands like LOOK or GO NORTH.";
say "Press ENTER to return to the menu.";
stop;
if the player's command matches "3" or the player's command matches "credits":
say "Credits:";
say "Demo by Your Name.";
say "Thanks for trying the demo.";
stop;
if the player's command matches "4" or the player's command matches "quit":
say "Goodbye.";
reject the player's command;
end the story finally;
say "I didn't understand that. Please choose 1-4 or the words start, how to play, credits, or quit.";
[reject the player's command.]
to start the game:
now title screen is false;
move the player to the Starting Room;
say "The adventure begins. You find yourself in a small, dimly lit chamber.";