Getting Started

Getting Started

Installation

To start using Evently in your project, you first need to install the package via npm:

npm install @terradreamgames/evently

Configuration

Since this package is not under the @rbxts namespace, you must configure your project to recognize it.

Update tsconfig.json

Add the following to your tsconfig.json:

{
  "typeRoots": ["node_modules/@rbxts", "node_modules/@terradreamgames"]
}

Update default.project.json

Add the following to your default.project.json:

{
  "rbxts_include": {
    "$path": "include",
    "node_modules": {
      "$className": "Folder",
      "@rbxts": {
        "$path": "node_modules/@rbxts"
      },
      "@terradreamgames": {
        "$path": "node_modules/@terradreamgames"
      }
    }
  }
}

Defining Events

Use the EventDefinitions function to create an event system with strongly typed event definitions. Define your event names and their corresponding data types in a single object.

Example:

import EventDefinitions from "@terradreamgames/evently";
 
interface Test {
    roblox: string;
    game: number;
}
 
const events = EventDefinitions<{
    foo: Test;
}>();

Registering Handlers

Use the on method to register handlers for specific events.

events.on("foo", (data) => {
    print(`Game: ${data.game}, Roblox: ${data.roblox}`);
});

Triggering Events

To fire an event and pass data to the handlers, use the trigger method:

events.trigger("foo", {
    roblox: "roblox",
    game: 123,
});