Creators
Details
1.0
Compatibility
Changes
README-en.md
Spvelocity — a Paper / Spigot plugin that downloads and launches a Velocity proxy
What is it?
Spvelocity is a Paper / Spigot plugin that automatically:
- Downloads a Velocity jar from a given URL
- Starts Velocity in a separate process
- Lets you control it in-game / from console with
/proxy start|stop|status
Perfect for quick network testing, CI pipelines, or ad-hoc test servers.
Features
- Auto-download of
velocity.jaron the very first/proxy start - Works on Paper / Spigot 1.12 – latest (built against the 1.21.4 API)
- Requires only Java 11+, recommended Java 17 or 21
- Runs in a background thread – won’t block the main server
- Stops Velocity automatically when the Paper server stops
- Simple configuration via
plugins/Spvelocity/config.yml
Requirements
- A Paper or Spigot server
(1.12 – latest, built against Paper-1.21.4) - Java 11 or newer (Velocity itself needs 11+)
- Internet access the first time you run
/proxy start(to download Velocity)
Getting started (pre-built jar)
- Download
spvelocity-<version>-shaded.jarfrom the Releases page - Drop it into
<server>/plugins - Start your Paper / Spigot server with Java 17 / 21 etc.
- Run in-game or in console:
→/proxy startvelocity.jaris downloaded toplugins/Spvelocity/proxy/and booted on port 25577
Building from source
git clone https://github.com/<YOUR-USER>/spvelocity.git
cd spvelocity
mvn clean package # produces target/spvelocity-*-shaded.jar
Configuration — config.yml
velocity:
download-url: "https://api.papermc.io/v2/projects/velocity/versions/3.3.0-SNAPSHOT/builds/261/downloads/velocity-3.3.0-SNAPSHOT-261.jar"
jar-name: "velocity.jar"
port: 25577
- Copy the download URL from PaperMC’s downloads page:
https://papermc.io/downloads#Velocity - Stable versions (
3.2.0, etc.) keep the same URL. - For SNAPSHOTs you may want a script that queries the API for the latest build or update the URL manually.
Commands & permissions
| Command | Description | Permission | Default |
|---|---|---|---|
/proxy start |
Download & start Velocity | spvelocity.command |
OP |
/proxy stop |
Stop the running Velocity instance | spvelocity.command |
OP |
/proxy status |
Show proxy status | spvelocity.command |
OP |
How it works
SpvelocityManagerchecks whetherplugins/Spvelocity/proxy/velocity.jarexists- If not, it downloads it via Apache Commons IO from the configured URL
- Runs
java -jar velocity.jar --port <port>through ProcessBuilder - Redirects proxy output to the Paper console
- When the Paper server shuts down, the child process is destroyed via
destroy()
License
MIT License — see LICENSE for details.
Fork, modify, redistribute, enjoy!
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:SvLKZLYF:ySUQPFxH"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:SvLKZLYF:ySUQPFxH"
}

