> ## Documentation Index
> Fetch the complete documentation index at: https://support.zonely.gen.tr/llms.txt
> Use this file to discover all available pages before exploring further.

# Zonelycorehytale

ZonelyCore Hytale
Step-by-step setup for the ZonelyCore Hytale plugin, including SecureSocket store integration.
This guide explains how to install and configure **ZonelyCore** on a Hytale server, connect it to your store via **SecureSocket**, and use the built-in auth and credit systems.

## 1) Prerequisites

* A running **Hytale** server.
* **Java 21** on the server (the plugin targets JDK 21).
* A **MySQL/MariaDB** database (required).
* Ability to open a TCP port if you want **SecureSocket** store integration.

## 2) Install the plugin

1. Download the latest `ZonelyCore` Hytale plugin jar:\
   `https://zonely.gen.tr/plugins/zonelycorehytale-1.0.0.jar`
2. Copy the jar into your Hytale server's mod/plugin directory (usually `mods/`).
3. Start the server once to generate the config file.

After the first start, you should see:

`mods/ZonelyCore/config.yml` (or `plugins/ZonelyCore/config.yml` on some hosts)

## 3) Configure the database

ZonelyCore needs a MySQL/MariaDB database. Open `mods/ZonelyCore/config.yml` (or `plugins/ZonelyCore/config.yml`) and set **either** a full JDBC URL **or** host/port/name.

Example:

```yaml theme={null}
db_url: ""
host: "127.0.0.1"
port: 3306
name: "zonely"
username: "root"
password: ""
```

## 4) SecureSocket (store integration)

SecureSocket lets your store/panel send commands to the server safely.
Enable it in `config.yml`:

```yaml theme={null}
socket_enabled: true
socket_port: 5555
socket_token: "YOUR_SECRET_TOKEN"
```

<Warning>
  Open `socket_port` only to your panel IP. Never expose it publicly.
</Warning>

## 5) Auth behavior

On first join the player is registered automatically and must set a password using `/register`.
Until registration is complete, the player is frozen and can only use `/register`.

Commands:

* `/register <password> <password>`
* `/password <new> <confirm>`
* `/email <email>`

Password format:

```
$SHA$<salt>$<hash>
```

Email is optional.

## 6) Credit system

Commands:

* `/credit` - show your balance
* `/credit show <player>` - show another player's balance
* `/credit set <player> <amount>`
* `/credit add <player> <amount>`
* `/credit remove <player> <amount>`

Permissions:

* `zonelycore.credit.manage`
* `zonelycore.credit.show.other`

## 7) Multi-language messages

Set the language in `config.yml`:

```yaml theme={null}
language: "en"
```

Then edit:

* `messages_en:` for English
* `messages_tr:` for Turkish

You can add more languages (example: `messages_de`) and set `language: "de"`.

## 8) Troubleshooting

* **Plugin not loading**
  * Check Java 21 is used.
  * Ensure the jar is inside the correct `mods/` (or `plugins/`) directory.
* **No DB connection**
  * Verify host/port/name/username/password.
  * Confirm MySQL is reachable from the server.
* **SecureSocket connection fails**
  * Check `socket_token` matches the panel.
  * Ensure `socket_port` is open to the panel IP.
  * Verify `plugin_servers` has the correct `ip`, `port`, and `password`.

## 9) Security tips

* Use a strong `socket_token`.
* Restrict `socket_port` to the panel IP.
* Rotate tokens periodically.
* Log and rate-limit failed attempts on your panel side.

<Check>
  Setup complete. You can now control the Hytale server from your store panel using SecureSocket.
</Check>
