Configuration
HackedServer uses TOML configuration files for all settings. After the first launch, configuration files are generated in the plugin’s data folder.
Configuration Files Overview
| File | Purpose |
|---|---|
config.toml | Main plugin settings |
actions.toml | Define what happens when clients are detected |
generic.toml | Configure client/mod detection rules |
languages/english.toml | Customizable messages |
Main Configuration (config.toml)
[settings]
# Name of a language file without extension, english.toml by default
language = "english"
# Enable logging of all CustomPayload packets for debugging purposes
debug = false
# If the same payload is sent twice, only the first triggers a check
skip_duplicates = falseSettings
| Option | Type | Default | Description |
|---|---|---|---|
language | string | "english" | Language file to use (without .toml extension) |
debug | boolean | false | Log all custom payload packets for debugging |
skip_duplicates | boolean | false | Skip duplicate payload messages from same player |
Enable debug mode to see all incoming custom payload packets in the console. This is helpful when adding custom checks.
Actions Configuration (actions.toml)
Actions define what happens when HackedServer detects a modified client. You can create multiple actions and reference them in your checks.
[alert]
send_alert = "<red><player> <gray>just logged in using <red><name><gray> !"
[alert.commands]
console = []
player = []
opped_player = []Action Properties
| Property | Description |
|---|---|
send_alert | Message sent to staff with hackedserver.alert permission |
commands.console | Commands executed as console |
commands.player | Commands executed as the player |
commands.opped_player | Commands executed as the player with OP permissions |
Placeholders
Use these placeholders in alert messages and commands:
| Placeholder | Description |
|---|---|
<player> | The player’s name |
<name> | The detected client/mod name |
Example: Kick and Alert
[kick_alert]
send_alert = "<red><player> <gray>was kicked for using <red><name><gray>!"
[kick_alert.commands]
console = ["kick <player> Hacked clients are not allowed!"]
player = []
opped_player = []
[silent_alert]
send_alert = "<yellow><player> <gray>is using <yellow><name><gray> (no action taken)"
[silent_alert.commands]
console = []
player = []
opped_player = []Generic Checks (generic.toml)
The generic checks file configures what clients and mods HackedServer detects. Each check monitors specific plugin message channels.
# Enable/disable all generic checks
enabled = true
[labymod_v3]
actions = ["alert"]
channels = ["labymod3:main"]
name = "Labymod v3"
[forge]
actions = ["alert"]
channels = ["MC|Brand", "minecraft:brand"]
message_has = "forge"
name = "Forge"Check Properties
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name shown in alerts |
channels | array | Yes | Plugin message channels to monitor |
message_has | string | No | Only trigger if message contains this text |
actions | array | Yes | List of action IDs to execute |
Pre-configured Checks
HackedServer comes with detection for many popular clients and mods:
Clients
Hacked Clients:
- Cracked Vape
- Easy Minecraft Client
- Winterware
PvP Clients:
- Lunar Client
- Badlion Client
- Feather Client
- PvPLounge Client
- Hyperium
Utility Clients:
- Labymod (v1, v2, v3)
- 5zig Mod
- Remix
Forge Mod Detection (forge.toml)
HackedServer can send a fake Forge handshake to retrieve the complete mod list from Forge clients.
# Enable forge mod list detection
enabled = true
[category]
[category.whitelisted]
color = "<green>"
mods = [
"FML",
"FORGE",
"MCP",
"MINECRAFT",
"MERCURIUS_UPDATER",
"BETTERFOLIAGE"
]
[category.blacklisted]
color = "<red>"
mods = [
"FORGEWURST",
"FORGEHAX",
"WURST"
]Mod Categories
| Category | Color | Purpose |
|---|---|---|
whitelisted | Green | Allowed mods (shown but no action) |
blacklisted | Red | Banned mods (trigger actions) |
Forge mod detection works by emulating the Forge handshake protocol. This only works with Forge clients that properly implement the handshake.
Language Files (languages/*.toml)
Customize all plugin messages by editing the language file. The default is english.toml.
[general]
prefix = "<gradient:#2F80ED:#FFCAC9>HackedServer <#282B3F>| "
[logs]
loaded = "<prefix><#55ffa4>Successfully enabled"
debug_message = "<#93291E>HS-Debug <#282B3F>| <#facc43><player> <#b8bbc2>channel<#6f737d>: \"<#facc43><channel><#6f737d>\", <#b8bbc2>message<#6f737d>: \"<#facc43><message><#6f737d>\""
[commands]
help = """
<prefix><#b8bbc2>Available commands
<hover:show_text:\"<gray>fill reload command\"><click:SUGGEST_COMMAND:/hackedserver reload ><#6f737d>/hs \
<#b8bbc2>reload</click></hover> <#6f737d>»<#b8bbc2> reload the plugin<reset>
<hover:show_text:\"<gray>fill give command\"><click:SUGGEST_COMMAND:/hackedserver check ><#6f737d>/hs \
<#b8bbc2>check <#43c9fa>target</click></hover> <#6f737d>»<#b8bbc2> check player detected mods<reset>
<hover:show_text:\"<gray>fill list command\"><click:SUGGEST_COMMAND:/hackedserver list ><#6f737d>/hs \
<#b8bbc2>list</click></hover> <#6f737d>»<#b8bbc2> list all spotted players<reset>
"""
reload_success = "<prefix><#55ffa4>Successfully reloaded"
check_no_mods = "<prefix><#55ffa4> No mods detected"
check_mods = "<prefix><#55ffa4> Detected mods:"
mod_list_format = "<#6f737d>- <#facc43><mod>"
check_players = "<prefix><#55ffa4> Spotted players:"
check_players_empty = "<prefix><#55ffa4> No chocolate players spotted"
player_list_format = "<#6f737d>- <#facc43><player>"MiniMessage Format
HackedServer uses MiniMessage for rich text formatting. Supported features include:
- Colors:
<red>,<blue>,<#RRGGBB> - Gradients:
<gradient:#color1:#color2> - Hover text:
<hover:show_text:"text"> - Click actions:
<click:SUGGEST_COMMAND:/command> - Formatting:
<bold>,<italic>,<reset>
Reloading Configuration
After editing any configuration file, use /hs reload to apply changes without restarting the server.
The reload command re-reads all TOML files and re-registers all players. This ensures changes take effect immediately.