Jump to content

[1.8] [Eclipse] Working with multiple mods


Recommended Posts

This is a fairly newb question, but how do those of you that work with multiple mods, keep them from building together?

Do you use Working Sets?


I do backup my source files, and could if needed remove my source files from the current workspace. But there has to be an easier way to work with multiple mods.

Link to comment
Share on other sites

You can specify an external directory from which your workspace will run, so that you can test multiple mods while using the same default run directory - hence the aptly named 'runDir'. It is the directory where the vanilla assets are stored, world saves, etc.


You can also specify the run directory to be that of your project, so each project has its own separate run directory. There are advantages to both methods, and you can choose which one based on the project, so some projects can share while other projects don't.


The assetsDir I haven't seen used in some time - I'm not sure if it's deprecated or something, but it was basically the same thing, though it may have only applied to where the vanilla assets are located. I don't really recall and didn't try to look it up, but it's something like that. :P

Link to comment
Share on other sites

I'm too lazy to setup multiple workspaces (and being somewhat paranoid, I like to keep copies of my work outside my workspace anyway), so I swap mods in and out of the Eclipse workspace at the drop of a hat. I have a separate file hierarchy where I keep each mod's gradle file, java files and resources (including mcmod.info). For convenience, that hierarchy also stores working jars, update logs, curse descriptions etc.


When I want to swap mods, I move out what's changed and worth saving of one mod, delete the rest, and then copy in another. When swapping, I am operating on these four things:


1) build.gradle

2) mcmod.info

3) contents of resources/assets

4) contents of java


It takes under a minute, and it prompts me to update and synchronize version text in the gradle and mcmod files. It's not as elegant as a working multi-mod setup, but it doubles as crude config management good enough for solo, hobby-level development.


The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Link to comment
Share on other sites

I recommend the multi setup Lex has the tut on with a separate run directory.


I've got 5 mods with a common resource mod.  It works very smoothly and the compile in that structure is pretty simple too.  Takes maybe 15 minutes to setup the first time.


Anytime i make a big move (1.7.2 to 1.8 for example) I create a new multi setup. 


Every so often I back up the structure (excluding the run directory) using 7zip in case I do something dumb and need to look back.

Long time Bukkit & Forge Programmer

Happy to try and help

Link to comment
Share on other sites

Delpi, I almost quit modding, when i first tried to setup Github, the program recommended by some tutorial, deleted all my mod files. If not for quick thinking, and a file recovery program, i would of lost everything. So now i backup all my mod files and use the program from Github.


I'm gonna try setting up like Lex shows, even though assetDir is no longer in the build.gradle file.

If that doesn't work out, i'll just swap out the source files and do redundant backups.

Link to comment
Share on other sites

Well following Lex's video, and the forum post with the code to copy. I get this error.

[23:25:38] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[23:25:38] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.ClassNotFoundException: cpw.mods.fml.common.launcher.FMLTweaker
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_60]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:106) ~[launchwrapper-1.11.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_60]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_60]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:98) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use.