Host your Paper server without port forwarding via the VoxelPort relay network.
VoxelPort Plugin — Setup Instructions
Host your Paper server without port forwarding. Players join using a relay address provided by VoxelPort — no Fabric mod, no router config, vanilla client works out of the box.
Requirements
- Paper 1.21 or newer (Spigot is not supported)
- Java 21
- A VoxelPort server token (free — see below)
Step 1 — Get a Token
- Join the VoxelPort Discord server
- Run
/gettokenin any channel - Copy the token you receive — you will need it in Step 3
Each token is tied to one server at a time. To revoke a token, use
/revoketoken.
Step 2 — Install the Plugin
- Download
voxelport-plugin-1.0.0.jar - Drop it into your server's
plugins/folder - Start the server once to generate
plugins/VoxelPort/config.yml, then stop it
Step 3 — Configure
Open plugins/VoxelPort/config.yml:
# VoxelPort Plugin Config
# Get your server token from the VoxelPort Discord bot with /gettoken
relay-ws: ws://voxelportrelay.qzz.io:2526
server-token: YOUR_TOKEN_HERE
# The local Minecraft server this plugin proxies traffic to
server-host: localhost
server-port: 25565
- Replace
YOUR_TOKEN_HEREwith the token from Step 1 - Leave
relay-ws,server-host, andserver-portunchanged unless you know what you are doing - Save the file
Step 4 — Start Your Server
Start your Paper server. The plugin will:
- Connect to the VoxelPort relay
- Register your token
- Receive a dedicated port
Run /voxelport status in-game or in the console to see your join address:
VoxelPort is CONNECTED
Join address: voxelportrelay.qzz.io:25312
Share that address with your friends. They paste it into Multiplayer → Add Server in their vanilla Minecraft client — no mods needed on their end.
Commands
| Command | Permission | Description |
|---|---|---|
/voxelport status |
voxelport.admin |
Shows relay connection status and join address |
/voxelport reload |
voxelport.admin |
Reloads config.yml and reconnects to the relay |
Both commands require operator or the voxelport.admin permission node.
How It Works
Player (vanilla client)
│
│ connects to voxelportrelay.qzz.io:<port>
▼
VoxelPort Relay (cloud server)
│
│ forwards raw TCP over WebSocket
▼
VoxelPort Plugin (running on your machine)
│
│ forwards to localhost:25565
▼
Your Paper Server
The relay acts as a middleman. Your server never needs an open port — only an outbound WebSocket connection to the relay, which works behind most NATs, firewalls, and home routers.
Troubleshooting
Plugin says "server-token is not set"
→ You forgot to replace YOUR_TOKEN_HERE in config.yml. Run /voxelport reload after fixing it.
Status shows DISCONNECTED
→ Check your internet connection. The relay address voxelportrelay.qzz.io:2526 must be reachable outbound. Some shared hosting providers block outbound WebSocket — check with your host.
Players can't connect
→ Make sure your Paper server is actually running on localhost:25565 (check server-port in server.properties). The plugin connects to whatever server-host/server-port is set in config.yml.
Token rejected
→ Your token may have been revoked. Rejoin the Discord and run /gettoken again, then update config.yml and run /voxelport reload.
Notes
- The relay address changes each time your server restarts. Always check
/voxelport statusafter a restart and share the updated address. - The plugin requires an active internet connection to
voxelportrelay.qzz.ioat all times while players are connected. - This plugin is free. Tokens are free. No purchases required.