Client.json

client.json is the file that accompanies client.jar in .minecraft/versions/  and lists the version's attributes. When using the latest version of the Minecraft launcher, it is named  .json. The JSON file for specific versions is located in the version_manifest.json file.

JSON format
This is the JSON format for client.json.


 * The root tag.
 * : Contains information about the username, the version, the game directory and more. Also contains compound tags, explained below.
 * A value in the list.
 * This tag appears twice.
 * This tag contains "action" and "features".
 * : Its value is "allow".
 * : Appears only in the first appearance of the compound tag.
 * : Appears only in the second appearance of the compound tag.
 * : Appears only in the first appearance of the compound tag. Its value is "--demo".
 * : Appears only in the second appearance of the compound tag. Keeps information about the width and height.
 * : A value in the list.
 * : A list of more compound tags containing "rules" and "value".
 * : This tag appears four times.
 * : This tag contains "action" and "os".
 * : Its value is "allow".
 * : Its value is "osx" for the first appearance of the compound tag and "windows" for the second and third. Does not appear in the fourth appearance.
 * : Appears only in the third appearance of the compound tag. Its value is "^10\\.".
 * : Appears only in the fourth appearance of the compound tag. Its value is "x86".
 * : Appears only in the second and fourth appearance of the compound tag.
 * : Appears only in the first and third appearance of the compound tag.
 * : A value.
 * : The assets version.
 * : A string of letters and numbers.
 * : The size of the version.
 * : The total size of the version.
 * : The URL that the game should visit to download the assets.
 * : As of Java Edition 1.14, this tag's value is "1.14".
 * This tag appears twice. Its name is "client" the first time and "server" the second.
 * : A string of letters and numbers.
 * : The size of the client.jar or the server.jar.
 * : The URL that the game should visit to download the client.jar or the server.jar.
 * : The name of this version client (e.g. 1.14.3).
 * : A giant list of libraries.
 * : A library.
 * : A download.
 * : Info about the download.
 * : Path for an URL.
 * : A string of letters and numbers.
 * : The size of the download.
 * : The URL that the game should visit to download a .jar file.
 * : Appears only for some libraries.
 * : This tag is the "artifact" tag for Linux, but appears even if the game is not run in Linux. Appears only in some libraries.
 * : This tag is the "artifact" tag for MacOS, but appears even if the game is not run in MacOS. Appears only in some libraries.
 * : This tag is the "artifact" tag for Windows, but appears even if the game is not run in Windows. Appears only in some libraries.
 * : This tag is the "artifact" tag for downloading a "java-objc-bridge-1.0.0-javadoc.jar" file. Appears only in one library.
 * : This tag is the "artifact" tag for OS X, but appears even if the game is not run in OS X. Appears only in one library.
 * : This tag is the "artifact" tag for downloading a "java-objc-bridge-1.0.0-sources.jar" file. Appears only in one library.
 * : A name that looks like an APK name, but shows what is downloaded.
 * : Appears only when there are classifiers for natives.
 * : This tag's name depends on the natives that appear in the classifiers, so it can be "linux", "macos", "windows" or "osx". Its value will be the corresponding classifier ("natives-linux" etc.).
 * : Appears only in two libraries.
 * : Shows what to exclude from the extraction.
 * : Its value is "META-INF/".
 * : Appears only in the last two libraries. Contains a compound with the tags "action" and "os", as shown above.
 * : Its value is "-Dlog4j.configurationFile=${path}".
 * : Its value is "client-1.12.xml", but may differ for older versions.
 * : A string of letters and numbers.
 * : The size of the file.
 * : The URL the game should visit to download the file.
 * : Its value is "log4j2-xml".
 * : The main game class; for modern versions, it is, but it may differ for older or ancient versions.
 * : The minimum Launcher version that can run this version of the game.
 * : The release date and time.
 * : Same as "releaseTime".
 * : The type of this game version. It is shown in the version list when you create a new installation. The default values are "release" and "snapshot".
 * : Its value is "client-1.12.xml", but may differ for older versions.
 * : A string of letters and numbers.
 * : The size of the file.
 * : The URL the game should visit to download the file.
 * : Its value is "log4j2-xml".
 * : The main game class; for modern versions, it is, but it may differ for older or ancient versions.
 * : The minimum Launcher version that can run this version of the game.
 * : The release date and time.
 * : Same as "releaseTime".
 * : The type of this game version. It is shown in the version list when you create a new installation. The default values are "release" and "snapshot".