Understand Hercule without guessing.
Hercule is organized around modules. A module is one feature you can toggle, configure, bind, or render. This page explains the client in plain language first, then gives power-user details when you need them.
Quick Start
If you are new, start small. Turn on one module, understand what it does, then tune the settings. Most problems happen when too many movement or combat modules fight each other.
Open the GUI
Press Right Shift. Categories are grouped by purpose: Combat, Movement, Player, Visual, World, and Misc.
Enable one module
Click a module name to toggle it. Right-click or expand settings to tune behavior before stacking modules together.
Save your setup
Most settings auto-save. Keep separate configs for legit play, mining, visuals, and testing.
UI, HUD, and Scaling
Hercule includes a full ClickGUI, HUD editor, visual labels, and custom style controls. If the GUI looks too small on 1080p, 1440p, or 4K displays, use the Settings tab to increase GUI scale and category sizing.
ClickGUI Settings
Adjust GUI scale, category size, animation speed, rounded corners, theme color, blur, darken, borders, and sorting.
HUD Editor
Drag labels and widgets. Select multiple elements with a box. Right-click elements for their specific properties.
Visual Modules
Use ESP, StorageESP, Nametags, Radar, Minimap, Trail, TargetHUD, ArmorHUD, Keystrokes, and texture controls.
Console
Use the console for commands, testing, logs, and faster control when you do not want to click through menus.
Capability Map
Here is the client at a glance. Names can change over time, but this explains the major feature families.
Combat
Killaura, Aimbot, Reach, TriggerBot, AutoClicker, AutoWeapon, Surround, InfiniteAura, DamageAlerts, and related combat helpers.
Movement
Fly, Speed, Step, Spider, NoSlow, NoWeb, AirJump, LongJump, Glide, Jetpack, AutoSprint, AutoWalk, and movement recovery tools.
Player
InventoryManager, AutoTool, ChestStealer, MLG, AntiVoid, AutoExtinguish, AutoSneak, AutoSign, FastEat, NoFall, and utility modules.
World
Baritone, AutoMine, OreMiner, OreTp, Scaffold, Nuker, Schematic, AutoPortal, AutoFarm, AutoRepair, AutoSmelt, DigUp, NoWater, and Xray.
Visual
ArrayList, HUD, FullBright, NoRender, Map, Minimap, Freecam, BlockESP, StorageESP, PortalESP, SelectionBox, Ambiance, Alerts, and more.
Misc
AIAssistant, Timer, Blink, Disabler, DiscordRPC, DiscordWebhook, PlayerList, Translator, LogSpot, ItemSucker, and command helpers.
Baritone Guide
Baritone is Hercule's advanced pathfinding module. It can route, jump, bridge, tunnel, dig up/down, avoid threats, render paths, and now includes integrated safety and route recording systems.
Core ideas
Path Algorithmchooses the route engine: A*, JPS, Theta*, Bidirectional, Fringe, HPA, or D* Lite.Allow Breaklets Baritone mine blocks when useful.Smart Shortcutsmakes Baritone compare breaking blocks against walking around.Fast Obsidian Toolprevents bad obsidian routes unless your tool is good enough.AutoEscaperoutes to safety when dangerous conditions are detected.SmartRouterecords a path you walk and replays it through Baritone.Path Debug HUDshows route state, target, stuck counter, block action, and latest log.
| Feature | Use it when | Beginner setting |
|---|---|---|
AutoEscape | You want Baritone to run to safety on low health, fire, lava, void fall, or hostile pressure. | Enable it, keep cooldown around 80 ticks. |
SmartRoute | You want to record a farm route, base route, mining loop, or travel path. | Record with 1.5 spacing, simplify before replay. |
Path Debug HUD | You are tuning pathfinding or diagnosing why Baritone stopped. | Enable compact mode if your screen is crowded. |
Avoid Slow Blocks | You do not want routes that waste time mining obsidian-like blocks. | Keep enabled. |
Inventory Manager
InventoryManager keeps armor equipped, promotes the best tools into predictable hotbar slots, and removes unwanted items from your inventory. Treat it like a rule engine: short, clear keywords produce the most reliable behavior.
Recommended workflow
- Enable
Auto Armorfirst and confirm armor equips at a comfortable delay. - Enable
Auto Hotbar, openConfigure Items, and add one rule per slot. - Use broad keywords such as
sword,pickaxe,food,bow, orpearl. - Enable
Auto Throwonly after your blacklist is reviewed. Avoid keywords that could match useful items.
| Option | Purpose | Professional tuning note |
|---|---|---|
Armor Delay | Controls how often armor is evaluated and equipped. | Use a small nonzero value for smoother inventory screens. |
Sort Delay | Controls hotbar organization speed. | Lower values feel instant, higher values are easier to observe while testing. |
Throw Delay | Controls how quickly blacklisted items are dropped. | Keep this conservative if your blacklist is broad. |
Ignore Hotbar | Prevents Place All from emptying hotbar slots. | Recommended for normal play so your tools stay in hand. |
Safety Tools
Safety modules are designed to prevent panic moments. They work best when configured conservatively.
AutoExtinguish
Places water or breaks fire when burning. Good for Nether mistakes and fire traps.
MLG
Uses water to reduce fall damage. Tune activation height so it reacts before impact.
AntiVoid
Helps when falling into empty space. Pair with Baritone AutoEscape for safer recovery.
Baritone AutoEscape
Finds a safer nearby block and routes to it instead of only reacting in place.
Lua Scripting Basics
Lua scripts let you create custom modules without editing C++. Scripts use a table, register it as a module, then define lifecycle functions.
local MyModule = {}
function MyModule.on_enable(self)
client.notification("Hercule", "Module enabled", 2)
end
function MyModule.on_tick(self)
local x, y, z = player.getPos()
if module.get("My Module", "Debug") then
client.chat("Y = " .. tostring(math.floor(y)))
end
end
module.register("My Module", "Beginner friendly example", "Misc", MyModule)
module.addBool("My Module", "Debug", "Print position info", false)
Lua API Reference
Creates a ClickGUI module from your Lua table.
Add settings, read settings, and assign keybinds.
Show local messages and notification popups.
Read input and trigger Hercule commands.
Read and control position and velocity.
Read camera rotation, rotate, swing, and attack.
Read blocks, entities, and what your crosshair is pointing at.
Draw custom overlays during on_render.
Advanced packet tools for experienced script authors.
Helpers for PlayerAuthInput packets.
Examples
Simple Fly
local Fly = {}
module.register("LuaFly", "Simple movement script", "Movement", Fly)
module.addSlider("LuaFly", "Speed", "Move speed", 0.1, 5.0, 1.5)
function Fly.on_disable(self)
player.setMotion(0, 0, 0)
end
function Fly.on_tick(self)
local speed = module.get("LuaFly", "Speed")
local yaw = player.getRot()
local rad = math.rad(yaw + 90)
local mx, mz = 0, 0
if client.isKeyDown("w") then
mx = math.cos(rad) * speed
mz = math.sin(rad) * speed
end
local my = 0
if client.isKeyDown("space") then my = speed end
if client.isKeyDown("shift") then my = -speed end
player.setMotion(mx, my, mz)
end
Block Warning
local BlockWarn = {}
function BlockWarn.on_tick(self)
local x, y, z = player.getPos()
local below = world.getBlock(math.floor(x), math.floor(y - 1), math.floor(z))
if below and string.find(below, "magma") then
client.notification("Warning", "You are standing on magma", 1.5)
end
end
module.register("BlockWarn", "Warns about dangerous blocks", "World", BlockWarn)
Advanced Lua: Table Criticals
This example shows a complete table-structured combat script with packet caching, lifecycle cleanup, settings, and attack-triggered packet sends. It is intended for experienced users who already understand packet modules and testing in controlled environments.
local Criticals = {}
local PACKET_AUTH_INPUT = 144
local cached_packet_template = nil
local has_valid_cache = false
local function log(msg)
print("[TableCrit] " .. tostring(msg))
end
function Criticals.on_enable(self)
has_valid_cache = false
cached_packet_template = packet.create(PACKET_AUTH_INPUT)
log("Enabled.")
end
function Criticals.on_disable(self)
has_valid_cache = false
end
function Criticals.on_packet_send(self, pkt)
if packet.getId(pkt) == PACKET_AUTH_INPUT then
if cached_packet_template ~= nil then
packet.copy(cached_packet_template, pkt)
has_valid_cache = true
end
end
end
function Criticals.on_attack(self, target)
if not has_valid_cache or cached_packet_template == nil then
log("No cache. Move first!")
return
end
local count = module.get("LuaCrit", "Packet Count")
local x, y, z = auth.getPos(cached_packet_template)
local jump_pkt = packet.create(PACKET_AUTH_INPUT)
packet.copy(jump_pkt, cached_packet_template)
auth.setPos(jump_pkt, x, y + 1.0, z)
auth.clearVertical(jump_pkt)
client.sendPacket(jump_pkt)
local fall_y = y + 0.5
for i = 1, count do
local fall_pkt = packet.create(PACKET_AUTH_INPUT)
packet.copy(fall_pkt, cached_packet_template)
auth.setPos(fall_pkt, x, fall_y, z)
auth.clearVertical(fall_pkt)
client.sendPacket(fall_pkt)
end
log("Crit! (" .. count .. " packets)")
end
module.register("LuaCrit", "Criticals using Lua Table Structure", "Combat", Criticals)
module.addSlider("LuaCrit", "Packet Count", "Packets sent per hit", 1, 10, 6)
What this script demonstrates
on_enablecreates a reusable packet template and clears stale cache state.on_packet_sendrefreshes the template from real outgoing input packets.on_attackrefuses to run until a valid movement packet has been cached.module.addSliderexposes packet count in ClickGUI for quick tuning.
Command Reference
Commands are useful when you want fast, precise control without opening a full settings panel.
| Command | What it does | Example |
|---|---|---|
.toggle | Toggles a module by name. | .toggle FullBright |
.bind | Assigns a keybind to a module. | .bind Killaura R |
.config | Saves, loads, and manages configs. | .config save mining |
.mobtp / .mt | Teleports to the nearest entity type using known entity IDs or name fallback. | .mt zombie |
#goto | Starts Baritone pathing to coordinates or stops the current route. | #goto 120 64 -30 |
Troubleshooting
Baritone will not move
Check that Pathfinding is enabled, a target is queued, and no movement module is overriding inputs. Turn on Path Debug HUD for live state.
Inventory rules do not save
Save or load a config after changing rules. The configurator stores hotbar rules and blacklist entries with the module config.
ESP is noisy
Reduce render distance, enable batching where available, and remove block or entity types you do not need.
Lua script does nothing
Confirm the module is registered, enabled, and using the correct event names such as on_tick, on_attack, or on_packet_send.