Inceptum/docs/FileFormats.md

129 lines
3.8 KiB
Markdown

# 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)
```json5
{
// 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
```json5
{
// 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)
```json5
{
// 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
}
```