Skip to content

Commit 24d74a5

Browse files
committed
Update the schema
1 parent f6d0b4b commit 24d74a5

File tree

3 files changed

+75
-70
lines changed

3 files changed

+75
-70
lines changed

index.md

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,34 @@
1-
---
2-
layout: page
3-
title: Neos Mod Loader
4-
---
5-
6-
[NeosModLoader] is a mod loading [plugin] for [NeosVR].
7-
It also contains some extra magic to still let you hang out with other people that might not have the plugin, as usually having different plugins means you can't connect to the same sessions.
8-
9-
You can find the source code and release builds of it [from Github][NeosModLoader].
10-
11-
## Finding mods
12-
13-
The [mods list][mods] is a community-managed listing of mods that are vetted to not be malicious.
14-
15-
The purpose of the list is to make it easier & safer for people to run mods.
16-
Since mods are another form of executables, and it's generally not recommended to not run random executables from the internet.
17-
18-
NeosModLoader of course allows you to run any mods, but be extra cautious about making sure that they're safe if you go looking for ones not on the list.
19-
20-
## For developers
21-
22-
If you have more items for the list, please [open a PR][submission tutorial]. If you want to get update notifications join [our Discord][discord].
23-
24-
The [list][mods] is automatically generated from a machine-readable [manifest] with github actions. The [schema documentation][schema] explains what the fields in the manifest mean. Having a machine-readable manifest is an important step towards our planned mod manager and auto-updater software.
25-
26-
The source is hosted at [this GitHub repository][github repository].
27-
28-
<!-- Links -->
29-
[discord]: https://discord.gg/vCDJK9xyvm
30-
[github repository]: https://github.com/neos-modding-group/neos-mod-manifest
31-
[manifest]: https://github.com/neos-modding-group/neos-mod-manifest/blob/master/manifest.json
32-
[mods]: mods
33-
[NeosModLoader]: https://github.com/neos-modding-group/NeosModLoader
34-
[schema]: schema
35-
[submission tutorial]: submission-tutorial
36-
[NeosVR]: https://neos.com
37-
[plugin]: https://wiki.neos.com/Plugins
1+
---
2+
layout: page
3+
title: Neos Mod Loader
4+
---
5+
6+
[NeosModLoader] is a mod loading [plugin] for [NeosVR].
7+
It also contains some extra magic to still let you hang out with other people that might not have the plugin, as usually having different plugins means you can't connect to the same sessions.
8+
9+
You can find the source code and release builds of it [from Github][NeosModLoader].
10+
11+
## Finding mods
12+
13+
The [mod list] is a community-managed listing of mods that are vetted to not be malicious.
14+
15+
The purpose of the list is to make it easier & safer for people to run mods.
16+
Since mods are another form of executables, and it's generally not recommended to not run random executables from the internet.
17+
18+
NeosModLoader of course allows you to run any mods, but be extra cautious about making sure that they're safe if you go looking for ones not on the list.
19+
20+
## For developers
21+
22+
If you have more items for the list, please [make a submission][submission tutorial]. If you want to get update notifications join [our Discord][discord].
23+
24+
The [mod list] is automatically generated from a machine-readable [mod manifest] with github actions.
25+
26+
<!-- Links -->
27+
[discord]: https://discord.gg/vCDJK9xyvm
28+
[mod list]: mods
29+
[mod manifest]: manifest
30+
[NeosModLoader]: https://github.com/neos-modding-group/NeosModLoader
31+
[NeosVR]: https://neos.com
32+
[plugin]: https://wiki.neos.com/Plugins
33+
[schema]: schema
34+
[submission tutorial]: submission-tutorial

mod-guidelines.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ Mods **must not** track users, as defined in the *User Data Tracking* section of
7575
Mods **should** avoid performance hits to Neos where possible. While performance is not the primary goal of the audit, if we notice code that is extremely inefficient we may ask you to improve it.
7676

7777
<!-- Links -->
78+
[flag]: manifest-flags
7879
[manifest repository]: https://github.com/neos-modding-group/neos-mod-manifest
7980
[mod and plugin policy]: https://wiki.neos.com/Mod_%26_Plugin_Policy
8081
[Neos guidelines]: https://docs.google.com/document/d/1G_-PaxSp8rGYeHUIXK-19b2VqOLlpOZ18e7DrOwNjG4/edit
8182
[schema]: schema
8283
[submission tutorial]: submission-tutorial
83-
[flag]: manifest-flags

schema.md

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,52 @@ layout: page
33
title: Manifest Schema
44
---
55

6+
An actual json schema is provided [here](https://github.com/neos-modding-group/neos-mod-manifest/blob/master/schema.json). This can be used in all manner of [schema viewers](https://json-schema.app/view/%23?url=https%3A%2F%2Fraw.githubusercontent.com%2Fneos-modding-group%2Fneos-mod-manifest%2Fmaster%2Fschema.json), if you prefer a more interactive view of the schema.
7+
8+
If you're having trouble visualizing, take a look at the actual [manifest json](https://github.com/neos-modding-group/neos-mod-manifest/blob/master/manifest.json).
9+
610
In the schema, the type of `map` differs from `object` in that the names of the keys aren't always the same.
711

12+
Anything not explicitly marked as **optional** is mandatory.
13+
814
Top-level: `object`
915

10-
- Schema version: `string` (semver version)
16+
- `schemaVersion`: `string` [semver] of schema
1117
- Mods: `map`
12-
- Key: `string` (mod GUID)
13-
- Value: `object`
14-
- Name: `string`
15-
- Description: `string`
16-
- Authors: `map`
17-
- Key: `string` (author name)
18+
- Key: `string` mod GUID, any unique string but typically something like "io.github.myuser.mymod"
19+
- Value: `object` the mod definition
20+
- `name`: `string` the mod's name
21+
- `description`: `string` short description of the mod's functionality
22+
- `authors`: `map`
23+
- Key: `string` author name
1824
- Value: `object`
1925
- Url: `string`
20-
- Source Location: `string`
21-
- Website: `string`
22-
- Tag list: `string[]` (useful for search)
23-
- Category: `string`
24-
- Flag list: `string[]` (see mod flags below)
26+
- `sourceLocation`: `string` **optional** A link to the mod's source code.
27+
- `website`: `string` **optional** A link to the mod's website. May be the same as `sourceLocation`.
28+
- `tags`: `string[]` **optional** A list of tags that may be used for search in the future.
29+
- `category`: `string` A [category](categories) that your mod fits into
30+
- Flag list: `string[]` **optional** A list of [flags](manifest-flags) that apply to your mod
2531
- Versions: `map`
26-
- Key: `string` (semver version)
27-
- Value: `object`
28-
- Changelog: `string`
29-
- Release URL: `string`
30-
- Neos version compatibility: `string` (NOT semver "2022.1.28.1310" but "<" and ">" rules will work fine)
31-
- Modloader version compatibility: `string` (semver version specifier)
32-
- Flag list: `string[]` (see version flags below)
33-
- Conflicts: `map`
34-
- Key: `string` (mod GUID)
35-
- Value: `string` (semver version specifier, "*" is all versions)
36-
- Dependencies: `map`
37-
- Key: `string` (dependency mod GUID)
32+
- Key: `string` [semver], should match NeosMod.Version
33+
- Value: `object` the mod version definition
34+
- `changelog`: `string` **optional** A short description of what changed in your mod. This is markdown formatted text, so you can do things like bulleted lists.
35+
- `releaseURL`: **optional** `string` A link to this mod version's release notes.
36+
- `neosVersionCompatibility `: `string` **optional** Neos does not follow [semver] "2022.1.28.1310" but "<" and ">" rules will work fine. An example rule might be ">2021.4.2.690,<=2022.1.28.1310"
37+
- `modloaderVersionCompatibility `: `string` **optional** [semver] version specifier, such as "~1.12.0" or ">=1.8.0"
38+
- `flags`: `string[]` **optional** A list of [flags](manifest-flags) that apply to this specific mod version
39+
- `conflicts`: `map` **optional**
40+
- Key: `string` conflicting mod GUID
41+
- Value: `object`
42+
- `version`: `string` [semver] version specifier, "*" is all versions
43+
- `dependencies`: `map` **optional**
44+
- Key: `string` dependency mod GUID
3845
- Value: `object`
39-
- Key: `string` (mod GUID)
40-
- Value: `object`
41-
- Version: `string` (semver version specifier)
42-
- Artifacts: `object[]`
43-
- URL: `string` (download url of the .dll file)
44-
- Filename: `string` (filename to use for the file, if missing extract from the last part of the URL)
45-
- Sha256: `string`
46-
- Install location: `string` (defaults to "/nml_mods")
46+
- `version`: `string` [semver] version specifier
47+
- `artifacts`: `object[]` A list of files to install as part of this mod version.
48+
- `url`: `string` download url of the artifact
49+
- `filename`: `string` **optional** filename to use for the file. If absent, filename will be extracted from the last part of the URL
50+
- `Sha256`: `string` SHA-256 hash of this artifact
51+
- `blake3`: `string` **optional** Blake3 hash of this artifact
52+
- `installLocation`: `string` **optional** Where this artifact should be installed. defaults to "/nml_mods"
53+
54+
[semver]: https://semver.org/

0 commit comments

Comments
 (0)