Keep it working · 10 min checklist

Package an extension somebody else can use

Ship the right files with clear installation, version and test information.

After this lesson

Your package has a predictable folder layout and tells a user what it does, how to stop it and what was actually tested.

Download DPB2 source kit ↓ 8 complete projects · source only · .NET 8 for Windows (net8.0-windows)

Give the extension a stable identity#

Use your own project/assembly name, displayed Name, description, author and version. These examples use Your name so no private author identity is published.

When renaming a starter, keep the output folder and entry DLL filename aligned. Update any caller that deliberately selects the old sample Name. Renaming only the visible label does not rename the assembly.

List the supported product and the client versions actually tested. Do not label one DLL as universal for both products.

Check your result

A user can identify the extension, the correct product package and the required companion components without reading your source.

Ship an allowlisted package#

  • Include your entry DLL in Plugins/<assembly name>/<assembly name>.dll.
  • Include only additional dependencies your extension genuinely owns and is allowed to redistribute. Avoid duplicate host assemblies.
  • A PDB is optional for diagnostics. Do not ship development build caches, obj folders or your whole client installation.
  • Include a short README with install, selection/enable/start steps, expected output, settings and Stop behavior.
  • Exclude client credentials, license files, personal settings, logs with account data and private code from other projects.
  • If sharing source, keep it separate from client binaries and document how the developer supplies their own references.
Keep in mind

The Academy downloads are source kits, not binary extension releases. Build them against your own complete installation before copying output folders.

Check the package, not only your working folder#

  1. Extract the package into a clean working directory and follow your own README literally.
  2. Build source packages against the intended client's actual assemblies.
  3. Install into a test instance using the exact documented directory layout.
  4. Check discovery, enabled/selected state, start, useful work, stop, restart and missing-data cases.
  5. For settings, check defaults, persistence and invalid values. For actions, check rejection, accepted request and observed outcome separately.
  6. Record what passed and what was not exercised. If no live game test was performed, say so.
Check your result

A second developer can reproduce your first successful result without asking where to paste code or which hidden dependency to copy.

The starter is a foundation, not a finished product#

You now have the interfaces, complete projects, configuration, task ownership, path planning and a bounded action caller. A production bot still needs your domain-specific priorities, safety rules, error recovery, performance checks and live validation.

Do not disguise missing strategy as a successful API call. Clear limits and useful diagnostics make an extension easier to trust and maintain.

Keep building

Look up a specific DPB2 API →
Download integrity and validation scope

Source kit: 26 files, 30,744 bytes. No client binaries or credentials.

SHA-256: b8877783cae166a0499a0bb400cfe835a9f2db2cbe20e328c36760e3ce32ad59

Compile baseline: DPB1 0.3.29.47 / DPB2 0.4.5.88. Compilation is not a live game test. Follow the lesson's manual checks in your own test setup.