Art Engine
Custom Plugins

Generator Plugin Example

This template provides a basic structure for a Generator plugin. Developers can use this template as a foundation and customize it to generate data based on the input data available through the inputsManager.

import GeneratorInterface, {
} from "@hashlips-lab/art-engine/dist/common/generators/generator.interface";
import InputsManager from "@hashlips-lab/art-engine/dist/utils/managers/inputs/inputs.manager";
// Define the structure of the custom generator data
interface ExampleCustomInterface {
  example: string;
// Create a class for the Generator plugin
export class ExampleGenerator
  implements GeneratorInterface<ExampleCustomInterface>
  inputsManager!: InputsManager;
  public async init(props: GeneratorInitPropsInterface): Promise<void> {
    this.inputsManager = props.inputsManager;
    // Initialization tasks can be performed here
  public async generate(): Promise<ItemsAttributes<ExampleCustomInterface>> {
    // Simulate fetching input data, replace with actual data retrieval logic
    const inputData = this.inputsManager.get("any_existing_input_key");
    // Generate and structure the custom data for each item
    const items: ItemsAttributes<ExampleCustomInterface> = {
      1: [
          kind: "AnyUniqueGeneratorDataIdentifier@v1",
          data: {
            example: inputData.example,
    return items;