Infrastructure · Standalone Java App

One proxy. Self-updating, self-healing.

SwagProxy boots Velocity with Geyser and Floodgate baked in, then supervises that process for its entire life: auto-updating components with atomic staging and crash-window rollback, recovering from bad builds automatically, and running your restart schedule across timezones correctly. Point Java and Bedrock players at one address and never touch it again.

Java + Bedrock, one port each Velocity · Geyser · Floodgate Zero-downtime rollback Java 21+
SwagProxy launcher architecture SwagProxy is a launcher jar that boots a Velocity proxy with Geyser and Floodgate plugins inside. Java players connect over TCP, Bedrock players over UDP, and Velocity routes both to the hub and main servers. Java playerTCP 25565 Bedrock playerUDP 19132 SwagProxy.jarDownloads, configs, boots Velocity proxyRouting and sessions Geyser pluginBedrock translation FloodgateXbox auth, no Java acct Hub server Main serversvia /server, portals
There is exactly one proxy. Players connect once and stay connected for their whole session.
01

Atomic staged updates, verified rollback

New builds are downloaded, SHA256-verified, and staged as .jar.staged. The live jar is never touched outside an actual restart. If Velocity crashes within the rollback window after an update, every swapped jar is automatically restored from backup and the bad build is marked "skipped" forever.

02

Fresh-install candidate probing

On a brand-new install there's no known-good baseline to roll back to. If boot fails, SwagProxy automatically walks up to 5 alternate Velocity builds, then alternate Geyser builds, until something survives, with a full diagnostic if every combination fails.

03

Timezone-aware restart scheduling

Every restart-schedule entry carries its own java.time.ZoneId. A proxy hosted on a UTC server can restart at 4:30 AM Eastern every day, correctly following DST, without SwagProxy ever assuming the host machine's local time.

04

Crash-loop supervision

Unexpected crashes trigger an exponential backoff relaunch (1s, 2s, 4s… capped at 60s). Cross a configurable crash-loop threshold and SwagProxy stops auto-relaunching entirely and prints a loud diagnostic, rather than spinning the CPU on a broken process.

Quick start: one command, on an empty folder
mkdir my-proxy && cd my-proxy
java -jar SwagProxy.jar