πŸ“¦ 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