What is Velocity
Velocity is a “next-generation Minecraft proxy focused on scalability and flexibility”. It is essentially a reverse proxy for Minecraft, if you know what that is. Basically, it allows a parent-child-like server architecture that allows players to be moved across different servers without having to deal with multiple external IP/server addresses. It can also allow modded, vanilla, and even different game versioned servers to run side by side. It can take care of routing players to the proper server depending on their client (ie. if they are using mods, it can forward them to a modded child server). Velocity can also run plugins, such as LuckPerms, which allows permission syncing across servers. Velocity is a Paper project, and you can find more information on their documentation site. The following document will detail how Velocity is setup for the TTU IEEE Minecraft Server.
How we use Velocity:
Velocity is configured using the velocity.toml file. The beginning of this file explains different configurations and options, the following have been configured:
show-max-playeris set to 500. This is an arbitrary value as Velocity will not limit player connections.online-modeshould be set to true. Do not change this. This will contact Mojang authentication servers to ensure the connecting players all have valid accounts.force-key-authenticationshould also be set to true. Do not change thisplayer-info-forwarding-modeshould be set tomodern. This forwards player IPs and UUIDs to the child server. Do not change thisforwarding-secret-filethe file the secret forwarding key is in. Do not change thisannounce-forgeturn this on if using a modded server, otherwise, it doesn’t matter.
[servers]
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
plots = "127.0.0.1:25568"
These are all the child servers that Velocity is allowed to forward players to. If you need to add or remove a server, do so here.
try = [
"lobby"
]
This is a list of servers that Velocity will try to forward players to when they first connect. This should be set to lobby for Discord permissions to sync properly.
I did not modify any of the advanced settings, so I’m not going to go over them in this document.
Velocity Commands
Velocity has a few built-in commands that are helpful for debugging, a full list can be found here.
On top of the built in plugins, LuckPerms commands can also be run from the Velocity server. These are all the same as other LuckPerms commands, but they need to start with /lpv instead of just /lp. For example, to get to the editor, you would need to do /lpv editor when using the proxy server command line.