A simple, function-based wrapper for creating Fluxer/Discord bots without coding. Just use functions!
- π No coding required - Use simple functions like
$title[],$description[],$randomText[] - π¦ Easy setup - One command installation
- π§ Bun-powered - Fast and modern runtime
- π¨ Embed support - Create beautiful embeds easily
- π Hot reload - Development mode with auto-reload
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/aencyorganization/adff/main/scripts/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/aencyorganization/adff/main/scripts/install.ps1 | iex- Edit
index.jsand add your bot token:
const TOKEN = 'YOUR_BOT_TOKEN_HERE';
const PREFIX = '!';- Run your bot:
bun run index.jsCommands are stored in the commands/ folder as .js files.
$name[commandname]
$aliases[alias1;alias2]
Your message here!Create commands/ping.js:
$name[ping]
$aliases[p;pong]
π Pong! The bot is working!Create commands/embed.js:
$name[embed]
$title[My Embed Title]
$description[This is the embed description!]
$color[#5865F2]Create commands/random.js:
$name[random]
$randomText[Option 1;Option 2;Option 3]Required - Defines the command name.
$name[ping]Optional - Defines command aliases.
$aliases[p;pong;pingpong]Returns a random text from the arguments.
$randomText[Heads;Tails]
$randomText[Red;Green;Blue;Yellow]Sets the embed title. Creates an embed automatically.
$title[Welcome to my server!]Sets the embed description.
$description[This is a detailed description of something cool!]Sets the embed color. If multiple colors are provided, picks one randomly.
$color[#FF0000]
$color[#FF0000;#00FF00;#0000FF]Sets the embed footer. Requires $title or $description to be set first.
- Argument 1 (required): Footer text
- Argument 2 (optional): Icon URL for the footer
$footer[Jully Services]
$footer[Powered by ADFF;https://example.com/icon.png]Functions can be nested! The inner function executes first.
$title[$randomText[Red Title;Blue Title;Green Title]]
$color[#FF0000;#00FF00;#0000FF]Use // to add comments (ignored by the parser):
// This is a comment
$name[test]
// Another comment
This is the actual message!my-bot/
βββ index.js # Main configuration file
βββ vars.js # Variables (reserved for future)
βββ package.json # Project dependencies
βββ commands/ # Your commands folder
βββ ping.js
βββ embed.js
βββ random.js
import { createADFFClient, registerFunction } from 'adff';
// Create custom function
registerFunction('myFunction', async (args, context, state) => {
return `Hello, ${context.authorUsername}!`;
});
// Create client
const bot = createADFFClient({
token: 'YOUR_TOKEN',
prefix: '!',
commandsPath: './commands/',
debug: true
});
// Start bot
bot.start();
// Reload commands
bot.reloadCommands();
// Get loaded commands
const commands = bot.getCommands();import { registerFunction } from 'adff';
registerFunction('uppercase', async (args, context, state) => {
return args[0]?.toUpperCase() || '';
});
// Usage in command:
// $uppercase[hello world] -> HELLO WORLDMIT