Talk to Veloplayers fromyour server.
One jar. Teammate outlines through walls, waypoints, native toasts and countdowns, camera effects, Discord presence, mod hints and proxy-free transfers. Players without Velo never notice it's there.
- Can't kick, ban or slow anyone down
- Toasts and bars carry your server's name
- Java API and an open protocol
Real capture · Paper 26.2 test server
Fourteen features,
one plugin.
No resource-pack hacks. Everything you send is drawn by Velo itself in its own fonts, crisp at every GUI scale. Toasts and bars carry your server's name.
Live in a minute.
- 1
Drop in the jar
Put
VeloBridge-1.0.0.jarintoplugins/and restart Paper. On a network, install it on every backend server.Region and entity schedulers, so it's ready for Folia too.
- 2
Name your server
In
plugins/VeloBridge/config.ymlset the name and colour players see on everything you send.server: name: "SkyWars.gg" color: "#5aa9ff"
- 3
Reload and try it
Run
/velobridge reload, then/velobridge countdown * 5 Test. Every Velo player sees it, nobody else is touched.> velobridge players 3 of 41 players use Velo
Loading…
Five lines to a feature
players talk about.
Add softdepend: [VeloBridge] to your plugin.yml and compile against the jar. Every call is safe for players without Velo and from any thread, Folia included.
// A round starts: countdown, then a toast and a red pulse. if (VeloBridge.isVelo(player)) { VeloBridge.countdown(player, "Round 2", 5); VeloBridge.progress(player, "capture", "Island capture", 0.4); VeloBridge.toast(player, "Round 2", "The island shrinks in 30 seconds", 6); VeloBridge.vignette(player, "#ff3b3b", 0.5, 1500); VeloBridge.shake(player, 0.4, 600); }
// Show each player their team - outline through walls, names, edge arrows. for (Team team : game.teams()) { for (Player p : team.players()) { VeloBridge.teammates(p, team.players(), team.hexColor(), 0); } } // The objective, for everyone: Bukkit.getOnlinePlayers().forEach(p -> VeloBridge.waypoint(p, "core", coreLocation, "Enemy core", "#e0262e", 0));
// Send the player to the lobby they reach fastest - no proxy. List<String> lobbies = List.of("eu.lobby.gg", "us.lobby.gg", "asia.lobby.gg"); VeloBridge.pings(player, lobbies).thenAccept(ms -> { String best = ms.entrySet().stream() .filter(e -> e.getValue() >= 0) .min(Map.Entry.comparingByValue()) .map(Map.Entry::getKey).orElse(lobbies.get(0)); VeloBridge.transfer(player, best, 25565); });
// React to exactly the Velo module that matters in your mode. @EventHandler public void onModules(VeloModulesChangeEvent e) { if (inHideAndSeek(e.getPlayer()) && e.getActive().contains("freelook")) { VeloBridge.disableModules(e.getPlayer(), List.of("freelook"), "Not in hide & seek"); } } @EventHandler public void onVelo(VeloPlayerJoinEvent e) { getLogger().info(e.getPlayer().getName() + " uses Velo " + e.getVelo().veloVersion()); }
// build.gradle(.kts) - put the jar into libs/ dependencies { compileOnly(files("libs/VeloBridge-1.0.0.jar")) } # plugin.yml softdepend: [VeloBridge]
velo:bridge
Minestom, Velocity, your own server: one plugin channel, one UTF-8 JSON object per message, the type in "t". Unknown types and fields are ignored on both sides.
// Server → client, raw bytes on velo:bridge (no length prefix) { "t": "toast", "title": "Round 2", "text": "The island shrinks in 30 seconds", "seconds": 6 }
Every Velo module
you can switch off.
Use these ids in disabled-modules and disableModules(...). Click one to copy it.
Questions server
owners ask.
Does it change anything for players without Velo?
No. The plugin only ever talks to players who said hello on the Velo channel. Everyone else gets no packets, no messages, nothing.
Can it kick or ban players for their mods?
No, on purpose. Mod hints are checked on the player's own PC and shown as a heads-up; nothing is reported back or enforced, so a wrong match can never cost anyone their account. The only enforced thing is switching off Velo's own modules you listed.
How do players know it's my server and not Velo?
Toasts and progress bars carry your server's name in your colour, and your mod hints say "From <your server>". Velo's own UI never looks like that. Players can also hide your mod hints for good.
What do you collect with stats: true?
Your server name, software, Minecraft version, players online, how many use Velo and which Velo versions. No player names, UUIDs or IPs. Set stats: false and nothing is sent.
Does it work on Folia and networks?
Yes. It uses Folia's region and entity schedulers (which Paper and Purpur have too) and falls back to Bukkit's on Spigot. On a network, install it on every backend; transfers work between any servers, with or without a proxy.
Which versions?
Servers on Minecraft 1.20.5 and newer (Java 21+). Players on any Velo version with Bridge support.
Become a Velo partner server.
Install Bridge, keep stats on and get in touch. Partner servers get featured in the Velo launcher.