o índice da tabela é nil
Um script tentou arquivar algo sob um nome vazio, normalmente um id de jogador que ainda não estava pronto.
Faça isto primeiro
Costuma acontecer enquanto alguém ainda está conectando. Veja se dispara ao entrar.
O que significa
Alguma coisa foi GUARDADA numa tabela sob uma chave nil: t[k] = v onde k é nil. Ler com uma chave nil é legal e devolve nil; escrever com uma é um erro.
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
Uma chave que veio de uma busca que falhou
cache[GetPlayerIdentifier(src)] = dataonde o identificador é nil porque o jogador ainda não está totalmente conectado. - 2
Uma variável de laço usada além do fim
Guardar sob
items[i]quando oisaiu da lista. - 3
Um campo que não existe no objeto
byJob[player.job.name] = xonde o emprego não tem nome. - 4
Uma chave numérica que virou NaN
Dividir por zero ou um
tonumber()sobre algo que não dá para analisar, e depois usar como índice. Isso dá «table index is NaN».
Como saber qual é o seu
Imprima a chave, não a tabela:
print('chave =', tostring(aChave))A linha é curta e a chave costuma ser uma única expressão, então isso identifica na hora.
Onde olhar
A atribuição da linha que ele nomeia, especificamente o que está dentro dos colchetes.
Como consertar
Proteja a chave no ponto em que ela é produzida:
local id = GetPlayerIdentifier(src, 0) if not id then return end cache[id] = data
Ainda travado no seu próprio código?
Esta página é o que esse erro costuma significar. Cole o seu console no Server Fixer e ele vai ordenar tudo o que estiver lá e te dizer o que fazer primeiro; e se você preferir não mexer, o ORBIE consegue consertar o script e te devolver o resource pronto para soltar.
bug_reportAbrir o Server FixerPara esse tipo de erro, o Script Optimizer lê o script e conserta o código por trás disso.