Client.json

client.json is the file that accompanies client.jar in .minecraft/versions/<version> and lists the version's attributes. When using the latest version of the Minecraft launcher, it is named <game version>.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.
** : The assets version.
** : Its value is 1 for all recent versions of the game (1.16.4 and above) or 0 for all others. This tag tells the launcher whether it should urge the user to be careful since this version is older and might not support the latest player safety features.
** :
*** : 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).
** : The version of the Java Runtime Environment.
*** : Its value for all 1.17 snapshots is "jre-legacy" until 21w18a and "java-runtime-alpha" since 21w19a.
*** : Its value for all 1.17 snapshots is 8 until 21w18a and 16 since 21w19a.
** : 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".
**** : The URL of the Maven repository (used by Forge).
**** : 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 is the corresponding classifier ("natives-linux" etc.).
**** : Appears only in two libraries.
***** : Shows what to exclude from the extraction.
****** : Its value is "META-INF/".
**** : 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}".
**** : The Log4j2 XML configuration used by this version for the launcher for launcher's log screen.
***** : Its value is "client-1.12.xml", but may differ for older versions.For instance, for Java Edition 1.10.2, the value is "client-1.7.xml".
***** : 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 net.minecraft.client.main.Main, but it may differ for older or ancient versions.For instance, for rd-132211, the value is com.mojang.rubydung.RubyDung.
** : 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".
== History ==
== Notes ==
Category:Development
es:Client.json
ja:Client.json
pt:Client.json
zh:client.json