Free · Paper · Purpur · Folia · 1.20.5+

Give your server superpowers in Velo Client.

One jar. Teammate outlines through walls, waypoints, native toasts and countdowns, camera effects, Discord presence, mod hints and proxy-free transfers - for every player using Velo. Everyone else never notices it's there.

  • Can't kick, ban or slow anyone down
  • Everything shown is labelled "From your server"
  • Java API + an open protocol
FROM SKYWARS.GG
Island capture0%
Steve 12m
Diamond vault 48m
Alex · 96m
3 Game starts
FROM SKYWARS.GG
Round 2

The island shrinks in 30 seconds.

Toasts
Runs on PaperPurpurFoliaPufferfishSpigot* · Minecraft 1.20.5 - 26.x · Java 21+
Features

Everything a modern server wants. None of the resource-pack hacks.

Teammates

Outlines through walls in your team color, names with distance, and an arrow at the screen edge when they're behind you. Set them per round - or for a time window.

VeloBridge.teammates(p, team, "#4ade80", 600)

Waypoints & pings

Markers in the world with a pulsing ring, label and live distance - objectives, beds, the flag. Same id moves it, a timer removes it.

VeloBridge.waypoint(p, "flag", loc, "Flag", "#f4b82e", 0)

Native UI

Toasts, a big countdown that pops each second, labelled progress bars. Crisp at every GUI scale, no resource pack - and always tagged "From your server".

VeloBridge.countdown(p, "Game starts", 10)

Camera & mood

Screen shake for explosions and boss stomps (the view moves, never the aim), colored vignettes and full-screen tints for events.

VeloBridge.shake(p, 0.6, 800)

Discord Rich Presence

Your server writes the status friends see on Discord: "In BedWars · Team Red · 2/8". Placeholders in the config, or per player from code.

VeloBridge.presence(p, "In BedWars", "Team Red")

Mod hints

Tell players which mods you don't allow - Wurst, Meteor, Glazed, X-Ray, Baritone and more come as ready lists. Checked on the player's PC, shown as a friendly heads-up. Never enforced, so false positives can't hurt anyone.

forbid-presets: [cheat-clients, often-banned]

Module control

Switch specific Velo modules off on your server - Freelook in a hide-and-seek mode, the minimap in UHC. Enforced while they play there, back on when they leave. Players see which modules you turned off.

disabled-modules: [freelook]

Anti-cheat insight

Velo tells your server which of its modules are on, live. Instead of banning a whole client, your anti-cheat can react to exactly the module that matters.

@EventHandler VeloModulesChangeEvent

Transfers & pings

Move players between servers with the 1.20.5+ transfer packet - no proxy. Ask the client its ping to each server and send it to the closest one. Velo warms the target up first, so the switch is faster.

VeloBridge.pings(p, servers).thenAccept(...)

Instant resource packs

Velo downloads your pack in the background before the prompt even shows, straight into Minecraft's own cache - the pack screen finishes immediately.

precache-packs: [{ id, url, sha1 }]

World Notes, your rules

Velo's floating notes on your server: switch them off, block areas like spawn, or cap how many each player may place.

notes: { max-per-player: 20 }

Velo partner listing

Anonymous numbers (Velo players online, versions) put your server on the Velo partner radar - the way to get featured in the launcher. No names, opt-out with one line.

stats: true
Setup

Live in a minute. Really.

  1. 1

    Drop in the jar

    Put VeloBridge-1.0.0.jar into your plugins/ folder and restart. On a network, install it on every backend server.

    Download the jar
  2. 2

    Name your server

    Open plugins/VeloBridge/config.yml, set your name and color - that's what players see on everything you send.

    server:
      name: "SkyWars.gg"
      color: "#5aa9ff"
  3. 3

    Reload and play

    Run /velobridge reload, then try /velobridge countdown * 5 Test. Every Velo player sees it - nobody else is touched.

    > velobridge players
    3 of 41 players use Velo:
Reference

The whole config.yml

Loading…
Java API

Five lines to a feature your players will talk about.

Add depend: [VeloBridge] (or softdepend) to your plugin.yml and compile against the jar. Every call is safe for players without Velo and safe 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);
}

Everything in VeloBridge

PlayersisVelo · info · onlineVeloPlayers
UItoast · countdown · progress · removeProgress
Effectsshake · vignette · tint · clearEffects
Worldteammates · waypoint · removeWaypoint
Presencepresence
ModulesdisableModules
Networktransfer · pings
EventsVeloPlayerJoinEvent · VeloModulesChangeEvent
Open protocol

Not on Bukkit? Speak the protocol.

Minestom, Velocity, your own server - it's one plugin channel, velo:bridge, with one UTF-8 JSON object per message. Every message has a "t" (type); unknown types and fields are ignored on both sides, so you can always add more.

Client → Server

helloprotocol, Velo version, Minecraft version, active module ids. Sent once on join.
modulesThe active module ids, whenever they change.
ping_resultnonce, results { "host": ms } (-1 = unreachable).

Server → Client

welcomename, color - shown on everything you send.
toasttitle, text, seconds
countdownlabel, seconds
progress / progress_removeid, label, value 0-1
shakeintensity 0-1, millis
vignette / tintcolor, strength 0-1, millis · effects_clear
teammateslist [ { uuid, name } ], color, seconds
waypoint / waypoint_removeid, x, y, z, label, color, seconds · waypoints_clear
presencedetails, state
mod_rulesforbid / recommend [ { match: id|modrinth|name, value, label } ], message
lock_modulesmodules [ ids ], reason
pingnonce, servers [ "host:port" ]
precachepacks [ { id (pack UUID), url, sha1 } ]
preconnecthosts [ "host:port" ]
notesenabled, maxPerPlayer, blocked [ { world, x1, z1, x2, z2 } ]
// Server → client, raw bytes on velo:bridge (no length prefix)
{ "t": "toast", "title": "Round 2", "text": "The island shrinks in 30 seconds", "seconds": 6 }
Module ids

Every Velo module you can switch off.

Use these ids in disabled-modules, disableModules(...) and the modules players report.

FAQ

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?

Everything you send carries a "FROM YOUR SERVER" tag in your color, and Velo's own UI never uses it. 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 of players. 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 reach out - partner servers get featured in the Velo launcher.