> For the complete documentation index, see [llms.txt](https://docs.nursultan.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nursultan.fun/scripting-api-ru/nachalo/proekt-v-ide.md).

# Проект в IDE

Писать скрипты можно и в блокноте, но с IDE получаешь автодополнение по всему API, проверку типов и переход к определению. Настраивается один раз.

## Что скачать

Папка для разработки скриптов лежит на сайте. В ней уже всё готово:

| Путь                                         | Что это                                                               |
| -------------------------------------------- | --------------------------------------------------------------------- |
| `*.kts`                                      | твои скрипты                                                          |
| `.sdk/nursultan-script-api-vN.jar`           | само API                                                              |
| `.sdk/nursultan-script-packets-<версия>.jar` | классы пакетов Minecraft, нужны только если скрипт их читает или шлёт |
| `.sdk/nursultan-script-definition.jar`       | шаблон скрипта, чтобы IDE понимала, что такое `.kts` в этой папке     |
| `build.gradle.kts`, `settings.gradle.kts`    | подключают эти три джарки                                             |

`.sdk/` — сгенерированная папка, внутри ничего не правь. Обновляешь SDK — меняй её целиком.

## Открыть в IntelliJ IDEA

`File → Open`, выбери папку, «Open as Project», доверь проект. Gradle синкается один раз и качает только Kotlin-плагин.

## Обязательный шаг: определение скрипта

IntelliJ сам не находит кастомные определения скриптов, поэтому один раз на проект нужно ткнуть его носом:

> **Settings → Languages & Frameworks → Kotlin → Kotlin Scripting** → в разделе *Custom Definitions* нажать **Search Definitions** → в списке появится **Nursultan Script** (`.kts`) → оставить включённым и **выше** *Default Kotlin Script* → **Apply**

Без этого все `.kts` будут красными. Резолв считается по файлу, так что после настройки открой любой скрипт, чтобы IDE его пересчитала. Если ссылки всё ещё не резолвятся — `File → Invalidate Caches → Invalidate and Restart`.

## Перенос в игру

Готовый скрипт — это один `.kts`. Скопируй его в папку скриптов клиента (`%APPDATA%\Nursultan\scripts` на Windows) и включи во вкладке Scripts. Больше ничего копировать не надо: ни `.sdk`, ни сборочные файлы.

Сохранение уже загруженного файла перезагружает скрипт на лету — перезапускать игру ради правки не нужно.

## Разработка прямо в игровой папке

Если не хочешь ничего копировать, можно писать сразу в папке скриптов клиента: положи туда `build.gradle.kts`, `settings.gradle.kts` и `.sdk/`. Клиент увидит, что это проект, и будет сам обновлять `.sdk` при каждом запуске. Если этих файлов там нет, клиент папку не трогает.
