Skip to Content
Configuration

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

FilePurpose
config.tomlMain plugin settings
actions.tomlDefine what happens when clients are detected
generic.tomlConfigure client/mod detection rules
lunar.tomlLunar Client Apollo integration settings
forge.tomlForge/NeoForge mod detection settings
languages/english.tomlCustomizable 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 = false # Automatically download required dependencies (like ProtocolLib) if not present auto_download_dependencies = true # Delay in ticks before executing actions after a check is triggered action_delay_ticks = 20

Settings

OptionTypeDefaultDescription
languagestring"english"Language file to use (without .toml extension)
debugbooleanfalseLog all custom payload packets for debugging
skip_duplicatesbooleanfalseSkip duplicate payload messages from same player
auto_download_dependenciesbooleantrueAutomatically download ProtocolLib if not installed
action_delay_ticksinteger20Delay in ticks before executing actions (helps with Purpur compatibility)

Enable debug mode to see all incoming custom payload packets in the console. This is helpful when adding custom checks.

If you prefer to manage ProtocolLib manually, set auto_download_dependencies to false. The action_delay_ticks setting ensures players are fully connected before kicks or commands execute, which resolves issues on some server forks like Purpur.

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

PropertyDescription
send_alertMessage sent to staff with hackedserver.alert permission
commands.consoleCommands executed as console
commands.playerCommands executed as the player
commands.opped_playerCommands executed as the player with OP permissions

Placeholders

Use these placeholders in alert messages and commands:

PlaceholderDescription
<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

PropertyTypeRequiredDescription
namestringYesDisplay name shown in alerts
channelsarrayYesPlugin message channels to monitor
message_hasstringNoOnly trigger if message contains this text
actionsarrayYesList of action IDs to execute

Pre-configured Checks

HackedServer comes with detection for many popular clients and mods:

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

Lunar Client Integration (lunar.toml)

HackedServer 3.12.1 adds native Lunar Client support. This enables detection of all mods installed through Lunar Client, including their versions and types.

# Mark players using Lunar Client mark_lunar_client = true # Mark players using Fabric mods via Lunar mark_fabric = true # Mark players using Forge mods via Lunar mark_forge = true # Actions to execute when Lunar Client is first detected actions = ["alert"] # Per-mod actions - configure specific actions for individual mods [mod_actions] # "sodium" = ["alert"] # "litematica" = ["kick"]

Lunar Configuration Options

OptionTypeDefaultDescription
mark_lunar_clientbooleantrueTrack Lunar Client usage
mark_fabricbooleantrueTrack Fabric mods loaded via Lunar
mark_forgebooleantrueTrack Forge mods loaded via Lunar
actionsarray["alert"]Actions triggered on Lunar detection
mod_actionstable{}Per-mod action configuration

For detailed configuration including per-mod actions and advanced usage, see the dedicated Lunar Client page.

Forge/NeoForge Mod Detection (forge.toml)

HackedServer 3.13.0 detects Forge and NeoForge mods using a fake Forge handshake.

# Enable Forge/NeoForge mod detection enabled = true [settings] mark_forge = true mark_neoforge = true show_mods_in_check = true show_mod_versions = false [actions] forge = [] neoforge = [] [mod_actions] # "forgewurst" = ["alert", "kick"] [category.whitelisted] color = "<green>" mods = ["betterfoliage", "sodium", "iris", "optifine"] [category.blacklisted] color = "<red>" mods = ["forgewurst", "forgehax", "wurst", "baritone"]

Forge Configuration Options

OptionTypeDefaultDescription
enabledbooleantrueEnable Forge/NeoForge detection
mark_forgebooleantrueMark players using Forge
mark_neoforgebooleantrueMark players using NeoForge
show_mods_in_checkbooleantrueShow mod list in /hs check output
actions.forgearray[]Actions when Forge is detected
actions.neoforgearray[]Actions when NeoForge is detected
mod_actionstable{}Per-mod action configuration

For detailed configuration including per-mod actions and example setups, see the dedicated Forge/NeoForge page.

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.

Last updated on