Skip to content

jack-schultz/Robotnic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

321 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Robotnic - Dynamic Voice Channels Discord Bot

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.

Example gif

dr-robotnic

Features

1. Dynamic Voice Channel Management

Automatically creates personal or activity-based voice channels when users join a β€œcreator” channel.

2. Automatic Cleanup

Removes empty temporary channels to keep your server tidy.

3. Configurable Creator Channels

Server admins can customize:

  • Channel name patterns (e.g. {user}'s channel)
  • User limits
  • Parent categories
  • Permission inheritance (none, from creator, or from category)

4. Users can control their channel

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

5. Highly configurable for server owners

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

6. SQLite Database Integration

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.

7. Slash Commands & UI Components.

Controlled entirely within Discord using dropdowns, buttons, and modals built with Pycord 2.6+ for smooth interaction.

Requirements.txt

  • 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)

Commands Overview

  • /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

Self-Hosting Setup

Install python version: 3.13.9

  1. Clone the Repository
git clone https://github.com/jack-schultz/Robotnic.git
cd Robotnic
  1. Install Dependencies

    topggpy declares discord.py as a dependency, but this project uses py-cord instead. Installing discord.py alongside (or uninstalling it after) py-cord can leave a broken discord package. Use the install script so topggpy is installed with --no-deps:

# Linux / macOS / Git Bash
./scripts/install.sh

# Windows PowerShell
.\scripts\install.ps1

Or manually:

pip install -r requirements.txt
pip install -r requirements-topgg.txt --no-deps
  1. Run the main.py file to create the settings.json, database.db and .env files.
python main.py
  1. Configure the Bot. In the .env file, replace TOKEN_HERE with your bot's token. (You need to make a Discord Bot through Discord's Developer Portal)
TOKEN=TOKEN_HERE
  1. Run the Bot
python main.py
  1. (Optional) Host the docs site from the docs/ folder. In Settings β†’ Pages, set the source to GitHub Actions. Copy docs/stats.config.example.json to docs/stats.config.json and set statsUrl to your bot's /stats endpoint (or set a STATS_API_URL repo variable under Settings β†’ Secrets and variables β†’ Actions). The workflow (.github/workflows/update-stats.yml) fetches stats hourly and deploys the site without committing to main. Pushes to docs/** on main also 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.

Future Features

Join the πŸ‘‰Discord Server to keep up to date with any developments.

About

Open-source Discord bot designed to intelligently manage dynamic voice channels. It automatically creates, manages, and deletes temporary voice channels based on user activity.

Topics

Resources

License

Stars

6 stars

Watchers

2 watching

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Languages