Pyro can substitute variables with defined values throughout projects.
To define variables:
Variables block.Variable child nodes to that block as needed.Variable node should be an empty closed element.<Variables>
<Variable Name="namespace" Value="Master of Disguise"/>
<Variable Name="modname" Value="Master of Disguise - Special Edition"/>
<Variable Name="myproject" Value="E:\projects\skyrim\Master of Disguise - Special Edition"/>
</Variables>
Variables are prefixed with the @ symbol. The Name and Value attributes are required.
You can then replace values throughout the project file with variable names:
<ZipFiles Output="@myproject">
<ZipFile Name="@modname" RootDir="@myproject" Compression="deflate">
<Include>@myproject\@modname.esp</Include>
<Include NoRecurse="true">*.bsa</Include>
</ZipFile>
<ZipFiles>
Pyro will expand those variables when the project is loaded.
Regardless of whether a Variables block is defined, environment variables (e.g., %APPDATA%) and user variables (~user) will be expanded.