Hello everyone, after some problems with my old account I've decided to post again my Minecraft Tools application, specially after reducing it's file size from 500 MB to just 30 MB (and pre-compiled). It no longer includes the "secret files", so please if anyone is interested in those, send me a private message (if you want I could also post a link to them at mediafire).
This might be the first free application in C# with a full source code to decode the new Minecraft chunk format from 1.13 (and it also works on 1.14+). Other applications might support reading 1.13+ worlds but I've never seen a source code released yet.
What it does: is a multi-tool, so when starting the main file located at "Minecraft-Tools-master\Minecraft-Tools\bin\Debug\Minecraft Tools.exe" and after extracting the zip file from GitHub, you'll see a window with a big list of tools. Some of them aren't (fully) functional yet, so please forgive me for that because I'm literally alone at creating this application (any help would be appreciated). But most tools will work fine (although the "intuitive" controls aren't fully implented in some cases). Here is a list of the available tools:
- About: info about the application.
- Animated 3D skin viewer: you'll drop any skin image and be able to move it in 3D with separate body parts. Not working yet!
- Automatic skin downloader: capable of bulk download thousands of skins from any specified server with Minecraft skins. Not working yet!
- Backups manager: Not working yet!
- Banner and shield designer: try to generate your custom designs in an easier way, it even supports drag and drop of the recipe images.
- Block information viewer: a list of all the known Minecraft blocks by this application with useful info.
- Block selector: Not fully working yet!
- Change log: list of changes made to the application.
- Change the username: choose your user name (no information will be sent anywhere, just to say welcome to you).
- Comparer of Minecraft versions and resource packs: drag and drop 2 different Minecraft versions or resourcer packs, you'll see their differences.
- Custom structure generator: Not fully working yet!
- Donations received: thanks to all the people that have helped me get so far!
- Duplicate files finder: searches duplicated files in any folder, and optionally moves the duplicates in a new sub-folder.
- Enchantment names viewer: emulates the encanting table, and you can write your own secret messages.
- Entities information viewer: info about most entities in Minecraft, unfinished.
- Exception debugger: essential system to help meF correct any possible bug or exception.
- File encoder and decoder from Minecraft worlds: inserts in new Minecraft worlds your desired files (use zip, rar, 7z, etc to add multiple at once), but encrypted with AES and my own fractal encryptions in base 2, 4 and 16. Please don't use this to secretly transfer any illegal files. Not fully working yet!
- FPS Counter: press "Insert" at the top-left corner and again at the bottom-right corner to capture that region all the time and tell it's FPS changes.
- Help viewer: functional, but very outdated, sorry I need more time to finish everything.
- Hermitcraft members viewer: please check out the awesome Hermitcraft community, they're the best at making Minecraft videos.
- Minecraft internal structures exporter: Not fully working yet!
- Minecraft 1.13+ to 1.12.2- world converter: converts worlds from the newer versions (like 1.14, etc) to 1.12.2 as a new world, items will be lost.
- Monster High characters: not Minecraft related, but it's a mini-wiki of Monster High.
Note: my PC is useless with Intel HD Graphics, and I can't play 1.14+ worlds, since now I can't turn off VBOs and my Minecraft crashes. So I can't generate regular worlds, but I can make Debug worlds and load the blocks from far away, looking down, and then learn the newly added block names, etc. It's a shame but that way it's harder to update my application, so I'm really sorry about that.
It includes almost 20 more tools, but for the sake of space I'll simply suggest you to give a try. The link is at the top of this post, and the second one is from mediafire (use a pop-up blocker there to avoid new windows opened with trash, I use the extension "Strict pop-up blocker" in Firefox). Feel free to share your opinions of it, and thank you very much for all your help. Have a nice day!
Here's a detailed explanation of my findings for the 1.13 chunk format (probably you already knew most of this things, so sorry in advance):
- Each region file is 32 x 3 chunks (containing 512).
- Each chunk has 65.536 blocks and 16 "sections" of 4.096 blocks.
- Each section has several NBT tags and in the "Palette" defines how many blocks each section has available, and since a section only has 4.096 blocks, that's the maximum of bloks the Palette can contain. - Another NBT called "BlockStates" has different bits stored representing indexes of the Palette matrix, but since the format is stores a 64 bits values or longs, then it should only contain between 1 and 256 longs in the whole BlockStates array.
- The way to read the longs is to multiply the quantity of longs available by 64, and this will give you the total bits in the BlockStates array. Then divide it by 4.096 and this will give you the bits needed or used per block, which needs to be readed form the array in order YZX, starting at the bottom northwest and ending at the top southeast, but of course this direction is only for the converted blocks, since the BlockStates array only has one dimension, so it's a it confusing at first.
- Possibly a much faster way will be just to divide the length of BlockStates by 64, which should give equal results, but possibly not as precise in some cases.
So basically it seems that Mojang added arrays with longs because it always perfectly fits within 64 bits ranges. Although it's a bit tricky to read the non-consecutive bits, so for example if you have a section with 320 BlockStates or longs, between 64 it will give 5 bits per block of the Palette (so an index between 0 and 31, but possibly it will never arrive to 31 if the palette has less than 32 blocks). But in that example the problem is that 64 / 5 = 12,8, which doesn't fit between full 64 bits values, meaning you'll have to "split" at least 2 different longs and pick only a few bits of each for creating a new value which literally doesn't exist as a value of 5 bits, so a byte could be used (even an int or long which might take a lot of RAM if not necessary).
So what I thought is to read all the longs, decode it's bits and add them in a straight array, and then just reading from one point to another of that array and reconverting the needed bits in any case to full numbers, for finally reading the index from the Palette pointed by that number.
If you still have any question about how the new 1.13 chunk format works please leave a comment below or send me a message to [email protected] Thanks a lot for all your cooperation and have a nice day!
Hello again everyone, I've finished a new major update of my Minecraft Tools application. Now the executable file has a size of less than 8 MB (before it was almost 19 MB), so now it should also load faster. Additionally it has several new tools and features, as well as some tools updated. Here is a detailed list of changes:
- Updated the application to support the latest Minecraft 1.14 snapshot 19w06a, including all of it's new blocks through all the tools and windows.
- Updated the tool Resource structure rebuilder, now it supports the latest JSON formats in a single line of text (before it stopped working).
- Added a new tool that includes all the music scores composed by Júpiter Mauro (Jupisoft, and that's me), with MIDI playback in real time, etc.
- Added a new screen saver tool showing all the Minecraft blocks, in fact the application is now also a screen saver if you change it from ".exe" to ".scr".
- Added a new Infiniscope tool [TOP SECRET], with a dream/vision I had, but I need help to develop that device, any help is more than welcome.
- Added a new Damaged files rebuilder, if you download a file 3 or more times and all are damaged, drop them there and you'll get a flawless version.
- Added a new Multidimensional mathematic analyzer, it can create atomic/binary fractals and perfect circles, please anyone explain me this discovery.
- Added the Secrets window to the tool selector, so it's easier to see, also a new link to finally get back all the updated secret files, install manually.
- Several other updates and changes, some speed and size improvement, etc.
Any feedback is welcome, so please let me know what you think of it now. Specially I need help about the Infiniscope and the Atomic fractals that made circles without using the number Pi, Sine or Cosine. Thanks a lot for everything and have a nice day! :-)
Hello everyone, in a few days I'll update the tool again, with a fully working resource pack converter (between pack 1, 2, 3 and 4), 3D block viewer, the block screen saver upgraded to real 3D blocks (see attached images). Also I've found the best seed I've seen so far, try "Draculaura" (-1994576438) as the seed and teleport around 657, 200, -4965 and you'll see a mountain at almost height 200, with savanna, mesa (badlands), desert, plains, jungle and ocean all neaby. It also includes 2 jugnle temples floating over the ground, and it has a flower forest with a ship around and a desert at -1300 70 -5300. It also has dozens of awesome cave systems and floating islands like if it was an old version of Minecraft, but it's for 1.13.2+, so I can't explain why it's so weird and cool at once, but I'm sure you'll like it. Thanks for your patience and have a nice day.
Thanks a lot for your interest in the program. I just want to give a little secret information, because currently I'm working on developing a new 3D application capable of loading any Minecraft world (from the oldest Indev, InfDev, to 1.12.2- and even 1.13+, including the latest 1.15+ version). It should be something similar to the old MCEdit, but with support for the latest versions, although I believe that I'll need the help of someone to correctly implement the saving function, so I might need access to the latest Minecraft source code to copy some parts for being able to save worlds without errors, since a bug here might be critical and needs to be avoided at all costs, it should come with an auto-backup feature. It's being made with Microsoft Visual Studio 2019 and Unity in C#, so anyone interested in a collaboration, please feel free to contact me. And please remember that I can only connect once a week to the internet from my cousin's house. Also in a week or so this tool should get a little update with support for 1.15+ (bee related blocks), and also several new useful tools. Remember to download it from GitHub since it's the latest version and comes with a pre-compiled executable ready to work (you can see it's location on the GitHub page, in the issues tab). Thanks for your understanding and have a nice day.