Hyssentials Documentation
Essential server commands and a powerful rank-based configuration system for Hytale servers. Manage teleportation, homes, warps, and player ranks with an intuitive in-game UI.
Features
- Teleport Requests - TPA system with configurable cooldowns, timeouts, and player selection UI
- Private Messaging - Send private messages with /msg and /r (reply)
- Admin Chat - Configurable staff/admin chat channels with /a command
- Homes System - Players can set and teleport to personal home locations with an interactive UI
- Server Warps - Admin-defined warp points with a warp selection UI
- Random Teleport - Teleport to random safe locations in the world
- Rank System - Fully customizable ranks with per-command settings
- Warmup & Cooldowns - Configurable delays and cooldowns per rank
- Admin UI - In-game graphical interface for rank management
- Interactive GUIs - Run commands without arguments to open selection UIs
- Vanish Mode - Staff can become invisible to other players with /vanish
- Fly Mode - Staff can toggle flight mode with /fly
- Custom Join Messages - Customize player join and leave messages with placeholders
Installation
- Download the latest Hyssentials JAR file
- Place the JAR in your server's
pluginsfolder - Restart your server
- The plugin will generate default configuration files automatically
On first run, Hyssentials creates a ranks.json with "default" and "vip" ranks. Customize these or create new ranks using the in-game UI.
Quick Start
Once installed, all player commands are available immediately. Here's what your players can do:
Teleport Requests (TPA)
The TPA system allows players to request teleportation to other players with their consent.
| Command | Description |
|---|---|
/tpa |
Open the player selection UI to send a TPA request |
/tpa <player> |
Request to teleport to another player |
/tpahere |
Open the player selection UI to request a player to teleport to you |
/tpahere <player> |
Request another player to teleport to you |
/tpaccept |
Accept an incoming teleport request |
/tpdeny |
Deny an incoming teleport request |
/tpcancel |
Cancel your outgoing request |
Player Selection UI
Running /tpa or /tpahere without a player name opens an interactive GUI showing all online players:
Click a player to send them a teleport request
TPA requests expire after a configurable timeout (default: 60 seconds). This can be customized per rank.
Private Messaging
Send private messages to other players. The reply command remembers who you last messaged.
| Command | Description |
|---|---|
/msg <player> <message> |
Send a private message to a player |
/r <message> |
Reply to the last player who messaged you |
Aliases
/msg- also available as/tell,/whisper,/w,/pm/r- also available as/reply
When someone sends you a message, you can quickly reply using /r without typing their name again.
Homes
Players can save personal locations and teleport back to them at any time.
| Command | Description |
|---|---|
/sethome <name> |
Save your current location as a home |
/home |
Open the home selection UI |
/home <name> |
Teleport to a saved home |
/delhome <name> |
Delete a saved home |
/homes |
List all your saved homes |
Home Selection UI
Running /home without a name opens an interactive GUI showing all your homes:
View, teleport to, or delete your homes from the UI
Home Limits
The number of homes a player can set is determined by their rank. Default players get 5 homes, while VIP players get 10. This is fully customizable in the rank settings.
Homes cannot be set in instance worlds (worlds starting with instance-). Instance worlds are temporary and are destroyed when you leave, so any homes set there would become invalid. Existing homes in instance worlds are automatically removed when the plugin loads.
Warps
Server warps are admin-defined teleport points available to all players.
| Command | Description | Permission |
|---|---|---|
/warp |
Open the warp selection UI | Everyone |
/warp <name> |
Teleport to a warp | Everyone |
/warps |
List all available warps | Everyone |
/setwarp <name> |
Create a new warp | hyssentials.setwarp |
/delwarp <name> |
Delete a warp | hyssentials.delwarp |
Warp Selection UI
Running /warp without a name opens an interactive GUI showing all server warps:
Browse and teleport to server warps from the UI
Warps cannot be set in instance worlds (worlds starting with instance-). Instance worlds are temporary and are destroyed when players leave, so any warps set there would become invalid. Existing warps in instance worlds are automatically removed when the plugin loads.
Spawn
Teleport to the server spawn point.
| Command | Description | Permission |
|---|---|---|
/spawn |
Teleport to spawn | Everyone |
/setspawn |
Set the server spawn point | hyssentials.setspawn |
If no custom spawn is set, players will teleport to the world's default spawn point.
Random Teleport (RTP)
Teleport to a random safe location in the world. Great for exploration or finding new places to build.
How It Works
- Searches for a random location between 100-5000 blocks from spawn
- Automatically finds a safe spot (solid ground with air above)
- Pre-loads the destination chunk to prevent issues
- Includes configurable warmup and cooldown per rank
RTP has a longer default cooldown (300 seconds) to prevent abuse. VIP players have a reduced cooldown of 60 seconds.
Back
Return to your previous location. Works after teleporting or dying!
The plugin remembers your last 5 locations (configurable) so you can use /back multiple times.
Admin Commands
Administrative commands for server management.
Teleport Commands
| Command | Description | Permission |
|---|---|---|
/htp <player> |
Teleport to a player | hyssentials.htp |
/htphere <player> |
Teleport a player to you | hyssentials.htphere |
Vanish
| Command | Description | Permission |
|---|---|---|
/vanish |
Toggle vanish mode (become invisible to other players) | hyssentials.vanish |
/v |
Alias for /vanish | hyssentials.vanish |
Vanished players are completely invisible to other players. The vanish state persists across reconnects, and you'll receive a reminder when you join if you're still vanished.
Fly
| Command | Description | Permission |
|---|---|---|
/fly |
Toggle flight mode | hyssentials.fly |
Enables creative-style flight for the player. Useful for admins and staff members who need to quickly navigate the world.
Hyssentials Admin Commands
| Command | Description | Permission |
|---|---|---|
/hyssentials rank |
Open the rank management UI | hyssentials.admin.ranks |
/hyssentials assign |
Open the player rank assignment UI | hyssentials.admin.ranks |
/hyssentials setrank <player> <rank> |
Give a rank to a player | hyssentials.admin.setrank |
/hyssentials removerank <player> <rank> |
Remove a rank from a player | hyssentials.admin.setrank |
/hyssentials playerinfo <player> |
View player's rank and stats | hyssentials.admin.playerinfo |
/hyssentials reload |
Reload configuration files | hyssentials.admin.reload |
You can use /hys as a shorthand for /hyssentials. For example: /hys rank
Admin Chat
Private chat channels for staff members. Messages are only visible to players with the appropriate permission.
| Command | Description |
|---|---|
/a <message> |
Send a message to your default admin chat group |
/a <group> <message> |
Send a message to a specific group (e.g., /a admin Hello) |
Aliases
/a is also available as /adminchat and /ac.
If you have access to multiple groups, specify the group name as the first argument: /a admin Important message. If omitted, messages go to your first available group.
Chat Groups
Admin chat supports multiple groups, each with its own permission. By default, two groups are configured:
| Group | Permission | Prefix |
|---|---|---|
| Staff | hyssentials.adminchat.staff |
[STAFF] |
| Admin | hyssentials.adminchat.admin |
[ADMIN] |
Chat groups are defined in adminchat.json. You can add, remove, or customize groups with different permissions and prefixes.
Custom Join/Leave Messages
Customize the messages shown when players connect to the server or move between worlds/instances. By default, this feature is disabled and Hytale's default messages are used.
Message Types
Hyssentials distinguishes between server connections and world transitions:
| Message | When Shown |
|---|---|
serverJoinMessage |
Player connects to the server (login) |
serverLeaveMessage |
Player disconnects from the server (logout) |
worldEnterMessage |
Player enters a world/instance (e.g., The Forgotten Temple) |
worldLeaveMessage |
Player leaves a world/instance to go to another |
This prevents confusion between players actually logging off versus simply entering a dungeon or instance. Server messages are for real connections, world messages are for instance transitions.
Configuration
Edit joinmessages.json in the plugin data folder:
{
"enabled": true,
"serverJoinMessage": "7FF55&b{player} &rhas joined the server",
"serverLeaveMessage": "FF5555&b{player} &rhas left the server",
"worldEnterMessage": "AAAAAA{player} entered FFAA00{world}",
"worldLeaveMessage": "AAAAAA{player} left FFAA00{world}"
}
Placeholders
| Placeholder | Available In | Description |
|---|---|---|
{player} |
All messages | The player's username |
{world} |
World messages only | The world/instance display name |
Formatting
Messages support color and style formatting. See the Formatting Guide for details.
Example Configurations
Simple (No Colors)
{
"enabled": true,
"serverJoinMessage": "{player} has joined the server",
"serverLeaveMessage": "{player} has left the server",
"worldEnterMessage": "{player} entered {world}",
"worldLeaveMessage": "{player} left {world}"
}
Colorful
{
"enabled": true,
"serverJoinMessage": "7FF55+ &b{player} &rjoined",
"serverLeaveMessage": "FF5555- &b{player} &rleft",
"worldEnterMessage": "{player} → FFAA00{world}",
"worldLeaveMessage": "{player} ← FFAA00{world}"
}
Set enabled to false to use Hytale's default join messages. The custom messages only apply when enabled is true.
Rank System
Hyssentials features a powerful rank-based configuration system. Each rank can have its own settings for every command.
How Ranks Work
- Ranks are defined in
ranks.json - Each rank has a unique permission:
hyssentials.rank.<id> - Players get the highest priority rank they have permission for
- Each rank configures: max homes, cooldowns, warmups, and enabled commands
Default Ranks
Hyssentials comes with two pre-configured ranks:
| Rank | Permission | Max Homes | Cooldowns |
|---|---|---|---|
| Default | hyssentials.rank.default |
5 | 60 seconds |
| VIP | hyssentials.rank.vip |
10 | None |
Per-Command Settings
Each rank can configure the following for every teleport command:
- Enabled - Whether the rank can use the command
- Cooldown - Seconds between uses (0 = no cooldown)
- Warmup - Delay before teleport (0 = instant). Moving cancels the teleport.
Granted Permissions
Ranks can grant additional permissions to players. This is useful for integrating with other plugins. When a player receives a rank, they automatically get all permissions listed in that rank's "Granted Permissions".
Rank Management UI
Manage ranks directly in-game with the graphical interface. Run /hyssentials rank to open.
The Rank Management screen showing all configured ranks
Creating/Editing Ranks
Click "Create" or "Edit" to open the rank editor:
Configure rank ID, display name, priority, max homes, and command settings
Configure RTP settings and grant additional permissions
Rank Settings Explained
- ID - Unique identifier (lowercase, no spaces). Used in the permission node.
- Display Name - Human-readable name shown in UIs
- Priority - Higher priority ranks are checked first (0-100)
- Max Homes - Maximum number of homes players with this rank can set
Assigning Ranks to Players
Use the assignment UI to manage which ranks players have. Run /hyssentials assign to open.
Assign or remove ranks from online players
How to Assign Ranks
- Open the UI with
/hyssentials assign - Find the player (use search if needed)
- Select a rank from the dropdown
- Click + to add the rank or - to remove it
Players can have multiple ranks. The highest priority rank determines their settings.
Configuration Files
All configuration is stored in JSON files in the plugin data folder.
config.json
Main configuration file with global settings:
{
"ConfigVersion": 4,
"BackHistorySize": 5,
"DefaultRankId": "default"
}
| Option | Description | Default |
|---|---|---|
BackHistorySize |
Number of /back locations to remember | 5 |
DefaultRankId |
Fallback rank for players without a rank | "default" |
Data Files
homes.json- Player home locationswarps.json- Server warp pointsspawn.json- Custom spawn pointranks.json- Rank definitions
ranks.json Structure
The complete rank configuration format:
{
"ranks": [
{
"id": "default",
"displayName": "Default",
"priority": 0,
"maxHomes": 5,
"homeSettings": {
"enabled": true,
"cooldownSeconds": 60,
"warmupSeconds": 3
},
"warpSettings": { ... },
"spawnSettings": { ... },
"backSettings": { ... },
"tpaSettings": {
"enabled": true,
"cooldownSeconds": 30,
"warmupSeconds": 0,
"timeoutSeconds": 60
},
"rtpSettings": {
"enabled": true,
"cooldownSeconds": 300,
"warmupSeconds": 5
},
"grantedPermissions": []
},
{
"id": "vip",
"displayName": "VIP",
"priority": 10,
"maxHomes": 10,
...
}
]
}
adminchat.json Structure
Configuration for admin chat groups:
{
"groups": [
{
"id": "staff",
"displayName": "Staff Chat",
"permission": "hyssentials.adminchat.staff",
"prefix": "[STAFF]"
},
{
"id": "admin",
"displayName": "Admin Chat",
"permission": "hyssentials.adminchat.admin",
"prefix": "[ADMIN]"
}
],
"defaultGroup": "staff"
}
Group Properties
| Property | Description |
|---|---|
id |
Unique identifier for the group |
displayName |
Human-readable name for the group |
permission |
Permission node required to use this chat |
prefix |
Prefix shown before messages (e.g., [STAFF]) |
You can add as many groups as you need. For example, add a "mod" group with permission hyssentials.adminchat.mod for moderators.
joinmessages.json Structure
Configuration for custom join and leave messages:
{
"enabled": false,
"serverJoinMessage": "{player} has joined the server",
"serverLeaveMessage": "{player} has left the server",
"worldEnterMessage": "{player} entered {world}",
"worldLeaveMessage": "{player} left {world}"
}
Properties
| Property | Type | Description |
|---|---|---|
enabled |
boolean | Set to true to use custom messages, false for default Hytale messages |
serverJoinMessage |
string | Message shown when a player connects to the server. Supports {player} placeholder and formatting codes. |
serverLeaveMessage |
string | Message shown when a player disconnects from the server. Supports {player} placeholder and formatting codes. |
worldEnterMessage |
string | Message shown when a player enters a world/instance. Supports {player}, {world} placeholders and formatting codes. |
worldLeaveMessage |
string | Message shown when a player leaves a world/instance. Supports {player}, {world} placeholders and formatting codes. |
This feature is disabled by default. Set enabled to true to use your custom messages instead of Hytale's built-in join/leave announcements.
Language Files
Hyssentials supports multiple languages through JSON language files located in the lang folder inside the plugin JAR. Currently supported languages:
en.json- English (default)fr.json- French
Message Categories
Language files contain all user-facing messages organized by category:
| Category | Description |
|---|---|
error |
Error messages (permissions, not found, etc.) |
cooldown |
Cooldown notification messages |
success |
Success/confirmation messages |
info |
Informational messages (warmups, lists, etc.) |
usage |
Command usage hints |
pm |
Private message formatting |
ui |
GUI text (titles, buttons, labels) |
Example Message Structure
{
"error": {
"no_permission": {
"home": "<red>You don't have permission to use /home.</red>",
"warp": "<red>You don't have permission to use /warp.</red>"
},
"home_not_found": "<red>Home '<yellow>%s</yellow>' not found.</red>",
"instance_world_home": "<red>You cannot set a home in an instance world. Instance worlds are temporary and will be destroyed when you leave.</red>"
},
"success": {
"home_set": "<green>Home '<yellow>%s</yellow>' set at <gray>%.1f, %.1f, %.1f</gray></green>"
}
}
Placeholders
Messages use Java's String.format() placeholders:
%s- String (player names, home names, etc.)%d- Integer (cooldown seconds, counts, etc.)%.1f- Decimal with 1 decimal place (coordinates)
Color Tags
Messages support MiniMessage-style color tags:
<red>text</red>- Red text<green>text</green>- Green text<yellow>text</yellow>- Yellow text<orange>text</orange>- Orange text<gray>text</gray>- Gray text
To add a new language, create a new JSON file (e.g., de.json for German) following the same structure as en.json. The plugin will automatically detect and load available language files.
Formatting Guide
Hyssentials supports formatting codes in join/leave messages to add colors and text styles. Use the & symbol followed by a code.
Style Codes
| Code | Effect | Example |
|---|---|---|
&b or &l |
Bold | &bHello → Hello |
&i |
Italic | &iHello → Hello |
&u |
Underline | &uHello → Hello |
&m |
Monospace |
&mHello → Hello |
&r |
Reset (clear all formatting) | &bBold &rNormal → Bold Normal |
Color Codes
Use & followed by a hex color code to set text color:
| Format | Example | Result |
|---|---|---|
RRGGBB |
FF5555Hello |
Hello (red) |
RRGGBB |
7FF55Hello |
Hello (green) |
RRGGBB |
ᖳFFHello |
Hello (blue) |
RRGGBB |
FFAA00Hello |
Hello (orange) |
Common Colors Reference
| Color | Hex Code | Preview |
|---|---|---|
| Red | FF5555 |
■■■■■ |
| Green | 7FF55 |
■■■■■ |
| Blue | ᖳFF |
■■■■■ |
| Yellow | FFFF55 |
■■■■■ |
| Orange | FFAA00 |
■■■■■ |
| Purple | AA00FF |
■■■■■ |
| Cyan | 7FFFF |
■■■■■ |
| Pink | FF55FF |
■■■■■ |
| White | FFFFFF |
■■■■■ |
| Gray | AAAAAA |
■■■■■ |
| Dark Gray | |
■■■■■ |
Combining Styles
You can combine multiple formatting codes. Codes apply to all text that follows until reset with &r.
// Green bold player name, then normal white text
"7FF55&b{player} &rhas joined the server"
// Result: [green bold]Steve[/green bold] has joined the server
// Red bold player name, gray "left", orange world name
"FF5555&b{player} &rleft FFAA00{world}"
// Result: [red bold]Steve[/red bold] [gray]left[/gray] [orange]The Forgotten Temple[/orange]
Full Example
{
"enabled": true,
"serverJoinMessage": "7FF55&b+ {player} &rAAAAAAjoined the server",
"serverLeaveMessage": "FF5555&b- {player} &rAAAAAAleft the server",
"worldEnterMessage": "AAAAAA{player} entered FFAA00&b{world}",
"worldLeaveMessage": "AAAAAA{player} left FFAA00&b{world}"
}
• Use &r to reset formatting before starting a new style
• Hex colors must be exactly 6 characters (RRGGBB)
• Codes are case-insensitive (&B and &b both work)
• Use a color picker tool to find the perfect hex color for your server theme
Permissions Reference
Rank Permissions
Each rank automatically generates a permission node:
hyssentials.rank.default- Default rankhyssentials.rank.vip- VIP rankhyssentials.rank.<id>- Custom ranks
Admin Permissions
| Permission | Description |
|---|---|
hyssentials.setspawn |
Set the server spawn point |
hyssentials.setwarp |
Create server warps |
hyssentials.delwarp |
Delete server warps |
hyssentials.htp |
Teleport to players |
hyssentials.htphere |
Teleport players to you |
hyssentials.admin.ranks |
Access rank management UI |
hyssentials.admin.setrank |
Assign/remove ranks from players |
hyssentials.admin.playerinfo |
View player information |
hyssentials.admin.reload |
Reload configuration |
hyssentials.vanish |
Toggle vanish mode |
hyssentials.fly |
Toggle flight mode |
Admin Chat Permissions
| Permission | Description |
|---|---|
hyssentials.adminchat.staff |
Access staff chat channel |
hyssentials.adminchat.admin |
Access admin chat channel |
Special Permissions
| Permission | Description |
|---|---|
hyssentials.cooldown.bypass |
Bypass all cooldowns and warmups |
Legacy Permissions (Backwards Compatibility)
These permissions from older versions still work:
| Permission | Description |
|---|---|
hyssentials.vip |
Maps to VIP rank |
hyssentials.vip.homes |
Extended home limit |
hyssentials.vip.cooldown |
Reduced cooldowns |