ScriptsLab
WikiDownloadsSourcesSupport
ScriptsLab
DocumentationDownloadsGitHubDiscord

© 2026 ScriptsLab

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

Готовые скрипты

Apr 29, 2026
10 min read
24 sections

📜 Готовые скрипты

Полностью готовые к использованию скрипты для ScriptsLab.


Приветственное сообщение

Полная система приветствия и прощания игроков.

Файл: plugins/ScriptsLab/scripts/welcome_message.js

/**
 * Приветственное сообщение при входе
 * Убирает ванильное сообщение и показывает кастомное
 */

API.registerEvent('PlayerJoinEvent', function(event) {
    var player = event.getPlayer();
    
    // Убираем ванильное сообщение
    event.joinMessage(null);
    
    // Отправляем кастомное приветствие
    var Bukkit = Java.type('org.bukkit.Bukkit');
    
    player.sendMessage('§8§m                                                  ');
    player.sendMessage('');
    player.sendMessage('  §6§l⚡ Добро пожаловать на сервер! ⚡');
    player.sendMessage('');
    player.sendMessage('  §7Привет, §e' + player.getName() + '§7!');
    player.sendMessage('  §7Онлайн: §a' + Bukkit.getOnlinePlayers().size() + ' §7игроков');
    player.sendMessage('');
    player.sendMessage('  §7Используй §e/help §7для помощи');
    player.sendMessage('');
    player.sendMessage('§8§m                                                  ');
    
    // Сообщение всем остальным
    Bukkit.getOnlinePlayers().forEach(function(p) {
        if (p.getName() !== player.getName()) {
            p.sendMessage('§8[§a+§8] §7' + player.getName() + ' §aзашёл на сервер');
        }
    });
    
    Console.log(player.getName() + ' joined the server');
});

// Кастомное сообщение при выходе
API.registerEvent('PlayerQuitEvent', function(event) {
    var player = event.getPlayer();
    
    // Убираем ванильное сообщение
    event.quitMessage(null);
    
    // Отправляем кастомное сообщение всем
    var Bukkit = Java.type('org.bukkit.Bukkit');
    Bukkit.getOnlinePlayers().forEach(function(p) {
        if (p.getName() !== player.getName()) {
            p.sendMessage('§8[§c-§8] §7' + player.getName() + ' §cвышел с сервера');
        }
    });
    
    Console.log(player.getName() + ' left the server');
});

Console.log('Приветственное сообщение активировано');

Система лечения

Команда /heal для восстановления здоровья.

Файл: plugins/ScriptsLab/scripts/heal_command.js

/**
 * Команда /heal - Восстановление здоровья
 */

Commands.register('heal', function(sender, args) {
    if (!sender.isPlayer()) {
        sender.sendMessage('§cТолько для игроков!');
        return;
    }
    
    var player = sender;
    
    // Восстановить здоровье
    player.setHealth(player.getMaxHealth());
    
    // Восстановить голод
    player.setFoodLevel(20);
    player.setSaturation(20.0);
    
    // Убрать эффекты
    player.getActivePotionEffects().forEach(function(effect) {
        player.removePotionEffect(effect.getType());
    });
    
    player.sendMessage('§a✓ Вы полностью исцелены!');
    Console.log(player.getName() + ' used /heal');
    
}, 'scriptslab.heal');

Console.log('Команда /heal зарегистрирована');

Система полёта

Команда /fly для включения полёта.

Файл: plugins/ScriptsLab/scripts/fly_command.js

/**
 * Команда /fly - Включение/выключение полёта
 */

Commands.register('fly', function(sender, args) {
    if (!sender.isPlayer()) {
        sender.sendMessage('§cТолько для игроков!');
        return;
    }
    
    var player = sender;
    var currentFlight = player.getAllowFlight();
    player.setAllowFlight(!currentFlight);
    
    var msg = player.getAllowFlight() ? '§a✓ Полёт включен!' : '§c✗ Полёт выключен!';
    player.sendMessage(msg);
    
    Console.log(player.getName() + ' toggled flight: ' + player.getAllowFlight());
}, 'scriptslab.fly');

Console.log('Команда /fly зарегистрирована');

Автоматические объявления

Регулярные объявления для игроков.

Файл: plugins/ScriptsLab/scripts/auto_broadcast.js

/**
 * Автоматические объявления
 */

var messages = [
    '§6[Объявление] §eНе забудьте проголосовать за сервер!',
    '§6[Объявление] §eПосетите наш Discord!',
    '§6[Объявление] §eИспользуйте §a/fly §eдля полёта!',
    '§6[Объявление] §eИспользуйте §a/heal §eдля лечения!'
];

var currentIndex = 0;

// Отправлять сообщение каждые 5 минут
Scheduler.runTimer(function() {
    Server.broadcast(messages[currentIndex]);
    currentIndex = (currentIndex + 1) % messages.length;
}, 100, 6000); // 100 тиков задержка, 6000 тиков = 5 минут

Console.log('Автоматические объявления запущены');

Легендарный Меч Молний

Сложный кастомный предмет с несколькими способностями.

Файл: plugins/ScriptsLab/scripts/custom_sword.js

/**
 * ⚔️ ЛЕГЕНДАРНЫЙ МЕЧ МОЛНИЙ ⚔️
 * 
 * Особенности:
 * - Вызывает молнию при ударе
 * - +10 к урону (атрибут)
 * - +20% к скорости атаки
 * - Даёт эффект Силы II при держании
 * - Светится (enchant glow)
 * - Неразрушимый
 */

var Material = Java.type('org.bukkit.Material');
var ItemStack = Java.type('org.bukkit.inventory.ItemStack');
var Enchantment = Java.type('org.bukkit.enchantments.Enchantment');
var ItemFlag = Java.type('org.bukkit.inventory.ItemFlag');
var ArrayList = Java.type('java.util.ArrayList');

Console.log('=== Инициализация Меча Молний ===');

// Команда для получения меча
Commands.register('getlightningsword', function(sender, args) {
    if (!sender.isPlayer()) {
        sender.sendMessage('§cЭта команда только для игроков!');
        return;
    }
    
    var player = org.bukkit.Bukkit.getPlayer(sender.getName());
     (!player) ;
    
     sword =  (.);
     meta = sword.();
    
     (meta) {
        meta.();
        
         lore =  ();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        meta.(lore);
        
        meta.();
        meta.(.);
        meta.(.);
        meta.(.);
        meta.(., , );
        
        .(meta, , , , , );
        .(meta, , , , , );
        
        sword.(meta);
    }
    
    player.().(sword);
    player.();
    player.();
    
}, );

.();


.(, () {
      = .();
     (!(event.()  )) ;
    
     attacker = event.();
     victim = event.();
     item = attacker.().();
    
     (!item || item.() !== .) ;
    
     meta = item.();
     (!meta || !meta.()) ;
    
     displayName = meta.();
     (displayName.() === -) ;
    
    .(victim.());
    event.(event.() + );
    attacker.();
    
    .(attacker.() + );
});

.();


.(, () {
     player = event.();
     newSlot = event.();
     item = player.().(newSlot);
    
     (item && item.() === .) {
         meta = item.();
         (meta && meta.() && meta.().() !== -) {
              = .();
            .(player, ., , , , );
            player.();
        }
    }
    
     oldSlot = event.();
     oldItem = player.().(oldSlot);
     (oldItem && oldItem.() === .) {
         oldMeta = oldItem.();
         (oldMeta && oldMeta.() && oldMeta.().() !== -) {
              = .();
            .(player, .);
            player.();
        }
    }
});

.();
.();

Быстрая установка скриптов

Шаг 1: Создайте папку скриптов

Создайте папку plugins/ScriptsLab/scripts/, если её нет.

Шаг 2: Скопируйте скрипт

Скопируйте код скрипта в новый файл .js в папке скриптов.

Шаг 3: Перезагрузите

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


Таблица готовых скриптов

СкриптФайлКомандаОписание
Приветствиеwelcome_message.jsАвтоматическиВход/выход
Лечениеheal_command.js/healВосстановить HP
Полётfly_command.js/flyВключить полёт
Объявленияauto_broadcast.jsАвтоматическиОбъявления
Мечcustom_sword.js/getlightningswordЛегендарный меч

Дальнейшие шаги

РазделОписание
Script APIПолный API
МодулиСистема модулей
ТroubleshootingРешение проблем

📜 Ready Scripts (English)

Complete ready-to-use scripts for ScriptsLab.


Welcome Message#

Full join/quit message system.

File: plugins/ScriptsLab/scripts/welcome_message.js

/**
 * Welcome message on join
 * Removes vanilla message and shows custom
 */

API.registerEvent('PlayerJoinEvent', function(event) {
    var player = event.getPlayer();
    
    // Remove vanilla message
    event.joinMessage(null);
    
    // Send custom welcome
    var Bukkit = Java.type('org.bukkit.Bukkit');
    
    player.sendMessage('§8§m                                                  ');
    player.sendMessage('');
    player.sendMessage('  §6§l⚡ Welcome! ⚡');
    player.sendMessage('');
    player.sendMessage('  §7Hello, §e' + player.getName() + '§7!');
    player.sendMessage('  §7Online: §a' + Bukkit.getOnlinePlayers().size() + ' §7players');
    player.sendMessage('');
    player.sendMessage('  §7Use §e/help §7for help');
    player.sendMessage('');
    player.sendMessage('§8§m                                                  ');
    
    // Message to others
    .().(() {
         (p.() !== player.()) {
            p.( + player.() + );
        }
    });
    
    .(player.() + );
});


.(, () {
     player = event.();
    
    
    event.();
    
    
      = .();
    .().(() {
         (p.() !== player.()) {
            p.( + player.() + );
        }
    });
    
    .(player.() + );
});

.();

Heal System#

Command /heal to restore health.

File: plugins/ScriptsLab/scripts/heal_command.js

/**
 * Command /heal - Restore health
 */

Commands.register('heal', function(sender, args) {
    if (!sender.isPlayer()) {
        sender.sendMessage('§cOnly for players!');
        return;
    }
    
    var player = sender;
    
    // Restore health
    player.setHealth(player.getMaxHealth());
    
    // Restore hunger
    player.setFoodLevel(20);
    player.setSaturation(20.0);
    
    // Remove effects
    player.getActivePotionEffects().forEach(function(effect) {
        player.removePotionEffect(effect.getType());
    });
    
    player.sendMessage('§a✓ You have been fully healed!');
    Console.log(player.getName() + ' used /heal');
    
}, 'scriptslab.heal');

Console.log('Command /heal registered');

Flight System#

Command /fly to toggle flight.

File: plugins/ScriptsLab/scripts/fly_command.js

/**
 * Command /fly - Toggle flight
 */

Commands.register('fly', function(sender, args) {
    if (!sender.isPlayer()) {
        sender.sendMessage('§cOnly for players!');
        return;
    }
    
    var player = sender;
    var currentFlight = player.getAllowFlight();
    player.setAllowFlight(!currentFlight);
    
    var msg = player.getAllowFlight() ? '§a✓ Flight enabled!' : '§c✗ Flight disabled!';
    player.sendMessage(msg);
    
    Console.log(player.getName() + ' toggled flight: ' + player.getAllowFlight());
}, 'scriptslab.fly');

Console.log('Command /fly registered');

Auto Broadcast#

Regular announcements for players.

File: plugins/ScriptsLab/scripts/auto_broadcast.js

/**
 * Auto broadcasts
 */

var messages = [
    '§6[Broadcast] §eDon\'t forget to vote for the server!',
    '§6[Broadcast] §eJoin our Discord!',
    '§6[Broadcast] §eUse §a/fly §e for flight!',
    '§6[Broadcast] §eUse §a/heal §e to heal!'
];

var currentIndex = 0;

// Send message every 5 minutes
Scheduler.runTimer(function() {
    Server.broadcast(messages[currentIndex]);
    currentIndex = (currentIndex + 1) % messages.length;
}, 100, 6000); // 100 tick delay, 6000 ticks = 5 minutes

Console.log('Auto broadcasts started');

Lightning Sword#

Complex custom item with multiple abilities.

File: plugins/ScriptsLab/scripts/custom_sword.js

/**
 * ⚔️ LIGHTNING SWORD ⚔️
 * 
 * Features:
 * - Strikes lightning on hit
 * - +10 damage (attribute)
 * - +20% attack speed
 * - Gives Strength II when held
 * - Glows (enchant glow)
 * - Unbreakable
 */

var Material = Java.type('org.bukkit.Material');
var ItemStack = Java.type('org.bukkit.inventory.ItemStack');
var Enchantment = Java.type('org.bukkit.enchantments.Enchantment');
var ItemFlag = Java.type('org.bukkit.inventory.ItemFlag');
var ArrayList = Java.type('java.util.ArrayList');

Console.log('=== Initializing Lightning Sword ===');

// Command to get sword
Commands.register('getlightningsword', function(sender, args) {
    if (!sender.isPlayer()) {
        sender.sendMessage('§cThis command is only for players!');
        return;
    }
    
    var player = org.bukkit.Bukkit.getPlayer(sender.getName());
    if (!player) ;
    
     sword =  (.);
     meta = sword.();
    
     (meta) {
        meta.();
        
         lore =  ();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        lore.();
        meta.(lore);
        
        meta.();
        meta.(.);
        meta.(.);
        meta.(.);
        meta.(., , );
        
        .(meta, , , , , );
        .(meta, , , , , );
        
        sword.(meta);
    }
    
    player.().(sword);
    player.();
    player.();
    
}, );

.();


.(, () {
      = .();
     (!(event.()  )) ;
    
     attacker = event.();
     victim = event.();
     item = attacker.().();
    
     (!item || item.() !== .) ;
    
     meta = item.();
     (!meta || !meta.()) ;
    
     displayName = meta.();
     (displayName.() === -) ;
    
    .(victim.());
    event.(event.() + );
    
    attacker.();
    
    .(attacker.() + );
});

.();


.(, () {
     player = event.();
     newSlot = event.();
     item = player.().(newSlot);
    
     (item && item.() === .) {
         meta = item.();
         (meta && meta.() && meta.().() !== -) {
              = .();
            .(player, ., , , , );
            player.();
        }
    }
    
     oldSlot = event.();
     oldItem = player.().(oldSlot);
     (oldItem && oldItem.() === .) {
         oldMeta = oldItem.();
         (oldMeta && oldMeta.() && oldMeta.().() !== -) {
              = .();
            .(player, .);
            player.();
        }
    }
});

.();
.();

Quick Setup Guide#

Step 1: Create Scripts Folder#

Create plugins/ScriptsLab/scripts/ folder if it doesn't exist.

Step 2: Copy Script#

Copy script code into a new .js file in scripts folder.

Step 3: Reload#

Execute /script reload to load the script.


Ready Scripts Table#

ScriptFileCommandDescription
Welcomewelcome_message.jsAutomaticJoin/quit
Healheal_command.js/healRestore HP
Flightfly_command.js/flyToggle flight
Broadcastsauto_broadcast.jsAutomaticAnnouncements
Swordcustom_sword.js/getlightningswordLegendary sword

Further Steps#

SectionDescription
Script APIFull API
ModulesModule system
TroubleshootingProblem solving

On this page

📜 Готовые скриптыПриветственное сообщениеСистема леченияСистема полётаАвтоматические объявленияЛегендарный Меч МолнийБыстрая установка скриптовШаг 1: Создайте папку скриптовШаг 2: Скопируйте скриптШаг 3: ПерезагрузитеТаблица готовых скриптовДальнейшие шаги📜 Ready Scripts (English)Welcome Message#Heal System#Flight System#

All articlesEdit this page

Next

Примеры кастомных предметов

if
return
var
new
ItemStack
Material
DIAMOND_SWORD
var
getItemMeta
if
setDisplayName
'§6§l⚡ МЕЧ МОЛНИЙ ⚡'
var
new
ArrayList
add
'§7'
add
'§e▸ Способности:'
add
'§7 • Вызывает молнию при ударе'
add
'§7 • Даёт эффект §cСилы II§7 при держании'
add
'§7 • Дополнительный урон: §c+5 ❤'
add
'§7'
add
'§e▸ Характеристики:'
add
'§7 • Урон: §c+10 ❤'
add
'§7 • Скорость атаки: §a+20%'
add
'§7 • Прочность: §6Неразрушимый'
add
'§7'
add
'§6§l✦ ЛЕГЕНДАРНЫЙ ПРЕДМЕТ ✦'
setLore
setUnbreakable
true
addItemFlags
ItemFlag
HIDE_UNBREAKABLE
addItemFlags
ItemFlag
HIDE_ATTRIBUTES
addItemFlags
ItemFlag
HIDE_ENCHANTS
addEnchant
Enchantment
LUCK_OF_THE_SEA
1
true
API
addAttribute
'GENERIC_ATTACK_DAMAGE'
'lightning_sword_damage'
10.0
'ADD_NUMBER'
'HAND'
API
addAttribute
'GENERIC_ATTACK_SPEED'
'lightning_sword_speed'
0.8
'ADD_NUMBER'
'HAND'
setItemMeta
getInventory
addItem
sendMessage
'§6§l⚡ §aВы получили §6§lМЕЧ МОЛНИЙ§a!'
sendMessage
'§7Ударьте моба, чтобы увидеть его силу...'
'scriptslab.getlightningsword'
Console
log
'✓ Команда /getlightningsword зарегистрирована'
// === СПОСОБНОСТЬ 1: Молния при ударе ===
API
registerEvent
'EntityDamageByEntityEvent'
function
event
var
Player
Java
type
'org.bukkit.entity.Player'
if
getDamager
instanceof
Player
return
var
getDamager
var
getEntity
var
getInventory
getItemInMainHand
if
getType
Material
DIAMOND_SWORD
return
var
getItemMeta
if
hasDisplayName
return
var
getDisplayName
if
indexOf
'МЕЧ МОЛНИЙ'
1
return
API
strikeLightningSync
getLocation
setDamage
getDamage
5.0
sendMessage
'§6⚡ §eМолния поражает врага!'
Console
log
getName
' использовал Меч Молний'
Console
log
'✓ Способность "Молния при ударе" активирована'
// === СПОСОБНОСТЬ 2: Эффект Силы при держании ===
API
registerEvent
'PlayerItemHeldEvent'
function
event
var
getPlayer
var
getNewSlot
var
getInventory
getItem
if
getType
Material
DIAMOND_SWORD
var
getItemMeta
if
hasDisplayName
getDisplayName
indexOf
'МЕЧ МОЛНИЙ'
1
var
PotionEffectType
Java
type
'org.bukkit.potion.PotionEffectType'
API
addPotionEffectSync
PotionEffectType
STRENGTH
999999
1
false
false
sendMessage
'§6⚡ §eВы чувствуете силу молнии!'
var
getPreviousSlot
var
getInventory
getItem
if
getType
Material
DIAMOND_SWORD
var
getItemMeta
if
hasDisplayName
getDisplayName
indexOf
'МЕЧ МОЛНИЙ'
1
var
PotionEffectType
Java
type
'org.bukkit.potion.PotionEffectType'
API
removePotionEffectSync
PotionEffectType
STRENGTH
sendMessage
'§7Сила молнии покидает вас...'
Console
log
'✓ Способность "Эффект Силы" активирована'
Console
log
'=== Меч Молний полностью активирован! ==='
Bukkit
getOnlinePlayers
forEach
function
p
if
getName
getName
sendMessage
'§8[§a+§8] §7'
getName
' §a joined the server'
Console
log
getName
' joined the server'
// Custom quit message
API
registerEvent
'PlayerQuitEvent'
function
event
var
getPlayer
// Remove vanilla message
quitMessage
null
// Send custom message to all
var
Bukkit
Java
type
'org.bukkit.Bukkit'
Bukkit
getOnlinePlayers
forEach
function
p
if
getName
getName
sendMessage
'§8[§c-§8] §7'
getName
' §c left the server'
Console
log
getName
' left the server'
Console
log
'Welcome message activated'
return
var
new
ItemStack
Material
DIAMOND_SWORD
var
getItemMeta
if
setDisplayName
'§6§l⚡ LIGHTNING SWORD ⚡'
var
new
ArrayList
add
'§7'
add
'§e▸ Abilities:'
add
'§7 • Strikes lightning on hit'
add
'§7 • Gives §cStrength II§7 when held'
add
'§7 • Bonus damage: §c+5 ❤'
add
'§7'
add
'§e▸ Stats:'
add
'§7 • Damage: §c+10 ❤'
add
'§7 • Attack speed: §a+20%'
add
'§7 • Durability: §6Unbreakable'
add
'§7'
add
'§6§l✦ LEGENDARY ITEM ✦'
setLore
setUnbreakable
true
addItemFlags
ItemFlag
HIDE_UNBREAKABLE
addItemFlags
ItemFlag
HIDE_ATTRIBUTES
addItemFlags
ItemFlag
HIDE_ENCHANTS
addEnchant
Enchantment
LUCK_OF_THE_SEA
1
true
API
addAttribute
'GENERIC_ATTACK_DAMAGE'
'lightning_sword_damage'
10.0
'ADD_NUMBER'
'HAND'
API
addAttribute
'GENERIC_ATTACK_SPEED'
'lightning_sword_speed'
0.8
'ADD_NUMBER'
'HAND'
setItemMeta
getInventory
addItem
sendMessage
'§6§l⚡ §aYou received §6§lLIGHTNING SWORD§a!'
sendMessage
'§7Hit a mob to see its power...'
'scriptslab.getlightningsword'
Console
log
'✓ Command /getlightningsword registered'
// === ABILITY 1: Lightning on hit ===
API
registerEvent
'EntityDamageByEntityEvent'
function
event
var
Player
Java
type
'org.bukkit.entity.Player'
if
getDamager
instanceof
Player
return
var
getDamager
var
getEntity
var
getInventory
getItemInMainHand
if
getType
Material
DIAMOND_SWORD
return
var
getItemMeta
if
hasDisplayName
return
var
getDisplayName
if
indexOf
'LIGHTNING SWORD'
1
return
API
strikeLightningSync
getLocation
setDamage
getDamage
5.0
sendMessage
'§6⚡ §eLightning strikes the enemy!'
Console
log
getName
' used Lightning Sword'
Console
log
'✓ Ability "Lightning Strike" activated'
// === ABILITY 2: Strength when held ===
API
registerEvent
'PlayerItemHeldEvent'
function
event
var
getPlayer
var
getNewSlot
var
getInventory
getItem
if
getType
Material
DIAMOND_SWORD
var
getItemMeta
if
hasDisplayName
getDisplayName
indexOf
'LIGHTNING SWORD'
1
var
PotionEffectType
Java
type
'org.bukkit.potion.PotionEffectType'
API
addPotionEffectSync
PotionEffectType
STRENGTH
999999
1
false
false
sendMessage
'§6⚡ §eYou feel the power of lightning!'
var
getPreviousSlot
var
getInventory
getItem
if
getType
Material
DIAMOND_SWORD
var
getItemMeta
if
hasDisplayName
getDisplayName
indexOf
'LIGHTNING SWORD'
1
var
PotionEffectType
Java
type
'org.bukkit.potion.PotionEffectType'
API
removePotionEffectSync
PotionEffectType
STRENGTH
sendMessage
'§7Lightning power leaves you...'
Console
log
'✓ Ability "Strength Effect" activated'
Console
log
'=== Lightning Sword fully activated! ==='
Auto Broadcast#
Lightning Sword#
Quick Setup Guide#
Step 1: Create Scripts Folder#
Step 2: Copy Script#
Step 3: Reload#
Ready Scripts Table#
Further Steps#