P Drive
By default, HEMTT does not require a P Drive (sometimes called a Work Drive), and many mods do not require one.
HEMTT supports a P Drive for mods that do require one, but only to access \a3\
.
Includes
Whenever possible, an .\include\
folder should be used in place of a P Drive. Any files placed in the .\include\
folder can be used from models or scripts as if they were in a P Drive. No $PBOPREFIX$
is required, but the full path must be created in the .\include\
folder.
The most common use case is for CBA's script_macros_common.hpp, you can see an example of this in ACE's GitHub Repo.
Default Behaviour, Ignored
By default, HEMTT will allow references to a P Drive, but will not fail the build if it does not exist. Even if a P Drive exists, it will not be used by HEMTT unless explicitly required by the project.
Disallowing P Drive
If a P Drive is explicitly disallowed by the project, it can specify as such.
.hemtt/project.toml
[hemtt.build]
pdrive = "disallow"
[hemtt.check]
pdrive = "ignore"
When disallowed by the project, HEMTT will fail to build the project if any references to a P Drive are found.
Requiring P Drive
If a P Drive is required by the project, it must specify as such. If the flag is not set, HEMTT will not allow the P Drive to be used.
.hemtt/project.toml
[hemtt.build]
pdrive = "require"
[hemtt.check]
pdrive = "ignore"
When required by the project, HEMTT will fail to build the project if all required files can not be resolved. HEMTT will only enable use of P:\a3\
.
HEMTT will look for a P Drive in the following order:
P Drive (Mounted)
HEMTT will use P:\ as expected when it exists.
P Drive (Unmounted)
HEMTT will use the path configured in Arma 3 Tools as the P Drive, even if it is customized from the default and unmounted.
Arma 3 Installation
If no P Drive, mounted or unmounted, is found, HEMTT will attempt to extract the required files from your Arma 3 Installation.