Inceptum/docs/FileFormats.md

3.8 KiB

File Formats

Inceptum uses several json formats to store metadata and configs. All of these are subject to change, though automatic migrations will likely be provided.

inceptum.json (Main Config)

{
  // Whether to show snapshots in the version selector for new instances
  "snapshots": false,
  // Whether to launch the GUI in dark mode
  // Configurable in Settings->Dark Theme
  "darkTheme": true,
  // Whether to require an account to launch the game
  // Intended to allow running the game from USB sticks on constrained networks
  "enforceAccount": false,
  // The currently selected account
  // Used to launch the game
  "lastAccount": "some UUID",
  // The last name used for an offline session
  "offlineAccountLastName": "some name",
  // The update channel. Either "CI" or "Stable"
  // I personally recommend the CI channel as it gets the latest fixes and features quicker
  "channel": "CI",
  // The author name to add to packs where the metadata format requires specifying one
  "authorName": "Inceptum"
}

accounts.json

Do not EVER use this file manually! NEVER upload it anywhere! It stores your minecraft account login and CAN BE USED TO IMPERSONATE YOU!

instance.json (Instance Metadata)

Please note that all entries except for "version" are optional

{
  // The version to use for launching this
  // Can be a fabric loader version (as seen here) or a normal minecraft version (like "1.17.1")
  "version": "fabric-loader-0.12.12-1.17.1",
  // A custom java executable to use for launching this instance
  "java": "/path/to/java",
  // Sets the initial size of the Java heap
  // In bytes (this is 2MB)
  "minMem": 2097152,
  // Sets the maximum size to which the Java heap can grow
  // In bytes (this is 2GB)
  "maxMem": 2147483648,
  // Additional arguments to pass to minecraft
  "arguments": {
    // JVM arguments to add
    // Use this for things like aikars flags or java agents
    "jvm": [
      "-Dsome.argument=value"
    ],
    // Arguments to add when launching as a client
    // Generally not needed, but can be used to do things like launching a server (I think)
    "client": [
      "someArgument"
    ],
    // Arguments to add when launching as a server
    // Things like "nogui" go here
    "server": [
      "nogui"
    ]
  }
}

*.imod (Mod Metadata)

{
  // Where the JAR file for this mod can be obtained
  "sources": [
    {
      // The type of the source
      // In this case, Modrinth
      "type": "modrinth",
      // The ID of the version on modrinth
      "id": "31ES0yWr"
    },
    {
      // The type of the source
      // In this case, CurseForge
      "type": "curseforge",
      // The ID of the project on CurseForge
      "projectId": 306612,
      // The ID of the file on CurseForge
      "fileId": 3609590
    },
    {
      // The type of the source
      // In this case, a direct download
      "type": "direct",
      // The name of the file this should be saved as
      "fileName": "fabric-api-0.46.1+1.17.jar",
      // The URL to download from
      "url": "https://cdn.modrinth.com/data/P7dR8mSH/versions/0.46.1+1.17/fabric-api-0.46.1+1.17.jar",
      // Dependencies for this file (optional)
      "dependencies": [
        // Dependencies in the same dependency format used int "sources"
      ]
    }
  ],
  // The sha1 hash of this file
  // Used to verify downloads and for modrinth
  "sha1": "a7d86f36c5b27bdb0008a84c3ce91e2b095a2834",
  // The murmur2 hash of this file
  // Used for curseforge
  "murmur2": "1020327834",
  // A list of dependent mods by their file names
  "dependents": [
    "someMod.imod"
  ],
  // A list of dependencies by their file names
  "dependencies": [
    "someOtherMod.imod"
  ],
  // Whether this mod was explicitly installed (used during mod removal)
  "explicit": true
}