From dac6339ab569fec587135d3fb60c672b4b79e17b Mon Sep 17 00:00:00 2001 From: Jack Martin Date: Wed, 25 Mar 2026 14:29:45 -0500 Subject: [PATCH 1/4] initial changes to add support for modding api 0.1.0 --- mods.json | 51 +++--------------------------------------------- mods.schema.json | 15 ++++---------- 2 files changed, 7 insertions(+), 59 deletions(-) diff --git a/mods.json b/mods.json index f545865..3550a5d 100644 --- a/mods.json +++ b/mods.json @@ -1,59 +1,14 @@ [ { - "id": "4aa269de-c271-404a-8d5e-b107fe6e5898", + "id": "io.github.mio-modding.mio-modding-api", "titleSlug": "mio-modding-api", "displayTitle": "Modding API", "authorSlug": "MIO-Modding", "displayAuthor": "MIO Modding", - "description": "Mod loader for MIO: Memories in Orbit", + "description": "Modding API for MIO: Memories in Orbit", "versions": { - "0.0.5": "https://github.com/MIO-Modding/mio-modding-api/releases/download/v0.0.5/winhttp.dll" + "0.1.0": "https://github.com/MIO-Modding/mio-modding-api/releases/download/0.1.0/mio-modding-api.zip" }, - "configFiles": [], - "dependencies": [] - }, - { - "id": "5fb0423f-5ab2-48c2-9ed1-e636882e4d73", - "titleSlug": "mio-noclip-mod", - "displayTitle": "No-Clip Mod", - "authorSlug": "Ilemni", - "displayAuthor": "Ilemni", - "description": "A noclip mod for MIO: Memories in Orbit", - "versions": { - "0.2.0": "https://github.com/Ilemni/mio-noclip-mod/releases/download/v0.2/noclip.dll", - "0.1.1": "https://github.com/Ilemni/mio-noclip-mod/releases/download/v0.1.1/noclip.dll", - "0.1.0": "https://github.com/Ilemni/mio-noclip-mod/releases/download/v0.1/noclip.dll" - }, - "configFiles": [ - "noclip/keybinds.txt" - ], - "dependencies": [] - }, - { - "id": "7712fca7-f2c8-423b-b2a8-bf341826070a", - "titleSlug": "mio-teleport-mod", - "displayTitle": "Teleport Mod", - "authorSlug": "CoCoHfl", - "displayAuthor": "CoCo", - "description": "A teleport mod for MIO", - "versions": { - "1.0.0": "https://github.com/CocoHfl/mio-teleport-mod/releases/download/v1.0.0/tpmod.dll" - }, - "configFiles": [], - "dependencies": [] - }, - { - "id": "b37ba35b-6e1f-4cd4-b268-76a6d05c2039", - "titleSlug": "mio-purple", - "displayTitle": "Purple Tendrils", - "authorSlug": "Ilemni", - "displayAuthor": "Ilemni", - "description": "Change the color of Mio's tendrils to purple", - "versions": { - "0.1.0": "https://github.com/Ilemni/mio-purple/releases/download/v0.1/mio_purple.dll", - "0.1.1": "https://github.com/Ilemni/mio-purple/releases/download/v0.1.1/mio_purple.dll" - }, - "configFiles": [], "dependencies": [] } ] diff --git a/mods.schema.json b/mods.schema.json index 6f7bdfc..d3d423a 100644 --- a/mods.schema.json +++ b/mods.schema.json @@ -6,12 +6,12 @@ "type": "array", "items": { "type":"object", - "required": ["id", "titleSlug", "displayTitle", "authorSlug", "displayAuthor", "description", "versions", "configFiles", "dependencies"], + "required": ["id", "titleSlug", "displayTitle", "authorSlug", "displayAuthor", "description", "versions", "dependencies"], "additionalProperties": false, "properties": { "id": { "type": "string", - "description": "A UUID used for identifying your mod. You can generate one at https://www.uuidgenerator.net/version4" + "description": "An identifier for your mod." }, "titleSlug": { "type": "string", @@ -41,20 +41,13 @@ "patternProperties": { "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$": { "type": "string", - "description": "URL to the .dll download for your mod." + "description": "URL to the .zip download for your mod." } } }, - "configFiles": { - "type": "array", - "description": "A list of paths that your mod uses inside MIO/modconfig. For example, if your mod uses `modconfig/noclip/keybinds.txt`, you would put `\"configFiles\": [\"noclip/keybinds.txt\"]`.", - "items": { - "type": "string" - } - }, "dependencies": { "type": "array", - "description": "A list of UUIDs of mods your mod depends on. You don't have to put Modding API.", + "description": "A list of the identifiers of mods your mod depends on.", "items": { "type": "string" } From c23ecc7953665114f789dba79e8e455780cd2ded Mon Sep 17 00:00:00 2001 From: Jack Martin Date: Wed, 25 Mar 2026 14:37:02 -0500 Subject: [PATCH 2/4] update readme and add back configFiles --- README.md | 6 +++--- mods.json | 1 + mods.schema.json | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1527915..c0958bd 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A list of mods for MIO: Memories in Orbit. Fields: ```js export interface Mod { - id: string; // A UUID used for identifying your mod. You can generate one at https://www.uuidgenerator.net/version4 + id: string; // An identifier for your mod. titleSlug: string; // The repository slug from the URL of your github repository. Used for linking to the repository. displayTitle: string; // How you want your mod's name to be displayed. authorSlug: string; // The username slug from the URL of your github account. Used for linking to the repository and your account. @@ -12,8 +12,8 @@ export interface Mod { description: string; // A short description of your mod. versions: Versions; // A list of downloads for your mod. See below. configFiles: string[]; // A list of paths that your mod uses inside MIO/modconfig. For example, if your mod uses `modconfig/noclip/keybinds.txt`, you would put `"configFiles": ["noclip/keybinds.txt"]`. - dependencies: string[]; // A list of UUIDs of mods your mod depends on. You don't have to put Modding API. + dependencies: string[]; // A list of the identifiers of mods your mod depends on. } -export type Versions = Record; // Used to list versions of your mod and the corresponding .dll file downloads. Example: "versions": {"0.1.0": "https://github.com/YourUsername123/your-mod/releases/download/v0.1.0/your_mod.dll"} +export type Versions = Record; // Used to list versions of your mod and the corresponding .zip file downloads. Example: "versions": {"0.1.0": "https://github.com/YourUsername123/your-mod/releases/download/v0.1.0/your_mod.zip"} ``` \ No newline at end of file diff --git a/mods.json b/mods.json index 3550a5d..52f4015 100644 --- a/mods.json +++ b/mods.json @@ -9,6 +9,7 @@ "versions": { "0.1.0": "https://github.com/MIO-Modding/mio-modding-api/releases/download/0.1.0/mio-modding-api.zip" }, + "configFiles": [], "dependencies": [] } ] diff --git a/mods.schema.json b/mods.schema.json index d3d423a..22c16ab 100644 --- a/mods.schema.json +++ b/mods.schema.json @@ -45,6 +45,13 @@ } } }, + "configFiles": { + "type": "array", + "description": "A list of paths that your mod uses inside MIO/modconfig. For example, if your mod uses `modconfig/noclip/keybinds.txt`, you would put `\"configFiles\": [\"noclip/keybinds.txt\"]`.", + "items": { + "type": "string" + } + }, "dependencies": { "type": "array", "description": "A list of the identifiers of mods your mod depends on.", From 4ed72371e1df2c59dbc43623499706c98b9d8612 Mon Sep 17 00:00:00 2001 From: Jack Martin Date: Wed, 25 Mar 2026 17:45:20 -0500 Subject: [PATCH 3/4] add modDirectoryName field --- README.md | 1 + mods.json | 1 + mods.schema.json | 6 +++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c0958bd..4e4019d 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ export interface Mod { authorSlug: string; // The username slug from the URL of your github account. Used for linking to the repository and your account. displayAuthor: string; // How you want your username to be displayed. description: string; // A short description of your mod. + modDirectoryName: string; // What you want the install and config directories for your mod to be set to. In most cases, this should be the same as the titleSlug field, but it is up to you. versions: Versions; // A list of downloads for your mod. See below. configFiles: string[]; // A list of paths that your mod uses inside MIO/modconfig. For example, if your mod uses `modconfig/noclip/keybinds.txt`, you would put `"configFiles": ["noclip/keybinds.txt"]`. dependencies: string[]; // A list of the identifiers of mods your mod depends on. diff --git a/mods.json b/mods.json index 52f4015..3fb0ff6 100644 --- a/mods.json +++ b/mods.json @@ -6,6 +6,7 @@ "authorSlug": "MIO-Modding", "displayAuthor": "MIO Modding", "description": "Modding API for MIO: Memories in Orbit", + "modDirectoryName": "modding-api", "versions": { "0.1.0": "https://github.com/MIO-Modding/mio-modding-api/releases/download/0.1.0/mio-modding-api.zip" }, diff --git a/mods.schema.json b/mods.schema.json index 22c16ab..8fca4cc 100644 --- a/mods.schema.json +++ b/mods.schema.json @@ -6,7 +6,7 @@ "type": "array", "items": { "type":"object", - "required": ["id", "titleSlug", "displayTitle", "authorSlug", "displayAuthor", "description", "versions", "dependencies"], + "required": ["id", "titleSlug", "displayTitle", "authorSlug", "displayAuthor", "description", "modDirectoryName", "versions", "dependencies"], "additionalProperties": false, "properties": { "id": { @@ -33,6 +33,10 @@ "type": "string", "description": "A description of your mod." }, + "modDirectoryName": { + "type": "string", + "description": "What you want the install and config directories for your mod to be set to. In most cases, this should be the same as the titleSlug field, but it is up to you." + }, "versions": { "type": "object", "description": "A list of downloads for your mod, by semantic version.", From f8c682ff99fcd411c5dbfd26d5f9f29a092d7474 Mon Sep 17 00:00:00 2001 From: Jack Martin Date: Wed, 25 Mar 2026 18:13:14 -0500 Subject: [PATCH 4/4] add freecam mod for testing --- mods.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mods.json b/mods.json index 3fb0ff6..940f0d9 100644 --- a/mods.json +++ b/mods.json @@ -12,5 +12,23 @@ }, "configFiles": [], "dependencies": [] + }, + { + "id": "io.github.ilemni.mio-freecam-mod", + "titleSlug": "mio-freecam-mod", + "displayTitle": "Freecam Mod", + "authorSlug": "Ilemni", + "displayAuthor": "Ilemni", + "description": "A freecam mod for MIO: Memories in Orbit", + "modDirectoryName": "freecam", + "versions": { + "1.0.0": "https://github.com/Ilemni/mio-freecam-mod/releases/download/v1.0/freecam-mod.zip" + }, + "configFiles": [ + "keybinds.txt" + ], + "dependencies": [ + "io.github.mio-modding.mio-modding-api" + ] } ]