Instance addons

Instance addons represent instances of Minecraft itself, while non-instance addons have to be installed into an existing instance of Minecraft. An instance addon MAY have launch patches for each side by applying launch patches of other instance addons using the patch flag or by patching the Minecraft launch configuration directly using a launch patch object. Moreover they MAY override the main jar file using the launch flag or inherit the launch configuration, including main jar overrides and patches, from another instance addon using the the launch flag. The launch flag is recursive which means, that an instance addon MAY inherit it's launch configuration from another addon, which itself inherits it. Instance addons MAY modify inherited launch configurations using a launch patch object or override the main jar file. Inheriting a launch configuration with the launch flag also includes any modifications to it.

Launch configurations

Instance launch configurations are always based on a Minecraft launch config and MAY have patches applied to it. Patches are done by launch patch objects, which can override the main class and include additional arguments. Moreover instance addons MAY also add libraries to the classpath using the library install action. When launching a Minecraft instance, AddonScript implementations SHOULD take the Minecraft launch configuration as specified here of the version, on which the instance is based on, and then apply all patches of instance addons in the instance to it. Patches are applied in the order specified below. Patches, which are applied later, MAY override settings from earlier patches.

Patch apply order

Patches are applied in the following order:

  1. Patches inherited from the another instance addon using the launch flag. The patches of that instance addon are applied according to the same order rules
  2. Patches inherited from the another instance addon using the patch flag in the order, in which the addons are specified in the relations array
  3. Patches done directly by the instance addon using the patches array in the order, in which they are specified in the array.

Main file

Instance addons MAY have a main jar file for each side. The main file MAY be specified for a side using the launch flag or MAY be inherited from another instance addon or from Minecraft itself using the launch flag. If it is neither specified nor inherited, the instance doesn't have a main jar file.