agentleFS
willy92winswilly92wins/DayZ-Modding-Knowledge-Pack/skills/dayz-preflight/SKILL.md

dayz-preflight

Skill20 starsChanged 42 days agoMITView on GitHub

Use when: P:\\ not mounted, DayZ Tools missing, workshop folder, vanilla data unpacked, before building/packing, AddonBuilder path, DayZDiag locatable. Read-only env check. Not launch/test: dayz-test-ingame. Also: cacheP3D, unpacked -mod folder, Workbench 1.30.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 4 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Verify the DayZ modding environment before doing any DayZ work.

    line 8
  2. Very specific:

    Non-redundancy note: If the flow goes through dayz-test-ingame, its dayz-test.ps1 preflight already checks AND auto-fixes these (junction …

    line 12
  3. Distinctive:

    Before invoking any other DayZ skill.

    line 53
  4. Distinctive:

    After a fresh clone of the repo.

    line 54
  5. Very specific:

    After a fresh boot of the workstation — P:\ does not auto-mount.

    line 55
  6. Very specific:

    If P:\ is not mounted:

    line 73
  7. Very specific:

    Don't try to mount P:\ programmatically — it's a DayZ Tools function and assumes Tools is installed and configured.

    line 87
  8. Distinctive:

    Don't gate on the DayZ Tools / vanilla data / Workshop folder checks — they're warnings, not errors.

    line 88
  9. Very specific:

    Don't reintroduce hard-coded paths in other DayZ skills.

    line 89
  10. Distinctive:

    Check the registry value, and that the exe behind it is really there:

    line 101
  11. Very specific:

    Not verified yet: that Buldozer opens a *custom* .p3d with its rvmats.

    line 118

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/dayz-preflight

Verify the DayZ modding environment before doing any DayZ work. Halts with a clear error if P:\ is not mounted (per _shared/dayz-conventions.md); warns on optional checks so the user can decide whether to proceed.

Read-only. Preflight inspects state and reports. It never mounts drives, creates junctions, or otherwise mutates the filesystem — fixes belong to dedicated setup skills.

Non-redundancy note: If the flow goes through dayz-test-ingame, its dayz-test.ps1 preflight already checks AND auto-fixes these (junction creation etc.) — this skill is the read-only/warn variant.

Follow _shared/dayz-conventions.md.

What it checks

#CheckSeverity
1P:\ drive is mountedhard fail — exit 1
2DayZ Tools installed (AddonBuilder.exe locatable)warn
3Vanilla DayZ data unpacked under P:\warn
4P:\Mods\ is a directory junction to <DayZ install>\!Workshop\ (not a regular folder, not missing, not dangling)warn — build-pbo hard-fails on the same condition
5DayZDiag_x64.exe locatable (required for -filePatching iteration; retail exes block past loading)warn

Exit code 0 = ready (or warnings only). Non-zero = hard environment issue, named in stderr.

How paths are resolved

Paths are not blindly hard-coded. Resolution order, first hit wins:

WhatOrder
DayZ Tools install root1. DAYZ_TOOLS_PATH env var → 2. Windows registry (HKLM\SOFTWARE\WOW6432Node\Bohemia Interactive\DayZ Tools → Path value, plus the HKLM non-WOW6432 and HKCU siblings) → 3. Common Steam paths (C:\Program Files (x86)\Steam\steamapps\common\DayZ Tools, then C:\Program Files\…). A candidate counts only if Bin\AddonBuilder\AddonBuilder.exe exists under it.
Vanilla data root1. DAYZ_VANILLA_DATA_PATH env var → 2. Canonical names on P:: P:\dz, P:\DZ, P:\dta. A candidate counts only if it exists and is non-empty.
P:\ and P:\Mods\Fixed by DayZ engine convention — not configurable.

To override either env var, set it in your shell or in the user/system environment before running any DayZ skill. Example (PowerShell): $env:DAYZ_TOOLS_PATH = 'D:\Games\Steam\steamapps\common\DayZ Tools'.

The find_dayz_tools() and find_vanilla_data() helper functions in preflight.py are reusable — future DayZ skills (e.g. dayz-pbo-build) should import them instead of re-implementing path discovery.

How to run

This skill's directory is <skills>\dayz-preflight\.

python <this-skill's-dir>\preflight.py

When to run

  • Before invoking any other DayZ skill.
  • After a fresh clone of the repo.
  • After a fresh boot of the workstation — P:\ does not auto-mount; you have to open DayZ Tools and mount it (or use the Tools "Mount P drive" command) at the start of each session.

Output

Plain text, one line per check:

DayZ preflight

[OK]    P:\ is mounted
[OK]    DayZ Tools found: C:\Program Files (x86)\Steam\steamapps\common\DayZ Tools
[OK]    DayZDiag_x64.exe found: C:\Program Files (x86)\Steam\steamapps\common\DayZ\DayZDiag_x64.exe
[OK]    Vanilla data found: P:\dz
[OK]    Workshop deploy folder exists: P:\Mods

Preflight complete.

If P:\ is not mounted:

DayZ preflight

[FAIL]  P:\ is NOT mounted
        Open DayZ Tools and mount the P drive (Tools menu > Mount P drive),
        or map it directly: subst P: "<dayz-projects>"

Exit 1, and downstream DayZ skills should refuse to run.

Do not

  • Don't try to mount P:\ programmatically — it's a DayZ Tools function and assumes Tools is installed and configured. Surface a clear message and let the user mount it. (Manual alternative when Tools' mount is unavailable: subst P: "<dayz-projects>" — the operational route registered in dayz-test-ingame.)
  • Don't gate on the DayZ Tools / vanilla data / Workshop folder checks — they're warnings, not errors. The user may have a custom layout.
  • Don't reintroduce hard-coded paths in other DayZ skills. Import find_dayz_tools / find_vanilla_data from this skill so resolution stays consistent (env var → registry → fallback).

SP-010 — Debug/diagnosis preflight extension

For DEBUG/diagnosis tasks (not just builds), also verify/request mounted: (1) unpacked vanilla scripts (P:\scripts) — the authoritative source for engine/action/CarScript behavior; (2) the deployed mod tree (P:\<Mod>) to confirm WHAT is actually in the build; (3) the working reference mod. Without these, diagnosis degrades to memory/diff. [LL-075, LFQuad 2026-05-25]

SP-374 — Object Builder's external viewer points at a non-existent exe by default

Buldozer is the cheap answer to "how does it look?" — materials, alpha and animations previewed without paying an in-game cycle. On a stock install the viewer is wired to a path that does not exist, so it silently never gets used and the question goes in-game instead.

Check the registry value, and that the exe behind it is really there:

$v = (Get-ItemProperty 'HKCU:\Software\Bohemia Interactive\Dayz Tools\Object Builder\CConfig').'%External Viewer'
$exe = ($v -split ' -buldozer')[0].Trim('"')
Test-Path $exe

FAIL with the real path as the suggestion: <steamapps>\common\DayZ\DayZ_x64.exe. The DayZ Tools installer writes <steamapps>\common\DayZ_x64.exe — without the DayZ\ directory — which is why the default is broken out of the box.

Measured on this box: configured path Test-Path = False, real path = True, P:\Buldozer present. Cost of not checking it: ~20 SUB_BRZ sessions paid in-game cycles for "does it show?" questions (label alpha, needle size, quad behind the screen) with zero mentions of Buldozer in the project handoff.

Not verified yet: that Buldozer opens a custom .p3d with its rvmats. Do not promote this to dayz-model-pipeline / dayz-vehicles as a visual gate until that part is measured.

DayZ 1.30 Exp (build 1.30.164014)

Digests F/H/J/L/O do not list a false sentence in this skill. The 1.29 checks above still hold. What 1.30 adds is Tools/launch awareness (not new preflight.py probes — those remain 1.29):

  • (since 1.30 Exp [CHANGELOG]) -cacheP3D=0/1 next to unbinarized .p3d speeds later Game/Buldozer launches (work\changelog-1.30-exp-modding.md:11). Surface it when the user is about to iterate MLOD in Buldozer; this skill still does not launch.
  • (since 1.30 Exp [CHANGELOG]) -mod may point at a physical unpacked folder; RV configs load unpacked (:27-28). Preflight still requires P:\ + Workshop junction for the packed deploy path; unpacked iteration is dayz-test-ingame.
  • (since 1.30 Exp [CHANGELOG] WORKBENCH) Ragdoll editor, Enfusion config editor, Animation Editor 2021 Enfusion. This extract has no Workbench 1.30 exe on disk (Digest O §6.4) — treat as [CHANGELOG]; do not invent install paths.
  • SP-374 Buldozer viewer path is unchanged as a check. Pair it with -cacheP3D only after Tools 1.30 is the installed tree.

Operational flags and argv: dayz-test-ingame / dayz-test-ingame/references/dayz-1-30-test-ingame.md. Mesh cache: dayz-model-pipeline / dayz-model-pipeline/references/dayz-1-30-model-pipeline.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.