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 должны совпадать