Robotnic is an open-source Discord bot designed to intelligently manage dynamic voice channels. It automatically creates, manages, and deletes temporary voice channels based on user activity. This keeps your server clean and organized.
You can invite the public instance to your own server for free using πinvite Robotnic or join the support server to test it out πSupport Server.
Alternativly, you can test its functionallity in our πExample Server. It includes pre-configured creator channels that show off the variety of use cases for Robotnic.
See the bot's current stats on its πwebsite or read a bit about its development on πjackschultz.dev.
Automatically creates personal or activity-based voice channels when users join a βcreatorβ channel.
Removes empty temporary channels to keep your server tidy.
Server admins can customize:
- Channel name patterns (e.g. {user}'s channel)
- User limits
- Parent categories
- Permission inheritance (none, from creator, or from category)
The owner of a channel has many controls over it like:
- Lock or Hide from a default role set in the creator
- Allow or Ban any role or user
- Change its name
- Change the limit
- Change
As a server owner you can:
- Enable or disable each control available to channel owners
- Set a logging channel and edit which events are logged
- Editable profanity filter powered by profanity.dev
All creator and temporary channel data is stored persistently. This means if the bot goes offline or restarts no data is lost, no orphaned Discord channels possible.
Controlled entirely within Discord using dropdowns, buttons, and modals built with Pycord 2.6+ for smooth interaction.
- py-cord==2.7.0
- PyNaCl==1.5.0
- python-dotenv>=1.0.0
- topggpy>=1.4.0
- requests>=2.31
- SQLite (included by default with Python)
/setup-> Create a new Creator Channel and open the configuration menu./settings controls-> Change which controls are avaliable for channel owners to use/settings logging-> Enable channel logging and edit which events to log/settings profanity_filter-> Select your preferred way to handle profanity in channel names
Install python version: 3.13.9
- Clone the Repository
git clone https://github.com/jack-schultz/Robotnic.git
cd Robotnic-
Install Dependencies
topggpydeclaresdiscord.pyas a dependency, but this project uses py-cord instead. Installingdiscord.pyalongside (or uninstalling it after) py-cord can leave a brokendiscordpackage. Use the install script so topggpy is installed with--no-deps:
# Linux / macOS / Git Bash
./scripts/install.sh
# Windows PowerShell
.\scripts\install.ps1Or manually:
pip install -r requirements.txt
pip install -r requirements-topgg.txt --no-deps- Run the main.py file to create the settings.json, database.db and .env files.
python main.py- Configure the Bot. In the .env file, replace
TOKEN_HEREwith your bot's token. (You need to make a Discord Bot through Discord's Developer Portal)
TOKEN=TOKEN_HERE
- Run the Bot
python main.py- (Optional) Host the docs site from the
docs/folder. In Settings β Pages, set the source to GitHub Actions. Copydocs/stats.config.example.jsontodocs/stats.config.jsonand setstatsUrlto your bot's/statsendpoint (or set aSTATS_API_URLrepo variable under Settings β Secrets and variables β Actions). The workflow (.github/workflows/update-stats.yml) fetches stats hourly and deploys the site without committing tomain. Pushes todocs/**onmainalso trigger a redeploy. Enable Actions on your fork and ensure the API is reachable from GitHub's runners.
Optionally: Edit the settings.json.
Below is the default settings.json with explanations of their options. Please note json does not support comments, do not include comments in your settings.json file.
{
{
// Enables or disables console and logfile output for the bot or discord.
// If your bot isn't working correctly, change "bot" to true.
// Then reading the debug errors may explain the problem.
"debug": {
"discord": false,
"bot": true
},
// Allows setting a channel ID to notify the bot owner of enabled events
"notifications": {
"channel_id": null,
"start": true,
"reconnect": true,
"stop": true,
"guild_join": true,
"channel_create": false,
"channel_remove": false
},
// API allows certain information to be retrieved by the webserver running on the same machine
"api": {
"port": 8000
},
// Edit the status of the bot. Accepts variables {server_count} and {member_count}
"status": {
"text": "Online in {server_count} servers | {member_count} users."
}
}
Please make sure you have message, member and activity intents enabled in the Discord Developer Portal for your bot.
Join the πDiscord Server to keep up to date with any developments.
