Getting Started with the API

Accessing the API

The Stylish Action HUD API is available in two ways:

// Method 1: Via module.api (Recommended)
const api = game.modules.get("stylish-action-hud").api;

// Method 2: Via Hook (for initialization timing)
Hooks.once("stylish-action-hud.apiReady", (api) => {
  // API is now ready to use
  console.log("Stylish Action HUD API Ready:", api);
});

API Ready Hook

Always wait for the API to be ready before registering adapters or extensions:

Hooks.once("stylish-action-hud.apiReady", (api) => {
  // Register your custom adapter
  api.registerSystemAdapter("my-system", MySystemAdapter);
});

Available API Methods

Method Description
registerSystemAdapter Register a custom system adapter
createSystemAdapter Create an adapter instance for a system
getRegisteredAdapters Get all adapters registered for a system
listSystemAdapters List all registered adapters
registerDefaultAttributes Register default attributes for a system
registerDefaultLayout Register default action menu layout
registerDefaultStatusEffects Register default status effect presets
registerTrackableAttributes Register trackable attribute suggestions
getDefaultAttributes Get resolved default attributes for a system
getDefaultLayout Get resolved default layout for a system
getDefaultStatusEffects Get resolved default status effects for a system
getTrackableAttributes Get resolved trackable attributes for a system
listDefaultAttributes List all registered default attributes
listDefaultLayouts List all registered default layouts
listDefaultStatusEffects List all registered default status effects
listTrackableAttributes List all registered trackable attributes
registerActionMenuCategory Add a custom action menu category
registerActionMenuSubMenu Add a custom submenu provider
getRegisteredActionMenuCategories Get all registered action menu categories
getRegisteredActionMenuSubMenus Get all registered submenu providers
onModifyActionMenuCategories Hook into category modification
onModifyActionMenuData Hook into submenu data modification
updateConfiguration Programmatically update module configuration
updateClientPositions Update client-specific position data
exportPreset Export current configuration as a preset
importPreset Import and apply a preset configuration
downloadPreset Download preset as a JSON file
importPresetFromFile Open file picker and import preset from JSON
registerTheme Register a custom HUD theme so it appears in the Theme dropdown
getThemes Get the current theme registry, including built-in and registered themes