Basicamente salvar uma tabela usada nos códigos lua diretamente no SQL dá ruim, o toJSON e fromJSON servem para fazer essa conversão.
Aqui o exemplo de um sistema de inventário, onde quando o player sai do servidor, o inventário dele (que é uma tabela) é convertido usando o toJSON e depois hospedado no SQLite:
function onQuit()
local id_ = getElementData(source, "ID")
local inv_ = toJSON(inventario[source])
executeSQLQuery("UPDATE inventario_players SET inv=? WHERE id=?", inv_, id_)
end
addEventHandler("onPlayerQuit", root, onQuit)
E agora para pegar a tabela no SQLite quando o player logar no servidor, convertê-la e setar como o inventário do jogador:
function onLogin()
local id_ = getElementData(source, "ID")
local data = executeSQLQuery("SELECT inv FROM inventario_players WHERE id=?", id_)
inventario[source] = {}
inventario[source] = fromJSON(data[1]["inv"])
end
addEventHandler("onPlayerLogin", root, onLogin)