Sentinel
Showcase video
YouTube showcase + explanation:
A Hytale server-side anticheat plugin focused on movement/interaction checks with staff alerts, recent flag logs, and optional Discord webhook notifications and punishments.
Current Checks
Features
Configuration
The config file is created in the plugin data directory on first run
(typically mods/Al3x_HytaleAC/config.json).
Default config:
{
"timer": {
"enabled": true,
"minMsInteractionPacket": 9,
"minNanoMovementPacket": 15000000.0,
"flagsNeededToAlert": 100,
"flagsNeededToPunish": 1000
},
"fly": {
"enabled": true,
"flagsNeededToAlert": 1,
"flagsNeededToPunish": 5
},
"speed": {
"enabled": true,
"maxSpeedThreshold": 9.5,
"flagsNeededToAlert": 1,
"flagsNeededToPunish": 5
},
"infStamina": {
"enabled": true,
"flagsNeededToAlert": 4,
"flagsNeededToPunish": 8
},
"alerts": {
"resetIntervalSeconds": 60,
"notifyReset": true,
"debugMode": false,
"discordWebhookUrl": ""
},
"punishments": {
"reason": "[Anticheat] Cheating",
"shouldBan": false
}
}
Config options:
Webhook alerts
If alerts.discordWebhookUrl is set, staff alerts and punishment actions are also posted to Discord. Alerts are rate-limited to once per second, except for punishments.
Punishments
When any check reaches its flagsNeededToPunish threshold, the player is disconnected by default and a punishment webhook is sent.
If punishments.shouldBan is true, an infinite ban is issued instead.
Commands
Permissions
Installation
Troubleshooting
Performance Notes
Hytale’s server API is still evolving. Performance may vary based on player count and server load, and future updates may affect packet handling. Always monitor performance after updates.
Showcase video
YouTube showcase + explanation:
A Hytale server-side anticheat plugin focused on movement/interaction checks with staff alerts, recent flag logs, and optional Discord webhook notifications and punishments.
Current Checks
- Timer: Detects abnormally fast movement and interaction packets.
- Fly: Flags flying in Adventure mode.
- Speed: Flags sustained horizontal movement speed above a threshold.
- Infinite Stamina: Flags sprinting without stamina depletion.
Features
- Staff Alerts in Chat
- Optional Discord Webhook Alerts
- Optional automatic punishments (disconnect/ban) at high flag counts
Configuration
The config file is created in the plugin data directory on first run
(typically mods/Al3x_HytaleAC/config.json).
Default config:
{
"timer": {
"enabled": true,
"minMsInteractionPacket": 9,
"minNanoMovementPacket": 15000000.0,
"flagsNeededToAlert": 100,
"flagsNeededToPunish": 1000
},
"fly": {
"enabled": true,
"flagsNeededToAlert": 1,
"flagsNeededToPunish": 5
},
"speed": {
"enabled": true,
"maxSpeedThreshold": 9.5,
"flagsNeededToAlert": 1,
"flagsNeededToPunish": 5
},
"infStamina": {
"enabled": true,
"flagsNeededToAlert": 4,
"flagsNeededToPunish": 8
},
"alerts": {
"resetIntervalSeconds": 60,
"notifyReset": true,
"debugMode": false,
"discordWebhookUrl": ""
},
"punishments": {
"reason": "[Anticheat] Cheating",
"shouldBan": false
}
}
Config options:
| Path | Type | Default | Description |
|---|---|---|---|
| timer.enabled | boolean | true | Enables or disables the timer check entirely. |
| timer.minMsInteractionPacket | int | 9 | Minimum milliseconds between interaction packets before flagging. |
| timer.minNanoMovementPacket | number | 15000000.0 | Minimum average nanoseconds between movement packets before flagging. |
| timer.flagsNeededToAlert | int | 100 | Flags required before sending a staff alert (timer). |
| timer.flagsNeededToPunish | int | 1000 | Flags required before punishments trigger (timer). |
| fly.enabled | boolean | true | Enables or disables the fly check entirely. |
| fly.flagsNeededToAlert | int | 1 | Flags required before sending a staff alert (fly). |
| fly.flagsNeededToPunish | int | 5 | Flags required before punishments trigger (fly). |
| speed.enabled | boolean | true | Enables or disables the speed check entirely. |
| speed.maxSpeedThreshold | number | 14.0 | Maximum horizontal speed before flagging. |
| speed.flagsNeededToAlert | int | 1 | Flags required before sending a staff alert (speed). |
| speed.flagsNeededToPunish | int | 5 | Flags required before punishments trigger (speed). |
| infStamina.enabled | boolean | true | Enables or disables the infinite stamina check entirely. |
| infStamina.flagsNeededToAlert | int | 2 | Flags required before sending a staff alert (stamina). |
| infStamina.flagsNeededToPunish | int | 4 | Flags required before punishments trigger (stamina). |
| alerts.resetIntervalSeconds | int | 60 | Interval in seconds to clear player flags. |
| alerts.notifyReset | boolean | true | Notifies staff when flags are reset. |
| alerts.debugMode | boolean | false | Prints debug output and disables punishments. |
| alerts.discordWebhookUrl | string | "" | Discord webhook URL for alerts; leave empty to disable. |
| punishments.reason | string | "[Anticheat] Cheating" | Reason used for disconnects/bans and punishment webhooks. |
| punishments.shouldBan | boolean | false | Bans instead of disconnecting when punishments trigger. |
Webhook alerts
If alerts.discordWebhookUrl is set, staff alerts and punishment actions are also posted to Discord. Alerts are rate-limited to once per second, except for punishments.
Punishments
When any check reaches its flagsNeededToPunish threshold, the player is disconnected by default and a punishment webhook is sent.
If punishments.shouldBan is true, an infinite ban is issued instead.
Commands
| Command | Description | Permission | Notes |
|---|---|---|---|
| /anticheat reload | Reloads plugin configuration. | anticheat.command | Server restart is recommended. |
| /anticheat help | Shows available commands. | anticheat.command | N/A |
| /alerts | Toggle receiving alerts. | hytaleac.alerts | Auto-enabled on join. |
| /logs <player> | Shows recent flags. | hytaleac.logs | Cleared on reset interval. |
Permissions
- anticheat.command – Use anticheat commands
- hytaleac.alerts – Receive staff alerts
- hytaleac.logs – View player flag logs
Installation
- Download the .jar from the latest release
- Place it in the server's mods directory
- Start the server to generate config.json
Troubleshooting
- Too many false flags: Increase flag thresholds or relax timing/speed values.
- No staff alerts: Ensure players have hytaleac.alerts and enabled alerts.
- Empty logs: Logs reset on alerts.resetIntervalSeconds.
- No Discord alerts: Verify the webhook URL is valid.
Performance Notes
Hytale’s server API is still evolving. Performance may vary based on player count and server load, and future updates may affect packet handling. Always monitor performance after updates.
