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());
    if (!player) return;
    
    var sword = new ItemStack(Material.DIAMOND_SWORD);
    var meta = sword.getItemMeta();
    
    if (meta) {
        meta.setDisplayName('§6§l⚡ МЕЧ МОЛНИЙ ⚡');
        
        var lore = new ArrayList();
        lore.add('§7');
        lore.add('§e▸ Способности:');
        lore.add('§7  • Вызывает молнию при ударе');
        lore.add('§7  • Даёт эффект §cСилы II§7 при держании');
        lore.add('§7  • Дополнительный урон: §c+5 ❤');
        lore.add('§7');
        lore.add('§e▸ Характеристики:');
        lore.add('§7  • Урон: §c+10 ❤');
        lore.add('§7  • Скорость атаки: §a+20%');
        lore.add('§7  • Прочность: §6Неразрушимый');
        lore.add('§7');
        lore.add('§6§l✦ ЛЕГЕНДАРНЫЙ ПРЕДМЕТ ✦');
        meta.setLore(lore);
        
        meta.setUnbreakable(true);
        meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
        meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
        meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
        meta.addEnchant(Enchantment.LUCK_OF_THE_SEA, 1, true);
        
        API.addAttribute(meta, 'GENERIC_ATTACK_DAMAGE', 'lightning_sword_damage', 10.0, 'ADD_NUMBER', 'HAND');
        API.addAttribute(meta, 'GENERIC_ATTACK_SPEED', 'lightning_sword_speed', 0.8, 'ADD_NUMBER', 'HAND');
        
        sword.setItemMeta(meta);
    }
    
    player.getInventory().addItem(sword);
    player.sendMessage('§6§l⚡ §aВы получили §6§lМЕЧ МОЛНИЙ§a!');
    player.sendMessage('§7Ударьте моба, чтобы увидеть его силу...');
    
}, 'scriptslab.getlightningsword');

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

// === СПОСОБНОСТЬ 1: Молния при ударе ===
API.registerEvent('EntityDamageByEntityEvent', function(event) {
    var Player = Java.type('org.bukkit.entity.Player');
    if (!(event.getDamager() instanceof Player)) return;
    
    var attacker = event.getDamager();
    var victim = event.getEntity();
    var item = attacker.getInventory().getItemInMainHand();
    
    if (!item || item.getType() !== Material.DIAMOND_SWORD) return;
    
    var meta = item.getItemMeta();
    if (!meta || !meta.hasDisplayName()) return;
    
    var displayName = meta.getDisplayName();
    if (displayName.indexOf('МЕЧ МОЛНИЙ') === -1) return;
    
    API.strikeLightningSync(victim.getLocation());
    event.setDamage(event.getDamage() + 5.0);
    attacker.sendMessage('§6⚡ §eМолния поражает врага!');
    
    Console.log(attacker.getName() + ' использовал Меч Молний');
});

Console.log('✓ Способность "Молния при ударе" активирована');

// === СПОСОБНОСТЬ 2: Эффект Силы при держании ===
API.registerEvent('PlayerItemHeldEvent', function(event) {
    var player = event.getPlayer();
    var newSlot = event.getNewSlot();
    var item = player.getInventory().getItem(newSlot);
    
    if (item && item.getType() === Material.DIAMOND_SWORD) {
        var meta = item.getItemMeta();
        if (meta && meta.hasDisplayName() && meta.getDisplayName().indexOf('МЕЧ МОЛНИЙ') !== -1) {
            var PotionEffectType = Java.type('org.bukkit.potion.PotionEffectType');
            API.addPotionEffectSync(player, PotionEffectType.STRENGTH, 999999, 1, false, false);
            player.sendMessage('§6⚡ §eВы чувствуете силу молнии!');
        }
    }
    
    var oldSlot = event.getPreviousSlot();
    var oldItem = player.getInventory().getItem(oldSlot);
    if (oldItem && oldItem.getType() === Material.DIAMOND_SWORD) {
        var oldMeta = oldItem.getItemMeta();
        if (oldMeta && oldMeta.hasDisplayName() && oldMeta.getDisplayName().indexOf('МЕЧ МОЛНИЙ') !== -1) {
            var PotionEffectType = Java.type('org.bukkit.potion.PotionEffectType');
            API.removePotionEffectSync(player, PotionEffectType.STRENGTH);
            player.sendMessage('§7Сила молнии покидает вас...');
        }
    }
});

Console.log('✓ Способность "Эффект Силы" активирована');
Console.log('=== Меч Молний полностью активирован! ===');

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

Шаг 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
    Bukkit.getOnlinePlayers().forEach(function(p) {
        if (p.getName() !== player.getName()) {
            p.sendMessage('§8[§a+§8] §7' + player.getName() + ' §a joined the server');
        }
    });
    
    Console.log(player.getName() + ' joined the server');
});

// Custom quit message
API.registerEvent('PlayerQuitEvent', function(event) {
    var player = event.getPlayer();
    
    // Remove vanilla message
    event.quitMessage(null);
    
    // Send custom message to all
    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 left the server');
        }
    });
    
    Console.log(player.getName() + ' left the server');
});

Console.log('Welcome message activated');

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) return;
    
    var sword = new ItemStack(Material.DIAMOND_SWORD);
    var meta = sword.getItemMeta();
    
    if (meta) {
        meta.setDisplayName('§6§l⚡ LIGHTNING SWORD ⚡');
        
        var lore = new ArrayList();
        lore.add('§7');
        lore.add('§e▸ Abilities:');
        lore.add('§7  • Strikes lightning on hit');
        lore.add('§7  • Gives §cStrength II§7 when held');
        lore.add('§7  • Bonus damage: §c+5 ❤');
        lore.add('§7');
        lore.add('§e▸ Stats:');
        lore.add('§7  • Damage: §c+10 ❤');
        lore.add('§7  • Attack speed: §a+20%');
        lore.add('§7  • Durability: §6Unbreakable');
        lore.add('§7');
        lore.add('§6§l✦ LEGENDARY ITEM ✦');
        meta.setLore(lore);
        
        meta.setUnbreakable(true);
        meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
        meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
        meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
        meta.addEnchant(Enchantment.LUCK_OF_THE_SEA, 1, true);
        
        API.addAttribute(meta, 'GENERIC_ATTACK_DAMAGE', 'lightning_sword_damage', 10.0, 'ADD_NUMBER', 'HAND');
        API.addAttribute(meta, 'GENERIC_ATTACK_SPEED', 'lightning_sword_speed', 0.8, 'ADD_NUMBER', 'HAND');
        
        sword.setItemMeta(meta);
    }
    
    player.getInventory().addItem(sword);
    player.sendMessage('§6§l⚡ §aYou received §6§lLIGHTNING SWORD§a!');
    player.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 (!(event.getDamager() instanceof Player)) return;
    
    var attacker = event.getDamager();
    var victim = event.getEntity();
    var item = attacker.getInventory().getItemInMainHand();
    
    if (!item || item.getType() !== Material.DIAMOND_SWORD) return;
    
    var meta = item.getItemMeta();
    if (!meta || !meta.hasDisplayName()) return;
    
    var displayName = meta.getDisplayName();
    if (displayName.indexOf('LIGHTNING SWORD') === -1) return;
    
    API.strikeLightningSync(victim.getLocation());
    event.setDamage(event.getDamage() + 5.0);
    
    attacker.sendMessage('§6⚡ §eLightning strikes the enemy!');
    
    Console.log(attacker.getName() + ' used Lightning Sword');
});

Console.log('✓ Ability "Lightning Strike" activated');

// === ABILITY 2: Strength when held ===
API.registerEvent('PlayerItemHeldEvent', function(event) {
    var player = event.getPlayer();
    var newSlot = event.getNewSlot();
    var item = player.getInventory().getItem(newSlot);
    
    if (item && item.getType() === Material.DIAMOND_SWORD) {
        var meta = item.getItemMeta();
        if (meta && meta.hasDisplayName() && meta.getDisplayName().indexOf('LIGHTNING SWORD') !== -1) {
            var PotionEffectType = Java.type('org.bukkit.potion.PotionEffectType');
            API.addPotionEffectSync(player, PotionEffectType.STRENGTH, 999999, 1, false, false);
            player.sendMessage('§6⚡ §eYou feel the power of lightning!');
        }
    }
    
    var oldSlot = event.getPreviousSlot();
    var oldItem = player.getInventory().getItem(oldSlot);
    if (oldItem && oldItem.getType() === Material.DIAMOND_SWORD) {
        var oldMeta = oldItem.getItemMeta();
        if (oldMeta && oldMeta.hasDisplayName() && oldMeta.getDisplayName().indexOf('LIGHTNING SWORD') !== -1) {
            var PotionEffectType = Java.type('org.bukkit.potion.PotionEffectType');
            API.removePotionEffectSync(player, PotionEffectType.STRENGTH);
            player.sendMessage('§7Lightning power leaves you...');
        }
    }
});

Console.log('✓ Ability "Strength Effect" activated');
Console.log('=== Lightning Sword fully activated! ===');

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#Auto Broadcast#Lightning Sword#Quick Setup Guide#Step 1: Create Scripts Folder#Step 2: Copy Script#Step 3: Reload#Ready Scripts Table#Further Steps#

All articlesEdit this page

Next

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