SimpleScripting

SimpleScripting

Write custom plugins using Javascript

236.0 загрузок
Обновлён 15 дней назад

Скриншоты

Описание

SimpleScripting Server-Side JavaScript для Hytale

Присоединяйтесь к нашим разногласиям, если вам нужна какая-либо проблема или помощь: раздор

Исходный код: HostTale-Project/SimpleScripting

Раскройте весь потенциал вашего сервера Hytale с помощью скриптов JavaScript!

SimpleScripting - это мощный плагин, который приносит серверные скрипты JavaScript на серверы Hytale. Создавайте пользовательские команды, обрабатывайте события плеера, создайте сложные функции и расширяйте функциональность вашего сервера, и все это без написания одной строки кода Java.


Зачем просто писать?

Java не требуется Пишите сценарии на JavaScript, одном из самых популярных языков программирования в мире. Если вы знаете базовый JavaScript, вы можете создавать функции сервера.

Hot Reload Измените свои скрипты и немедленно перезагрузите их, не перезагружая сервер. Идеально подходит для быстрой разработки и тестирования.

Аккумуляторы включены - поставляется с полным набором образцов скриптов для общих функций сервера, таких как дома, деформации, запросы на телепортацию и многое другое!

Полностью расширяемый - Комплексный API дает вам доступ к игрокам, мирам, событиям, командам, разрешениям, базам данных и планировщикам.


Ключевые особенности

Пользовательские команды

Создавайте свои собственные команды с легкостью! Поддержка:

  • Необходимые и необязательные аргументы (струны, целые числа, дублеры)
  • Командные псевдонимы
  • Завершение вкладки
  • Требования к разрешению
  • Богатый формат с цветами

Система событий

Реагируйте на все, что происходит на вашем сервере:

  • Игрок присоединяется / уходит - Приветственные сообщения, награды за вход
  • Игровой автомат Death/Respawn - Сообщения о смерти, перезапуск
  • Игровой чат - форматирование чата, фильтры, пользовательские функции чата
  • Движение игроков Обнаружение региона, пограничное правоприменение
  • Мировые перемены Трек игроков по измерениям
  • Командное исполнение - Регистрация команд, блокировка
  • Серверный тик Периодические задачи, автоматизация

Телепортационный API

Безопасная и надежная телепортация:

  • Async chunk preloading (без аварий)
  • Таймеры разогрева телепорта
  • Поддержка положения и ротации
  • Кросс-мировая телепортация

База данных API

Простое, но мощное хранилище ключей:

  • Автоматически сохраняется в файлах JSON
  • Хранение данных для каждого игрока
  • Хранение данных по всему серверу
  • Внешняя база данных не требуется

Планировщик API

Выполняйте задания на своих условиях:

  • Задержка исполнения (тиксы или миллисекунды)
  • Повторяющиеся задачи
  • Отмена задания
  • Идеально подходит для охлаждения, разминки и периодических событий

Разрешение API

Интеграция с родной системой разрешений Hytale:

  • Проверьте разрешения игроков
  • Требуют разрешения для команд
  • Обнаружение администратора
  • Узлы пользовательских разрешений для ваших сценариев

Включая образцы сценариев

SimpleScript поставляется с 8 готовых к использованию сценариев Вы можете сразу же включить:

Система домов ()Homes.js)

Позвольте игрокам установить и телепортироваться в личные места.

  • /sethome [имя] - Установите местоположение дома
  • /home [имя] Телепорт в дом
  • /delhome <name> - Удалить дом
  • /дома Перечислить все дома
  • Настраиваемые домашние лимиты на ранг!

Система Варпсаwarps.js)

Серверные точки деформации для простой навигации.

  • /setwarp <name> - Создать варп сервера (admin)
  • /warp <name> - Телепортировать в варп
  • /delwarp <name> - Удалить варп (админ)
  • варп Список доступных варпов

Система Spawnspawn.js)

Центральное управление точками нереста.

  • /setspawn - Установить нерест сервера (admin)
  • испанец Телепорт на нерест

Телепортные запросы ()tpa.js)

Безопасная телепортация между игроками.

  • /tpa <player> Запрос на телепортацию к кому-либо
  • /tpahere <player> Попросите кого-нибудь телепортироваться к вам
  • /paccept - Принимать поступающий запрос
  • /tpdeny Отклонить входящую просьбу
  • /pcancel Отмените ваш исходящий запрос
  • Настраиваемый тайм-аут и охлаждение!

Обратная командаback.js)

Вернуться в предыдущие места.

  • назад Вернуться в свое последнее место
  • Сохраните место смерти, чтобы никогда не потерять свои вещи!
  • Конфигурируемый размер истории

Случайный телепортrtp.js)

Исследуйте мир безопасно.

  • rtp Телепортируйте в безопасное место
  • дикий, /рандомп - Алиасы
  • Конфигурируемое расстояние min/max
  • Автоматическое безопасное обнаружение местоположения

Система ранжированияranks.js)

Базовое управление рангом.

  • /rank set <player> <rank> - Назначьте ранг
  • /rank get <player> - Проверьте ранг игрока
  • Список рангов - Перечислите все ранги
  • Майк - Проверьте свой ранг

Инструменты администратора (admin.js)

Основные административные команды.

  • /Простая перезагрузка Горячая перезагрузка всех сценариев
  • /simplescripting info - Информация о плагинах
  • /tp <player> Телепортация к игроку
  • /tphere <player> Телепортируйте игрока к себе
  • /playerinfo <player> Просмотр деталей игрока
  • / Игроки Список онлайн игроков

конфигурация

Все настройки легко настраиваются в lib/config.js:

var DEFAULTS = {
дома: {
maxHomes: 3,
охлаждать Секунды: 5,
разминка вторая: 3
?
Варпс: {
охлаждать Секунды: 5,
разминка вторая: 3
?
tpa: {
второй тайм-аут: 60,
охлаждать Секунды: 10,
разминка вторая: 3
?
rtp: {
Расстояние: 100,
Расстояние: 5000,
охлаждать Секунды: 300
?
//... и многое другое!
}

Ранговая конфигурация

Определите различные ограничения для разных рангов игроков:

var RANKS = {
По умолчанию: {
// Использует настройки по умолчанию
?
vip: {
дома: {maxHomes: 5, прохлада Секунды: 3 }
?
администратор: {
дома: {maxHomes: 10, прохлада Секунды: 0 }
?
}

Для разработчиков

Комплексный API

SimpleScripting предоставляет доступ к:

API Описание
командование Регистрируйте пользовательские команды с аргументами и разрешениями
События Слушайте события игрока и сервера
Игроки Найти, управлять и получать информацию об игроках
Миры Доступ к мировым данным и блокировка информации
Телепорт Безопасная телепортация с загрузкой асинхронного куска
ДБ Хранение базы данных ключевых значений
планировщик Задержка и повторение заданий
Разрешения Проверка разрешений и требования
Помощник Отправлять сообщения и трансляции
Цвета Цветовые коды Minecraft и форматирование
Логгер Лесозаготовка консоли

Оригинальное название: Create a Custom Command

Commands.register()
.setName ("привет")
.setDescription («Приветствую игрока»)
.addRequiredStringArg («игрок», «Игрок поприветствовать»)
.setHandler(функция(ctx) {
var target = Players.getByNameFuzzy(ctx.getArgAsString('player'));
Если (цель)
MessageHelper.send (цель, Colors.GOLD + 'Hello from' + Players.getUsername (ctx.getPlayer()) + '!');
ctx.sendMessage (Colors.GREEN + «Приветствую!»)
Другое дело {
ctx.sendMessage (Colors.RED + «Игрок не найден!»);
?
}

Пример: Слушайте события

Events.on('playerJoin', function(event))
var player = Players.getByUuid (event.playerUuid);
MessageHelper.broadcast (Colors.YELLOW + Players.getUsername (player) + "присоединился к серверу!");
}

Events.on('playerDeath', function(event))
var player = Players.getByUuid (event.playerUuid);
var loc = Players.getFullLocation (игрок);
// Сохранить место смерти для команды /back
DB.save('death_locations', event.playerUuid, JSON.stringify(loc));
}

Полезная библиотека

Включая lib/utils. js Обеспечивает полезные функции:

  • Utils.getPlayer FromContext(ctx) Получить игрока из команды
  • Utils.formatTime(секунды) - Формат продолжительности времени
  • Utils.formatPosition(x, y, z) - Формат координат
  • Utils.createCooldownTracker() Легкое управление прохладой
  • Utils.teleportWithWarmup() Телепорт с обратным отсчетом

Структура каталога

Вселенная / Простое письмо
─ ─ Моды/ #Файлы JavaScript
│ │ ─ ─ lib/# Общие библиотеки (загружены первыми)
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ js #Общие утилиты
│ │ ─── config.js #конфигурация
Homes.js # Home System - Домашняя система
?????????????????????
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
─ ─ db/# Файлы базы данных (автосозданные)
─ ─ Активы / # Пакет активов (WIP - еще не доступен)
─ ─ config / # Config файлы
Языковые файлы / # Language Files
  ─ ─ ui / # UI определения

установка

  1. Скачать плагин JAR
  2. Поместите его на свой сервер плагины папка
  3. Начните свой сервер
  4. Плагин автоматически создает Universe/SimpleScripting/mods справочник
  5. Образцы сценариев копируются автоматически
  6. Настраивайте сценарии по своему вкусу!

Обновление сценариев

Просто отредактируйте свой .js Файлы и запустить /Простая перезагрузка - Перезагрузка сервера не требуется!


Поддержка и сообщество

Нашёл жучок? Есть запрос на функцию? Хотите поделиться своими сценариями?

  • Вопросы отчета на нашем трекере проблем
  • Публичное хранилище будет доступно в ближайшее время, поэтому вы можете внести свой вклад в отправку запросов Pull.
Показать оригинальное описание (English)

SimpleScripting - Server-Side JavaScript for Hytale

Join to our discord if any issue or help needed: Discord

Source Code: HostTale-Project/SimpleScripting

Unleash the full potential of your Hytale server with JavaScript scripting!

SimpleScripting is a powerful plugin that brings server-side JavaScript scripting to Hytale servers. Create custom commands, handle player events, build complex features, and extend your server's functionality, all without writing a single line of Java code.


Why SimpleScripting?

No Java Required - Write scripts in JavaScript, one of the world's most popular programming languages. If you know basic JavaScript, you can create server features.

Hot Reload - Modify your scripts and reload them instantly without restarting your server. Perfect for rapid development and testing.

Batteries Included - Comes with a complete set of sample scripts for common server features like homes, warps, teleport requests, and more!

Fully Extensible - The comprehensive API gives you access to players, worlds, events, commands, permissions, databases, and schedulers.


Key Features

Custom Commands

Create your own commands with ease! Support for:

  • Required and optional arguments (strings, integers, doubles)
  • Command aliases
  • Tab completion
  • Permission requirements
  • Rich formatting with colors

Event System

React to everything happening on your server:

  • Player Join/Quit - Welcome messages, login rewards
  • Player Death/Respawn - Death messages, respawn handling
  • Player Chat - Chat formatting, filters, custom chat features
  • Player Movement - Region detection, border enforcement
  • World Changes - Track players across dimensions
  • Command Execution - Command logging, blocking
  • Server Tick - Periodic tasks, automation

Teleportation API

Safe and reliable teleportation with:

  • Async chunk preloading (no crashes!)
  • Teleport warmup timers
  • Position and rotation support
  • Cross-world teleportation

Database API

Simple but powerful key-value storage:

  • Automatically persisted to JSON files
  • Per-player data storage
  • Server-wide data storage
  • No external database required

Scheduler API

Run tasks on your terms:

  • Delayed execution (ticks or milliseconds)
  • Repeating tasks
  • Task cancellation
  • Perfect for cooldowns, warmups, and periodic events

Permissions API

Integrate with Hytale's native permission system:

  • Check player permissions
  • Require permissions for commands
  • Admin detection
  • Custom permission nodes for your scripts

Included Sample Scripts

SimpleScripting comes with 8 ready-to-use scripts that you can enable immediately:

Homes System (homes.js)

Let players set and teleport to personal home locations.

  • /sethome [name] - Set a home location
  • /home [name] - Teleport to a home
  • /delhome <name> - Delete a home
  • /homes - List all homes
  • Configurable home limits per rank!

Warps System (warps.js)

Server-wide warp points for easy navigation.

  • /setwarp <name> - Create a server warp (admin)
  • /warp <name> - Teleport to a warp
  • /delwarp <name> - Remove a warp (admin)
  • /warps - List available warps

Spawn System (spawn.js)

Central spawn point management.

  • /setspawn - Set the server spawn (admin)
  • /spawn - Teleport to spawn

Teleport Requests (tpa.js)

Safe player-to-player teleportation.

  • /tpa <player> - Request to teleport to someone
  • /tpahere <player> - Request someone to teleport to you
  • /tpaccept - Accept incoming request
  • /tpdeny - Deny incoming request
  • /tpcancel - Cancel your outgoing request
  • Configurable timeout and cooldowns!

Back Command (back.js)

Return to previous locations.

  • /back - Return to your last location
  • Saves location on death so you never lose your items!
  • Configurable history size

Random Teleport (rtp.js)

Explore the world safely.

  • /rtp - Teleport to a random safe location
  • /wild, /randomtp - Aliases
  • Configurable min/max distance
  • Automatic safe location detection

Ranks System (ranks.js)

Basic rank management.

  • /rank set <player> <rank> - Assign a rank
  • /rank get <player> - Check a player's rank
  • /rank list - List all ranks
  • /myrank - Check your own rank

Admin Tools (admin.js)

Essential administration commands.

  • /simplescripting reload - Hot reload all scripts
  • /simplescripting info - Plugin information
  • /tp <player> - Teleport to a player
  • /tphere <player> - Teleport a player to you
  • /playerinfo <player> - View player details
  • /players - List online players

Configuration

All settings are easily customizable in lib/config.js:

var DEFAULTS = {
    homes: {
        maxHomes: 3,
        cooldownSeconds: 5,
        warmupSeconds: 3
    },
    warps: {
        cooldownSeconds: 5,
        warmupSeconds: 3
    },
    tpa: {
        timeoutSeconds: 60,
        cooldownSeconds: 10,
        warmupSeconds: 3
    },
    rtp: {
        minDistance: 100,
        maxDistance: 5000,
        cooldownSeconds: 300
    }
    // ... and more!
};

Rank-Based Configuration

Define different limits for different player ranks:

var RANKS = {
    default: {
        // Uses default settings
    },
    vip: {
        homes: { maxHomes: 5, cooldownSeconds: 3 }
    },
    admin: {
        homes: { maxHomes: 10, cooldownSeconds: 0 }
    }
};

For Developers

Comprehensive API

SimpleScripting provides access to:

API Description
Commands Register custom commands with arguments and permissions
Events Listen to player and server events
Players Find, manage, and get information about players
Worlds Access world data and block information
Teleport Safe teleportation with async chunk loading
DB Key-value database storage
Scheduler Delayed and repeating tasks
Permissions Permission checking and requirements
MessageHelper Send messages and broadcasts
Colors Minecraft color codes and formatting
Logger Console logging

Example: Create a Custom Command

Commands.register()
    .setName('greet')
    .setDescription('Greet a player')
    .addRequiredStringArg('player', 'Player to greet')
    .setHandler(function(ctx) {
        var target = Players.getByNameFuzzy(ctx.getArgAsString('player'));
        if (target) {
            MessageHelper.send(target, Colors.GOLD + 'Hello from ' + Players.getUsername(ctx.getPlayer()) + '!');
            ctx.sendMessage(Colors.GREEN + 'Greeting sent!');
        } else {
            ctx.sendMessage(Colors.RED + 'Player not found!');
        }
    });

Example: Listen to Events

Events.on('playerJoin', function(event) {
    var player = Players.getByUuid(event.playerUuid);
    MessageHelper.broadcast(Colors.YELLOW + Players.getUsername(player) + ' has joined the server!');
});

Events.on('playerDeath', function(event) {
    var player = Players.getByUuid(event.playerUuid);
    var loc = Players.getFullLocation(player);
    // Save death location for /back command
    DB.save('death_locations', event.playerUuid, JSON.stringify(loc));
});

Utility Library

The included lib/utils.js provides helpful functions:

  • Utils.getPlayerFromContext(ctx) - Get player from command
  • Utils.formatTime(seconds) - Format time durations
  • Utils.formatPosition(x, y, z) - Format coordinates
  • Utils.createCooldownTracker() - Easy cooldown management
  • Utils.teleportWithWarmup() - Teleport with countdown

Directory Structure

universe/SimpleScripting/
├── mods/                    # Your JavaScript files
│   ├── lib/                 # Shared libraries (loaded first)
│   │   ├── utils.js         # Common utilities
│   │   └── config.js        # Configuration
│   ├── homes.js             # Home system
│   ├── warps.js             # Warp system
│   └── ...                  # Your custom scripts!
├── db/                      # Database files (auto-created)
└── assets/                  # Assets folder (WIP - Not available yet)
    ├── config/              # Config files
    ├── lang/                # Language files
    └── ui/                  # UI definitions

Installation

  1. Download the plugin JAR
  2. Place it in your server's plugins folder
  3. Start your server
  4. The plugin automatically creates the universe/SimpleScripting/mods/ directory
  5. Sample scripts are copied automatically
  6. Customize scripts to your liking!

Updating Scripts

Simply edit your .js files and run /simplescripting reload - no server restart required!


Support & Community

Found a bug? Have a feature request? Want to share your scripts?

  • Report issues on our issue tracker
  • Public repository will be available soon so you can contribute sending Pull Requests

Последние версии

SimpleScripting-1.0.1.jar

Early Access 19.01.2026 1.7 МБ
Скачать

SimpleScripting-1.0.0.jar

Early Access 17.01.2026 1.6 МБ
Скачать