Koja Scripts

Installation

Dependencies, folder name, server.cfg start order, admin access and moving over from illenium-appearance.

Installation

This page takes you from the downloaded archive to a running menu. If you already run illenium-appearance, you replace it — your players keep their skins and outfits.

Requirements

ResourceRequiredWhat it is used for
ox_libYesCallbacks, commands, notifications, menus
oxmysqlYesSkins, outfits and the koja_appearance_* tables
A frameworkYesESX (es_extended), QBCore (qb-core), QBox (qbx_core) or ox_core
screenshot-basicCapture panel onlyTaking the thumbnail shots
ox_inventoryNoClothing as inventory items
ox_target or qb-targetNoTalking to shopkeepers through target. Without one, a floor marker is used
Fivemanage accountNoHosting thumbnails instead of the shots/ folder

Install

  1. Put the resource in resources

    Unpack the archive and name the folder illenium-appearance.
    resources/
    └── [koja]/
        └── illenium-appearance/
    The folder name is the resource name, and exports are always registered under it. Other scripts call exports['illenium-appearance'], so a different name (for example koja-appearance) breaks them unless you change every call. Use the same name in the ox_inventory item and the ace lines below.
  2. Add it to server.cfg

    Start it after its dependencies and before the scripts that use it:
    server.cfg
    ensure ox_lib
    ensure oxmysql
    ensure screenshot-basic
    ensure illenium-appearance
  3. Give admins access

    The Capture panel, /pedmenu, /skin and /shopped need admin rights. A player is an admin when they have the ace in Config.Koja.Capture.AdminGroup (default group.admin), or their framework group is in Config.Koja.Capture.FrameworkGroups (admin, superadmin, owner, god, dev).
    server.cfg
    add_principal identifier.license:YOUR_LICENSE group.admin
    add_ace resource.illenium-appearance command.add_ace allow
    The second line lets the resource grant the ace to the group on start — the same requirement as the upstream /pedmenu.
  4. Pick the language

    Open shared/koja_config.lua and set Config.Locale to a file name from locales/:
    shared/koja_config.lua
    Config.Locale = "en"
    The old convar setr illenium-appearance:locale "xx" still wins when it is set.
  5. Restart the server

    The three koja_appearance_* tables are created when the resource starts. On ESX, old esx_skin / skinchanger skins in users.skin are converted on the same start (see Database).

Coming from illenium-appearance

Nothing in the database has to change. Copy over the options you changed in the old shared/config.lua (stores, clothing rooms, outfits, blacklists) — the file has the same keys.

Changing the UI

The UI is shipped prebuilt in web/dist. You only need Node and pnpm when you change the React source in web/src:

cd web
pnpm install
pnpm build

Restart the resource afterwards.

Check that it works

Clothing store key prompt

The key prompt in front of a shopkeeper (marker mode).
  1. Join the server and walk to a clothing shop. A clerk stands behind the counter.
  2. Talk to the clerk. The wardrobe hub opens; Change clothes opens the editor.
  3. As an admin, type /pedmenu. The editor opens with the Admin Panel button in the top toolbar.

Next steps