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 arguments supplied to the game, such as information about the username and the version.
 * An argument.
 * A conditional argument.
 * : A list of rules.
 * A rule.
 * : Its value is "allow".
 * : Includes a set of features that can be checked.
 * : Appears only in the first appearance of the compound tag.
 * : Appears only in the second appearance of the compound tag.
 * : An argument or a list of arguments that is added when the condition is matched.
 * : Contains JVM arguments, such as information about memory allocation, garbage collector selection, or environmental variables.
 * : A conditional argument.
 * : A list of rules.
 * : A rule.
 * : 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".
 * : An argument or a list of arguments that is added when the condition is matched.
 * : The assets version.
 * : The SHA1 of the assets file.
 * : 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". It is "1.15" for 1.15 snapshots.
 * : The client.jar download information.
 * : The SHA1 of the jar.
 * : The size of jar in bytes.
 * : The URL where the jar is hosted.
 * : The obfuscation maps for this client version. Added in Java Edition 19w36a but got included in 1.14.4 also. Repeats the structure of the client download information.
 * : The server download information. Repeats the structure of the client download information.
 * : The obfuscation maps for this server version. Added in Java Edition 19w36a but got included in 1.14.4 also. Repeats the structure of the client download information.
 * : The name of this version client (e.g. 1.14.4).
 * : A list of libraries.
 * : A library.
 * : The library's download information.
 * : Info about the artifact.
 * : Path to store the downloaded artifact, relative to the "libraries" directory in .minecraft.
 * : The SHA1 of the file.
 * : The size of the file.
 * : The URL that the game should visit to download the file.
 * : Appears only for some libraries.
 * : Specifies the artifact information for the artifact with this specific classifier. Repeats the artifact structure above.
 * : A maven name for the library, in the form of "groupId:artifactId:version".
 * : Information about native libraries (in C) bundled with this library. 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.
 * : Information about Log4j log configuration.
 * : The JVM argument for adding the log configuration. Its value is "-Dlog4j.configurationFile=${path}".
 * : Its value is "client-1.12.xml", but may differ for older versions.
 * : The SHA1 for this file.
 * : The size of the file.
 * : The URL the game should visit to download the log configuration..
 * : 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 "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".