Pyro can create any number of ZIP archives and add any files to each archive defined in the project.
To configure the ZIP archive:
Zip attribute to the PapyrusProject node. Set the value to True.ZipFiles block with as many ZipFile child blocks as needed.ZipFile block can contain as many Include and Match nodes as needed.<ZipFiles Output="@OutputPath">
<ZipFile Name="@ModName" RootDir="@OutputPath" Compression="deflate">
<Include NoRecurse="true">MyPlugin.esp</Include>
<Include NoRecurse="true">MyPlugin.bsa</Include>
<Match In="SKSE">*.dll</Match>
<Match In="Strings">*.*strings</Match>
</ZipFile>
<ZipFile Name="@ModName - English" RootDir="@OutputPath" Compression="deflate">
<Match In="Strings">*.*strings</Match>
</ZipFile>
</ZipFiles>
Files can be included in ZIP archives using both Include and Match nodes.
Include node supports relative file and folder paths, absolute file and folder paths, and glob expressions.Match node supports wildcard file patterns, including file negation and directory exclusion patterns.All matches are case insensitive. Files can be matched outside the project root but are added to the root of ZIP archives by default.
<!-- Search for pattern "README.md" from the project path, recursively if not found in the project root -->
<Include NoRecurse="false">README.md</Include>
<!-- Like above but adds the "README.md" file to the "docs" folder in the ZIP archive -->
<Include Path="docs">README.md</Include>
<!-- Search for pattern "docs\README.md" from the project path, recursively if not found from the project root -->
<Include>docs\README.md</Include>
<!-- Search for pattern "docs\*.md" from the project path, recursively -->
<Include>docs\*.md</Include>
<!-- Search for all files in the "docs" folder from the project path, recursively -->
<Include>docs</Include>
<!-- Match "*.esp" from the project path, recursively -->
<Match>*.esp</Match>
<!-- Match "*.esp" from the project path, recursively, but exclude file matches starting with "optional" -->
<Match>*.esp|-optional</Match>
<!-- Match "*.esp" in only the project path -->
<Match NoRecurse="true">*.esp</Match>
<!-- Match "*.esp" from the "optional" folder in the project path, recursively -->
<Match In="optional">*.esp</Match>
<!-- Match "*.esp" from the "optional" folder in the project path, recursively -->
<Match Exclude="*|-optional">*.esp</Match>
<!-- Match "*.esp" from the project path, recursively, but exclude matches in the "optional" folder -->
<Match Exclude="optional">*.esp</Match>