NOTE: This is work in progress. More specifics will be added soon, with step-by-step bash commands/screenshots where necessary. This is also entirely off my own back, and so if there is an issue with it, please do not report it to the MCPC+ team, report it to me, so that it can be fixed or clarified in the post. If any of the FTB team deem this unsuitable material for their forum, then I simply request that they notify me and allow me to grab a copy/paste before deletion, so that I can repost it somewhere more suitable.
General MCPC+ support links:
https://github.com/MinecraftPortCentral/MCPC-Plus - MCPC+ github and issue tracker.
MCPC+ IRC channel, on webchat.esper.net join channel #mcportcentral (be prepared to wait around for a while and have your crash report pastebinned and ready).
The meat & potatoes of the post:
So, you have a crash or bug report? Nice. But you say you're running MCPC+?
Well, that's no problem. But you do need to determine whether or not the issue is with MCPC+ or with the mod in question. So here's a rough-and-ready guide to doing so.
Before we go on, I'd like to state that if you are running into trouble using MCPC+ on your server, your first port of call for support should be the MCPC+ team itself, and not FTB or the mod authors.
Step 1: Read your logs!
So, the first step with ANY crash should be to read your crash report. You can find this in /path/to/your/ftb/server/folder/crash-reports and they will be listed with the date and time that they occurred in the filename. Open the most recent one, and you will see something similar to this.
---- Minecraft Crash Report ----
// Why is it breaking
Time: 12/20/13 11:11 PM
Description: Exception in server tick loop
java.lang.NullPointerException
at codechicken.lib.world.WorldExtensionManager.preTick(WorldExtensionManager.java:239)
at codechicken.lib.world.WorldExtensionManager.access$400(WorldExtensionManager.java:25)
at codechicken.lib.world.WorldExtensionManager$WorldExtensionServerTickHandler.tickStart(WorldExtensionManager.java:160)
at cpw.mods.fml.common.SingleIntervalHandler.tickStart(SingleIntervalHandler.java:28)
at cpw.mods.fml.common.FMLCommonHandler.tickStart(FMLCommonHandler.java:122)
at cpw.mods.fml.common.FMLCommonHandler.onPreWorldTick(FMLCommonHandler.java:295)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:652)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:276)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:587)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)
Oh god, what does all this mean? Well, this is telling you when the error occurred, and who's code caused it. Note that the crash report is referencing codechickenlib, so I now know that this crash inparticular was caused by one of the mods using chickenbones' library.
This is generally how you find out what mod is causing the error that crashes the server. If you see ANY reference in here to onibait, blood, MCPC+ or Bukkit, or any of the plugins that you have installed, you should stop now and bluelight it over to the guys at MCPC+. If you can't find anything like that in the stack trace, then continue on to the next step.
Step 2: Testing it in Forge (single player method).
Great, there's no reference to the above in the crash report. That's one step closer to solving the mystery. Now, this is when you need to check whether or not the bug exists in Forge itself. Note that you would be best off skipping to step 3 if you have the means to create a copy of and either run the server on your box alongside the other one, or can download all the files from your hosting provider and test it locally. This step is just a quick and dirty way of testing a bug when you know exactly what happened.
So, go ahead and load up your modpack. Create a new world in singleplayer, and recreate the setup that was causing the issue. If you build the setup and the bug doesn't exist, then off you pop to MCPC+ to file a bug report. If the issue does exist in the standard Forge environment, then you should go to the relevant mod author and file a bug report with them. If you suspect the issue is related to your particular world/scenario that is on your server, then continue on to step 3.
Step 3: Duplicating the server, and testing with standard Forge.
Weird stuff can happen in the land of multiplayer, and if you can't be certain that the conditions you are testing in a fresh world are exactly the same as what's on your server, then you need to go a bit further down the rabbit hole. Downloading an entire world can be a pain, I've done it before and it is dull, but it is also NECESSARY to get this out of the way so that the right developer can get onto fixing the issues.
People with FTP access to their server should download the contents of "world", "mods" and "configs" from their host to their local PC, whilst people with SSH can run a cp to a target directory, or people with RDP on Windows can just copy/paste the entire folder to somewhere else to test.
You will need to grab the relevant forge server version from http://files.minecraftforge.net/
You will be able to tell which one you need, by looking in the bottom left of the minecraft startup screen when you launch your modpack, if should say "Minecraft Forge version xxx". So go ahead and download the relevant version, and install it into your directory. Run the server with the same settings that you do for your server instance, then connect ingame to 0.0.0.0 (localhost) and attempt to crash the Forge server. If you can crash it in plain Forge, then your report needs to go to the relevant mod author. If you cannot, then to MCPC+ you go.
This is not designed to be an exhaustive guide to troubleshooting, but rather a quick overview of the process you should go through for all crashes relating to running MCPC+ as your server. Hopefully this will result in happier mod devs, more effective MCPC+ reporting, and a better time for everyone.
General MCPC+ support links:
https://github.com/MinecraftPortCentral/MCPC-Plus - MCPC+ github and issue tracker.
MCPC+ IRC channel, on webchat.esper.net join channel #mcportcentral (be prepared to wait around for a while and have your crash report pastebinned and ready).
The meat & potatoes of the post:
So, you have a crash or bug report? Nice. But you say you're running MCPC+?
Well, that's no problem. But you do need to determine whether or not the issue is with MCPC+ or with the mod in question. So here's a rough-and-ready guide to doing so.
Before we go on, I'd like to state that if you are running into trouble using MCPC+ on your server, your first port of call for support should be the MCPC+ team itself, and not FTB or the mod authors.
Step 1: Read your logs!
So, the first step with ANY crash should be to read your crash report. You can find this in /path/to/your/ftb/server/folder/crash-reports and they will be listed with the date and time that they occurred in the filename. Open the most recent one, and you will see something similar to this.
---- Minecraft Crash Report ----
// Why is it breaking
Time: 12/20/13 11:11 PM
Description: Exception in server tick loop
java.lang.NullPointerException
at codechicken.lib.world.WorldExtensionManager.preTick(WorldExtensionManager.java:239)
at codechicken.lib.world.WorldExtensionManager.access$400(WorldExtensionManager.java:25)
at codechicken.lib.world.WorldExtensionManager$WorldExtensionServerTickHandler.tickStart(WorldExtensionManager.java:160)
at cpw.mods.fml.common.SingleIntervalHandler.tickStart(SingleIntervalHandler.java:28)
at cpw.mods.fml.common.FMLCommonHandler.tickStart(FMLCommonHandler.java:122)
at cpw.mods.fml.common.FMLCommonHandler.onPreWorldTick(FMLCommonHandler.java:295)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:652)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:276)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:587)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)
Oh god, what does all this mean? Well, this is telling you when the error occurred, and who's code caused it. Note that the crash report is referencing codechickenlib, so I now know that this crash inparticular was caused by one of the mods using chickenbones' library.
This is generally how you find out what mod is causing the error that crashes the server. If you see ANY reference in here to onibait, blood, MCPC+ or Bukkit, or any of the plugins that you have installed, you should stop now and bluelight it over to the guys at MCPC+. If you can't find anything like that in the stack trace, then continue on to the next step.
Step 2: Testing it in Forge (single player method).
Great, there's no reference to the above in the crash report. That's one step closer to solving the mystery. Now, this is when you need to check whether or not the bug exists in Forge itself. Note that you would be best off skipping to step 3 if you have the means to create a copy of and either run the server on your box alongside the other one, or can download all the files from your hosting provider and test it locally. This step is just a quick and dirty way of testing a bug when you know exactly what happened.
So, go ahead and load up your modpack. Create a new world in singleplayer, and recreate the setup that was causing the issue. If you build the setup and the bug doesn't exist, then off you pop to MCPC+ to file a bug report. If the issue does exist in the standard Forge environment, then you should go to the relevant mod author and file a bug report with them. If you suspect the issue is related to your particular world/scenario that is on your server, then continue on to step 3.
Step 3: Duplicating the server, and testing with standard Forge.
Weird stuff can happen in the land of multiplayer, and if you can't be certain that the conditions you are testing in a fresh world are exactly the same as what's on your server, then you need to go a bit further down the rabbit hole. Downloading an entire world can be a pain, I've done it before and it is dull, but it is also NECESSARY to get this out of the way so that the right developer can get onto fixing the issues.
People with FTP access to their server should download the contents of "world", "mods" and "configs" from their host to their local PC, whilst people with SSH can run a cp to a target directory, or people with RDP on Windows can just copy/paste the entire folder to somewhere else to test.
You will need to grab the relevant forge server version from http://files.minecraftforge.net/
You will be able to tell which one you need, by looking in the bottom left of the minecraft startup screen when you launch your modpack, if should say "Minecraft Forge version xxx". So go ahead and download the relevant version, and install it into your directory. Run the server with the same settings that you do for your server instance, then connect ingame to 0.0.0.0 (localhost) and attempt to crash the Forge server. If you can crash it in plain Forge, then your report needs to go to the relevant mod author. If you cannot, then to MCPC+ you go.
This is not designed to be an exhaustive guide to troubleshooting, but rather a quick overview of the process you should go through for all crashes relating to running MCPC+ as your server. Hopefully this will result in happier mod devs, more effective MCPC+ reporting, and a better time for everyone.