Skip to main content

📦 Installation

Install the latest version via npm install:
npm install fnlb@latest
Using bun? Install the latest version via bun install:
bun install fnlb@latest

Starting a Single Bot

Get started with a single bot using your FNLB API token. Learn more:
import FNLB from 'fnlb';

const fnlb = new FNLB();

await fnlb.start({
  apiToken: 'your-api-token', //  Replace with your actual token
  categories: ['your-category-id'] // Get this from your bot’s page
});

Running Multiple Bots (Same Shard)

Run multiple bots in a single subprocess using the botsPerShard option:
import FNLB from 'fnlb';

const fnlb = new FNLB();

await fnlb.start({
  apiToken: 'your-api-token',
  categories: ['your-category-id'],
  botsPerShard: 10 // Spawns max 10 bots
});

Using Multiple Shards (Subprocesses)

Scale even more by spawning multiple shards (subprocesses) with multiple bots each:
import FNLB from 'fnlb';

const fnlb = new FNLB();

await fnlb.start({
  apiToken: 'your-api-token',
  categories: ['your-category-id'],
  numberOfShards: 2,     // 2 shards 
  botsPerShard: 10       // max 10 bots per shard
});
Total bots: numberOfShards × botsPerShard
In this example: 2 × 10 = 20 bots max

Launching Bots Across Multiple Categories

Want to run bots from different FNLB categories? Just add them to the categories array:
import FNLB from 'fnlb';

const fnlb = new FNLB();

await fnlb.start({
  apiToken: 'your-api-token',
  categories: ['category-id-1', 'category-id-2'], // Multi-category support
  numberOfShards: 2,
  botsPerShard: 10
});

Stopping All Bots

Shut everything down cleanly using the stop() method:
import FNLB from 'fnlb';

const fnlb = new FNLB();

await fnlb.start({
  apiToken: 'your-api-token',
  numberOfShards: 2,
  botsPerShard: 10
});

await fnlb.stop(); // Stops all shards and bots

Naming Your Cluster

Customize your cluster with a unique name using the clusterName option:
import FNLB from 'fnlb';

const fnlb = new FNLB({ clusterName: 'MyAwesomeCluster' });

await fnlb.start({
  apiToken: 'your-api-token'
});

Auto-Restart Every Hour (Optional)

Want to keep things fresh? Here’s how to restart your bots automatically every hour:
import FNLB from 'fnlb';

const fnlb = new FNLB();

async function startFNLB() {
  await fnlb.start({
    apiToken: 'your-api-token',
    numberOfShards: 1,
    botsPerShard: 5,
    categories: ['your-category-id']
  });
}

async function restartFNLB() {
  console.log('🔁 Restarting FNLB...');
  await fnlb.stop();
  await startFNLB();
}

await startFNLB();

// Restart every hour (3600000 ms)
setInterval(restartFNLB, 3_600_000);

🗨️ Join the Community

Need help, support, or just want to chat with other developers? Come hang out with us on Discord! 👇

Join Discord

Get help, support, or chat with other developers