I can volunteer for windows 8, I am short a HDD right now so no debian. Also tried changing your /parts/ to \parts\, and all variations of part, with no luck. Is it possible that in your search for part.cfg that you are somehow searching the folder name for part.cfg? This could explain why changing the Parts folders to Part allowed your algorithm to find the parts. If I read your source correctly, It is HIGHLY possible I did not, you are first looking for the parts.cfg then looking at the directory name to see if it contains the word parts. Would it not be easier to have the user point to the gamedata folder and then search all sub directories for .cfg, Read the .cfg for part name AND model name, using the model name to define the parts pack. For LLL the model name for part LLLCirc1a2F is LLL/Parts/FuelTank/LLLCircHull/plain1 so you can discard everything after the first / and get the pack name. Obviously this would require you to preprocess all the .cfg files, before asking the user to select the desired mods to be added to the modfile. Logically this would be a better approach due to the lack of predefined structure to the directories of mods, since you are not forced to use a parts folder. Depending on your skill as a programmer and the flexibility of java you could then add the ability to save a mod list, send that to the clients, and have KMPPM check that the required mods are present. If it is possible you could then have the option to .7z the present mods that are not on the list to prevent them from loading.