Warcraft Forever Developers
Recipes

WARCRAFT FOREVER / DEVELOPERS

Save a talent build

Collect a complete build in a dialog and save it in your application.

Mount after opening your build dialog

Load the talent script once. Then create a mount each time your dialog opens:

const talents = WarcraftForever.Talents.mount('#talent-editor', {
  class: selectedClass,
  maxLevel: 30,
  build: savedBuild,
});

const unsubscribe = talents.on('submit', async (state) => {
  await saveBuild({
    class: state.class,
    code: talents.exportBuild('blizzard'),
    revision: state.revision,
  });
  closeBuildDialog();
});

await talents.ready;

selectedClass, savedBuild, saveBuild, and closeBuildDialog belong to your application. Omit build for a new allocation. Use an empty mount element and show loading or errors while ready settles.

This example sets a level cap of 30; choose the cap your application needs. The SDK shows Save when all available points are legally allocated (21 at level 30). The submit event carries the completed state; saving to your backend remains your responsibility.

Close or change class

unsubscribe();
talents.destroy();

Call these when your dialog closes. Changing the class through update({ class: nextClass }) resets the build unless you also supply a build for that class.

Show the saved result

Use linked icons or a read-only tree to display the saved build. Preserve the revision and run backend validation before accepting a submission.

Warcraft Forever is an independent fan site, not affiliated with Blizzard Entertainment.