Fixed. I had false and true reversed.Code:#include "StdAfx.h" #include "Setup.h" #include <string> #include <iostream> using namespace std; static string infoHelp, join, start, end; static float sx,sy,sz,so; static uint32 smapid,sinstanceid; static bool evon; bool EventSystem(Player * pPlayer, uint32 Type, uint32 Lang, const char * Message, const char * Misc) { if(Message == join) { if(evon) { if(pPlayer->CombatStatus.IsInCombat()) pPlayer->BroadcastMessage("You cannot teleport in combat."); else pPlayer->SafeTeleport(smapid, sinstanceid, sx, sy, sz, so); } return false; } if(Message == start && pPlayer->GetSession()->CanUseCommand('a')) { if(evon) pPlayer->BroadcastMessage("There is already an event summoning wait for it to finish."); else { evon = true; char Msg[255]; sprintf(Msg, "|cff0066cc[Event System]|r |cff00ff00%s has started an event! Type #join to join!|r", pPlayer->GetName()); sWorld.SendWorldText(Msg); sx = pPlayer->GetPositionX(); sy = pPlayer->GetPositionY(); sz = pPlayer->GetPositionZ(); so = pPlayer->GetOrientation(); smapid = pPlayer->GetMapId(); sinstanceid = pPlayer->GetInstanceID(); } return false; } if(Message == end && pPlayer->GetSession()->CanUseCommand('a')) { if(evon) { evon = false; char Msg[255]; sprintf(Msg, "|cff0066cc[Event System]|r |cff00ff00%s has ended summons to the event.", pPlayer->GetName()); sWorld.SendWorldText(Msg); } else pPlayer->BroadcastMessage("There is no event summoning going on right now."); return false; } return true; } void SetupEventCmd(ScriptMgr * mgr) { join = "#join"; start = "#eventstart"; end = "#eventend"; evon = false; mgr->register_hook(SERVER_HOOK_EVENT_ON_CHAT, (bool *) EventSystem); }