Ok, do it in two phases. First, add this code in Code View:
game.compassdirections = NewStringList()
list add (game.compassdirections, "[CompassNW]")
list add (game.compassdirections, "fore")
list add (game.compassdirections, "[CompassNE]")
list add (game.compassdirections, "port")
list add (game.compassdirections, "starboard")
list add (game.compassdirections, "[CompassSW]")
list add (game.compassdirections, "aft")
list add (game.compassdirections, "[CompassSE]")
list add (game.compassdirections, "[CompassUp]")
list add (game.compassdirections, "[CompassDown]")
list add (game.compassdirections, "[CompassIn]")
list add (game.compassdirections, "[CompassOut]")
request (SetCompassDirections, Join(game.compassdirections, ";"))
foreach (exit, AllExits()) {
if (DoesInherit(exit, "northdirection")) {
exit.alias = "fore"
exit.alt = NewStringList()
list add (exit.alt, "f")
}
else if (DoesInherit(exit, "southdirection")) {
exit.alias = "aft"
exit.alt = NewStringList()
list add (exit.alt, "a")
}
else if (DoesInherit(exit, "westdirection")) {
exit.alias = "port"
exit.alt = NewStringList()
list add (exit.alt, "p")
}
else if (DoesInherit(exit, "eastdirection")) {
exit.alias = "starboard"
exit.alt = NewStringList()
list add (exit.alt, "s")
}
}
go.pattern = ""
Then when it settles, go to the very bottom outside of Code View. It will have:
Set variable [go.pattern] = [expression]
[""]
Change the bottom "" to:
"^go to (?<exit>.*)$|^go (?<exit>.*)$|^(?<exit>fore|starboard|aft|port|northeast|northwest|southeast|southwest|in|out|up|down|f|s|a|p|ne|nw|se|sw|o|u|d)$"
That should do it!