Search code examples
pythonbotsdiscorddiscord.py

How to change activity of a discord.py bot?


I want to change the bot status from playing to watching. I've tried this but it's still playing status:

import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio

PREFIX = ("$")
bot = commands.Bot(command_prefix=PREFIX, description='Hi')

@bot.event
async def on_ready():
    activity = discord.Game(name="Netflix", type=3)
    await bot.change_presence(status=discord.Status.idle, activity=activity)
    print("Bot is ready!")

bot.run('TOKEN')

Solution

  • You can use the following lines of code, depending on which activity you want to change the bot to:

    # Setting `Playing ` status
    await bot.change_presence(activity=discord.Game(name="a game"))
    
    # Setting `Streaming ` status
    await bot.change_presence(activity=discord.Streaming(name="My Stream", url=my_twitch_url))
    
    # Setting `Listening ` status
    await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.listening, name="a song"))
    
    # Setting `Watching ` status
    await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="a movie"))
    

    Reference:

    bot.change_presence