🔍 /
🧭 Guia

🗄️ Banco de dados

Guarde dados que sobrevivem entre execuções, por chave global, por usuário ou por servidor.

Diferente de uma variável let, o objeto db persiste os dados — eles continuam lá na próxima vez que o script rodar.

on command("visitas", message, args)
  let atual = db.user(message.author).add("visitas", 1)
  message.reply("Você já usou esse comando " .. atual .. " vezes.")
end

Há três escopos:

  • db — chave-valor global, compartilhada entre todos os scripts do servidor.
  • db.user(user) — dados por usuário, com .add()/.sub() prontos para contadores.
  • db.guild() — dados do servidor inteiro.
-- Configuração salva no servidor inteiro
db.guild().set("canal_boas_vindas", message.channel.id)

-- Lida em outro script, outro dia
let canalId = db.guild().get("canal_boas_vindas")
💡 Dica: Use json.encode()/json.decode() (veja json) para guardar objetos mais complexos em uma única chave.

Crie a variável pelo site antes de usar — tecnicamente db.set()/db.user().set() já gravam o valor mesmo numa chave nova, sem nenhum cadastro prévio. Mas essa chave fica "solta": só aparece se alguém souber o nome exato dela. O jeito certo é cadastrar a variável uma única vez no site, em Painel do servidor → Logic Engine → Variáveis (/dashboard//variables), definindo nome, tipo (texto, numero, boolean, lista ou objeto), escopo (global ou user), valor inicial e uma descrição.

  • Depois de criada no site, a mesma variável fica disponível pro Logic Script (db.get("nome")/db.user(u).get("nome")), pro Logic Nodes e pro Logic Builder — sem recadastrar em cada sistema.
  • O Menu de Variáveis também guarda um histórico de alterações manuais e permite buscar/filtrar por valor (ex.: todo usuário com saldo >= 500) direto no painel, sem precisar escrever um script só pra consultar.
  • Nomes de variável são únicos por servidor (não dá pra ter saldo como Global e saldo como Usuário ao mesmo tempo) e não podem usar nomes reservados da linguagem (user, message, channel, args, etc.).
⚠️ Atenção: Se você só usar db.set()/db.user().set() direto no script sem cadastrar a variável no site, ela funciona normalmente — mas não aparece no Menu de Variáveis, no seletor de variáveis do Logic Nodes/Builder, nem no histórico de alterações. Prefira sempre criar pelo site primeiro.

Páginas relacionadas