On this page
JavaScript API

db — Storage API

Persistent key-value storage for BDJS scripts — global, user, guild, channel, message, and guildMember scopes.

The db global provides async persistent storage for JavaScript command scripts. It mirrors BDFD variable functions ($getUserVar, $setVar, etc.) with a Promise-based API.

Namespaces

Namespace Scope BDFD equivalent
db.global Bot-wide keys $getVar / $setVar (global)
db.user Per Discord user $getUserVar / $setUserVar
db.guild Per guild (server) $getGuildVar / $setGuildVar
db.channel Per channel $getChannelVar / $setChannelVar
db.message Per message $getMessageVar / $setMessageVar
db.guildMember Per user in a guild $getMemberVar / $setMemberVar

Common methods (scoped namespaces)

Method Description
get(key, id?) Read a value
set(key, value, id?) Write a value
delete(key, id?) Remove a key
list(key, order?, limit?, offset?, filter?) Leaderboard-style list
find(filter?) Search entries
reset(key) Reset a key to default

db.global only exposes get, set, and delete.

Examples

// User coins (current user from context)
const coins = await db.user.get('coins');
await db.user.set('coins', (Number(coins) || 0) + 5);

// Global counter
await db.global.set('counter', 1);
const count = await db.global.get('counter');

// Leaderboard top 10
const top = await db.user.list('coins', 'desc', 10, 0);

Detail pages