SimpleScripting
Write custom plugins using Javascript
Описание
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 определения
установка
- Скачать плагин JAR
- Поместите его на свой сервер
плагиныпапка - Начните свой сервер
- Плагин автоматически создает
Universe/SimpleScripting/modsсправочник - Образцы сценариев копируются автоматически
- Настраивайте сценарии по своему вкусу!
Обновление сценариев
Просто отредактируйте свой .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 commandUtils.formatTime(seconds)- Format time durationsUtils.formatPosition(x, y, z)- Format coordinatesUtils.createCooldownTracker()- Easy cooldown managementUtils.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
- Download the plugin JAR
- Place it in your server's
pluginsfolder - Start your server
- The plugin automatically creates the
universe/SimpleScripting/mods/directory - Sample scripts are copied automatically
- 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
Информация
Авторы:
Категории:
Версии игры:
Создан: 17.01.2026