Add Package format

2025-04-15 12:32:47 +00:00
parent 4cf9840de2
commit d0eba51a8c

86
Package-format.md Normal file

@ -0,0 +1,86 @@
## Package format
### Overview
- [Package format requirements](https://rainy.patafour.zip/package/create/docs/)
- A subset of the simple BlueSteel Rainycolor format is currently supported. [Full reference (CW: vore)](https://yozora.bluesteel.737.jp.net/HarmonyPublic/SOS-Kongou/wiki/Create-Module#user-content-rainycolor-simple)
### Standard package
```
├───app
│ └───BepInEx
│ └───*
├───option
│ └───Axyz
│ └───*
├───icon.png
├───README.md
├───manifest.json
└───(additional nonfunctional files, such as CHANGELOG.md)
```
More file overrides may be supported in the future. [You can help.](https://gitea.tendokyu.moe/TeamTofuShop/segatools/issues/63)
Arbitrary scripts are not supported by design and that will probably never change. Notably, packages with `post_load.ps1` will always be marked as unsupported.
### segatools package
```
├───segatools
│ └───(mu3hook|chusanhook|mu3io|chuniio|aimeio).dll
├───icon.png
├───README.md
└───manifest.json
```
With a `manifest.json` looking like:
```json
{
"name": "mu3hook",
"version_number": "0.0.20241225",
"website_url": "https://gitea.tendokyu.moe/TeamTofuShop/segatools",
"description": "Loader for O.N.G.E.K.I.",
"dependencies": [],
"installers": [{ "identifier": "segatools", "module": "mu3hook" }]
}
```
Valid `module`s are: `mu3hook`, `chusanhook`, `mu3io`, `chuniio`, `amnet`, `aimeio`. `amnet` implies `aimeio` and an `aimeio.dll`. `module` can be an array, implying multiple DLLs:
```json
{
...
"installers": [{ "identifier": "segatools", "module": [ "aimeio", "chuniio" ] }]
}
```
### Native mod
```
├───foo.dll
├───bar.dll
├───icon.png
├───README.md
└───manifest.json
```
With a `manifest.json` pointing at the filename like:
```json
{
"name": "SomeNativeMod",
"version_number": "1.0.0",
"website_url": "https://example.com",
"description": "Loads a DLL",
"dependencies": [],
"installers": [
{
"identifier": "native_mod",
"dll-game": "foo.dll",
"dll-amdaemon": "bar.dll"
}
]
}
```
These packages are supposed to be hooked into the game, and into amdaemon. Both DLL fields are optional, therefore it's fine to only provide a DLL for the game, or only for amdaemon.