Activity Status Generator
Create custom bot presence and activities. Generate code for Playing, Streaming, Listening, Watching, and Competing statuses.
// Discord.js Activity Status Configuration
// Set bot's presence and activity
const { ActivityType } = require('discord.js');
client.once('ready', () => {
client.user.setPresence({
status: 'online',
activities: [{
name: 'Minecraft',
type: ActivityType.Playing,
}]
});
console.log(`Status set to Playing Minecraft`);
});
💡Quick Tips
- •Set presence in the ready event to ensure it applies when bot starts
- •Streaming status only shows purple badge with valid Twitch or YouTube URL
- •You can update presence dynamically using client.user.setPresence() anytime
- •Invisible status makes your bot appear offline but it still functions normally
- •Custom statuses have limited support for bots compared to user accounts
- •Use rotating activities to show different messages (implement with setInterval)
Discord Activity Types
Understanding the different activity types for bot presence
Playing
Shows "Playing [game name]" under your bot's username. Most common activity type for gaming-related bots.
Streaming
Shows "Streaming [title]" with a purple "LIVE" badge. Requires a valid Twitch or YouTube URL.
Listening
Shows "Listening to [name]" under your bot. Perfect for music bots or audio-related features.
Watching
Shows "Watching [name]" under your bot. Use for monitoring, surveillance, or video-related bots.
Competing
Shows "Competing in [name]" under your bot. Perfect for competitive gaming or tournament bots.
Custom
Custom status message. Note: Bot support is limited compared to user accounts.
Bot Status Types
Different presence statuses and when to use them
Online
Bot is active and available. Default status for most bots.
Idle
Bot is away or in low-activity mode. Orange crescent moon indicator.
Do Not Disturb
Bot is busy or performing critical operations. Red indicator.
Invisible
Bot appears offline but still functions normally. Gray indicator.
Dynamic & Rotating Activities
Show different activities that change over time
📜 Discord.js - Rotating Activities
// Rotating activities example
const activities = [
{ name: 'Minecraft', type: ActivityType.Playing },
{ name: 'over 1,000 servers', type: ActivityType.Watching },
{ name: 'Spotify', type: ActivityType.Listening },
];
let currentActivity = 0;
client.once('ready', () => {
// Set initial activity
client.user.setPresence({
status: 'online',
activities: [activities[0]]
});
// Rotate every 30 seconds
setInterval(() => {
currentActivity = (currentActivity + 1) % activities.length;
client.user.setPresence({
status: 'online',
activities: [activities[currentActivity]]
});
}, 30000); // 30 seconds
});
This example rotates through multiple activities every 30 seconds, keeping your bot's presence dynamic and engaging.
🐍 Discord.py - Rotating Activities
# Rotating activities example
import asyncio
import discord
from discord.ext import commands, tasks
activities = [
discord.Game(name='Minecraft'),
discord.Activity(type=discord.ActivityType.watching,
name='over 1,000 servers'),
discord.Activity(type=discord.ActivityType.listening,
name='Spotify'),
]
current_activity = 0
@bot.event
async def on_ready():
change_activity.start()
@tasks.loop(seconds=30)
async def change_activity():
global current_activity
await bot.change_presence(
activity=activities[current_activity]
)
current_activity = (current_activity + 1) % len(activities)
Uses discord.py's task loop to rotate activities every 30 seconds automatically.
Best Practices
Tips for effective bot presence
1. Keep It Relevant
Match your activity to your bot's purpose. Music bots should use "Listening", game bots use "Playing", etc.
2. Show Useful Info
Display server count, version numbers, or commands to help users. Example: "Playing on 1,000+ servers | !help"
3. Don't Rotate Too Fast
If using rotating activities, change every 30-60 seconds minimum. Too fast is distracting and may trigger rate limits.
4. Set in Ready Event
Always set presence in the 'ready' event to ensure it applies when your bot starts up.
5. Streaming Requires Valid URL
The purple "LIVE" badge only appears with a valid Twitch or YouTube URL. Other URLs won't show the badge.
6. Update Dynamically
You can update presence anytime, not just on startup. Use this to show real-time stats like current song or active users.
7. Mind the Character Limit
Activity names are limited to 128 characters. Keep them concise and readable.
8. Use Invisible Wisely
Invisible status makes your bot appear offline but it still works. Useful for testing or stealth operations.