Projects and Packs
Set up a project, manage pack manifests and dependencies, and export a pack.
Set up a project
Section titled “Set up a project”Open Projects to return to recent, pinned, or discovered projects. Create builds a new
project from a bundled starter template; Open uses an existing project or DataForge/ folder;
Clone copies a Git repository into a new folder. The wizard shows the exact files and location
before it creates anything. Clone authentication uses your configured Git credential helper.
For a new project, choose a direct DataForge/pack.yml, nested
DataForge/<pack>/pack.yml, or category layout. Enter pack ref, display name, version, and
optional contributor and description. Choose a template and optionally initialize Git. The pack
ref is part of generated content identity: decide it before using the pack in a save. The wizard
then offers a datapack choice and final review. See Datapacks and Codex
for reflection binding.
Manage packs
Section titled “Manage packs”Open Pack manager after selecting a project. Filter by name, ref, mod, enabled state, or problems. The pack list shows priority order. Select a pack to inspect these tabs:
| Tab | Use |
|---|---|
| Manifest | Edit ref, name, version, description, priority, and enabled state. |
| Conditions | Edit pack conditions and condition behavior. |
| Contributors | Edit contributor entries. |
| Icon | Set the pack icon. |
| Debug | Set the pack debug flag. |
| Documents | Edit pack files inline, including YAML and *.config.yml configuration definitions. |
| Dependencies | Edit pack dependencies and inspect required game mods. |
| Redirects | Edit generated-ID redirects within the pack. |
| pack.yml | Edit the raw manifest YAML. |
Manifest sections are separate tabs with one shared draft. Moving between them preserves edits. Choose Review exact text before save to compare Loaded text with Proposed, then Save manifest to write the draft or Revert draft to restore the loaded text. External changes are checked before saving. Changing the persistent ref requires acknowledging that existing saves can break; redirects within a pack cannot repair a ref change.
New pack creates a new ref. Duplicate copies an existing pack; review copied generated IDs
before enabling it. The list switch writes enabled to pack.yml. Save or discard unsaved manifest
edits before switching pack state or exporting. Dependency graph shows missing dependencies,
cycles, and required game mods; a pack’s priority alone does not override dependency or document
stage order. For pack syntax, see Conditions and packs.
Description and Icon (description and icon in pack.yml) are shown by pack settings
screens in game. The icon is a path relative to the pack folder (png, jpg, jpeg, tga, bmp)
or an object path that starts with /. A missing file, a path that leaves the pack folder, an
unsupported format or a symlink out of the pack is reported as pack.icon-missing,
pack.icon-escape, pack.icon-format or pack.icon-symlink. See
Pack Configuration.
Edit pack documents inline
Section titled “Edit pack documents inline”Select a .yml or .yaml file in Documents to use the inline Monaco editor. It opens the
file’s actual native URI and shares its unsaved buffer with the full code editor. Existing dirty
text appears when you open the file. Typing updates that buffer in memory; Save (Ctrl+S)
writes the file explicitly. Open file in editor transfers the latest text to the full editor
and leaves unsaved changes dirty.
Revert restores the text loaded when the inline document was opened, including any unsaved native edits already present at that point. It does not save the file. After a successful Save, the saved text becomes the new Revert baseline. When leaving inline edits unsaved, choose Leave to keep them in the native editor; use Revert first to discard your inline changes.
If another editor changes the buffer or disk content no longer matches the saved baseline, the editor retains your local draft and blocks conflicting operations. Compare your changes before choosing Reload from editor. Language suggestions and live diagnostics depend on the existing language-server module and its readiness; disabling it still allows text editing. See Editing and Validation.
Switching the project, pack, or datapack ends the inline editing session and clears its selection. Unsaved text already synchronized to the native buffer stays there; an ordinary confirmed Leave flushes your latest edits before switching.
Other supported text files (json, txt, md, toml, ini, cfg, and csv) keep their simple
inline text editor and guarded Save workflow. They do not use the YAML language bridge.
Pack configuration documents
Section titled “Pack configuration documents”Pack configuration is a document type of its own. File → New document with the type
Config creates a <name>.config.yml definition: the dialog adds the required .config.yml
ending and starts from a skeleton with a slider (hot) and a checkbox (cold). A *.config.yml file
cannot hold another document type, and the .config.yml ending is refused for any other type. The
Config category class entry of the Document template list creates the UFGCategory
subclass (a generated Cat_<Name> id with a display name and a menu priority) that groups the
fields in the in-game settings UI. Config fields, cfg: references, templates and config:
conditions are completed, explained and validated as described in
Configuration, references and templates.
The Redirects tab displays configured redirects. It does not change a pack ref. To rename generated IDs and their project references, use Module tools and inspect the proposed diff before applying it.
Project settings
Section titled “Project settings”Project settings links to validation, editor, path, and shortcut preferences. It also shows
active datapack binding and offers a diagnostic preview before changing archives. Advanced
project-local TOML lives in .kdf-editor.toml; its save checks the current disk hash so external
edits are not overwritten. Do not put credentials in this file.
Export
Section titled “Export”Select a pack, save pending edits, choose an enabled export adapter, then select Export .zip from Pack manager or File → Export pack as .zip. The native exporter validates the selected project pack and asks for an output path. Exporting a pack is distinct from packaging a full mod release. See Operations and releases.
