Skip to content

LFS Akairo is a framework designed to simplify the creation of InSim applications.

License

Notifications You must be signed in to change notification settings

MrSev7en/lfs-akairo

Repository files navigation

LFS Akairo

LFS Akairo is a JavaScript library (with TypeScript support) designed to simplify the creation of InSim's for Live for Speed. It features a modular system where each part of the InSim is separated, providing greater flexibility and dynamics in development and execution.

Features

  • Modular Code: Each module manages a specific part of your InSim.
  • Internationalization with i18n: Add translation files, and the game will automatically translate based on the available language (fallback to en-US).
  • Easy Command Binding: Command-ready, supports aliases for commands.
  • Binding for Non-Existent Commands: Handle commands even if they don’t exist.
  • Native Interval System: Set up a tick (e.g., 1 second), and it will call the function at the specified interval, also providing a list of all players.
  • Effortless Packet Handling: Receive packet data along with the associated player instance (if available).
  • Dynamic and Fast Player Data Management: Easily assign and retrieve data from players.

Installation

npm install lfs-akairo

Example Usage

const { Akairo, Module, Player } = require('lfs-akairo');
const { PacketType } = require('node-insim/packets');

class ExampleModule extends Module {
  constructor(akairo) {
    super(akairo);

    this.onPacket(PacketType.ISP_NCI, this.onPlayerJoin.bind(this));
    this.onCommand('help', this.onHelpCommand.bind(this));
  }

  async onPlayerJoin(player) {
    player.message(`Hello, ${player.userName}!`);
  }

  async onHelpCommand(player, args) {
    player
      .message('^7Hi, this is the help command!')
      .message('^6Is this really useful?');
  }
}

const akairo = new Akairo();

akairo.loadModule(ExampleModule);

akairo.connect({
  host: '127.0.0.1',
  port: 29999,
  password: 'Admin Password',
});

For a ready-to-use example, check out our example repository: LFS Akairo Example

Managing Player Data

player.set('your.data.key', 10); // { your: { data: { key: 10 } } }
player.get<number>('your.data.key'); // 10

Contributing

We welcome suggestions! If you find an issue, please create an issue. If you'd like to contribute improvements, feel free to fork the repository and submit a pull request.


Enjoy coding with LFS Akairo!

About

LFS Akairo is a framework designed to simplify the creation of InSim applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published