Requirements
Why the jar is built against the Velocity 3 API
Why the jar is built against the Velocity 3 API
It runs on Velocity 4 regardless: every API rLogin touches —
PreLoginEvent
and its forceOnlineMode/forceOfflineMode results, ServerPostConnectEvent
and getPreviousServer, plugin messaging, isOnlineMode — is unchanged
between the two, and Velocity 4 still reads the same velocity-plugin.json
descriptor.Building against the version 4 API is a different matter: its class files
target Java 25, and rLogin ships as one jar shared with the Paper half,
where Java 21 is still what most servers run. Compiling against it would drop
every Java 21 server to gain nothing, since the calls are identical either
way.Download
Hangar
PaperMC’s own platform. Available now — start here.
Modrinth
Coming soon: the project is still awaiting review.
GitHub Releases
Every version, with its changelog and source.
rLogin-<version>.jar.
What online-mode has to be
The single setting people get wrong. rLogin refuses every connection when these disagree, and says so in the console — a silent half-working server is worse than one that won’t start.The logic is one sentence: with online-mode on, the server or proxy turns
away every player without a Minecraft account before rLogin is consulted at
all. On a network built for those players, that is the whole audience gone,
so
auto and offline require it off. auth-mode: online is the one case
where turning them away is the point, and there online-mode does the job for
free.One jar, both platforms
There is a single download:rLogin-<version>.jar. The same file goes into
a Paper or Folia server’s plugins/ folder and into a Velocity proxy’s — you
do not pick a build, and there is no separate proxy download.
How one jar runs on two platforms
How one jar runs on two platforms
Paper and Velocity find their entry point in completely different ways that do
not collide. Paper reads
plugin.yml at the jar root and reflectively loads
the class named there. Velocity reads velocity-plugin.json, emitted at
compile time from the annotated class, and loads only what that descriptor
names.Neither platform’s API is bundled, so each side only ever touches its own half
— the Velocity classes are simply never loaded on Paper, and vice versa.Standalone server
One Paper server, no proxy,online-mode: false in server.properties.
1
Install PacketEvents
Download PacketEvents and put it
in
plugins/. See why below.2
Install rLogin
Put
rLogin-<version>.jar in plugins/ as well.3
Start the server
That’s it. Premium verification turns itself on because it detected the one
setup that needs it.
Behind a Velocity proxy
1
Install rLogin on every backend
The same jar in each backend’s
plugins/. Each keeps online-mode: false
and has Velocity Modern Forwarding configured as usual.2
Install the same jar on the proxy
Drop it into Velocity’s
plugins/, and set online-mode = false in
velocity.toml — rLogin decides per player up there, which it cannot do if
Velocity has already turned the non-premium ones away.3
Point the backends at one database
Only needed if you have more than one backend — otherwise an account
created on one is unknown on the others. See
Database.
4
Name your auth server
In the proxy’s
plugins/rlogin/config.yml, set login-servers.servers to
the server that should ask players to log in. See
Proxy setup.PacketEvents is not needed here. The proxy already verified the connection
against Mojang before the backend ever saw it, and verifying twice would be
pointless.
Premium-only server
Setauth-mode: online in rLogin’s config.yml, keep online-mode on, and
start. Every player is premium by definition, so nobody is ever asked for a
password — rLogin is there for the spawn points, the messages, two-factor
authentication on top of premium, and /rlogin administration.
auth-mode: online is what makes online-mode the correct setting rather than
a contradiction. Leave it on the default auto and rLogin will refuse every
connection, because auto promises non-premium players a way in that
online-mode has already taken away.PacketEvents
Verifying a premium account means performing the encryption handshake the server itself skipped, and that has to happen at the packet level, before Bukkit fires a single event. PacketEvents is what makes that possible. The alternative would be to start anyway and quietly treat every premium player as cracked — which means their name is claimable by anyone, and the server silently stops doing the one thing it was installed to do. Refusing to start is noisy, but it is honest, and it takes a minute to fix.PacketEvents is licensed GPL-3.0 and is never bundled into rLogin. It stays a
separate plugin that rLogin talks to at runtime.
auth-mode: offline, which turns
off Mojang verification altogether and asks everyone for a password.
Next
Quickstart
The first five minutes, from a player’s point of view.
config.yml
Every setting, explained.