Appearance
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.create1. Магазины 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 hand5. После изменений
После изменения файлов:
text
/reload6. Частые ошибки
| Проблема | Почему |
|---|---|
| NPC есть, торговли нет | Неверный shopId |
| Магазин пустой | Нет register() |
| Ничего не появилось | Файл в неправильной папке |
| Краш | Ошибка в ID предмета |
Итог
- Магазины →
server_scripts - NPC →
startup_scripts - Всегда вызывай
register() - ID магазина и NPC должны совпадать