Modding:Mod Packaging: Difference between revisions

From Vintage Story Wiki
m
VeryGoodDog moved page Mod Packaging to Modding:Mod Packaging
m (VeryGoodDog moved page Mod Packaging to Modding:Mod Packaging)
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Zip Files ==
== Zip Files ==


To make your mod easy to install and use, it should be packed into a [https://en.wikipedia.org/wiki/Zip_(file_format) zip file]. Any assets (images, .json files, etc) go in a "assets" directory in the root of the zip, any C# DLLs (and optionally, PDB files) go directly into the zip file root as well.
To make your mod easy to install and use, it should be packed into a [https://en.wikipedia.org/wiki/Zip_(file_format) zip file]. Any assets (images, .json files, etc) go in a "assets" directory in the root of the zip, any source files into the "src" folder and any DLLs (and optionally, PDB files) go directly into the zip file root folder.


Please note that if you have a code mod that has no assets (AKA, your mod is a single C# DLL), it is possible to ship the bare DLL without packing it into a zip. This is not really a good idea though, as when distributed this way it is hard to include a PDB file and downloading DLLs directly in Windows can lead to issues with your mod failing to load due to security policies applied to files downloaded from the internet.
Please note that if you have a code mod that has no assets (AKA, your mod is a single C# DLL), it is possible to ship the bare DLL without packing it into a zip. This is not really a good idea though, as when distributed this way it is hard to include a PDB file and downloading DLLs directly in Windows can lead to issues with your mod failing to load due to security policies applied to files downloaded from the internet.


<table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'>
<table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'>
   <tr style='background-color: gray;'>
   <tr style='background-color: rgba(180, 160, 128, 0.15);'>
     <th width='500px' align='left'>Zip File Structure</th>
     <th width='500px' align='left'>Zip File Structure</th>
   </tr>
   </tr>
   <tr>
   <tr>
     <td><div class="tt" data-tt-id="root">.zip File</div></td>
     <td><div class="tt" data-tt-id="root">.zip</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="modinfo.json" data-tt-parent="root">modinfo.json</div></td>
     <td scope="row"><div class="tt" data-tt-id="assets" data-tt-parent="root" data-hide="false">assets</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="modicon.png" data-tt-parent="root">modicon.png</div></td>
     <td scope="row"><div class="tt" data-tt-id="your-domain" data-tt-parent="assets" data-hide="false">domain</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="assets" data-tt-parent="root">assets</div></td>
     <td scope="row"><div class="tt" data-tt-id="stuff" data-tt-parent="your-domain">asset files ([[The Asset System|tree overview]])</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="your-domain" data-tt-parent="assets">your-domain</div></td>
     <td scope="row"><div class="tt" data-tt-id="modinfo.json" data-tt-parent="root">modinfo.json</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="stuff" data-tt-parent="your-domain">See the tree in [[The Asset System]]</div></td>
     <td scope="row"><div class="tt" data-tt-id="modicon.png" data-tt-parent="root">modicon.png</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="dll" data-tt-parent="root">DLLs, .pdb files, or .cs files</div></td>
     <td scope="row"><div class="tt" data-tt-id="dll" data-tt-parent="root">compiled sources files (*.dll and *.pdb)</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="src" data-tt-parent="root">src</div></td>
     <td scope="row"><div class="tt" data-tt-id="src" data-tt-parent="root" data-hide="false">src</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td scope="row"><div class="tt" data-tt-id="src-dll" data-tt-parent="src">DLLs, .pdb files, or .cs files</div></td>
     <td scope="row"><div class="tt" data-tt-id="src-dll" data-tt-parent="src">source code files - folders allowed (*.cs)</div></td>
   </tr>
   </tr>
</table>
</table>
Line 46: Line 46:
{
{
   "type": "content",
   "type": "content",
  "modid": "creativemdexamplemod",
   "name": "My Example Content Mod",
   "name": "My Example Content Mod",
   "description" : "This is an example mod, which does nothing",
   "description" : "This is an example mod, which does nothing",
   "author": "CreativeMD",
   "authors": ["CreativeMD"],
   "version": "1.0",
   "version": "1.0",
   "gameversions": [ "1.5.0.3+" ],
   "dependencies": {
"game": "",
"survival": ""
  },
   "website": "http://example.com"
   "website": "http://example.com"
}
}
Line 68: Line 72:


<syntaxhighlight lang=json>
<syntaxhighlight lang=json>
   "gameversions": [ "1.5.0.3+" ],
   "dependencies": {
    "game": "1.5.3"
  },
</syntaxhighlight>
</syntaxhighlight>


Means it requires at least VintageStory v1.5.0.3 or a newer version.
Means it requires at least VintageStory v1.5.3 or a newer version. For more info see [[Modinfo]].
 


== Icon ==
== Icon ==
Confirmedusers, Bureaucrats, editor, Administrators
1,522

edits