I've been tweaking things in the /data file located in the version .jar. After I compress, change back to .jar, and run it is overwritten by launcher. How do I get around this?
You need to create a new version by making a copy of the version that you want to mod (in the versions folder), then rename the folder and the jar and json inside to something that is not used by Mojang (e.g. I have a modded 1.6.4 instance called "TMCWv4"), all to the same name.
Then open the json file and look for a line that says "id": "1.6.4" or similar (with 1.6.4 being the version in this case) and change the version to match the name you used before. Also, look for "client.jar" and delete the entire "downloads" section enclosing it (everything from "downloads" to the closing "}," Here is an example; everything but the last line, which is the id, must be deleted).
You should then be able to mod the jar as usual (remember to delete META-INF, even if you are just changing a data file, and in that case a proper resource or data pack is much preferred - this is the entire reason for them and directly modding the game files is not officially supported, and even in a legally gray area (else, why would they put so many measures in to make it hard to mod? Most mods come with installers for a reason, so you don't need to manually mess with the files, and even those can break with launcher changes).
Also, remember to create a new profile in the launcher and specify a custom game directory, especially if you are using multiple versions (running older versions, modded or otherwise, in the same directory as a newer version will likely cause a crash; opening a world in the wrong version will likely corrupt it (completely for 1.13+ -> older version).
I've been tweaking things in the /data file located in the version .jar. After I compress, change back to .jar, and run it is overwritten by launcher. How do I get around this?
You need to create a new version by making a copy of the version that you want to mod (in the versions folder), then rename the folder and the jar and json inside to something that is not used by Mojang (e.g. I have a modded 1.6.4 instance called "TMCWv4"), all to the same name.
Then open the json file and look for a line that says "id": "1.6.4" or similar (with 1.6.4 being the version in this case) and change the version to match the name you used before. Also, look for "client.jar" and delete the entire "downloads" section enclosing it (everything from "downloads" to the closing "}," Here is an example; everything but the last line, which is the id, must be deleted).
You should then be able to mod the jar as usual (remember to delete META-INF, even if you are just changing a data file, and in that case a proper resource or data pack is much preferred - this is the entire reason for them and directly modding the game files is not officially supported, and even in a legally gray area (else, why would they put so many measures in to make it hard to mod? Most mods come with installers for a reason, so you don't need to manually mess with the files, and even those can break with launcher changes).
Also, remember to create a new profile in the launcher and specify a custom game directory, especially if you are using multiple versions (running older versions, modded or otherwise, in the same directory as a newer version will likely cause a crash; opening a world in the wrong version will likely corrupt it (completely for 1.13+ -> older version).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Data pack, of course! LoL I was making this more difficult than necessary. Thanks.