Seguinte cara, existem 8 valores em lua: function, thread, number, string, table, userdata, nil e boolean.
De acordo com o manual de lua oficial, http://www.lua.org/m.../pt/manual.html, (... O comando return é usado para retornar valores de uma função ou de um trecho (que nada mais é do que uma função). Funções e trechos podem retornar mais de um valor ...).
Vale lembrar que sempre que quando o comando return é usado, a função ou trecho é imediatamente parada de execução.
Vou dar um exemplo:
function teste()
return "isto é uma string"
end
print(teste())
ele vai imprimir:
>> isto é uma string
Quando o comando return está ausente, a função simplesmente retorna o valor nil.
Quando usam return 1 ou return 0 nas funções main do otserv, seria equivalente a usar return true e return false.