This guide walks through the current workflow for creating a new mod. The toolkit now scaffolds mods for TypeScript scripting through Puerts, so you should treat TypeScript as the default gameplay scripting path.
The wizard creates your mod under Assets/Mod/com.<creator>.<modname>.
The wizard creates these folders and files for you:
.vox assets and any mod-local files here.Scripts/: TypeScript source files for your gameplay logic.Prefab/: Generated prefabs and prefab variants you want to export.Data/: Extra data files generated by import tools or used by your content.tsconfig.json: Per-mod TypeScript compiler configuration.manifest.asset: Your mod metadata and exporter configuration.It also creates a starter script pair:
Scripts/index.ts exports your gameplay class.Scripts/<modname>.ts contains a minimal JsComponentProxy-based class.Mods no longer use legacy custom C# scripts as the main authoring workflow. Instead:
Scripts/index.ts.JsComponentProxy to the prefab that should run the script.JsProperties on the same prefab to pass references into the script when needed.Minimal pattern:
export class MyModComponent {
private bindTo: VX.Mod.JsComponentProxy;
constructor(bindTo: VX.Mod.JsComponentProxy) {
this.bindTo = bindTo;
this.bindTo.onUpdate = (dt) => this.onUpdate(dt);
}
private onUpdate(deltaTime: number): void {
}
}
Open manifest.asset in your mod root and fill in the metadata for your mod.
Most importantly:
After importing assets and configuring your prefabs:
The exporter writes builds to the project's Assets/Export pipeline output used by the toolkit.