Modding:Mod Packaging: Difference between revisions

From Vintage Story Wiki
No edit summary
(13 intermediate revisions by 3 users not shown)
Line 4: Line 4:


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'>
  <tr style='background-color: rgba(180, 160, 128, 0.15);'>
    <th width='500px' align='left'>Zip File Structure</th>
  </tr>
  <tr>
    <td><div class="tt" data-tt-id="root">.zip</div></td>
  </tr>
  <tr>
    <td scope="row"><div class="tt" data-tt-id="assets" data-tt-parent="root" data-hide="false">assets</div></td>
  </tr>
  <tr>
    <td scope="row"><div class="tt" data-tt-id="your-domain" data-tt-parent="assets" data-hide="false">domain</div></td>
  </tr>
  <tr>
    <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>
    <td scope="row"><div class="tt" data-tt-id="modinfo.json" data-tt-parent="root">modinfo.json</div></td>
  </tr>
  <tr>
    <td scope="row"><div class="tt" data-tt-id="modicon.png" data-tt-parent="root">modicon.png</div></td>
  </tr>
  <tr>
    <td scope="row"><div class="tt" data-tt-id="dll" data-tt-parent="root">code files (*.dll, *.pdb and *.cs)</div></td>
  </tr>
  <tr>
    <td scope="row"><div class="tt" data-tt-id="src" data-tt-parent="root" data-hide="false">src</div></td>
  </tr>
  <tr>
    <td scope="row"><div class="tt" data-tt-id="src-dll" data-tt-parent="src">code files - folders allowed (*.dll, *.pdb and *.css)</div></td>
  </tr>
</table>


== Info file ==
== Info file ==
Line 13: 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 30: Line 67:
Besides <code>"type": "content"</code>, there is also <code>"type": "theme"</code> and <code>"type": "code"</code>.
Besides <code>"type": "content"</code>, there is also <code>"type": "theme"</code> and <code>"type": "code"</code>.


* <code>"type": "content"</code>: Defines this mod as being a '''ContentMod'''. Therefore it cannot any scripts or mod classes (it might contain some, but they will be ignored).
* <code>"type": "content"</code>: Defines this mod as being a '''Content Mod'''. Content Mods cannot contain any C# code (if it does they will be ignored).
* <code>"type": "theme"</code>: Defines this mod as being a '''ThemePack'''. Therefore it cannot override gameplay affecting assets categories (such as blocktypes, itemtypes and so on) and no scripts or mod classes will be loaded.
* <code>"type": "theme"</code>: Defines this mod as being a '''Theme Pack'''. Theme Packs cannot override gameplay affecting assets categories (such as blocktypes, itemtypes and so on) and no C# code will be loaded.
* <code>"type": "code"</code>: Defines this mod as being a '''CodeMod'''. This is the same as a ContentMod, except it can also load C# code to do things that are not possible with JSON.
* <code>"type": "code"</code>: Defines this mod as being a '''Code Mod'''. Code Mods are the same as a Content Mods, except they can also load C# code to do things that are not possible with JSON.


<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.


== Icon ==
== Icon ==
Line 46: Line 85:
[[File:Example Mod.png]]
[[File:Example Mod.png]]


== Distribution ==


Feel free to share your creation in our [https://www.vintagestory.at/forums/forum/17-modifications/ forums]. We would love to see what you come up with.
== Distribution and Installation ==
 
To install a mod simply place the zip file in the <code>Mods</code> directory in your [[Vintagestory folder|Vintagestory directory]].


Feel free to share your creation in our [https://www.vintagestory.at/forums/forum/17-modifications/ forums]. We would love to see what you come up with!




{{Navbox/modding|Vintage Story}}
{{Navbox/modding|Vintage Story}}
Confirmedusers, Bureaucrats, editor, Administrators
1,778

edits