block load
{
  es_keygroupcreate scrollmenu
  es_keygroupload pagetext |scrollmenu
  // Settings
  es_xsetinfo sm_forceread 1
  // Set to 0 to not enforce the reading of the welcome message
  // Set to 1 if you want to "force" joining players to read welcome menu every time
}

block unload
{
  es_keygroupdelete scrollmenu
  es_keygroupdelete pagetext
}

event player_activate
{
  es_keycreate scrollmenu event_var(userid)
  es_keysetvalue scrollmenu event_var(userid) Page 0
  es_keysetvalue scrollmenu event_var(userid) Read 0
}

event player_disconnect
{
  es_keydelete scrollmenu event_var(userid)
}

event player_team
{
  if (event_var(disconnect) = 0) do
  {
    es_xsetinfo sm_isbot 0
    es_isbot sm_isbot event_var(userid)
    if (server_var(sm_isbot) = 0) do
    {
      es_xsetinfo sm_readmenu 0
      es_keygetvalue sm_readmenu scrollmenu event_var(userid) Read
      if (server_var(sm_readmenu) = 0) do
      {
        es_keysetvalue scrollmenu event_var(userid) Page 1
        es_xdoblock scrollmenu/menu_welcome
      }
    }
  }
}

event es_client_command
{
  if (event_var(command) = menuselect) do
  {
    es_xsetinfo sm_page 0
    es_keygetvalue sm_page scrollmenu event_var(userid) Page
    if (server_var(sm_page) > 0) do
    {
      es_xdoblock scrollmenu/handle_welcome
    }
  }
}

event player_say
{
  if (event_var(text) = !welcome) do
  {
    es_keysetvalue scrollmenu event_var(userid) Page 1
    es_xdoblock scrollmenu/menu_welcome
  }
}

block menu_welcome
{
  es_xsetinfo sm_page 0
  es_xsetinfo sm_text 0
  es_xsetinfo sm_count 0
  es_xsetinfo sm_keyloop 0
  es_keygetvalue sm_page scrollmenu event_var(userid) Page
  es_keygetvalue sm_text pagetext server_var(sm_page) text
  es_foreachkey sm_keyloop in pagetext "es_xmath sm_count + 1"
  if (server_var(sm_page) > 1) do
  {
    es_format sm_text "%1\n->8. Back" server_var(sm_text)
  }
  if (server_var(sm_page) < server_var(sm_count)) do
  {
    es_format sm_text "%1\n->9. Next" server_var(sm_text)
  }
  if (server_var(sm_forceread) = 1) do
  {
    if (server_var(sm_count) = server_var(sm_page)) do
    {
      es_format sm_text "%1\n0. Exit" server_var(sm_text)
    }
  }
  else do
  {
    es_format sm_text "%1\n0. Exit" server_var(sm_text)
  }
  esnq esnq sm_text server_var(sm_text)
  es_menu 0 event_var(userid) server_var(sm_text)
}

block handle_welcome
{
  if (event_var(commandstring) > 0) do
  {
    if (event_var(commandstring) < 8) do
    {
      es_xdoblock scrollmenu/menu_welcome
    }
  }
  if (event_var(commandstring) = 8) do
  {
    es_xsetinfo sm_page 0
    es_xsetinfo sm_count 0
    es_xsetinfo sm_keyloop 0
    es_keygetvalue sm_page scrollmenu event_var(userid) Page
    es_foreachkey sm_keyloop in pagetext "es_xmath sm_count + 1"
    if (server_var(sm_page) > 1) do
    {
      es_xmath sm_page - 1
      es_keysetvalue scrollmenu event_var(userid) Page server_var(sm_page)
      es_xdoblock scrollmenu/menu_welcome
    }
    else do
    {
      es_xdoblock scrollmenu/menu_welcome
    }
  }
  if (event_var(commandstring) = 9) do
  {
    es_xsetinfo sm_page 0
    es_xsetinfo sm_count 0
    es_xsetinfo sm_keyloop 0
    es_keygetvalue sm_page scrollmenu event_var(userid) Page
    es_foreachkey sm_keyloop in pagetext "es_xmath sm_count + 1"
    if (server_var(sm_page) < server_var(sm_count)) do
    {
      es_xmath sm_page + 1
      es_keysetvalue scrollmenu event_var(userid) Page server_var(sm_page)
      es_xdoblock scrollmenu/menu_welcome
    }
    else do
    {
      es_xdoblock scrollmenu/menu_welcome
    }
  }
  if (event_var(commandstring) = 10) do
  {
    if (server_var(sm_forceread) = 1) do
    {
      es_xsetinfo sm_page 0
      es_xsetinfo sm_count 0
      es_xsetinfo sm_keyloop 0
      es_keygetvalue sm_page scrollmenu event_var(userid) Page
      es_foreachkey sm_keyloop in pagetext "es_xmath sm_count + 1"
      if (server_var(sm_count) = server_var(sm_page)) do
      {
        es_keysetvalue scrollmenu event_var(userid) Page 0
        es_keysetvalue scrollmenu event_var(userid) Read 1
      }
      else do
      {
        es_xdoblock scrollmenu/menu_welcome
      }
    }
    else do
    {
      es_keysetvalue scrollmenu event_var(userid) Page 0
      es_keysetvalue scrollmenu event_var(userid) Read 1
    }
  }
}