Feautres
- Modern Pythonic API using
async
/await
syntax - Easy to use with an object oriented design
- Optimised for both speed and memory
- Prevents detection of user account automation
- Clean Documentation
- Community Support
Installation
Python 3.10 or higher is required.
pip install selfcord.py
Wiki
Read our Wiki in regards to documentation and getting started.
Getting Started
A selfbot that responds to a message ("ping!") with another message ("pong").
import selfcord
token = "insert token"
bot = selfcord.Bot()
@bot.on("ready")
async def ready(time):
print(f"Connected To {bot.user.name}\n Startup took {time:0.2f} seconds")
@bot.on("message")
async def responder(message):
if message.content == "ping!":
await message.channel.send("pong!")
bot.run(token)
Examples/Usage
Message logger
In this snippet, If someone deletes messages in the server, it records details such as the server name, channel name, message content, and the author's name
import selfcord
token = "insert token"
bot = selfcord.Bot(prefixes=["!", "?"])
@bot.on("ready")
async def ball(time):
print(f"Connected To {bot.user}\n Startup took {time:0.2f} seconds")
@bot.on("message_delete")
async def message_logger(message):
# DISCLAIMER: If message is not in bots cache only message id, channel id and guild id will be present
if message.author != None:
if message.author.id != bot.user.id:
if message.guild != None: # If the message is in a guild
await aprint(f"""MESSAGE LOGGED:
SERVER: {message.guild.name}
CHANNEL: {message.channel.name}
CONTENT:
{message.author}: {message.content}
""")
else: # If the message is in a DM or Group chat
await aprint(f"""MESSAGE LOGGED:
CHANNEL: {message.channel}
CONTENT:
{message.author}: {message.content}
""")
bot.run(token)
Purge command
In this snippet, you are able to delete certain amount of messages from a channel
import selfcord
token = "insert token"
bot = selfcord.Bot(prefixes=["!", "?"])
@bot.on("ready")
async def ball(time):
print(f"Connected To {bot.user}\n Startup took {time:0.2f} seconds")
@bot.cmd(description="Purges the channel", aliases=["wipe", "clear"])
async def purge(ctx, amount: int=None):
await ctx.purge(amount)
bot.run(token)
Deleted message sniper
In this snippet, you can retrieve the most recently deleted message.
import selfcord
token = "insert token"
bot = selfcord.Bot(prefixes=["!", "?"])
@bot.on("ready")
async def ball(time):
print(f"Connected To {bot.user}\n Startup took {time:0.2f} seconds")
@bot.cmd(description="Snipe", aliases=['s'])
async def snipe(ctx):
await ctx.reply(f"{bot.user.deleted_messages[-1].author}: {bot.user.deleted_messages[-1]}")
bot.run(token)
Captcha
2Captcha is the only captcha solving service supported currently.
Some Useful Links
- Documentation
- Other Documentation (messy)
- PyPi
- Official Discord Server
- A simple selfbot designed to showcase the library's features
Contributing
Contributors are always Welcome