How to Allow Non-Premium Versions on Your Minecraft Server
Important Warning
Allowing non-premium versions on your server presents risks:
- Reduced security: Anyone can impersonate a player
- No Mojang authentication: Accounts are not verified
- Risk of duplicate usernames: Multiple players can have the same name
- Possible violations: May violate Mojang's Terms of Service
Recommendation: Use this configuration only for private servers with friends or for testing purposes.
Prerequisites
- Administrator access to your game panel
- A Minecraft server (Spigot, Paper, or vanilla)
- Understanding of security risks
Method 1: Basic Configuration (Single Server)
This method works for a standard Minecraft server without BungeeCord.
Step 1: Disable Online Authentication
- Log in to your game panel
- Go to the Files or File Manager section
- Open the
server.propertiesfile - Find the following line:
online-mode=true
- Change it to:
online-mode=false
- Save the file
Step 2: Restart the Server
- Return to the panel homepage
- Restart your Minecraft server
- Wait for the server to fully start
Step 3: Test the Connection
Players with non-premium versions can now connect with any username.
Method 2: With Authentication Plugin (Recommended)
To improve security, use an authentication plugin like AuthMe.
Step 1: Install AuthMe
- Download AuthMe from https://www.spigotmc.org/resources/authmereloaded.6269/
- Place the JAR file in the
pluginsfolder - Restart the server
Step 2: Disable online-mode
As in Method 1, change in server.properties:
online-mode=false
Step 3: Configure AuthMe
Open plugins/AuthMe/config.yml and verify these settings:
settings:
# Force registration
force:
forceRegister: true
forceLogin: true
# Spawn protection
isTeleportToSpawnEnabled: true
# Sessions
sessions:
enabled: true
timeout: 10
# Messages in English
messages:
language: 'en'
Step 4: Player Commands
Players will need to register and login:
First connection:
/register <password> <password>
Subsequent connections:
/login <password>
Change password:
/changepassword <old> <new>
Method 3: Configuration with BungeeCord
If you're using a BungeeCord network, the configuration is different.
BungeeCord Configuration
Step 1: Modify config.yml on the Proxy
Open config.yml on the BungeeCord server:
online_mode: false
WARNING: On BungeeCord, it's online_mode with an underscore, not a hyphen.
Step 2: Configure Backend Servers
On all backend servers, in server.properties:
online-mode=false
In spigot.yml:
settings:
bungeecord: true
Install an Authentication Plugin
For BungeeCord, use JPremium or AuthMe in BungeeCord mode.
Option A: JPremium (Recommended for BungeeCord)
- Download JPremium
- Install it on the BungeeCord proxy AND on all backend servers
- Configure it to allow non-premium connections
JPremium configuration (config.yml):
# Mixed mode: premium and non-premium
online-mode: auto
# Allow non-premium connections
allow-premium-users: true
allow-offline-users: true
Option B: AuthMe with BungeeCord
- Install AuthMeBungee on the proxy
- Install AuthMe on all backend servers
- Configure synchronization between them
Security and Protection
Protection Against Identity Theft
With online-mode=false, anyone can take an administrator's username. Here's how to protect yourself:
1. Mandatory Authentication Plugin
Use AuthMe or JPremium to force players to register.
2. Administrator Account Protection
In AuthMe (config.yml):
settings:
security:
# Block important usernames
unregisteredGroup: 'unregistered'
protection:
# List of protected usernames
enableProtection: true
countries: []
# Forbidden usernames
UnrestrictedNames:
- 'Admin'
- 'Moderator'
- 'Owner'
3. Whitelist for Admins
Enable whitelist and manually add administrators:
white-list=true
Then in-game:
/whitelist add AdminName
/whitelist on
Recommended Security Plugins
AuthMe Reloaded:
- Login/registration system
- Anti-spam protection
- Anti-bot captcha
LoginSecurity:
- Alternative to AuthMe
- Lighter
- Easy to configure
nLogin:
- Modern and performant
- Database support
- Intuitive interface
Advanced AuthMe Configuration
MySQL Database
For a server with many players, use MySQL:
In AuthMe's config.yml:
DataSource:
# Database type
backend: 'MYSQL'
# Connection information
mySQLHost: 'localhost'
mySQLPort: '3306'
mySQLDatabase: 'authme'
mySQLUsername: 'root'
mySQLPassword: 'your_password'
mySQLTablename: 'authme'
Limit Login Attempts
security:
captcha:
# Enable captcha after X attempts
useCaptcha: true
maxLoginTries: 5
captchaLength: 5
Automatic Sessions
To avoid asking for password on every connection:
settings:
sessions:
enabled: true
# Duration in minutes
timeout: 10
IP Protection
Link accounts to an IP address:
settings:
restrictions:
# One account = one IP
maxRegPerIp: 1
# Maximum number of accounts per IP
maxLoginPerIp: 1
AuthMe Administrator Commands
Player Management
/authme register <player> <password>
Manually register a player
/authme unregister <player>
Delete a player's account
/authme forcelogin <player>
Force a player to login
/authme changepassword <player> <new>
Change a player's password
Information
/authme version
Display AuthMe version
/authme reload
Reload configuration
/authme debug
Enable debug mode
Common Issues and Solutions
Premium Players Can No Longer Connect
If you have players with official Mojang accounts:
Solution 1: Use JPremium in mixed mode (supports premium AND non-premium)
Solution 2: Keep online-mode=true and install a plugin like FlexibleLogin
"Failed to verify username" Error
- Check that
online-mode=falseinserver.properties - Completely restart the server
- Clear Minecraft launcher cache
AuthMe Not Working
- Check that the plugin is in the
pluginsfolder - Check logs for errors
- Make sure
online-mode=false - Verify AuthMe version is compatible with your server
Players Bypass Authentication
- Check that
forceRegister: truein config - Install ProtocolLib (AuthMe dependency)
- Enable spawn protection in AuthMe
Duplicate Usernames
With online-mode=false, two players can have the same username if they connect simultaneously.
Solution: AuthMe automatically prevents simultaneous connections with the same username.
Modern Alternatives
1. FastLogin
Modern plugin that allows automatic connections for premium accounts:
- Automatically detects premium accounts
- No need to authenticate for official accounts
- Supports BungeeCord and Velocity
2. nLogin
Modern alternative to AuthMe:
- More intuitive interface
- Native BungeeCord support
- Optimized database
3. JPremium
Ideal for BungeeCord networks:
- Mixed premium/non-premium mode
- Transparent authentication
- Full BungeeCord support
Final Recommendations
For a Server with Friends
Simple configuration:
online-mode=false- Whitelist enabled
- Manual addition of authorized usernames
For a Public Server
Secure configuration:
online-mode=false- AuthMe with MySQL
- Protection of important usernames
- Login attempt limitation
- Anti-bot captcha
For a BungeeCord Network
Complete configuration:
- BungeeCord with
online_mode: false - JPremium in mixed mode
- Shared database
- Enhanced security on the proxy
Conclusion
Allowing non-premium versions requires disabling online-mode and installing an alternative authentication system like AuthMe to maintain a minimum level of security. This configuration is acceptable for private servers but requires increased vigilance on public servers. Always remember to protect administrator accounts and monitor suspicious connections.


















