ScriptsLab
WikiDownloadsSourcesSupport
ScriptsLab
DocumentationDownloadsGitHubDiscord

© 2026 ScriptsLab

Готовые скриптыПримеры кастомных предметовПримеры командПримеры обработки событийПримеры планирования задач
Setup
Установка ScriptsLabНастройка ScriptsLab
ScriptsLab Wiki
Команды ScriptsLabПрава доступа ScriptsLab
API
Script API
Modules
Система модулей ScriptsLab
Безопасность ScriptsLab
Часто задаваемые вопросы (FAQ)Решение проблем
WikiSupport

Часто задаваемые вопросы (FAQ)

Apr 29, 2026
9 min read
106 sections

❓ Часто задаваемые вопросы (FAQ)

Ответы на самые популярные вопросы о ScriptsLab.


Общие вопросы

Что такое ScriptsLab?

ScriptsLab - это плагин-фреймворк для Paper/Spigot серверов, который позволяет создавать кастомный контент с помощью JavaScript. Работает на движке GraalVM.

Какие версии Minecraft поддерживаются?

ВерсияСтатус
1.20.4✅ Поддерживается
1.21+✅ Поддерживается
1.19 и ниже❌ Не поддерживается

Какие серверные типы поддерживаются?

  • Paper (рекомендуется)
  • Spigot
  • Pufferfish

Важно: CraftBukkit не поддерживается!


Установка

Какие системные требования?

ТребованиеМинимумРекомендуется
Java1717 LTS
RAM2GB4GB+
CPU1 ядро2+ ядра

Как установить плагин?

  1. Скачайте ScriptsLab-1.0.0.jar
  2. Поместите в папку plugins/
  3. Перезапустите сервер
  4. Готово!

Нужно ли пересобирать плагин из исходников?

Нет, готовый JAR уже включает GraalVM. Просто скачайте и используйте.


Скрипты

Где хранятся скрипты?

plugins/ScriptsLab/scripts/
├── hello.js
├── examples/
└── ...

Как создать свой первый скрипт?

  1. Создайте файл в папке scripts/
  2. Напишите код на JavaScript
  3. Выполните /script reload
  4. Используйте команду!

Пример:

Commands.register('hello', function(sender, args) {
    sender.sendMessage('§aПривет!');
});

Как перезагрузить скрипты?

/script reload

Поддерживается ли автоперезагрузка?

Да! Включите в config.yml:

scripts:
  auto-reload: true

Какие ограничения у скриптов?

ОграничениеЗначение
Таймаут5 секунд (настраивается)
Память128MB (настраивается)
ПесочницаОграниченный доступ

API

Какие объекты API доступны?

ОбъектОписание
ConsoleЛогирование
CommandsКоманды
EventsСобытия
SchedulerЗадачи
PlayersИгроки
ServerСервер
WorldМиры
ItemsПредметы
StorageХранилище

Можно ли использовать Java классы?

Да! ScriptsLab позволяет использовать Java:

var Material = Java.type('org.bukkit.Material');
var ItemStack = Java.type('org.bukkit.inventory.ItemStack');

Команды

Как зарегистрировать команду?

Commands.register('имя', function(sender, args) {
    // код
}, 'право');

Как проверить, что отправитель - игрок?

if (!sender.isPlayer()) {
    sender.sendMessage('§cТолько для игроков!');
    return;
}

События

Как обработать событие?

Events.on('PlayerJoinEvent', function(event) {
    var player = event.getPlayer();
    player.sendMessage('§aДобро пожаловать!');
});

Какие события доступны?

  • PlayerJoinEvent - вход
  • PlayerQuitEvent - выход
  • PlayerChatEvent - чат
  • PlayerDeathEvent - смерть
  • EntityDamageByEntityEvent - атака
  • И многие другие...

Предметы

Как создать кастомный предмет?

var item = new ItemStack(Material.DIAMOND_SWORD);
var meta = item.getItemMeta();
meta.setDisplayName('§cМой меч');
item.setItemMeta(meta);
player.getInventory().addItem(item);

Хранилище

Как сохранить данные?

Storage.save('ключ', значение);

Как загрузить данные?

Storage.load('ключ').then(function(значение) {
    Console.log(значение);
});

Модули

Как создать модуль?

  1. Создайте папку plugins/ScriptsLab/modules/моймодуль/
  2. Создайте module.yml
  3. Добавьте в config.yml

Как включить/выключить модуль?

/module enable <имя>
/module disable <имя>

Безопасность

Что такое песочница (sandbox)?

Песочница ограничивает доступ скриптов к опасным операциям. Включается в config.yml:

security:
  sandbox-enabled: true

Безопасно ли использовать ScriptsLab?

Да, при правильной настройке:

  • Включите sandbox-enabled на публичных серверах
  • Ограничьте права игроков
  • Регулярно обновляйте плагин

Производительность

Плагин вызывает лаги?

Проверьте:

  1. Нет ли бесконечных циклов в скриптах
  2. Достаточно ли памяти выделено
  3. Слишком ли часто выполняются задачи

Как оптимизировать?

  • Используйте Scheduler.runTimer вместо циклов
  • Не выполняйте тяжёлые операции в главном потоке
  • Ограничьте количество слушателей событий

Ошибки

"Unknown command"

Выполните /script list для проверки загрузки скриптов.

"You don't have permission"

Проверьте права в permissions.yml.

"Script execution timeout"

Увеличьте таймаут в config.yml:

scripts:
  timeout: 10000

Обновление

Как обновить плагин?

  1. Остановите сервер
  2. Замените JAR файл
  3. Запустите сервер

Нужно ли backup?

Да, сделайте backup перед обновлением:

  • Папка plugins/ScriptsLab/
  • База данных (если используется SQLite)

Разработка

Как стать beta-тестировщиком?

Следите за GitHub Releases.

Как предложить функцию?

Создайте Issue на GitHub.


Поддержка

Где получить помощь?

  • GitHub Issues: сообщить об ошибке
  • GitHub Discussions: задать вопрос

Как сообщить об ошибке?

Укажите:

  1. Версию ScriptsLab
  2. Версию сервера
  3. Версию Java
  4. Лог ошибки
  5. Шаги воспроизведения

Glossary

ТерминОпределение
GraalVMJavaScript движок
SandboxПесочница безопасности
Hot-reloadГорячая перезагрузка
APIИнтерфейс программирования

Следующие шаги

РазделОписание
Script APIПолный API
ПримерыГотовые примеры
TroubleshootingРешение проблем

❓ Frequently Asked Questions (English)

Answers to the most popular questions about ScriptsLab.


General Questions

What is ScriptsLab?

ScriptsLab is a plugin framework for Paper/Spigot servers that allows you to create custom content using JavaScript. Powered by GraalVM engine.

Which Minecraft versions are supported?

VersionStatus
1.20.4✅ Supported
1.21+✅ Supported
1.19 and below❌ Not supported

Which server types are supported?

  • Paper (recommended)
  • Spigot
  • Pufferfish

Important: CraftBukkit is NOT supported!


Installation

What are the system requirements?

RequirementMinimumRecommended
Java1717 LTS
RAM2GB4GB+
CPU1 core2+ cores

How to install the plugin?

  1. Download ScriptsLab-1.0.0.jar
  2. Place in plugins/ folder
  3. Restart server
  4. Done!

Do I need to rebuild from source?

No, the ready JAR already includes GraalVM. Just download and use.


Scripts

Where are scripts stored?

plugins/ScriptsLab/scripts/
├── hello.js
├── examples/
└── ...

How to create your first script?

  1. Create file in scripts/ folder
  2. Write JavaScript code
  3. Execute /script reload
  4. Use the command!

Example:

Commands.register('hello', function(sender, args) {
    sender.sendMessage('§aHello!');
});

How to reload scripts?

/script reload

Is auto-reload supported?

Yes! Enable in config.yml:

scripts:
  auto-reload: true

What are script limitations?

LimitationValue
Timeout5 seconds (configurable)
Memory128MB (configurable)
SandboxRestricted access

API

Which API objects are available?

ObjectDescription
ConsoleLogging
CommandsCommands
EventsEvents
SchedulerTasks
PlayersPlayers
ServerServer
WorldWorlds
ItemsItems
StorageStorage

Can I use Java classes?

Yes! ScriptsLab allows using Java:

var Material = Java.type('org.bukkit.Material');
var ItemStack = Java.type('org.bukkit.inventory.ItemStack');

Commands

How to register a command?

Commands.register('name', function(sender, args) {
    // code
}, 'permission');

How to check if sender is player?

if (!sender.isPlayer()) {
    sender.sendMessage('§cOnly for players!');
    return;
}

Events

How to handle an event?

Events.on('PlayerJoinEvent', function(event) {
    var player = event.getPlayer();
    player.sendMessage('§aWelcome!');
});

Which events are available?

  • PlayerJoinEvent - join
  • PlayerQuitEvent - quit
  • PlayerChatEvent - chat
  • PlayerDeathEvent - death
  • EntityDamageByEntityEvent - attack
  • And many others...

Items

How to create a custom item?

var item = new ItemStack(Material.DIAMOND_SWORD);
var meta = item.getItemMeta();
meta.setDisplayName('§cMy Sword');
item.setItemMeta(meta);
player.getInventory().addItem(item);

Storage

How to save data?

Storage.save('key', value);

How to load data?

Storage.load('key').then(function(value) {
    Console.log(value);
});

Modules

How to create a module?

  1. Create folder plugins/ScriptsLab/modules/mymodule/
  2. Create module.yml
  3. Add to config.yml

How to enable/disable a module?

/module enable <name>
/module disable <name>

Security

What is sandbox?

Sandbox restricts scripts' access to dangerous operations. Enable in config.yml:

security:
  sandbox-enabled: true

Is ScriptsLab safe to use?

Yes, with proper configuration:

  • Enable sandbox-enabled on public servers
  • Restrict player permissions
  • Regularly update the plugin

Performance

Plugin causes lag?

Check:

  1. No infinite loops in scripts
  2. Enough memory allocated
  3. Tasks not running too frequently

How to optimize?

  • Use Scheduler.runTimer instead of loops
  • Don't execute heavy operations on main thread
  • Limit event listener count

Errors

"Unknown command"

Execute /script list to check script loading.

"You don't have permission"

Check permissions in permissions.yml.

"Script execution timeout"

Increase timeout in config.yml:

scripts:
  timeout: 10000

Updates

How to update the plugin?

  1. Stop the server
  2. Replace JAR file
  3. Start the server

Do I need a backup?

Yes, make a backup before updating:

  • plugins/ScriptsLab/ folder
  • Database (if using SQLite)

Development

How to become a beta tester?

Follow GitHub Releases.

How to suggest a feature?

Create an Issue on GitHub.


Support

Where to get help?

  • GitHub Issues: Report a bug
  • GitHub Discussions: Ask a question

How to report a bug?

Specify:

  1. ScriptsLab version
  2. Server version
  3. Java version
  4. Error log
  5. Reproduction steps

Glossary

TermDefinition
GraalVMJavaScript engine
SandboxSecurity sandbox
Hot-reloadHot reload
APIProgramming interface

Next Steps

SectionDescription
Script APIFull API
ExamplesReady-made examples
TroubleshootingProblem solving

On this page

❓ Часто задаваемые вопросы (FAQ)Общие вопросыЧто такое ScriptsLab?Какие версии Minecraft поддерживаются?Какие серверные типы поддерживаются?УстановкаКакие системные требования?Как установить плагин?Нужно ли пересобирать плагин из исходников?СкриптыГде хранятся скрипты?Как создать свой первый скрипт?Как перезагрузить скрипты?Поддерживается ли автоперезагрузка?Какие ограничения у скриптов?

All articlesEdit this page

Next

Решение проблем

API
Какие объекты API доступны?
Можно ли использовать Java классы?
Команды
Как зарегистрировать команду?
Как проверить, что отправитель - игрок?
События
Как обработать событие?
Какие события доступны?
Предметы
Как создать кастомный предмет?
Хранилище
Как сохранить данные?
Как загрузить данные?
Модули
Как создать модуль?
Как включить/выключить модуль?
Безопасность
Что такое песочница (sandbox)?
Безопасно ли использовать ScriptsLab?
Производительность
Плагин вызывает лаги?
Как оптимизировать?
Ошибки
"Unknown command"
"You don't have permission"
"Script execution timeout"
Обновление
Как обновить плагин?
Нужно ли backup?
Разработка
Как стать beta-тестировщиком?
Как предложить функцию?
Поддержка
Где получить помощь?
Как сообщить об ошибке?
Glossary
Следующие шаги
❓ Frequently Asked Questions (English)
General Questions
What is ScriptsLab?
Which Minecraft versions are supported?
Which server types are supported?
Installation
What are the system requirements?
How to install the plugin?
Do I need to rebuild from source?
Scripts
Where are scripts stored?
How to create your first script?
How to reload scripts?
Is auto-reload supported?
What are script limitations?
API
Which API objects are available?
Can I use Java classes?
Commands
How to register a command?
How to check if sender is player?
Events
How to handle an event?
Which events are available?
Items
How to create a custom item?
Storage
How to save data?
How to load data?
Modules
How to create a module?
How to enable/disable a module?
Security
What is sandbox?
Is ScriptsLab safe to use?
Performance
Plugin causes lag?
How to optimize?
Errors
"Unknown command"
"You don't have permission"
"Script execution timeout"
Updates
How to update the plugin?
Do I need a backup?
Development
How to become a beta tester?
How to suggest a feature?
Support
Where to get help?
How to report a bug?
Glossary
Next Steps