🟢

Activity Status Generator

Create custom bot presence and activities. Generate code for Playing, Streaming, Listening, Watching, and Competing statuses.

🤖
Your BotAPP
Playing Minecraft
// 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.

Example: "Playing Minecraft"
Use for games or game-related activities
Can include version numbers or server counts
📹

Streaming

Shows "Streaming [title]" with a purple "LIVE" badge. Requires a valid Twitch or YouTube URL.

Example: "Streaming Epic Gameplay"
Purple badge only shows with valid URL
Great for streaming bots or promotional use
🎵

Listening

Shows "Listening to [name]" under your bot. Perfect for music bots or audio-related features.

Example: "Listening to Spotify"
Ideal for music bots
Can show song names or current track
📺

Watching

Shows "Watching [name]" under your bot. Use for monitoring, surveillance, or video-related bots.

Example: "Watching over 1,000 servers"
Good for moderation bots
Can show server count or user count
🏆

Competing

Shows "Competing in [name]" under your bot. Perfect for competitive gaming or tournament bots.

Example: "Competing in Arena Tournament"
Use for esports or tournament bots
Added in Discord.js v13+

Custom

Custom status message. Note: Bot support is limited compared to user accounts.

Example: "Working on updates"
Limited bot support
Consider using other types instead

Bot Status Types

Different presence statuses and when to use them

Online

Bot is active and available. Default status for most bots.

Use when bot is fully operational

Idle

Bot is away or in low-activity mode. Orange crescent moon indicator.

Use for maintenance or reduced functionality

Do Not Disturb

Bot is busy or performing critical operations. Red indicator.

Use during updates or heavy processing

Invisible

Bot appears offline but still functions normally. Gray indicator.

Use for stealth mode or testing

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.