
You found a cool plugin. You installed it directly on your production server during peak hours. It conflicted with LuckPerms. Everyone lost their permissions. Admins had no commands. Players panicked.
This happens every week on servers that do not have a test environment. Every update, every new plugin, every config change is a gamble when you test it on the live server. Here is how to stop gambling.
Why Testing Matters
Plugin updates change internal data formats, add new config options, and sometimes break compatibility with other plugins. You cannot predict these interactions by reading changelogs.
Common failures from untested updates:
- Economy plugin update resets all player balances
- Permissions plugin update changes config syntax, defaults to deny-all
- Version mismatch between two plugins causes startup crash loops
- New config options override your customizations with defaults
A test server catches all of these before they touch real player data.
Step 1: Create a Test Server
On a Pterodactyl panel (like Space-Node), create a second server instance. It does not need much power:
- 2 GB RAM is enough for testing with 1-2 players
- Skip the big storage allocation. You only need enough for the world seed to generate and plugins to load
Name it something clear: "MyServer - TEST" so you never confuse it with production.
Step 2: Clone Your Production Setup
Copy your production server's files to the test server. You need:
- Server JAR (paper.jar, same version)
- All plugin JARs from
plugins/ - All plugin configs from
plugins/*/ - Server configs:
server.properties,spigot.yml,paper.yml,bukkit.yml, etc.
You do NOT need to copy the world folder. Let the test server generate a fresh world. You are testing plugin behavior, not world data.
Using SFTP:
- Connect to your production server via SFTP
- Download the
plugins/folder - Download the root config files
- Connect to your test server via SFTP
- Upload everything
Using the panel file manager:
If your panel supports file manager (Space-Node does), download the files from production and upload them to the test instance directly in your browser.
Step 3: Adjust the Test Server Settings
Before starting the test server, change these settings so it does not conflict with production:
In server.properties:
server-port=25566
motd=TEST SERVER - DO NOT USE FOR PLAY
white-list=true
Change the port to something different from production. Enable the whitelist and add only your admin accounts.
In plugin configs, disable any external integrations:
- Discord bots: disable the bot token or set a test bot token
- Database connections: point to a separate database or use SQLite
- Voting: disable vote listeners
Step 4: Test Your Changes
Start the test server. Join it and verify everything works as expected in the current state. Then:
- Make one change at a time (update one plugin, edit one config)
- Restart the test server
- Check the console for errors
- Join and test the affected functionality
- If it works, note the change and move to the next one
- If it breaks, you know exactly which change caused it
Step 5: Push Changes to Production
Once all changes pass testing:
- Stop your production server
- Take a backup (download the full server directory or use a backup plugin)
- Apply the tested changes: upload updated plugin JARs and config files
- Start the production server
- Monitor the console for errors for the first 10 minutes
If something goes wrong despite testing, restore from the backup.
Testing Checklist
Use this checklist for every update cycle:
| Check | Status |
|---|---|
| Test server starts without console errors | |
| All plugins load (check /plugins command) | |
| Permissions work (test as different ranks) | |
| Economy balances display correctly | |
| Warps and homes work | |
| Player data is readable (test /seen, /balance) | |
| Chat formatting is correct | |
| Custom commands work | |
| No TPS drops (run /spark tps for a few minutes) | |
How Often to Test
- Plugin updates: Always test first. No exceptions.
- Minecraft version updates (1.21 to 1.22): Absolutely test. Major versions break plugins constantly
- Config changes: Test if the change affects gameplay. Skip for cosmetic changes like MOTD text
- New plugins: Always test. New plugins are the most common cause of conflicts
The Cheap Insurance
A test server costs almost nothing. On Space-Node, a 2 GB plan runs at a few euros per month. You only need it active when you are testing. That is far cheaper than the cost of restoring a corrupted production server, calming angry players, and rebuilding broken configurations.
Get a test server here. Keep your production server safe.
