Перейти к содержимому

Простая схема моддинга

Не нужно учить архитектурные диаграммы. Нужно понимать какой слой отвечает за какую проблему.

GAMEWorldBox

Сама игра и объекты, с которыми в итоге взаимодействует мод.

NMLNeoModLoader

Находит метаданные модов, компилирует/загружает их и даёт коду точку старта.

JSONmod.json

Метаданные: идентичность, версия, target build и зависимости. Это не игровая логика.

CSMain.cs

Твой C# entry class. В текущем протестированном WBML-каркасе он наследуется от BasicMod<Main> и использует OnModLoad().

LOGPlayer.log

Первый источник evidence: compile errors, строки загрузки, твои marker и runtime exceptions появляются здесь.

APIПубличные API

Поддерживаемая поверхность NML или другого мода, например PoliticalWorldAPI. Если публичный API решает задачу — лучше начать с него.

PATCHHarmony / reflection

Инструменты для поведения и внутренних частей, которых нет в публичном API. Они сильнее зависят от версии, поэтому новичку нужны не первыми.

Для маленького мода думай в таком порядке:

mod.json можно прочитать
C# можно скомпилировать
класс мода можно загрузить
OnModLoad() запускается
появляется твой marker
работает код механики

Если цепочка сломалась сверху, код ниже её не починит.

В логе вообще нет активности NML — пока бессмысленно чинить свой Political World action.

error CSxxxx — compiler не смог собрать мод. Начинай с точного сообщения компилятора.

Marker [My Mod] Loaded есть, но кнопка ничего не делает — каркас уже загрузился; теперь проблема внутри конкретной механики или её runtime assumptions.

Документация отдельно помечает inspected source и реально протестированное runtime-поведение. WBML уже находил случаи, где старый source snapshot и PoliticalWorldAPI 1.14.0 вели себя по-разному. Поэтому у страниц есть Verified / Observed / Testing, а не видимость абсолютной истины.

Дальше: проверить первый минимальный мод.