Skip to main content
The Discord Panel is the central hub for managing your Minecraft servers through McDis-RCON. It provides an interactive interface with buttons, dropdowns, and real-time status information. McDis-RCON Panel

Panel Components

The panel consists of several elements:
  1. Custom Banner (optional) - Personalized image
  2. Status Embed - Server information and statistics
  3. Control Buttons - Quick access to features
  4. Console Threads - Real-time server console output
  5. Utility Threads - Error reports and Flask logs

Setting Up the Panel

1

Create Panel Channel

Create a dedicated text channel in your Discord server for the McDis panel.Recommended channel name: mcdis-panel or server-control
2

Get Channel ID

Enable Developer Mode in Discord:
  • User Settings → Advanced → Developer Mode: ON
Right-click the channel → Copy ID
3

Configure Panel ID

Add the channel ID to md_config.yml:
Panel ID: 1234567890123456789
4

Start McDis-RCON

Run mcdis run and the panel will be created automatically
The panel channel should be clean (empty) when first starting McDis-RCON. If it contains messages, McDis will purge them and create a fresh panel.

Custom Banner

Personalize your panel with a custom banner image:
1

Create Banner Image

Design an image with recommended size: 515 × 131 pixelsSupported format: PNG
2

Save as banner.png

Save the file as banner.png in your McDis root directory:
McDis/
├── md_config.yml
├── banner.png  ← Place here
└── ...
3

Restart McDis-RCON

The banner will be loaded automatically on next start
Panel with Custom Banner
The banner updates every 15 seconds, so you can change it without restarting McDis. Just replace the banner.png file.

Main Panel Buttons

The panel provides five main action buttons:

Processes

Expand process control interface with start/stop/restart/kill buttons

Files

Open the file manager to browse and manage server files

Tools

Access additional tools: Process Manager, Uploader, Flask server

Guide

Display the McDis-RCON guide (not yet implemented)

Restart

Restart the entire McDis-RCON application

Processes Button

Click Processes to expand the process control interface: Process Control Panel Controls:
  • ⬅️ - Return to main panel
  • Dropdown - Select which server to control
  • ▶️ Start - Start the selected server
  • ⏹️ Stop - Stop the selected server gracefully
  • 🔄 Restart - Restart the selected server
  • ⚠️ Kill - Force kill the selected server
The dropdown cycles through all configured processes (both servers and networks). Click it multiple times to select different servers.

Files Button

Click Files to open the file manager: File Manager See File Manager for detailed documentation.

Tools Button

Click Tools to access additional utilities: Tools Menu Available tools:
  • Processes - View and manage all Java processes
  • Uploader - Enable file upload mode
  • Flask - Configure Flask download server

Process Manager

Process Manager View all Java processes running in the McDis directory:
  • 🔄 - Refresh process list
  • 📌 - Enter specific path to scan
  • Dropdown - Select and force kill processes
Force killing processes through this tool can cause data corruption. Use only when processes are unresponsive.

Uploader

Uploader Tool Enable file upload mode:
  • 🔄 - Reload interface
  • 📌 - Set upload destination path
  • Run/Close - Toggle uploader on/off
  • Do Not Overwrite/Overwrite - Toggle overwrite mode
When active, all files sent to the panel channel are automatically uploaded to the configured path.

Flask Server

Flask Server Controls Manage the Flask download server:
  • 🔄 - Reload interface
  • Run/Close - Start/stop Flask server
  • Single Use/Multi-Use - Download link usage policy
  • Temporary/Persistent - Download link expiration policy
Required for downloading files larger than 5MB.

Restart Button

Click Restart to restart the entire McDis-RCON application:
1

Confirmation

A confirmation message appears asking if you want to restart
2

Process Shutdown

McDis attempts to gracefully stop all running servers using their stop_cmd
3

Force Kill Timeout

If servers don’t stop within 60 seconds, they’re force killed
4

Restart

McDis-RCON restarts automatically
Restarting McDis-RCON will temporarily disconnect all servers. Use this for applying configuration changes or updates.

Panel Commands

You can also control McDis via text commands in the panel channel:

Server Control Commands

!!start <server>      # Start a specific server
!!stop <server>       # Stop a specific server
!!restart <server>    # Restart a specific server
!!kill <server>       # Force kill a specific server
Example:
!!start survival
!!restart creative
!!stop velocity

Batch Commands

!!start-all           # Start all servers
!!stop-all            # Stop all servers
!!restart-all         # Restart all servers
!!kill-all            # Force kill all servers

Plugin Management

!!mdreload <server>   # Reload plugins for specific server
!!mdreload-all        # Reload plugins for all servers
!!adreload            # Reload global addons
Commands are case-insensitive: !!start SMP and !!start smp work the same.

Console Threads

Each configured process automatically gets a console thread:
🧵 Console survival_server
🧵 Console creative_server
🧵 Console velocity_proxy
🧵 Error Reports
🧵 Console Flask

Console Threads Features

Real-Time Output

View live server console output as it happens

Command Execution

Send commands directly to the server

Process Control

Use start, stop, restart, kill commands

Plugin Management

Use mdreload to reload server plugins
See Console Relay for detailed information.

Error Reports Thread

All errors and exceptions are reported here: Error Reports Error reports include:
  • Error title and context
  • Full stack trace
  • Timestamp
  • Link from console threads

Console Flask Thread

When Flask server is enabled, download activity is logged here:
[12:34:56] User @Admin requested download: large_backup.zip
[12:35:12] Download link used: large_backup.zip (192.168.1.100)
[12:40:00] Download link expired: large_backup.zip

Panel Status Information

The panel embed displays real-time status:

Server Status

For each configured process:
  • Name
  • State (Running/Stopped)
  • RAM Usage (if running)
  • Disk Usage

System Information

  • Total Processes
  • Running Processes
  • McDis Version
  • Uptime
The panel updates every 15 seconds to show current status.

Panel Permissions

Recommended Discord bot permissions:

Required Permissions

  • Read Messages
  • Send Messages
  • Embed Links
  • Attach Files
  • Read Message History
  • Manage Messages
  • Manage Threads
  • Create Public Threads

Recommended

  • Administrator (simplest)
Or specific permissions listed in Required
If the bot lacks permissions, the panel may not function correctly. Granting Administrator permissions ensures full functionality.

Customization

Language

Change panel language in md_config.yml:
Language: en  # English
# or
Language: es  # Spanish
Supported languages:
  • en - English
  • es - Spanish (Español)

Panel Location

The panel must be in a dedicated channel, but you can:
  • Use any channel name
  • Place it in any category
  • Set custom channel permissions
  • Use channel topic for documentation link
Set the channel topic to a link to your server documentation or rules for easy access.

Mobile Experience

The panel is designed to work well on Discord mobile:
  • Buttons are large and touch-friendly
  • Dropdowns work on mobile Discord
  • Console threads are accessible
  • Commands can be typed on mobile keyboard
For the best mobile experience, use the button interface instead of typing commands.

Troubleshooting

Possible causes:
  • Incorrect Panel ID
  • Bot lacks permissions
  • Bot not in server
  • Channel deleted
Solutions:
  • Verify Panel ID in md_config.yml
  • Grant Administrator permissions to bot
  • Ensure bot is invited and has access to channel
  • Recreate channel and update Panel ID
Possible causes:
  • Bot lacks permissions
  • Discord API issues
  • Button interaction timeout
Solutions:
  • Grant Manage Messages permission
  • Check Discord API status
  • Try clicking again (interactions timeout after 15 minutes)
Cause: Multiple McDis instances running with same Panel IDSolution: Ensure only one McDis instance is running:
ps aux | grep mcdis
kill <pid>
Possible causes:
  • Threads archived automatically
  • Threads deleted manually
  • Discord thread limit reached
Solutions:
  • Check archived threads in channel
  • Restart McDis to recreate threads
  • Clean up old unused threads

Best Practices

Dedicated Channel

Use a dedicated channel only for the McDis panel, not mixed with other messages

Permission Management

Restrict channel access to trusted administrators only

Monitor Error Reports

Regularly check the Error Reports thread for issues

Archive Old Threads

Periodically archive old console threads to keep the channel organized

Advanced: Panel Customization via Code

For advanced users, you can customize the panel embed by modifying:
class PanelEmbed(discord.Embed):
    def __init__(self, client: McDisClient):
        # Customize embed appearance here
        pass
Modifying source code requires reinstalling McDis-RCON after changes and may break updates.

Process Control

Use panel buttons to control servers

Console Relay

Interact with console threads

File Manager

Access files through the panel

Discord Setup

Configure bot token and permissions

Build docs developers (and LLMs) love