HomeJavaModsVoxelPort
ModsJava

VoxelPort

Host your Paper server without port forwarding via the VoxelPort relay network.

⬇ Download on HangarOpen in MCModsHubGet it on Google Play →
# VoxelPort — Paper Plugin > Host your Minecraft server without touching your router. Players join with vanilla Minecraft — no mods, no downloads, nothing extra on their end. --- ## What it does VoxelPort connects your Paper server to the VoxelPort relay network. The relay gives your server a public address like `play.voxelport.in:25312`. Anyone can paste that into Multiplayer → Add Server in vanilla Minecraft and connect — even if your server is behind a home router with no port forwarding. ``` Player (vanilla client) │ play.voxelport.in:25312 ▼ VoxelPort Relay ←── secure WebSocket (wss) ──→ VoxelPort Plugin │ localhost:25565 │ Your Paper Server ``` The plugin handles everything. Your server never needs an open port. --- ## Requirements | | | |--|--| | **Server software** | Paper 1.21 or newer | | **Java** | 21+ | | **Token** | Free — from the VoxelPort Discord | --- ## Installation ### 1. Get a token Join the [VoxelPort Discord](https://discord.gg/EuDMWUuGpp) and run `/gettoken` in any channel. Copy the token you receive. ### 2. Install the plugin Download `voxelport-plugin.jar` from [Hangar](https://hangar.papermc.io/voxelportt/VoxelPort) and drop it into your server's `plugins/` folder. ### 3. Configure Start the server once to generate the config, then stop it. Open `plugins/VoxelPort/config.yml`: ```yaml relay-ws: wss://voxelport.in server-token: YOUR_TOKEN_HERE public-host: play.voxelport.in server-host: localhost server-port: 25565 ``` Replace `YOUR_TOKEN_HERE` with your token. Leave everything else as-is unless your Minecraft server runs on a non-standard port. > **Keep your token secret.** It's effectively a password for your slot on the relay. Don't paste it in screenshots, issues, or public repos. ### 4. Start your server ``` [VoxelPort] ══════════════════════════════════════════ [VoxelPort] VoxelPort is ready! [VoxelPort] Players connect via: play.voxelport.in:25312 [VoxelPort] ══════════════════════════════════════════ ``` Share that address. Done. --- ## Commands | Command | Permission | Description | |---------|------------|-------------| | `/voxelport status` | `voxelport.admin` | Shows connection status and current join address | | `/voxelport reload` | `voxelport.admin` | Reloads config.yml and reconnects to the relay | Both commands require operator or the `voxelport.admin` permission node. --- ## Configuration reference ```yaml # Secure WebSocket address of the VoxelPort relay (wss:// = encrypted) relay-ws: wss://voxelport.in # Your server token — get one from the VoxelPort Discord with /gettoken server-token: YOUR_TOKEN_HERE # Public address players type into Minecraft (shown by /voxelport status) public-host: play.voxelport.in # Where the plugin forwards player connections to (your actual Minecraft server) server-host: localhost server-port: 25565 ``` --- ## How it works (technical) 1. On startup the plugin opens a secure WebSocket (`wss://`) connection to the relay and sends a `register` frame with the server token 2. The relay validates the token and responds with an assigned TCP port (e.g. `25312`) 3. When a vanilla client connects to `play.voxelport.in:25312`, the relay sends a `connect` frame to the plugin 4. The plugin opens a TCP socket to `localhost:25565` and bridges raw data between the relay and the local server using Base64-encoded JSON frames 5. The relay closes the TCP connection when the client disconnects, and the plugin tears down the local socket The plugin auto-reconnects every 10 seconds if the relay connection drops. It caps concurrent proxied connections (200) and rejects oversized frames to protect the local server. --- ## Troubleshooting **"server-token is not set" — plugin disables itself** → You left `YOUR_TOKEN_HERE` in config.yml. Add a real token and run `/voxelport reload`. **Status shows Disconnected** → Your server needs outbound HTTPS/WSS access to `voxelport.in` (port 443). Most home networks and hosts allow this by default — check with your provider if not. **Players can't connect** → Verify your Paper server is running and listening on the port set in `server-port`. Check `server.properties` → `server-port`. **Token rejected by relay** → The token may have been revoked. Run `/revoketoken` then `/gettoken` again in the Discord, update config.yml, and run `/voxelport reload`. **Address changes every restart** → Expected behavior. The relay assigns a port when the plugin connects. Run `/voxelport status` after each restart and share the new address. --- ## Building from source ```bash git clone https://github.com/VOXELPORT/VoxelPortPlugin cd VoxelPortPlugin ./gradlew build ``` Output: `build/libs/voxelport-plugin-1.0.0.jar` Requires Java 21 and an internet connection to download dependencies. --- ## Links - [Hangar (PaperMC)](https://hangar.papermc.io/voxelportt/VoxelPort) — download - [Discord](https://discord.gg/NRFbuG5V97) — get your token, support, updates --- ## License MIT — see [LICENSE](LICENSE)

VoxelPort is a free Minecraft Java mod. Compatible with Minecraft 1.21, 1.21.1, 1.21.10, 1.21.11 and newer. Downloaded 6 times (via Hangar). Download it and open it directly in the game.

Explore more