Catgate - RoryMCDev/RoryMC GitHub Wiki
Catgate is a hybrid mode plugin which allows for Minecraft: Bedrock Accounts to join Minecraft: Java Edition servers without needing a Minecraft: Java Edition account. This is something you install in addition to Rory. Unlike Rory, Catgate can only be installed as a plugin on Spigot (including Paper and forks), Bungeecord, and Velocity, and can only be utilized on servers that have it installed.
Prerequisites
- You must own/manage the server in order to add Catgate. If you do not own the server, Catgate does not allow you to bypass logging into Java servers that require a Mojang Java account.
- The CraftBukkit/Bukkit server software is not supported. Use
floodgate-bukkit
for installing on a Spigot/Paper server.
Setting Up
NOTE: Catgate does not replace the Rory jar. If you are running a plugin version of Rory, you still MUST have Rory installed.
Any reference to Spigot here also refers to any compatible server software such as Paper.
Plugin Setup (You have Rory and Catgate on the same server)
For multi-server setups: you only are required to install Catgate on the BungeeCord or Velocity instance unless you want to use the Catgate API on the other servers - see below for the installation process.
If using Velocity: Set player-info-forwarding-mode
to LEGACY
in velocity.toml
- Download the Catgate plugin from here and add it to your plugins folder on your server (BungeeCord only requires it on the proxy - if you wish to use IP forwarding see below).
- Change the
auth-type
in the Rory config tofloodgate
. - Restart/start up the server.
Standalone Setup (Rory and Catgate are not on the same server)
- Download the Catgate plugin from here and add it to your plugins folder on your server (BungeeCord only requires it on the proxy - if you wish to use IP forwarding see below).
- Run the server with Catgate.
- Copy the
public-key.pem
file in the Catgate config folder to the same directory as Rory Standalone. DO NOT DISTRIBUTE THIS KEY TO ANYBODY! This key is what allows for Bedrock accounts to bypass the Java Edition authentication, and if anyone gets ahold of this, they can wreak havoc on your server. - Change the
auth-type
in the Rory config tofloodgate
.
Running Catgate on Spigot servers behind BungeeCord or Velocity
This is only needed when you want to use the Catgate API on your Spigot server(s) behind a proxy.
- Download the Catgate plugin from here and install it as a plugin on both BungeeCord/Velocity and the Spigot server(s).
- Enable
ip_forward
in your BungeeCordconfig.yml
if using BungeeCord - Set
player-info-forwarding-mode
toLEGACY
invelocity.toml
if using Velocity - Set
bungeecord
totrue
in yourspigot.yml
- Start the proxy server.
- Edit the Catgate config on your proxy server and set
send-floodgate-data
totrue
. - Copy both key files and the
encrypted.txt
in the proxy Catgate config folder to all Spigot servers' Catgate config folder. DO NOT DISTRIBUTE THIS KEY TO ANYBODY! This key is what allows for Bedrock accounts to bypass the Java Edition authentication, and if anyone gets ahold of this, they can wreak havoc on your server. - Restart the Spigot servers and proxy server.
Account Linking
Catgate supports account linking, allowing you to join as your Java account on the server. This is an option that can be enabled in the Catgate config. (Note that, unless using a custom command prefix or similar workaround, xbox-achievements-enabled
must be disabled during initial linking; this is due to a limitation in Bedrock.) Once enabled, the steps to link your account are as follows:
- Log in on java and run /linkaccount .
- You will get a message asking you to run the linkaccount command on Bedrock.
- Run the command given to you, and you will be kicked on Bedrock. Upon relogging, you will be logged in as your java account.
No credentials for either your Java or Bedrock account are needed nor stored in this process.
Changing/disabling the prefix
Please note: we do not recommend removing the prefix unless you are certain that no one will share a username between a Java and Bedrock player.
In your Catgate config, change username-prefix
to whichever prefix you desire - you can set it to ""
and there will be no prefix.
On some older Paper servers (or any forks that use them), you may need to also shut down your server and delete your usercache.json
file located in the same folder as your server jar to prevent users who already joined from having the old prefix. See below if you qualify.
Running commands
In some instances, you may need to wrap the Bedrock player's username in quotes; for example: /tp "*BedrockPlayer"
.
Known Issues/Caveats
Skins
Due to how Minecraft: Java Edition handles skins, Bedrock players from some platforms will appear as Steve or Alex to other Java players.
Access token can not be null or empty
This may be because you forgot to set the auth-type in the config to floodgate
. If that isn't it, check to make sure your config contains the line floodgate-key-file: public-key.pem
. If not, just copy that in directly.
Invalid packet id:
This usually means one of two things:
- You did not follow the Catgate instructions properly. However, in an unlikely scenario, this could also be an error related to uploading through FTP. Using ASCII will not work here, and you need to make sure you're on binary when uploading. We recommend using WinSCP if you need to use FTP.
- You're trying to log in without an Xbox account. Catgate requires an Xbox account to authenticate the Bedrock player.
java.lang.NumberFormatException: For input string: ""
You're trying to log in without an Xbox account. Catgate requires an Xbox account to authenticate the Bedrock player.
Rory-Catgate:51777 lost connection: Internal Exception: java.lang.NumberFormatException: For input string: "SfqdXv36" (or a similar error)
Set ip-forwarding
in your BungeeCord to true
.
Whitelist command not working
See this page.
Prefix is not changing on the server after changing it in the config.
Between the Paper builds of 1.15.2-355 and 1.16.5-505, there was a bug where Catgate players who had already connected to the server would not have their prefixed changed. Paper builds 1.16.5-506 and later fix this issue.
Ensure that you removed the usercache.json
file from the server root directory and restart your server.
Error with Forge/Fabric
At this time, there is no way to run Catgate on a Forge or Fabric server - most Bukkit/Forge hybrids do not support the complicated procedures we need to do in order to allow Bedrock players to connect (for the technically minded: these server softwares typically don't support NMS). If you wish to use Catgate in combination with Forge/Fabric, we recommend putting these servers behind BungeeCord or Velocity.
Obtaining UUIDs for Catgate players
Check the server log for their UUIDs, or use this method.
Using PlaceholderAPI
If you're using the Bukkit version of Catgate, download the Placeholder plugin here. Using the placeholders shouldn't require additional setup other than having PlaceholderAPI installed. See the section above on installing Catgate on backend servers if you wish to use this on BungeeCord.
Using Skript
If you're using the Bukkit version of Catgate, there is an unofficial plugin that adds Skript support here.