Template (for plugin authors)¶
plugins/_template/ is a reference scene, not a deployable plugin. Copy it to start a new
plugin — it exercises every extension point a scene can use, heavily commented:
- i18n in the four mandatory languages (en / fr / es / ko);
- ObjectRegistry declarations for every spawned DCS type;
- a scene model with
polarandfuncsteps; - a crate injected into the CTLD Request Equipment menu;
- an F10 radio submenu wired via
deferMenuSection(works whether the scene is loaded before or after CTLD init — the load-position-independent contract); requiresCtld(minimum CTLD version) andmodTypes(declared non-stock types) metadata.
Authoring checklist¶
- Copy
plugins/_template/toplugins/<your-plugin>/, rename the file and the modelname. - Declare every spawned type in BLOCK 2. If any is a mod type, add it to
model.modTypes(and setrequiresModfor the catalogue). All other types must be stock. busted tests/ plugins/— the asset gate fails on any undeclared/unknown type.tools/build/merge_plugin.ps1 -Plugin <your-plugin>→dist/<your-plugin>.lua.- Copy
plugins/_template/README.mdtoplugins/<your-plugin>/README.md. Fill in the front-matter (modUrlsfor each required mod) and write the description prose in French. ThemodUrlssection can be removed entirely if the plugin uses no mods. - Ask Claude to run the
generate-plugin-docskill to generatedocs/plugins/<your-plugin>.mdanddocs/plugins/<your-plugin>.fr.mdfrom your README. Commit the generated files. - Add the plugin to the catalogue table in
docs/index.mdanddocs/index.fr.md.