Instantly share code, notes, and snippets.

# Pokechu22/Setting up MCP without a full MCP release.md

Last active Jul 27, 2020
Setting up MCP for newer versions (e.g. 1.12.2)

It's possible to use create an MCP installation for versions of Minecraft where there hasn't been a full MCP release. It takes a little bit of manual setup, but the end result is highly useful.

1. Download and extract the most recent MCP build from http://www.modcoderpack.com/. (Currently, the latest build is http://www.modcoderpack.com/files/mcp940.zip)

2. Edit version.cfg in the conf folder, and change ClientVersion and ServerVersion to the version you want (for instance, 1.12.2).

3. Download the SRG zip for the version you want; these can generally be found at http://mcpbot.bspk.rs/mcp/<version>/mcp-<version>-srg.zip (for example, http://mcpbot.bspk.rs/mcp/1.11.2/mcp-1.11.2-srg.zip) or at http://files.minecraftforge.net/maven/de/oceanlabs/mcp/mcp/<version>/mcp-<version>-srg.zip (for example, http://files.minecraftforge.net/maven/de/oceanlabs/mcp/mcp/1.12.2/mcp-1.12.2-srg.zip). (For 1.12.1 and 1.12.2, only the minecraftforge link works)

4. Extract that zip into the MCP conf folder, overwriting files and the contents of the patches folder.

5. Download the latest daily mappings from http://export.mcpbot.bspk.rs/. Even if they aren't for exactly the version you want, they will generally work.

6. Extract the mapping zip into the MCP conf folder, overwriting files.

7. Run MCP's decompile.bat as you normally would.

Note that for this to work, there must be a released SRG file for the version you want. The SRG file is what converts obfuscated names into an intermediate step where names are (mostly) the same between versions; the mappings files convert those intermediate names into the names you see and are used to.

Note that as always, the MCP license applies, even for development builds. Please read the LICENSE.txt included with MCP for more information about what you are and are not permitted to do.

An additional note: if you're using eclipse, you will need to manually fiddle with build paths due to updated libraries. You will also need to attach the native libraries, found in jars/versions/${VERSION}/${VERSION}-natives, to the libraries (e.g. LWJGL) for the game to launch.

### terroe64 commented Oct 6, 2017

 Can you give me a hand with this, I'm trying to get a version of MCP 1.12.2 just like in the example, however whenever I finish decompiling it all I end up with a broken build path, the library manager in eclipse says that the MC 1.12 jar file is missing so I've tried adding in the 1.12.2 jar file, but when I do that the game crashes on boot. If you're willing to help me out I'd really appreciate it. Thanks in advance :)
Owner Author

### Pokechu22 commented Oct 11, 2017

 @terroe64 - if you're using eclipse you need to link the natives as well - they're found in versions/1.12.2/1.12.2-natives; if you attach that folder to e.g. lwjgl everything should work.

### terroe64 commented Nov 4, 2017

 @Pokechu22 - What do you mean by attach? also should I be using the versions folder from a .minecraft directory or the one in the MCP folder?

### terroe64 commented Nov 4, 2017

 @Pokechu22 - OH SHIT NEVERMIND FIGURED IT OUT THANK YOU YOU'RE THE BEST !

### symvizan commented Jan 13, 2018

 Hi! When I start to run Minecraft from eclipse it says Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path
Owner Author

### Pokechu22 commented Jan 22, 2018

 @symvizan You need to link natives... as I mentioned above.

### DragonVortex commented Jan 24, 2018

 Just to let anyone know, If you are getting errors when decompiling, make sure that you are using this version of java instead of Java SE 9.0.4.

### tigerdan2 commented Mar 3, 2018

 I just followed your tutorial step by step "ERROR:root:FATAL ERROR Traceback (most recent call last): File "runtime\decompile.py", line 61, in decompile commands = Commands(conffile, verify=True, no_patch=no_patch, workdir=workdir, json=json) File "E:\DarkSun\runtime\commands.py", line 178, in init normalStart = self.readconf(workdir, json) File "E:\DarkSun\runtime\commands.py", line 491, in readconf self.versionClient, self.versionServer = self.getVersions() TypeError: 'NoneType' object is not iterable " and got this lovely error message right when i run decompile.bat do you know what i might be doing wrong?

### yarala1 commented Mar 27, 2018

Need help

== MCP 9.40 (data: 9.40, client: 1.12.2, server: 1.12.2) ==
"scalac" is not found on the PATH. Scala files will not be recompiled

# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle co

nfig, rg, ss
!! Modified jar detected. Unpredictable results !!
!! client already decompiled. Run cleanup before decompiling again !!
!! Missing server jar file. Aborting !!
Press any key to continue . . .

### Marcono1234 commented Apr 4, 2018

 @Pokechu22 could you please include these steps for the Eclipse setup: https://gist.github.com/Pokechu22/93e97c95df8b23cf3a735b2b68fe9fe3#gistcomment-2303143

## I have a problem can anyone help;?

== MCP 9.40 (data: 9.40, client: 1.12.2, server: 1.12.2) ==
"scalac" is not found on the PATH. Scala files will not be recompiled

# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle config, rg, ss

!! Modified jar detected. Unpredictable results !!
== Decompiling client using fernflower ==

Creating SRGs
Applying SpecialSource
Applying MCInjector
Creating renamed srg
Filtering classes
Decompiling
'"C:\Program Files (x86)\Java\jdk1.8.0_161\bin\java" -jar runtime\bin\fernflower.jar -din=1 -rbr=1 -dgs=1 -asc=1 -rsy=1 -iec=1 -jvn=1 -log=TRACE "-e=jars\libraries\net/java/jinput\jinput\2.0.5\jinput-2.0.5.jar" "-e=jars\libraries\com/ibm/icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar" "-e=jars\libraries\org/apache/httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-api\2.8.1\log4j-api-2.8.1.jar" "-e=jars\libraries\org/apache/commons\commons-lang3\3.5\commons-lang3-3.5.jar" "-e=jars\libraries\net/java/dev/jna\jna\4.4.0\jna-4.4.0.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl-platform\2.9.4-nightly-20150209\lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar" "-e=jars\libraries\com/paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar" "-e=jars\libraries\net/sf/jopt-simple\jopt-simple\5.0.3\jopt-simple-5.0.3.jar" "-e=jars\libraries\com/mojang\text2speech\1.10.3\text2speech-1.10.3.jar" "-e=jars\libraries\com/google/guava\guava\21.0\guava-21.0.jar" "-e=jars\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar" "-e=jars\libraries\org/apache/httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar" "-e=jars\libraries\org/apache/commons\commons-compress\1.8.1\commons-compress-1.8.1.jar" "-e=jars\libraries\com/mojang\text2speech\1.10.3\text2speech-1.10.3-natives-windows.jar" "-e=jars\libraries\it/unimi/dsi\fastutil\7.1.0\fastutil-7.1.0.jar" "-e=jars\libraries\net/java/dev/jna\platform\3.4.0\platform-3.4.0.jar" "-e=jars\libraries\com/paulscode\codecjorbis\20101023\codecjorbis-20101023.jar" "-e=jars\libraries\com/paulscode\soundsystem\20120107\soundsystem-20120107.jar" "-e=jars\libraries\com/paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar" "-e=jars\libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar" "-e=jars\libraries\net/java/jutils\jutils\1.0.0\jutils-1.0.0.jar" "-e=jars\libraries\com/mojang\patchy\1.1\patchy-1.1.jar" "-e=jars\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar" "-e=jars\libraries\commons-io\commons-io\2.5\commons-io-2.5.jar" "-e=jars\libraries\com/mojang\realms\1.10.19\realms-1.10.19.jar" "-e=jars\libraries\com/mojang\authlib\1.5.25\authlib-1.5.25.jar" "-e=jars\libraries\com/google/code/gson\gson\2.8.0\gson-2.8.0.jar" "-e=jars\libraries\net/java/jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar" "-e=jars\libraries\com/paulscode\codecwav\20101023\codecwav-20101023.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-core\2.8.1\log4j-core-2.8.1.jar" "-e=jars\libraries\io/netty\netty-all\4.1.9.Final\netty-all-4.1.9.Final.jar" temp/minecraft_ff_in.jar temp\src\minecraft' failed : 1
Decompile failed
Press any key to continue . . .

### AlexTron7 commented Apr 26, 2018

 @Pokechu22 can you explain the eclipse thing in more simple terms?

### Hi-ImKyle commented Apr 27, 2018 • edited

 This works fine but I can't seem to run MCP in Eclipse via Debug EDIT: I got it! Thanks.

### Davosaurus commented May 15, 2018

 @tigerdan2 I am having the same exact issue. Did you ever find a fix? Does anyone else have any solutions for the fatal error when decompiling?

### AlexTron7 commented May 22, 2018

 Can someone explain where the libraries are that i need to connect the natives to.

### Ufiestar commented May 26, 2018

 Delete the patches folder first! Else you get nasty compile errors!

### OpticFusion1 commented May 1, 2019

 @ramidzkh You should probably make a completely different gist that goes into more detail

### 0xx06 commented May 8, 2019 • edited

 To condense the patch files into the old format I used for f in find net -type f; do cat "${f}" > "$(echo "\${f}" | sed s///./g)"; done; and copied them into their respective folders. I got it all working so far but for real i have no idea how to get the patches folder in the correct format. That code snippet doesn't tell me anything and i've been on this for hours now ... @ramidzkh i tried powershell and batch and that code snippet does nothing. also the new patches folder is missing quite some .patch'es that the 1.12.2 config has Edit: So I tried following ramid's steps, but those were a bit off reality. FIRST OFF: It doesn't work, but here are the real step nonetheless: Get the mappings from mcpbot (1.13.2) To get the SRGs you actually have to clone the mcpconfic repo he linked delete all folders from "version" apart from the one you want (in this case 1.13.2) go into the mcpconfig root folder, open cmd and type in 'gradlew assemble' and let it do its thing you will find your .srg and the patches/inject folder then in mcpconfig/build/versions/ the patches / inject folders are in the wrong format, you have to find a way to rename each file in all subcategories of the patches folder to the following format: Example (!!) folder structure: net->minecraft->block->BlockState.java.patch in the end the .patch file has to be named net.minecraft.block.BlockState.java.patch This has to be done for EACH file in every subdirectory of the patches folder. I used a tool named "bulk renamer" and fiddled with the settings. You can append folder names with a separator easily. You then have to bring the patches folder into the correct format (just compare to public srg releases) and get all files from every subfolder to the folders you have named minecraft_ff etc. (i used cmd commands). put inject folder into patches folder and fix the folder structure to be like previous SRG releases. That's it. If you try to use it with mcp it won't work because files are missing (for example the joined file which isn't srg and others). But maybe someone else can make further progress with the aid of my steps.

### dominikaaaa commented May 16, 2019 • edited

 It asks to run 1.12. I am assuming it's going to work, but it does not use 1.12.2 minecraft to decompile, rather 1.12, is that correct? Edit: I did it wrong, forgot to save version file

### flewkey commented May 23, 2019

 Hello, I'm not here to contribute anything in terms of updating older versions of MCP to later versions. However, if your only goal is to decompile and modify the game, I definitely recommend looking at this guide. https://gist.github.com/Earthcomputer/afe6f6da5eb8d93a2cb4aec453d6b912 If you want to use MCP mappings, I doubt it would be hard to do.

### FurkanDGN commented May 26, 2019 • edited

 Getting this while compiling: 19:36:19 - Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 9 19:36:19 - at java.util.ArrayList.rangeCheck(ArrayList.java:657) 19:36:19 - at java.util.ArrayList.get(ArrayList.java:433) 19:36:19 - at org.jetbrains.java.decompiler.struct.consts.ConstantPool.getConstant(ConstantPool.java:183) 19:36:19 - at org.jetbrains.java.decompiler.struct.consts.ConstantPool.getPrimitiveConstant(ConstantPool.java:187) 19:36:19 - at org.jetbrains.java.decompiler.struct.consts.PrimitiveConstant.resolveConstant(PrimitiveConstant.java:80) 19:36:19 - at org.jetbrains.java.decompiler.struct.consts.ConstantPool.(ConstantPool.java:109) 19:36:19 - at org.jetbrains.java.decompiler.struct.StructClass.(StructClass.java:84) 19:36:19 - at org.jetbrains.java.decompiler.struct.StructClass.(StructClass.java:72) 19:36:19 - at org.jetbrains.java.decompiler.struct.StructContext.addArchive(StructContext.java:159) 19:36:19 - at org.jetbrains.java.decompiler.struct.StructContext.addSpace(StructContext.java:100) 19:36:19 - at org.jetbrains.java.decompiler.struct.StructContext.addSpace(StructContext.java:78) 19:36:19 - at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.addSpace(ConsoleDecompiler.java:130) 19:36:19 - at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.main(ConsoleDecompiler.java:93) 19:36:19 - '"C:\Program Files\Java\jdk1.8.0_191\bin\java" -jar runtime\bin\fernflower.jar -din=1 -rbr=1 -dgs=1 -asc=1 -rsy=1 -iec=1 -jvn=1 -log=TRACE "-e=jars\libraries\net/java/jinput\jinput\2.0.5\jinput-2.0.5.jar" "-e=jars\libraries\org/lwjgl\lwjgl-stb\3.1.6\lwjgl-stb-3.1.6.jar" "-e=jars\libraries\com/ibm/icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar" "-e=jars\libraries\org/apache/httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-api\2.8.1\log4j-api-2.8.1.jar" "-e=jars\libraries\org/apache/commons\commons-lang3\3.5\commons-lang3-3.5.jar" "-e=jars\libraries\org/lwjgl\lwjgl\3.1.6\lwjgl-3.1.6-natives-windows.jar" "-e=jars\libraries\net/java/dev/jna\jna\4.4.0\jna-4.4.0.jar" "-e=jars\libraries\com/paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar" "-e=jars\libraries\net/sf/jopt-simple\jopt-simple\5.0.3\jopt-simple-5.0.3.jar" "-e=jars\libraries\com/mojang\text2speech\1.10.3\text2speech-1.10.3.jar" "-e=jars\libraries\com/mojang\datafixerupper\1.0.19\datafixerupper-1.0.19.jar" "-e=jars\libraries\com/google/guava\guava\21.0\guava-21.0.jar" "-e=jars\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar" "-e=jars\libraries\org/lwjgl\lwjgl-jemalloc\3.1.6\lwjgl-jemalloc-3.1.6.jar" "-e=jars\libraries\org/apache/httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar" "-e=jars\libraries\org/apache/commons\commons-compress\1.8.1\commons-compress-1.8.1.jar" "-e=jars\libraries\com/mojang\text2speech\1.10.3\text2speech-1.10.3-natives-windows.jar" "-e=jars\libraries\it/unimi/dsi\fastutil\8.2.1\fastutil-8.2.1.jar" "-e=jars\libraries\net/java/dev/jna\platform\3.4.0\platform-3.4.0.jar" "-e=jars\libraries\com/paulscode\codecjorbis\20101023\codecjorbis-20101023.jar" "-e=jars\libraries\com/paulscode\soundsystem\20120107\soundsystem-20120107.jar" "-e=jars\libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar" "-e=jars\libraries\net/java/jutils\jutils\1.0.0\jutils-1.0.0.jar" "-e=jars\libraries\com/mojang\patchy\1.1\patchy-1.1.jar" "-e=jars\libraries\org/lwjgl\lwjgl-opengl\3.1.6\lwjgl-opengl-3.1.6.jar" "-e=jars\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar" "-e=jars\libraries\org/lwjgl\lwjgl-jemalloc\3.1.6\lwjgl-jemalloc-3.1.6-natives-windows.jar" "-e=jars\libraries\org/lwjgl\lwjgl-glfw\3.1.6\lwjgl-glfw-3.1.6.jar" "-e=jars\libraries\com/mojang\brigadier\1.0.14\brigadier-1.0.14.jar" "-e=jars\libraries\org/lwjgl\lwjgl-opengl\3.1.6\lwjgl-opengl-3.1.6-natives-windows.jar" "-e=jars\libraries\org/lwjgl\lwjgl\3.1.6\lwjgl-3.1.6.jar" "-e=jars\libraries\commons-io\commons-io\2.5\commons-io-2.5.jar" "-e=jars\libraries\com/mojang\realms\1.13.9\realms-1.13.9.jar" "-e=jars\libraries\com/mojang\authlib\1.5.25\authlib-1.5.25.jar" "-e=jars\libraries\com/google/code/gson\gson\2.8.0\gson-2.8.0.jar" "-e=jars\libraries\org/lwjgl\lwjgl-glfw\3.1.6\lwjgl-glfw-3.1.6-natives-windows.jar" "-e=jars\libraries\com/paulscode\codecwav\20101023\codecwav-20101023.jar" "-e=jars\libraries\org/lwjgl\lwjgl-stb\3.1.6\lwjgl-stb-3.1.6-natives-windows.jar" "-e=jars\libraries\org/lwjgl\lwjgl-openal\3.1.6\lwjgl-openal-3.1.6.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-core\2.8.1\log4j-core-2.8.1.jar" "-e=jars\libraries\org/lwjgl\lwjgl-openal\3.1.6\lwjgl-openal-3.1.6-natives-windows.jar" "-e=jars\libraries\io/netty\netty-all\4.1.25.Final\netty-all-4.1.25.Final.jar" temp/minecraft_ff_in.jar temp\src\minecraft' failed : 1 19:36:19 - Decompile failed

### Sakuya-Izayoi commented May 27, 2019

 where i can get 1.13.2 srgs?

### RedCDev commented Jun 26, 2019

 Two problems with this tutorial: He didn't specify what natives are, natives are files with example in windows: .dll files but are different depending on os. But you should not need to copy/configure files at all except the 1.12.jar, as by default all files are download using the version.json or 1.xx.x.json file in the mc dir (Some problems can happen which makes that you have to reconfigure some files) With the new launcher, the version.json or 1.xx.x.json is differently structured than before therefore can MCP not read it. I do not know python as that is the language it is written on, so I can not fix it.

### jLynx commented Jun 28, 2019

 @0xx06 have you made anymore progress? I managed to get to the same stage as you

### Delta2Force commented Aug 6, 2019 • edited

 If you are trying to decompile 1.14 with this, you will have to uncomment a line in the commands.py file or else the decompiler will error out. This is because the line is referencing to a lwjgl API which doesn't exist anymore since Minecraft now uses lwjgl 3 instead of lwjgl 2. Edit: still doesn't work

### jeengbe commented Aug 20, 2019

 If you are trying to decompile 1.14 with this, you will have to uncomment a line in the commands.py file or else the decompiler will error out. This is because the line is referencing to a lwjgl API which doesn't exist anymore since Minecraft now uses lwjgl 3 instead of lwjgl 2. Which line

### Delta2Force commented Aug 21, 2019

 If you are trying to decompile 1.14 with this, you will have to uncomment a line in the commands.py file or else the decompiler will error out. This is because the line is referencing to a lwjgl API which doesn't exist anymore since Minecraft now uses lwjgl 3 instead of lwjgl 2. Which line Nevermind it still didn't work

### RedCDev commented Aug 29, 2019

 The reason mc versions newer then 1.12 doesn't work(I believe), is that mcp is read the version.json file(eg 1.12.2.json or 1.14.4.json). But after 1.12.2 the structure of the json file changed, but no new mcp version where released to support it.

### reZach commented Sep 1, 2019

 Is there any progress on the new version of MCP?

### RedCDev commented Sep 20, 2019

 I found something interesting at this repo

### RedCDev commented Sep 20, 2019

 Haven't got time to test it yet.

### dominikaaaa commented Oct 18, 2019

 How do I tell mcp to use this? The original url went down so I want to use this url now, or host it on my own git repo. I can't find anythere referencing how to change it or a url itself. You can look at my entire project here, thanks

### davidtoledo commented Oct 27, 2019

 Works like a charm! tks!

### christiaan20 commented Jan 25, 2020

 I have the interesting problem that following these steps I am successfully able to launch a minecraft 1.12.2 using startclient.bat, but he doesn't recompile the src/minecraft/net code instead he launches the vanilla version of MC 1.12.2. I have tried doing some debugging going as far as comparing the variables in the python code used to launch the client with a working MCP9.40 for MC 1.12 but I found nothing suspicious until now and I would prefer not going deeper into this rabbit hole. I don't belief the 1.12.2-natives library is the problem because I do my code editing in intellij and I test running the startclient.bat in command window.

### RedCDev commented Jan 25, 2020 • edited

 Chris, I have done a 1.12.2 project with mcp 1.12 and you'll have to update every reference from 1.12 to 1.12.2 and replace the mappings. Lastly you have to run updatemd5.bat. That's it, you must've configured mcp wrong. Note! I used eclipse not intellij.

### christiaan20 commented Jan 27, 2020

 This is a reply to both of these comments Chris, I have done a 1.12.2 project with mcp 1.12 and you'll have to update every reference from 1.12 to 1.12.2 and replace the mappings. Lastly you have to run updatemd5.bat. That's it, you must've configured mcp wrong. Note! I used eclipse not intellij. I have the interesting problem that following these steps I am successfully able to launch a minecraft 1.12.2 using startclient.bat, but he doesn't recompile the src/minecraft/net code instead he launches the vanilla version of MC 1.12.2. I have tried doing some debugging going as far as comparing the variables in the python code used to launch the client with a working MCP9.40 for MC 1.12 but I found nothing suspicious until now and I would prefer not going deeper into this rabbit hole. I don't belief the 1.12.2-natives library is the problem because I do my code editing in intellij and I test running the startclient.bat in command window. Thank you for the suggestion WotblitzMC. But the solution was very simple you need to run recompile.bat before Startclient.bat. Seems logical but it seemed to me that startclient.bat was doing the recompile automatically when you used the original MCP 9.40 in MC 12.2 without changing any of the mappings or config files. Once you change any of that, you need to manually recompile the source code before running StartClient.bat. Ofcourse I only tested this when running the .bat files from windows cmd, so only assume it applies to this setup.

### SpaceBrave commented Jan 30, 2020 • edited

 I did everything right except I'm new to Eclipse and don't know how to import libraries. The only errors I get are: Project 'Client' is missing required library: 'jars/libraries/com/mojang/realms/1.10.17/realms-1.10.17.jar' The project cannot be built until build path errors are resolved Whare do I change the build paths and where do I attach the libs?

### RizeXor commented Jan 30, 2020

 Can someone send me for 1.14 or 1.15? Thanks

### SpaceBrave commented Jan 30, 2020

 Can someone send me for 1.14 or 1.15? Thanks You cannot do it because srgs for these versions don't exist

### SpaceBrave commented Jan 30, 2020

 Could someone just explain the whole Eclipse part in actual detail?

### anonyco commented Apr 7, 2020

 TO EVERYONE STRUGGLING WITH THE Missing server jar file ERROR, Download the server of your preferred version from https://mcversions.net/ Place the server.jar file in the top jar/ folder. Rename server.jar to minecraft_server.version.jar (e.x. minecraft_server.1.12.2.jar for version 1.12.2) Enjoy!

### dominikaaaa commented Apr 7, 2020

 @SpaceBrave I recommend using Intellij, it's better then Eclipse in every way

### RobCod commented Apr 19, 2020

 @SpaceBrave so how are people modding 1.15.2 then?

### flewkey commented Apr 19, 2020

 @SpaceBrave so how are people modding 1.15.2 then? You can use MCPConfig to decompile and recompile the game. You'll have to work with SRG mappings, but that isn't actually too bad. If you want proper names, I also believe that Fabric's loom Gradle plugin has an option to generate the Minecraft sources (in yarn mappings instead of MCP mappings). I have never tried compiling those sources, but it might be possible if you fiddle around with it. Then, of course, there are always the options of using Forge or Fabric to mod the game. Good luck!

### asd1231234as commented Apr 24, 2020

 I have tried to recompile my client I coded with the help of Eclipse and MCP 9.40 with optifine SRC but, it gives me a error saying "!!Cannot find Server Source, try decompiling!!". I have tried decompiling it multiple times, it did not work. I also tried to add the minecraft 1.12.2 server file manually but with no luck. I have tried everything I could, there are also no resources online, at least to my knowledge so yeah. Pls help

### RKvilt commented Apr 28, 2020 • edited

 https://pastebin.com/VCmQMSmd I keep getting this error message ive tried everything someone please help Edit: I fixed it just had do uninstall jdk 13 and install jdk 8

### anonyco commented Apr 28, 2020 • edited

 @RKvilt Throw off the oppressive chains of Microsoft and switch to Linux. Join the master race. For those most severely harmed by Windows OSes, I recommend Linux Mint, as it's one of the few Linuxes that don't cause Windows users permanent brain damage. Albeit. Linux Mint is bad because its all set up for you and there's no challenge in getting it exactly the way you want it with exactly the packages you want, but Linux Mint is a great way to ease the transition to Linux for beginners. Once you have broken free of Microsoft's mind games, you will discover true freedom and find it much easier to use MCP. I have laid down the path for you, but it is you who must traverse it. I wish you luck and low htop stats.

### RKvilt commented Apr 28, 2020

 @anoyco I know linux well im not a brain damaged windows user its just that all my files and my work is on the windows and i dont a bunch of it getting deleted i tried having two operating systems on my pc but i didint have enough space

### T0x1cBo1 commented May 17, 2020

 Error: Could not find or load main class Start Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release I did everything just like in the guide then this happened

### lolpota commented May 19, 2020

 i keep getting this when i try to decompile. anyone know how to fix it? > Decompiling '"java" -jar runtime\bin\fernflower.jar -din=1 -rbr=1 -dgs=1 -asc=1 -rsy=1 -iec=1 -jvn=1 -log=TRACE "-e=jars\libraries\net/java/jinput\jinput\2.0.5\jinput-2.0.5.jar" "-e=jars\libraries\com/ibm/icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar" "-e=jars\libraries\org/apache/httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-api\2.8.1\log4j-api-2.8.1.jar" "-e=jars\libraries\org/apache/commons\commons-lang3\3.5\commons-lang3-3.5.jar" "-e=jars\libraries\net/java/dev/jna\jna\4.4.0\jna-4.4.0.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl-platform\2.9.4-nightly-20150209\lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar" "-e=jars\libraries\com/paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar" "-e=jars\libraries\net/sf/jopt-simple\jopt-simple\5.0.3\jopt-simple-5.0.3.jar" "-e=jars\libraries\com/mojang\text2speech\1.10.3\text2speech-1.10.3.jar" "-e=jars\libraries\com/google/guava\guava\21.0\guava-21.0.jar" "-e=jars\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar" "-e=jars\libraries\org/apache/httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar" "-e=jars\libraries\org/apache/commons\commons-compress\1.8.1\commons-compress-1.8.1.jar" "-e=jars\libraries\com/mojang\text2speech\1.10.3\text2speech-1.10.3-natives-windows.jar" "-e=jars\libraries\it/unimi/dsi\fastutil\7.1.0\fastutil-7.1.0.jar" "-e=jars\libraries\net/java/dev/jna\platform\3.4.0\platform-3.4.0.jar" "-e=jars\libraries\com/paulscode\codecjorbis\20101023\codecjorbis-20101023.jar" "-e=jars\libraries\com/paulscode\soundsystem\20120107\soundsystem-20120107.jar" "-e=jars\libraries\com/paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar" "-e=jars\libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar" "-e=jars\libraries\net/java/jutils\jutils\1.0.0\jutils-1.0.0.jar" "-e=jars\libraries\com/mojang\patchy\1.1\patchy-1.1.jar" "-e=jars\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar" "-e=jars\libraries\commons-io\commons-io\2.5\commons-io-2.5.jar" "-e=jars\libraries\com/mojang\realms\1.10.17\realms-1.10.17.jar" "-e=jars\libraries\com/mojang\authlib\1.5.25\authlib-1.5.25.jar" "-e=jars\libraries\com/google/code/gson\gson\2.8.0\gson-2.8.0.jar" "-e=jars\libraries\net/java/jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar" "-e=jars\libraries\com/paulscode\codecwav\20101023\codecwav-20101023.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-core\2.8.1\log4j-core-2.8.1.jar" "-e=jars\libraries\io/netty\netty-all\4.1.9.Final\netty-all-4.1.9.Final.jar" temp/minecraft_ff_in.jar temp\src\minecraft' failed : 1 Decompile failed Press any key to continue . . .

### GabbleGaming commented May 20, 2020 • edited

 while decompiling it says Looking for minecraft main jar... Not found Copying minecraft main jar... Error while copying Minecraft : [Error 5] Access is denied: 'jars\versions\1.12.2\mcp-1.12.2-srg.zip' please help (EDIT) I fixed it but got this error Copying library lwjgl-platform-natives-windows... Error copying library lwjgl-platform-natives-windows

### Mythbusters123 commented May 28, 2020

 Are there srg mappings for 1.15.2

### balaramsudip commented Jun 21, 2020

 Are there srg mappings for 1.15.2 Yes

### balaramsudip commented Jun 21, 2020 • edited

 WHEN the version.cfg file says 1.16-rc1, then it gives an error : ERROR:root:FATAL ERROR Traceback (most recent call last): File "./runtime/decompile.py", line 61, in decompile commands = Commands(conffile, verify=True, no_patch=no_patch, workdir=workdir, json=json) File runtime/commands.py", line 178, in init normalStart = self.readconf(workdir, json) File runtime/commands.py", line 574, in readconf jarslwjgl.append(os.path.join(self.dirjars,self.mcLibraries['lwjgl_util']['filename'])) KeyError: 'lwjgl_util' However when the version.cfg is at 1.12, it freezes my terminal(Command prompt).

### RedCDev commented Jun 24, 2020

 Many ofcourse want to make Mcp work with newer version of MC. But I would recommend McpConfig by the forge team. It will decomplie any MC version without forge, but requires extra tools to convert from srg mappings it will decomplie too, to MCP mappings.

### Nessiesson commented Jun 25, 2020

 Correct RedCDev. These instructions are only really meant for Minecraft versions 1.12.2 and below since MCP and the way it is distributed have changed since 1.13.

### ThisTestUser commented Jun 29, 2020

 If you really want to use MCP for 1.13+ (and you know how to run gradle commands), you can use this tutorial: https://github.com/ThisTestUser/MCPFixer It should working for all versions above 1.13, however for 1.16 there are compile errors because the mappings are still on 1.15.1.

### VacCatGT commented Jul 20, 2020

 huh its not finding my java how fix yes?

### GhostFace54 commented Jul 22, 2020 • edited

I'm having a problem in which it cant find the temp files, it is because it tries to find a file named ?.java but Windows doesn't accept ? for filenames, so it names it , which looks like a dot and it isn't ASCII
== MCP 9.18 (data: 9.18, client: 1.8.9, server: 1.8.9) ==
"scalac" is not found on the PATH. Scala files will not be recompiled

# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle config, rg, ss

!! Modified jar detected. Unpredictable results !!
== Decompiling client using fernflower ==

Creating SRGs
Applying SpecialSource
Applying MCInjector
Creating renamed srg
Filtering classes
Decompiling
Unpacking jar
Copying sources
FATAL ERROR
Traceback (most recent call last):
File "runtime\decompile.py", line 136, in decompile
keep_lvt=keep_lvt, keep_generics=keep_generics, force_rg=force_rg)
File "C:\Users\bruno\Desktop\Mc Decompiler 1.8.9\runtime\mcp.py", line 54, in decompile_side
commands.copysrc(side)
File "C:\Users\bruno\Desktop\Mc Decompiler 1.8.9\runtime\commands.py", line 1706, in copysrc
self.copyandfixsrc(pathsrctmplk[side], pathsrclk[side])
File "C:\Users\bruno\Desktop\Mc Decompiler 1.8.9\runtime\commands.py", line 1727, in copyandfixsrc
normaliselines(src_file, dest_file)
File "C:\Users\bruno\Desktop\Mc Decompiler 1.8.9\runtime\pylibs\normlines.py", line 21, in normaliselines
with open(in_filename, 'rb') as in_file:
IOError: [Errno 22] invalid mode ('rb') or filename: 'temp\src\minecraft\net\minecraft\src\?.java'