Skip to content

Omicron NPC — документация для KubeJS ​

Эта документация описывает, как простым человеческим языком настраивать NPC и их магазины в моде Omicron NPC с помощью KubeJS.

Без технических и Java-терминов.


Главное коротко ​

  • OMNpc.shop
    • отвечает за товары и обмен
    • файл кладётся в server_scripts
  • OMNpc.create
    • отвечает за внешний вид и имя NPC
    • файл кладётся в startup_scripts

NPC и магазин связываются по shopId.


Структура папок ​

text
kubejs/
├── server_scripts/
│   └── shops.js        ← OMNpc.shop
└── startup_scripts/
    └── npcs.js         ← OMNpc.create

1. Магазины NPC — OMNpc.shop ​

Что это:
Здесь ты описываешь, чем торгует NPC: что продаёт, что покупает и что меняет.

📁 Где писать:
kubejs/server_scripts


Пример магазина ​

js
OMNpc.shop(event => {

    const shop = event.create("omicron_npc:blacksmith_shop")

    // NPC продаёт игроку
    shop.buyItem("minecraft:iron_ingot", 1)
    shop.buyItem("minecraft:diamond", 10)

    // NPC покупает у игрока
    shop.sellItem("minecraft:coal", 1)

    // Обмен предметов 1 к 1
    shop.exchangeItem("minecraft:cobblestone", "minecraft:stone")

    shop.register()
})

Что здесь происходит простыми словами ​

event.create("omicron_npc:blacksmith_shop") ​

Создаёт магазин с уникальным ID.


buyItem("предмет", цена) ​

NPC продаёт этот предмет игроку.

Игрок платит цену.


sellItem("предмет", цена) ​

NPC покупает этот предмет у игрока.

Игрок получает цену.


exchangeItem("что_отдаёшь", "что_получаешь") ​

Обмен без денег.


register() ​

Сохраняет магазин.
Если забыть — магазин не появится.


2. NPC — OMNpc.create ​

Что это:
Здесь ты создаёшь самого NPC: имя, внешний вид и к какому магазину он привязан.

📁 Где писать:
kubejs/startup_scripts


Пример NPC ​

js
OMNpc.create(event => {

    event.create("trader_blacksmith")
        .name("Кузнец")
        .shopId("blacksmith_shop")
        .model("blacksmith")
        .texture("blacksmith")
        .animation("humanoid")
        .register()

})

Что означает каждая строка ​

create("trader_blacksmith") ​

Уникальный ID NPC.


.name("Кузнец") ​

Имя, которое видит игрок.


.shopId("blacksmith_shop") ​

К какому магазину привязан NPC.

⚠️ Пишется без omicron_npc:


.model(...) ​

Какой моделью выглядит NPC.


.texture(...) ​

Какая у него текстура.


.animation(...) ​

Тип анимации (обычно humanoid).


.register() ​

Сохраняет NPC.
Если забыть — NPC не появится.


3. Как NPC связан с магазином ​

NPCМагазин
shopId("blacksmith_shop")omicron_npc:blacksmith_shop

Если ID не совпадают — NPC будет без торговли.


4. Как узнать ID предмета ​

Возьми предмет в руку и выполни:

text
/kjs hand

5. После изменений ​

После изменения файлов:

text
/reload

6. Частые ошибки ​

ПроблемаПочему
NPC есть, торговли нетНеверный shopId
Магазин пустойНет register()
Ничего не появилосьФайл в неправильной папке
КрашОшибка в ID предмета

Итог ​

  • Магазины → server_scripts
  • NPC → startup_scripts
  • Всегда вызывай register()
  • ID магазина и NPC должны совпадать