Skip to content

Mod Metadata

The format of (package.toml) used to describe every mod package.

Mod Metadata extends from standard (package.toml).

Type Name Description
string IconSquare Relative path of preview icon (square format).
string IconSearch Relative path of preview icon (search format).
GalleryItem[] Gallery Stores preview images for this mod.
bool IsLibrary If true this mod cannot be explicitly enabled by the user.
Dictionary<string, Target> Targets Specifies the DLLs/binaries used for each backend.
string[] SupportedGames List of supported titles/games.
bool ClientSide [Optional] Indicates if the mod is a client-side mod and does not need to be disabled when joining an online lobby.

Icons

Gallery images are stored in images folder.

Each entry is a name of file in images folder.

Images use JPEG XL (.jxl)

Icon (Square)

Should be a multiple of 256x256. Recommended 512x512.

This is the preview icon used for mod search results.

It corresponds to GridDisplayMode 3.

The size of this image should be 880x440 (2:1) with a content area of 600x440.

Depending on the user's window size, the will be cropped to some size between 880x440 and 600x440. Thus you should aim to put all the important detail within the 600x440 area.

This image is expected to be around 50KiB.

The 880x440 is the target resolution for 4K displays.

Icon (List Compact View)

This is the preview icon used when displaying mods as a list (compact).

It corresponds to GridDisplayMode 1.

The size of this image should be 84x48.

This image is expected to be around 2KiB.

The 84x48 is the target resolution for 4K displays.

Icon (List View)

This is the preview icon used when displaying mods as a list.

It corresponds to GridDisplayMode 2.

The size of this image should be 168x96.

This image is expected to be around 5KiB.

The 84x48 is the target resolution for 4K displays.

Gallery images are stored in images folder.

GalleryItem

Type Name Description
string FileName Name of file in images folder.
string? Caption [Optional] One line description of the screenshot.

Is Library

If this is true, the mod cannot be explicitly enabled by the user in the manager.

Some libraries may have user configuration(s). Manager is free to hide other libraries.

Targets

This section specifies info for the individual backends.

These specify file paths relative to modfiles folder.

Find more info on the pages for the individual backends, but we'll provide some examples.

Native Mod:

[Targets."win-x64"]
any = "reloaded3.gamesupport.persona5royal.dll"
x64-v2 = "reloaded3.gamesupport.persona5royal.v2.dll"
x64-v3 = "reloaded3.gamesupport.persona5royal.v3.dll"

It's not expected for mod authors to ship with multiple instruction sets outside of super high perf scenarios. This is just for example.

.NET CoreCLR Mod:

[Targets."dotnet-latest"]
any = "Heroes.Graphics.Essentials.dll"
x86 = "x86/Heroes.Graphics.Essentials.dll"
x64 = "x86/Heroes.Graphics.Essentials.dll"

Reloaded-II Mod:

[Targets."sewer56.reloadedii-custom"]
any = "Heroes.Graphics.Essentials.dll"
x86 = "x86/Heroes.Graphics.Essentials.dll"
x64 = "x86/Heroes.Graphics.Essentials.dll"
CanUnload = true
HasExports = true

For .NET, the x86 and x64 fields indicate binaries using ReadyToRun technology. Usually a mod will only specify any or a x86+x64 pair.

Supported Games

Stores a list of supported games; by using their known Game ID.

Alternatively, when experimenting with new games which do not have a specified Game ID, you can also specify .exe name, e.g. tsonic_win.exe.

Mod managers will automatically update this to appropriate ID during process of querying Community Repository.

ClientSide

If true, this mod won't be disabled when joining an online multiplayer lobby.

This allows for mods such as UI mods to be used in mods that add online play without forcibly being disabled.

By default this value is false. So mod would get disabled.