As provocating stated, you had an extra bracket. You also have a bareword in quest::zone().
Code:
sub EVENT_SAY {
if($text=~/hail/i) {
plugin::Whisper("Hello, would you like to visit the " . quest::saylink("Bazaar", 1) . "?");
} elsif($text=~/Bazaar/i) {
plugin::Whisper("Very well.");
quest::zone("bazaar");
}
}
sub EVENT_SPAWN {
plugin::SetMobColor(quest::ChooseRandom(0..255), quest::ChooseRandom(0..255), quest::ChooseRandom(0..255));
}