Getting Started
In this documentation:
- Server → the Velocity proxy
- Clients → all connected Paper servers
File Structure Overview
After installing and restarting your servers, CommandBridge will generate the following files:
On each Paper server:
plugins/CommandBridge/
├── config.yml # Client configuration
└── scripts/
└── example.yml # Example script
On the Velocity proxy:
plugins/CommandBridge/
├── config.yml # Server configuration
├── secret.key # Shared authentication key (server only)
└── scripts/
└── example.yml # Example script
The secret.key
file is only created on the Velocity proxy. Keep it private — anyone with this key can issue commands across your network.
Step 1: Configure Authentication
- Open the
secret.key
file from the Velocity server. - Copy the key and paste it into each Paper server’s
config.yml
:
secret: "PASTE_KEY_HERE"
Step 2: Set Server and Client IDs
- On each backend server:
Set a unique
client-id
inconfig.yml
:
client-id: "lobby"
- On the Velocity proxy:
Set a
server-id
inconfig.yml
(default is"main"
):
server-id: "main"
Step 3: Configure Velocity Network
In the Velocity config.yml
:
host: "0.0.0.0" # Use 127.0.0.1 if running locally
port: 3000 # Choose any free port
san: "your.server.ip" # Must match client-side remote host
Do not include a port in the san
value — use "152.248.198.124"
, not "152.248.198.124:3000"
.
Ensure the port is open and reachable from each Paper server.
Step 4: Configure Paper Servers
In each Paper server’s config.yml
, configure connection to Velocity:
remote: "152.248.198.124" # Must match Velocity’s SAN
port: 3000 # Same port used on Velocity
Step 5: Start Your Network
- Start the Velocity proxy first
- Then restart all Paper servers
This ensures the proxy is listening before clients attempt to connect.
Connection Verification
On startup, the Velocity console should show:
[INFO] [CommandBridge]: Client authenticated successfully: /127.0.0.1:42918
[INFO] [CommandBridge]: Added connected client: lobby
If all Paper clients show up as connected, your setup is complete!
If not, check for:
- Typos in config files
- Incorrect or closed ports
- Mismatched
secret
,client-id
, orsan
values