Skip to content

Getting Started

xx445469 edited this page Aug 26, 2026 · 2 revisions

English | 繁體中文

This page covers everything from downloading the jar to hearing music in a voice channel: requirements, first configuration, inviting the bot, and the launch flags.

Requirements

  • Java 25 or newer. The jar will not run on an older runtime.
  • A Discord bot application with a token, created at the Discord Developer Portal.
  • Your own Discord user ID, to set as the bot owner.

Get the jar

Download NextVoiceCord.jar from the project's releases page. (If you would rather build from source or run it in Docker, see the README's Building from source and Docker sections — this page covers the plain java -jar case.)

Generate a config

java -jar NextVoiceCord.jar generate-config

This writes a default config.txt, with every option commented, and exits without starting the bot.

Two keys have to be filled in before the bot will start:

Key What it is
discord.token From the Bot tab of your Discord application
discord.owner Your own Discord user ID

The owner ID matters beyond identification: the owner automatically counts as DJ on every server the bot is in, and Owner-only commands (shutdown, setname, and the rest — see Commands) only work for that one ID.

Invite the bot

The bot needs both the right OAuth2 permissions and the right gateway intents to work correctly. If you start it before it is in any server, it detects that and prints a ready-to-use invite link (with the permissions already applied) to the console and, if the desktop window is open, as an alert — so inviting it can wait until after the first launch if that is easier.

The permissions the invite link requests:

View Channel, Send Messages, Read Message History, Add Reactions, Embed Links, Attach Files, Manage Messages, Use External Emoji, Connect, Speak, Change Nickname

Before the bot connects, one privileged gateway intent also has to be turned on in the Developer Portal, under your application's Bot settings: Message Content Intent. Without it, the bot cannot log in — it disconnects and reports that a required intent is missing, naming this exact setting.

Run it

java -jar NextVoiceCord.jar

With no flags this opens the desktop window. See Troubleshooting if the window itself will not open, if the token turns out to be wrong, or if another copy is already running.

Launch flags

flag effect
(none) desktop window
--nogui headless
--web <port> web panel on that port
--help usage
generate-config write a default config.txt and exit

--web combines with either mode — java -jar NextVoiceCord.jar --nogui --web 8080 runs headless with the panel served on port 8080. -Dnogui=true is also accepted as an alternative spelling of --nogui.

First play

Once the bot is in your server and running:

  1. Join a voice channel.
  2. In a text channel the bot can see, run /play <song name or URL>.

The bot joins your voice channel and starts playing. From there, /queue, /pause, /skip and the rest of the music commands work as expected — see Commands for the full list and who is allowed to run each one, and Controller-Panel for the now-playing panel that appears alongside playback and can be customised per server.

Running it as a service

For Docker, including the compose file and the UID/volume details, see the README's Docker section — it is not repeated here.

For a plain java -jar deployment on a server, run it with --nogui (there is no display to open a window on) and keep it alive with whatever process supervisor your OS provides — systemd, a screen/tmux session, or a process manager like pm2. A minimal systemd unit, for example:

[Unit]
Description=NextVoiceCord
After=network.target

[Service]
WorkingDirectory=/opt/nextvoicecord
ExecStart=/usr/bin/java -jar NextVoiceCord.jar --nogui
Restart=on-failure

[Install]
WantedBy=multi-user.target

Add --web <port> to the ExecStart line if you want the web panel available alongside a headless run — see Troubleshooting for reaching it once it is up.

See also

Commands for the full command reference. Permissions-and-Server-Settings for DJ roles, admin access, and per-server setup like /settc and /setvc. Controller-Panel for the now-playing panel. Troubleshooting if anything here does not go as described.

Clone this wiki locally