SideGate is a plugin for Minecraft servers (Spigot/Paper) designed for hybrid login environments. It allows server administrators to keep online-mode=true for premium authentication while still allowing controlled guest access for selected offline-mode users.
Operate a secure premium server while maintaining a designated entry path for authorized guest players.
- Hybrid Login Flow: Premium players are passed to normal server authentication; guest candidates are handled by SideGate's login injection path.
- Manual Premium Override:
premium-usernamesalways bypass guest flow and stay in premium path. - Guest Admission Modes:
allow-all-guestsorallowed-guestscontrols who can enter as guest. - Optional Mojang API Check:
auto-detect-premiumuses Mojang profile lookup with internal cache. - Guest Join Handling: Guest users are tagged (
SideGate_Guest), receive configurable join title/subtitle/messages, and are assigned configured gamemode. - Guest Chat Prefix: Only players with
SideGate_Guesttag receive the configured chat prefix. - Runtime Reload Command:
/sidegate reloadreloads config and rebinds runtime listeners. - Public Integration API: Other plugins can query SideGate state via Bukkit Services (
SideGateApi).
- Download the latest SideGate
.jarfrom Releases. - Place it in your server's
pluginsdirectory. - Ensure ProtocolLib is installed.
- Set
online-mode=trueinserver.properties. - Start or restart the server to generate config files.
Edit plugins/SideGate/config.yml:
# SideGate Configuration
# Master switch for guest mode
enable-guest-mode: true
# Auto-detect premium by Mojang API
auto-detect-premium: true
# If true: all non-premium users can enter as guests
# If false: only allowed-guests list can enter
allow-all-guests: false
# Always treat as premium
premium-usernames:
- "TamKungZ"
# Used only when allow-all-guests is false
allowed-guests:
- "PlayerName1"
- "PlayerName2"
guest-settings:
default-gamemode: "SURVIVAL"
chat-prefix: "&7[Guest] &r"
messages:
join-title: "&cACCESS RESTRICTED"
join-subtitle: "&7Guest Mode"
join-message:
- "&c=================================="
- "&6 Welcome to SideGate Protocol"
- "&7 Account Status: &cGuest (Non-License)"
- "&7 You have restricted gameplay access."
- "&c=================================="SideGate works by intercepting login packets via ProtocolLib and applying controlled login-state injection for authorized guest sessions.
- Premium users continue through normal Mojang authentication flow.
- Guest users are mapped to offline UUID behavior and marked for guest restrictions.
- Config and runtime behavior can be reloaded through
/sidegate reload.
SideGate exposes me.tamkungz.sidegate.api.SideGateApi through Bukkit ServicesManager.
Provided API methods include:
isGuestModeEnabled()isAutoDetectPremiumEnabled()isAllowAllGuestsEnabled()isConfiguredPremium(String username)isKnownPremiumCached(String username)checkPremium(String username)isGuest(Player player)
Please submit issues and reproduction details on GitHub:
When reporting a problem, include at minimum:
- Server software and exact version (Spigot/Paper/Purpur)
- Java version
- ProtocolLib version
- SideGate version
- Full startup/login logs related to the issue
- Java: 17 or higher
- Server software: Spigot/Paper/Purpur (Bukkit-compatible)
- Dependency: ProtocolLib 5.x+
Allowing guest/offline access has security risks, including username impersonation. For production servers, pair SideGate with an authentication plugin and strict permission setup.
This project is closed source.
Public reference snapshot:
sidegate-1.0.0-rc.1- https://github.com/TamKungZ/SideGate
The public snapshot is provided for viewing, compatibility reference, and issue reporting.
Allowed:
- Normal usage of SideGate on your server.
- Building separate addon plugins that integrate via the public SideGate API.
Restricted without explicit permission:
- Modifying, redistributing, relicensing, or selling SideGate.
- Repackaging SideGate source or binaries.
Commercial use / monetization requires prior permission by email:
See LICENSE for full legal terms.