PowerShell[ | ]
PBO Packaging Tool[ | ]
Download[ | ]
You can download the tool from Epoch's public GitHub and save it as *.ps1 file or check out repository using git tools such as SourceTree.
Running the tool[ | ]
Right click on the file and choose Run With PowerShell
GUI[ | ]
Packager is the main window. In here you can create a PBO from git source files and save it anywhere you want, UNC paths are supported (as seen in a settings window below). Only files that are checked will be PBO'd, but you still select files and let the tool do checking for you using the buttons on right hand side. There's also a tooltip label on top of the tool which will warn you in case something is missing. All MPMissions folders are automatically joined, allowing you to focus on editing files instead.
Buttons:
Select all - Places a check in all checkboxes.
Select none - Removes all checks in checkboxes.
Selected - Places a check in on all selected items. Items can be selected by dragging mouse, holding ctrl or shift and by clicking group names to select the whole group.
Create PBO - Creates PBOs from all checked sources.
Settings is the secondary and most important window for tool to be able to do its work. Normally tool should automatically find all Arma paths using registry, however you can always change all the settings manually in here. Tool also allows saving your settings to %appdata% folder (as seen in the screenshot). Please remember UNC paths (network paths starting with \\serverName\folder) are fully supported and encouraged if you are running a development server locally on your network.
Paths:
Path to Arma 3: (mandatory) Path to root directory of your Arma 3 game, automatic setting
Path to Arma 3 Addon Builder: (mandatory) Path to Addon Builder folder under Arma 3 Tools (from steam)
Path to Epoch Github: (mandatory) Specify path to Epoch's public github repo on your local hard drive. This path to git is required because tool will not work without it, disable buttons and give you a warning. This path is used to package Server and MPMissions folders. The tool automatically joins all required folders for you.
Path to EpochCore Github: (optional) Specify path to Epoch's core github repo on your local hard drive. This path will allow you to package Client side PBOs like Epoch and Community assets. To enable it, you need to also enable Developer tool under Developer tab > Enable checkbox. It uses Arma 3 Output Folder to save all your PBOs, it can be any mod in your game as long as it starts with @mod.
Output Folder MPMissions: (mandatory) Specify folder where to save your mission PBOs. UNC Paths are supported in case you want to send them directly to your server. Make sure server is not running!
Server PBO Output Folder: (mandatory) Specify folder where to save your server PBOs. UNC Paths are supported in case you want to send them directly to your server. Make sure server is not running!
Sign File Settings: It's best to keep these default.
Path to Arma 3 Tools (DSCreateKey): (mandatory) Path to DSSignFile folder under Arma 3 Tools (from steam)
Authority Name Prefix: needs explanation
PBO prefix: The root of your main prefix. The rest of the prefix data is generated by adding this value together with actual folder structure
Sign Version: Developers only feature
Save Settings: Settings are not automatically persistent. You will need to save the .ini file. You are also given an option to delete it if you no longer need the tool. The settings file is not automatically generated.
Developers tab is used mostly by us developers (VBAwol mostly). It's used to set mod versions. Make sure to UNCHECK "Update versions when packing" if you intend to contribute to our Epoch's github.
Arma 3 Mod Output Folder: Script automatically scans for @mods in your Arma 3 root folder. You can specify a mod of your choice when working with EpochCore client files.
Console is used to display not-so-verbose information about the background processes of the PBO tool. The downside of using .NET powershell GUI application like this is that it appears to freeze when a heavy function is called. Simply put your focus on a console to see the actual progress of the packager. Console also spits out full tree view if "update versions when packing" is selected. Console is best used to determine when all batch jobs are finished.