pcmp init
The pcmp init command scaffolds a complete ProCMP pipeline for your project interactively.
What it generates
pipeline/
.pcmp.json
.pcmp.local.json
frames/
release.luau
debug.luau
darklua/
stable.json
unminified.json
.env.example
.gitignore
Steps
1. Project name
Used to name the output files (e.g. generated/release/my-project.luau).
2. GitHub owner / repo
Optional. If provided, deploy config is added to .pcmp.json and deploy prompts are enabled on Release/Beta configs.
3. Editor preference
Select your preferred editor. Options:
| Choice | Command |
|---|---|
| VS Code | code --wait {file} |
| Cursor | cursor --wait {file} |
| Neovim | nvim {file} |
| Zed | zed --wait {file} |
| Skip | — |
4. Build configs
Choose which configs to include: Debug, Beta, Release. A directory-based Tests config can be added manually later (see Config Reference).
5. Entry point
Path to your main Luau source file (e.g. src/init.luau). This is the file passed to darklua.
Re-running init
You can run pcmp init in an existing project to:
- Regenerate your personal
.pcmp.local.json(e.g. after switching editors) - Regenerate frame/darklua templates
Warning
Running pcmp init again will overwrite pipeline/.pcmp.json. Back it up first if you've customised it.
After init: next steps
- Copy
.env.exampleto.envand set your GitHub token - Run
pcmp pipeline/.pcmp.jsonto build - Commit
pipeline/.pcmp.jsonandpipeline/frames/andpipeline/darklua/ - Add
.pcmp.local.example.jsonto show teammates what fields they can set