Fix up the code, this has potential if it wasn't coded at an elementary level!
function BlockOS_Main::onWake(%this)
{
   StartTimeLoop();
}
function StartTimeLoop()
{
   if(BlockOS_Time.visible)
   {
      BlockOS_Time.setValue(getDateTime());
   }
   schedule(500,0,StartTimeLoop);
}
So everytime the blockos_main menu is 'woken up', it'll run this schedule. So if i join a server, leave the server, it's going to run it. If I do that 20 times, i'll have 20 schedules running which is bad (try doing this, and run a trace when you are at the main menu, you'll see what i mean). Also, you don't need the time function running when the blockos_main menu is not visible, c'mon folks clean up! Always fix the small things before jumping into bigger things please, thanks (these are only a few bad things out of many that needs to be revised).