Standard Revision X
Compatibility table:
| 1.0 | 1.1 | 1.1.1 | 1.2 | 1.3 | 1.3.1 | 1.4 | |
|---|---|---|---|---|---|---|---|
| Compatible? | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
This file includes information on how a Deltamod-compatible modpack should be structured.
This type of pack is recommended for usage as it is compatible with the most popular mod managers: Deltamod (by Deltamodders) and Deltahub (by Y114), with partial support.
Additionally, with the newest additions to Deltamod, this format may be the best one for creating GameMaker modpacks, as Deltamod is implementing more GameMaker games alongside DELTARUNE, the main game it was made for.
There should be 3 files (1 of which optional) dedicated to mod metadata and patching data.
meta.jsonis a file dedicated to storing the mod's name, authors, version and mod type (full game or demo). It is mainly used in UI and compatibility checks.modding.xmlconsists of tags, which have three fields:patch,toandtype. It is used to actually patch the game and install your mod.icon.pngis an optional icon the modder can include in their modpack. It must be a 1:1 image (256x256 reccomended but can be any size). It isn't included in this example folder.
You can use the MiscTools to create the meta.json and modding.xml file.
{
"metadata": {
"name": "example",
"version": "1.0.0",
"color": {
"r": 255,
"g": 255,
"b": 255
},
"description": "Lorem ipsum",
"author": ["Mod Developer 1", "Mod Developer 2"],
"packageID": "website.mod.author",
"game": "toby.deltarune"
"url": "https://example.com",
"tags": ["other", "customization"]
},
"deltaruneTargetVersion": "1.04",
"neededFiles": [
{
"file": "data.win",
"checksum": "YOUR CHECKSUM HERE"
}
]
}This is an example on how a meta.json should be structured. Deltamod checks the file is valid before loading the mod.
With Deltamod 1.4, Undertale and Undertale Yellow will receive support in Deltamod. This means that the demoMod field is now deprecated.
You must now use the game variable which contains an ID which is uniquely given to every game supported by Deltamod.
Supported game IDs (which can be added in the game field) are:
toby.deltarune(DELTARUNE)toby.deltarune.demo(DELTARUNE Ch1&2)fans.utyellow(UNDERTALE Yellow)toby.undertale(UNDERTALE)
More games may be added as time goes on. Deltamod will update mods with the demoMod field automatically for legacy support.
Starting with DELTAHUB "2.1.0 STABLE", this mod format will be also implemented in DELTAHUB.
As part of our deal to merge formats, we've added new fields needed for DELTAHUB to function. While Deltamod does not require these strictly, it is reccomended to add them, even if you don't want to make your mod compatible with DELTAHUB.
You will need to add the url, tags and deltaruneTargetVersion fields, which are mirrored from the DELTAHUB specific standard.
- The
urlfield is just a link to your mod page. - The
tagsfield is an array of tags that describe your mod. The supported tags aretextedit, customization, gameplay, other. - The
deltaruneTargetVersionis the DELTARUNE version needed by your mod. Deltamod does not perform checks on target version, but instead usesneededFiles. This field is only needed when making a DELTARUNE mod.
Starting with Deltamod 1.2, all Deltamod mods should have an unique packageID.
The system works similarly to the Android system, where for example Minecraft is assigned the ID com.mojang.minecraftpe.
You can format your packageID like so:
website.modname.authorname
Remember that dots cannot be entered in any of the fields as they are a reserved character. Only use them for separating the blocks.
If you don't want to specify one or more of the package parts (like your username, website name or mod name) just replace the values with und. If all three parts are und, making a package ID und.und.und Deltamod will consider the ID invalid.
If an ID is invalid or missing, Deltamod will generate one based on the already present information.
In the neededFiles array, you can make sure your game files are the same ones as the ones on your user's computer.
For example, you can specify the SHA256 checksum to look for in the Chapter 4 data.win.
You can use checksumming to check, for example, if your user has the same game version as you.
To get a file's SHA256 hash, you can drop it here.
<patch type="xdelta" patch="./example.xdelta" to="./chapter3_windows/data.win" />
<patch type="override" patch="./example.win" to="./chapter4_windows/data.win" />This is an example on how a modding.xml should be correctly structured. There are currently 2 types of patch: xdelta (which inputs the file through GM3P in order to patch the requested file) and override (which simply replaces the file)
Every patch tag has three necessary fields: patch, to, and type. If there are any missing/invalid fields, the program will invalidate that specific patch.
xdelta type supports the following file extensions: '.xdelta', '.vcdiff', '.csx', and '.win'
override type supports all files except the following: '.xdelta', '.vcdiff', and '.csx'
Starting with Deltamod 1.4, you will be able to put a maximum of 10 screenshots in your modpack's screenshots folder. The format must be PNG, and preferrably of a 4:3 aspect ratio (640x480 ratio or higher). The image might get squished if not of the size here indicated.
Deltamod supports .ZIP (Preferred format for compatibility with most websites), .7Z, .TAR.GZ and .LZMA archives. They must be packaged like so:
.
└── (root of the archive)/
├── meta.json
├── modding.xml
├── icon.png
└── (any needed patch file)
This standard is licensed under a modified version of the EUPL, EUPL-1.2-DELTAMOD. Read it here. TLDR: The license allows Deltamod makers to remove your right to use the standard, but we pledge to only use it when highly needed.