🧩Modules

NOVA's module system allows you to extend the framework with custom functionality while maintaining proper load order.

Built-in Modules

Module
Description

commands

Admin and utility commands

jobs

Job management and salary system

permissions

Permission checking and caching

vehiclekeys

Vehicle key ownership system

Creating a Module

Basic Module

-- modules/mymodule/server.lua

Nova.RegisterModule('mymodule', {
    Init = function()
        print('[MyModule] Initializing...')
        -- Setup data, register events
    end,
    Start = function()
        print('[MyModule] Started!')
        -- Module is ready, can interact with other modules
    end,
})

Module with Dependencies

Load Order

  1. All modules register via Nova.RegisterModule()

  2. NOVA resolves the dependency graph

  3. Init() is called in dependency order (dependencies first)

  4. After ALL modules init, Start() is called for each

  5. Nova:Ready event fires

Module Communication

Modules can communicate through the shared Nova object:

Last updated