
SideGate
Selective Guest Access for Online-Mode Servers
Maintain your server's security integrity without excluding friends.

The Administrator's Dilemma
One of the most persistent challenges for private server administrators is the "Mixed Group" scenario: You have a group of ten friends who want to play together. Nine of them own a legitimate Minecraft license, but one does not.
Historically, the only solution was to set online-mode=false in your server properties. However, this compromise comes at a steep cost:
- Security Risk: Authentication is disabled for everyone.
- Identity Loss: Premium players lose their official skins.
- UUID Instability: Player data becomes tied to offline UUIDs, complicating plugin management.
The SideGate Solution
SideGate solves this problem by allowing your server to remain in Online-Mode (Premium) while creating a controlled "side entrance" for specific, authorized guests.
Legitimate players authenticate securely via Mojang sessions (retaining their skins and UUIDs), while whitelisted guests are permitted to bypass this check through a secure injection method.
Key Features
- True Online-Mode Environment: The server properties remain set to
online-mode=true. Premium players enjoy full security and skin support.
- Smart Auto-Detection: The plugin automatically checks the Mojang API upon connection. If a username belongs to a legitimate account, they are passed to the standard secure login process. If not, they are processed according to your guest policies.
- Selective Whitelisting: Administrators can explicitly define which non-premium usernames are allowed to enter.
- Guest Restrictions: Automatically enforce specific GameModes (e.g., Survival or Adventure) and apply distinct chat prefixes to guest players for easy identification.
Installation
- Prerequisite: Ensure you have ProtocolLib (Version 5.0 or higher) installed.
- Download the SideGate
.jar file and place it in your /plugins folder.
- Open your
server.properties file and strictly set:
online-mode=true
- Restart your server.
Configuration
The config.yml allows for precise control over access policies.
# SideGate Configuration
# 1. Master Switch
enable-guest-mode: true
# 2. Auto-Detection (Recommended)
# Automatically checks if a player has a paid account via Mojang API.
# true = Premium players login normally; others are checked against guest rules.
auto-detect-premium: true
# 3. Access Control
# false = strict whitelist (only names in 'allowed-guests' can join).
# true = allow all non-premium connections (simulates offline mode behavior).
allow-all-guests: false
# 4. Guest Whitelist
allowed-guests:
- "FriendName1"
- "FriendName2"
# 5. Guest Restrictions
guest-settings:
default-gamemode: "SURVIVAL"
chat-prefix: "&7[Guest] &r"
Technical Requirements
- Java: JDK 17 or higher
- Server Core: Spigot, Paper, or Purpur (1.20.x+)
- Dependency: ProtocolLib
Security Notice
While SideGate allows the server to run in Online Mode, players connecting via the guest bypass do not authenticate with Mojang's session servers. This means their identity cannot be cryptographically verified by the game itself.
Strong Recommendation: It is highly advised to use this plugin alongside an authentication plugin (such as AuthMe) to force guest players to register and log in with a password. This prevents unauthorized users from impersonating your whitelisted guests.