Official documentation

Hercule Documentation

Everything you need to configure, use, and understand Hercule. Browse modules by category, learn scripting, or find answers to common issues.

Open ClickGUIPress Right Shift
Use ConsolePress F6
Edit HUDUse the HUD tab

Quick Start

New to Hercule? Start small. Enable one module, understand what it does, then tune settings. Most issues come from enabling too many conflicting modules at once.

1

Open the GUI

Press Right Shift. Categories are grouped: Combat, Movement, Player, Visual, World, and Misc.

2

Enable one module

Click a module name to toggle it. Right-click or expand to see settings before stacking modules.

3

Save your setup

Most settings auto-save. Keep separate configs for legit play, mining, visuals, and testing.

Beginner tip: Do not enable multiple movement modules at once. Fly, Speed, Baritone, SmartRoute, and AutoWalk all influence movement and can conflict.

UI, HUD, and Scaling

Hercule includes a ClickGUI, HUD editor, visual labels, and style controls. If the GUI looks too small, use the Settings tab to increase GUI scale.

ClickGUI Settings

Adjust GUI scale, category size, animation speed, rounded corners, theme color, blur, borders, and sorting.

HUD Editor

Drag labels and widgets. Select multiple elements with a box. Right-click for element properties.

Visual Modules

ESP, StorageESP, Nametags, Radar, Minimap, Trail, TargetHUD, ArmorHUD, Keystrokes, and texture controls.

Console

Commands, testing, logs, and faster control when you don't want to click through menus.

Module Index

Complete reference for all 130+ modules. Each card shows the module name, category, and a short description of what it does.

How modules work: A module is a single feature you can toggle on/off, bind to a key, and configure. Open ClickGUI with Right Shift, find the category, and click to enable.

Combat

Modules for attacking, targeting, and PvP advantage.

ModuleDescription
KillauraAutomatically attacks nearby entities within range.
InfiniteAuraAttacks entities around you regardless of normal range limits.
TpAuraTeleports to targets to attack them, then returns.
AerialAuraUses hover, dash, or phase movement to attack targets from the air.
TriggerBotAutomatically attacks the entity you are looking at.
AutoClickerAutomatically clicks for you at a configurable speed.
ReachIncreases your attack range beyond vanilla limits.
CriticalsForces all melee attacks to register as critical hits.
AutoWeaponAutomatically switches to the best weapon in your hotbar.
AimAssistDirect camera rotation aim assist for nearby targets.
Auto360Performs a camera 360 and snaps back to your PvP target.
CrystalAuraPlaces and breaks end crystals near nearby targets.
HitSelectTimes hit-select attacks after you get hit, with optional jump reset behavior.
WTapBriefly releases W after attacks for knockback control.
HitboxExpands entity hitboxes making them easier to hit.
SurroundTraps a nearby target in a box of blocks.
AutoWebAutomatically traps players in cobwebs.
AutoFlameBurns targets on the ground using flint and steel.
LavaThrowerAutomatically places lava on your target.
DamageAlertsShows a notification when you successfully hit a player.

Movement

Modules for flight, speed, traversal, and movement control.

ModuleDescription
FlyAllows creative-style flight in survival mode.
ExtraFlySimplified flight with built-in Killaura integration.
TargetFlyFlies automatically towards the closest target entity.
SpeedIncreases your base movement speed.
BhopBunny hop movement for faster ground travel.
JetpackFly in the direction you are looking.
GlideMakes you fall very slowly, like a parachute.
LongJumpModifies jump height for higher vertical jumps.
StepWalk up full blocks without jumping.
SpiderClimb walls vertically like a spider.
NoclipDisables block collision, fly through walls.
PhaseWalk through walls horizontally.
NoSlowDisables slowdown from using items while moving.
NoWebWalk through cobwebs without being slowed.
LiquidWalkWalk on the surface of water and lava.
AirJumpAllows jumping while in mid-air.
NoJumpDelayRemoves the cooldown between consecutive jumps.
AutoSprintAutomatically sprints whenever you move forward.
AutoWalkAutomatically walks forward without holding W.
FastStopStops movement instantly when keys are released.
FastSwimIncreases swim speed in water.
SneakSpeedControls how fast you move while sneaking.
ArrowDodgeAutomatically dodges incoming projectiles.
GotoPathfinding module that flies to specified coordinates.

Player

Modules for inventory, survival, interaction, and player utilities.

ModuleDescription
InventoryManagerManages armor equipping and organizes hotbar slots automatically.
AutoToolSwitches to the best tool for the block you are breaking.
ChestStealerQuickly takes all items from opened chests.
ChestAuraAutomatically opens nearby chests as you walk past.
FastEatEat food items faster than normal.
NoFallPrevents fall damage by spoofing landing packets.
MLGPlaces water automatically to negate fall damage.
AntiVoidTeleports you back if you fall into the void.
AutoExtinguishPlaces water to put out fire on your character.
VelocityModifies or eliminates knockback taken from hits.
NoRotatePrevents the server from changing your camera rotation.
AutoSneakAutomatically holds sneak for you continuously.
AutoSignAutomatically pastes custom text into signs.
MCPMiddle-click throws an ender pearl from your hotbar.
AutoBreedAutomatically breeds nearby animals when possible.
AirPlacePlace blocks in mid-air without adjacent surfaces.
ClickTPTeleport to where you are looking at long range.
PacketMineBreaks blocks instantly by manipulating game packets.
GhostHandInteract with containers and blocks through walls.
GravityModifies the player's gravity multiplier.
GuiMoveAllows movement while in inventory or other screens.
InventorySyncSynchronizes your client inventory with the server.
DerpMakes your character look erratic to other players.
NameProtectChanges your nametag to a custom display name.
WaypointsRenders saved location markers in the world.

Visual

Modules for ESP, HUD elements, rendering, and visual information.

ModuleDescription
ESPDraws visual highlights and boxes around entities.
BlockESPDraws outlines around specific block types.
StorageESPHighlights storage containers like chests and barrels.
PortalEspHighlights Nether portals in the world.
TextureESPRenders 3D textured boxes on storage blocks.
NameTagsDisplays detailed info above entity heads.
ArrayListShows enabled modules on screen. Optional menu mode keeps it visible in ClickGUI, highlights hovered names, and lets you left-click entries to disable modules.
FullbrightMakes the world permanently bright, removes darkness.
FreecamMove your camera freely without moving your player.
RadarDisplays a minimap radar showing nearby entities.
MinimapDisplays a full world map with entity tracking.
MapGoogle-style interactive world map viewer.
TargetHUDShows health and info about your current target.
ArmorHUDDisplays currently equipped armor and durability.
KeystrokesDisplays your key presses as an overlay.
InventoryDisplayShows your full inventory contents on screen.
SelectionBoxHighlights the block you are currently looking at.
NoRenderDisables rendering of certain visual elements.
NoScoreboardHides or manipulates the sidebar scoreboard.
AmbianceModifies various visual game effects and atmosphere.
AlertsVisual warnings for low health, fire, void, and lava.
TrailDraws a line behind you for cave navigation.
CameraTweaksCustomize camera distance, FOV, and effects.
ZoomZooms in the game view like binoculars.
EntityMagnetVisually manipulates nearby entity positions.
CowboyHatRenders a cowboy hat on your character's head.
ConsoleIn-game console overlay with chat and log output.
ClickGuiThe main configuration menu for all modules.
HUDManages individual HUD labels and widgets.

World

Modules for mining, building, pathfinding, and world interaction.

ModuleDescription
BaritoneAdvanced AI pathfinding with A*, JPS, and multiple algorithms.
AutoMineFinds and teleports to specified ore types automatically.
OreMinerPathfinds to and mines ores in your vicinity.
OreTpTeleports to a selected ore within a configurable radius.
BlockTPFinds and teleports to specified block types.
XrayMakes common blocks invisible to reveal ores and caves.
ScaffoldPlaces blocks under you automatically as you walk.
NukerAutomatically destroys blocks in a radius around you.
FastBreakBreaks blocks significantly faster than normal.
BuilderSave, load, build, and analyze structures from files.
AutoFarmAutomatically harvests and replants crops.
AutoPortalBuilds a Nether portal frame from obsidian automatically.
AutoRepairAutomates item repair when using an anvil.
AutoSmeltAutomates furnaces, blast furnaces, and smokers.
DigUpMines above and builds a tower below when blocked.
NoWaterRemoves water collision so you can walk through it.
InstantBreakInstantly breaks blocks in local worlds.
CVEFinderFinds underground cave air pockets near you.
BorderEnforces world boundaries on all movement as solid walls.
WaterTpTeleports you to the nearest water source.

Misc

Modules for automation, anti-cheat bypass, social features, and utilities.

ModuleDescription
AIAssistantIn-game AI that configures settings and writes Lua code.
TimerModifies the game's tick speed (TPS) up or down.
BlinkFreezes your movement packets until the module is disabled.
DesyncQueues packets and sends them in timed bursts.
DisablerAttempts to bypass server-side anti-cheat systems.
AntiBotFilters out fake players and NPCs from targeting.
ACAnti-cheat detector that flags suspicious players.
NoFriendTemporarily ignores the friends list for combat targeting.
DiscordRpcShows your game activity as Discord Rich Presence.
DiscordWebhookSends in-game events to a Discord webhook channel.
PlayerListShows a tab list with join and leave notifications.
TranslatorTranslates chat messages between languages.
SpammerAutomatically sends configurable messages to chat.
AutoHumiliationSends a message when you kill another player.
AutoLeaveRuns a command automatically when health drops low.
HitSoundPlays a configurable sound on entity hits.
ItemSuckerTeleports to and collects nearby dropped items.
LogSpotLogs coordinates where players log out.
Marketplace UnlockerUnlocks marketplace content for free use.
WinApiLagAdds configurable packet delay using a Windows API lag queue.
DevToolDeveloper diagnostics for packets, entities, matrices, hit results, and runtime tests.
TeleportHandles stepped teleportation logic for commands.
TopTeleports you to the highest block above you.

Baritone Guide

Baritone is Hercule's advanced pathfinding module. It can route, jump, bridge, tunnel, dig, avoid threats, render paths, and includes integrated safety and route recording.

Core concepts

  • Path Algorithm chooses the engine: A*, JPS, Theta*, Bidirectional, Fringe, HPA, or D* Lite.
  • Allow Break lets Baritone mine blocks when useful for routing.
  • Smart Shortcuts compares breaking blocks vs walking around them.
  • Fast Obsidian Tool prevents bad obsidian routes unless your tool is sufficient.
  • AutoEscape routes to safety when dangerous conditions are detected.
  • SmartRoute records a path you walk and replays it through Baritone.
  • Path Debug HUD shows route state, target, stuck counter, and latest log.
FeatureUse it whenBeginner setting
AutoEscapeYou want Baritone to run to safety on low health, fire, lava, or void fall.Enable, cooldown ~80 ticks.
SmartRouteYou want to record and replay a farm, base, or mining route.Record with 1.5 spacing, simplify before replay.
Path Debug HUDYou are tuning pathfinding or diagnosing why Baritone stopped.Enable compact mode if screen is crowded.
Avoid Slow BlocksYou don't want routes through obsidian-like blocks.Keep enabled.

Builder System

The Builder module lets you save structures from the world, load them from files, and automatically rebuild them block by piece. It supports full structure analysis, block counting, and incremental building with Baritone integration.

What you can do

  • Save a region of the world into a Builder structure file on disk.
  • Load a schematic and preview it in the world before building.
  • Build the structure automatically, placing blocks from your inventory.
  • Analyze a loaded schematic to get a full block count and material list.
  • AutoCollect integration with Baritone to gather missing materials before building.
Before you build: Always analyze your schematic first. If you don't have enough blocks in your inventory, the builder will skip those positions. Use the material list to pre-stock.
SettingWhat it controlsRecommended
Build SpeedBlocks placed per tick. Higher is faster but more detectable.2-4 for legit, 8+ for fast building.
Place RangeHow far the builder can reach to place blocks.Keep at 4-5 for reliability.
Auto RotateRotates the schematic to face your current direction.Enable for directional builds.
Layer ModeBuilds one Y-layer at a time instead of nearest block.Enable for flat or layered structures.
Skip AirSkips air blocks in the schematic, only placing solid blocks.Always enable to save time.
Block SortOrder blocks are placed: nearest, random, or layer-first.Nearest for most builds.

Workflow: save and rebuild a base

  1. Stand at one corner of your build. Use .builder pos1 to set the first corner.
  2. Move to the opposite corner. Use .builder pos2 to set the second corner.
  3. Run .builder save mybase to save the region to a file.
  4. Later, run .builder load mybase to load and preview it.
  5. Enable the Builder module and it will start building from your inventory blocks.
  6. Use .builder analyze to see exactly what materials you need.

Packet System

Understanding how Hercule handles network packets is key to advanced scripting and module behavior. Bedrock Edition communicates with servers using packets — structured binary messages for movement, actions, inventory, and more.

How packets work in Hercule

  • Every player action (move, attack, place, interact) sends a packet to the server.
  • Hercule intercepts both outgoing (client-to-server) and incoming (server-to-client) packets.
  • Modules like Criticals, Velocity, Blink, and Disabler work by modifying, blocking, or injecting packets.
  • Lua scripts can hook into packets via on_packet_send and on_packet_receive.
PacketIDPurpose
PlayerAuthInput144Contains position, rotation, input flags, and tick data. Sent every tick.
InventoryTransactionHandles item use, block place, attack, and equipment changes.
TextChat messages sent by the player.
MovePlayerServer telling the client where to teleport.
LevelSoundEventSound effects triggered by game events.
For scripters: Use packet.create(id) to make a blank packet, packet.copy(dst, src) to clone one, and client.sendPacket(pkt) to send it. The auth.* helpers let you read and write PlayerAuthInput fields safely.

Criticals

Sends fake jump-position packets on each hit so the server registers critical damage without actually jumping.

Velocity

Modifies or cancels incoming knockback packets to reduce or eliminate knockback taken.

Blink

Queues all outgoing movement packets and releases them in a burst when disabled.

Disabler

Sends crafted packets to confuse server-side anti-cheat detection systems.

Config System

Hercule stores all module settings, keybinds, and HUD positions in configuration files. Understanding the config system lets you back up setups, share them, and switch between playstyles quickly.

How configs work

  • Each config is a named preset that stores every module's enabled state, settings, and keybind.
  • Configs are saved as files in the Hercule config directory.
  • Settings auto-save when changed through ClickGUI, but explicit save/load is recommended for switching.
  • HUD layout is stored separately and persists across config switches.
CommandWhat it doesExample
.config save <name>Saves current state to a named config..config save pvp
.config load <name>Loads a saved config, applying all settings..config load mining
.config listShows all saved config names..config list
.config delete <name>Removes a saved config file..config delete old
.config resetResets all modules to default settings..config reset
Tip: Create separate configs for different scenarios: pvp for combat, mining for resource gathering, legit for undetected play, and visuals for recording or streaming. Switch between them with .config load.

Recommended config setups

  • PvP: Killaura, Criticals, Velocity, AutoWeapon, Surround, Scaffold, NoSlow.
  • Mining: Baritone, Xray, AutoMine, OreMiner, FastBreak, AutoTool, InventoryManager.
  • Legit: AutoSprint, NoFall, FastEat, AutoTool, Fullbright, ArrayList.
  • Visuals: ESP, StorageESP, NameTags, Radar, Minimap, Trail, Freecam.

Lua Scripting Basics

Lua scripts let you create custom modules without editing C++. Use a table, register it, then define lifecycle functions.

Golden rule: Keep your script inside a Lua table. Don't create global functions. It keeps reloads stable and errors clear.
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

Complete reference for the functions available to Lua scripts. All functions are crash-protected and sandboxed. Dangerous standard libraries (io, os, debug, package) are blocked.

Security note: The Lua VM runs in a sandboxed environment. Only _G, table, string, and math libraries are loaded. Entity and packet pointers are replaced with safe integer handles.

module — Module Registration & Settings

module.register(name, desc, category, table)

Registers a new Lua module in ClickGUI. name: unique string. desc: tooltip text. category: "Combat", "Movement", "Player", "Visual", "World", or "Misc". table: your module table with event callbacks.

module.addBool(modName, setName, setDesc, default)

Adds a boolean toggle setting. modName: module name. setName: setting name. setDesc: tooltip. default: true or false.

module.addSlider(modName, setName, setDesc, min, max, default)

Adds a float slider setting. min/max: range. default: initial value. All numbers.

module.addCombo(modName, setName, setDesc, options, default?)

Adds a dropdown setting. options is a Lua table of strings. default may be an option index or option name.

module.get(modName, setName)

Reads a setting value. Returns boolean for BoolSettings, number for SliderSettings, string for Combo settings, or 0 if not found.

module.setBind(name, key)

Sets the keybind for a module. key: virtual key code (number) or key name string (e.g. "R", "F").

client — Chat, Input, Notifications

client.chat(msg)

Displays a message in the in-game chat HUD. msg: string.

client.notification(title, msg, duration?)

Shows a popup notification. duration: seconds (default 3.0). All parameters are strings except duration.

client.getScreenName()

Returns the current UI screen name (e.g. "hud_screen", "inventory_screen"). Returns "" if none.

client.isKeyDown(key)

Checks if a key is held. key: "w", "a", "s", "d", "space", "shift", "ctrl", "lmb", "rmb". Returns boolean.

client.sendPacket(handle)

Sends a packet to the server. handle: integer from packet.create().

client.executeCommand(cmd)

Queues a Minecraft command for next tick. cmd: string (e.g. "/tp @s 0 100 0").

client.setTranslation(key, value)

Overrides GUI text at runtime. key is the original English text, tab label, module name, category, setting name, combo option, tooltip, or scoped key such as "Combat.Killaura.Range". value can be any UTF-8 language text. Passing nil removes that one override.

client.setTranslations(table)

Bulk-loads GUI translations from a Lua table. Keys are matched globally first by original text, and more specifically by Category.Module.Text, Category.Text, or Module.Text while rendering a module. Save scripts as UTF-8 for Chinese, Arabic, Persian, Russian, and other non-Latin scripts.

client.clearTranslations(key?)

Clears all GUI translations. If key is provided, only that original text key is cleared.

client.translate(key)

Returns the translated value for key, or the original key if no override exists. Useful for Lua-rendered custom UI text.

client.translateTooltip(key)

Returns the translated tooltip value for key, or the original key if no override exists.

client.dumpTranslationKeys()

Returns a Lua array of every known GUI translation entry from the live client: tabs, categories, module names, module tooltips, setting names, setting tooltips, checkbox names, slider names, combo names, and combo options. Each entry contains key, text, type, category, module, description, and optional options. Scoped keys use readable names such as "Combat.Killaura.Range".

client.dumpTranslationKeysText(luaTableFormat?)

Returns the same translation key dump as formatted text. By default it returns a ready-to-edit client.setTranslations({ ... }) template. Pass false to get plain key = text [type] lines for debugging or sharing.

client.dumpTooltipTranslationKeys()

Returns a Lua array containing only tooltip translation entries from the live client.

client.dumpTooltipTranslationKeysText(luaTableFormat?)

Returns tooltip translation keys as formatted text. Pass false for plain debug lines.

player — Position, Rotation, Combat

player.getPos()

Returns x, y, z (eye position). Three return values.

player.setPos(x, y, z)

Teleports the player to the given coordinates.

player.setMotion(x, y, z)

Sets the player's velocity vector directly.

player.getRot()

Returns yaw, pitch. Two return values.

player.setRot(yaw, pitch)

Sets the player's rotation. Note: arguments are (yaw, pitch).

player.onGround()

Returns true if the player is standing on ground.

player.swing()

Plays the arm swing animation.

player.attack(handle)

Attacks an entity. handle: entity handle from world.getEntities() or on_attack callback.

player.attackEntity(handle)

Alias for player.attack(handle).

player.getSlot()

Returns the selected hotbar slot (0-8).

player.setSlot(slot)

Sets the selected hotbar slot. slot: integer 0-8.

world — Blocks, Entities, Raycasting

world.getBlock(x, y, z)

Returns the block name string at integer coordinates (e.g. "stone", "diamond_ore"). Returns "air" on failure.

world.getEntities()

Returns an array table. Each entry: {ptr, name, dist, pos={x,y,z}}. Excludes the local player.

world.getRayTrace()

Returns what you are looking at. Block hit: "block", x, y, z, face. Entity hit: "entity", handle. Nothing: "air".

world.placeBlock(x, y, z, blockId?, face?)

Places a block at the target position. blockId selects a matching hotbar block; omit or use 0 for the current slot.

world.destroyBlock(x, y, z, face?)

Breaks a block at integer coordinates. face is optional.

world.mineBlock(x, y, z, face?)

Alias for world.destroyBlock.

render — Custom Drawing (use in on_render)

render.text(text, x, y, r?, g?, b?, a?, size?)

Draws text on screen. Color RGBA: 0.0-1.0. size: font size (default 20).

render.rect(x, y, w, h, r?, g?, b?, a?)

Draws a filled rectangle. w/h: dimensions in pixels.

render.line(x1, y1, x2, y2, r?, g?, b?, a?, thickness?)

Draws a line between two screen points. thickness: default 1.0.

render.getScreenSize()

Returns width, height of the game window in pixels.

render.worldToScreen(x, y, z)

Converts 3D world position to 2D screen coordinates. Returns x, y or nil if off-screen.

packet — Packet Creation & Manipulation

packet.create(id)

Creates a new empty packet. id: PacketID integer (e.g. 0x90 for PlayerAuthInput). Returns handle (integer).

packet.getId(handle)

Returns the PacketID integer for a packet handle. Returns -1 if invalid.

packet.copy(destHandle, srcHandle)

Copies packet data from source to destination. Use to clone packets.

auth — PlayerAuthInput Helpers

Only works on PlayerAuthInput packets (ID 0x90). All functions validate the packet type before modifying.
auth.getPos(handle)

Reads position from an auth packet. Returns x, y, z.

auth.setPos(handle, x, y, z)

Overwrites position in an auth packet.

auth.setDelta(handle, x, y, z)

Overwrites the movement delta/velocity field.

auth.setRot(handle, pitch, yaw)

Sets rotation fields. Arguments: (handle, pitch, yaw).

auth.clearVertical(handle)

Clears Up/Down input flags. Useful for movement manipulation.

Event Callbacks

Define these functions inside your module table. The engine calls them automatically.

CallbackArgumentsReturnDescription
on_enable(self)self (table)voidCalled when module is toggled ON.
on_disable(self)self (table)voidCalled when module is toggled OFF.
on_tick(self)self (table)voidCalled every game tick while enabled.
on_render(self)self (table)voidCalled every render frame. Use for custom drawing.
on_packet_send(self, pkt)self, handlebooleanPacket about to send. Return true to cancel.
on_packet_receive(self, pkt)self, handlebooleanPacket received. Return true to cancel.
on_attack(self, target)self, handlebooleanAttack event. Return true to cancel.

Useful Packet IDs

NameIDUse Case
TextPacket0x09Send chat messages
MovePlayer0x13Player movement
InventoryTransaction0x1EItem use, transactions
Interact0x21Entity interaction
PlayerAction0x24Block breaking, actions
Animate0x2CAnimations
CommandRequest0x4DExecute server commands
PlayerAuthInput0x90Auth input manipulation

Script 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)

GUI Translation Pack

Translations are simple runtime overrides. Dump the live key list first so you can see exact scoped names like Combat.Killaura.Range, then save the script as UTF-8 and reload scripts.

local template = client.dumpTranslationKeysText()
print(template) -- copy from the Script console and replace values with your language

client.setTranslations({
    ["tab.Settings"] = "TRANSLATED_SETTINGS_TAB",
    ["Combat.Killaura.Range"] = "TRANSLATED_RANGE",
    ["Combat.Killaura.Range.tooltip"] = "TRANSLATED_RANGE_TOOLTIP",
    ["Combat"] = "مبارزه",
    ["Movement"] = "حرکت",
    ["Visual"] = "视觉",
    ["Console"] = "Консоль",
    ["Keybind"] = "键位",
    ["Press any key to bind, DEL/BACK to unbind, ESC to cancel."] =
        "按任意键绑定,DEL/BACK 取消绑定,ESC 退出。"
})

local GuiLang = {}
module.register("GuiLang", "Loads custom GUI translations", "Misc", GuiLang)

Table Criticals (Advanced)

This example shows a complete combat script with packet caching, lifecycle cleanup, settings, and attack-triggered packet sends. Move once after enabling to cache a valid PlayerAuthInput packet.

Important: Move once after enabling so the script can cache a valid PlayerAuthInput packet before the first attack.
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_enable creates a reusable packet template and clears stale cache state.
  • on_packet_send refreshes the template from real outgoing input packets.
  • on_attack refuses to run until a valid movement packet has been cached.
  • module.addSlider exposes packet count in ClickGUI for quick tuning.

Command Reference

All 24 active commands. Use . prefix for client commands, # for Baritone commands. Type in chat or use the console (F6).

General

CommandAliasesDescriptionUsage
.helpLists all available commands..help
.clearclsClears the console display..clear
.ejectUnloads the client from the game process..eject
.coordsposShows your current coordinates..coords
.panicDisables all active modules. Requires confirmation..panic then .panic confirm

Module Control

CommandAliasesDescriptionUsage
.toggletg, togToggles a module on/off by name..toggle FullBright
.bindAssigns a keybind to a module..bind Killaura R
.configcSave, load, delete, or list configs..config save mining

Teleportation

CommandAliasesDescriptionUsage
.teleporttpTeleport to coordinates, stop, or death position..tp 100 64 -200 / .tp stop / .tp deathpos
.blocktpbtpTeleport to a specific block type..btp diamond_ore / .btp stop
.playertpptTeleport to a player by name, or nearest player..pt Steve / .pt
.mobtpmtTeleport to nearest entity of a given type..mt zombie / .mt cow
.watertpwtpTeleport to nearest water source..wtp / .wtp stop
.topTeleport to the highest block above you..top

Navigation & World

CommandAliasesDescriptionUsage
.gotoWalk to coordinates using the Pathfinder..goto 120 64 -30 / .goto stop
#gotoBaritone ground pathfinding to coordinates.#goto 120 64 -30 / #goto stop
.builderbuild, schematic, schemManage Builder structures: load, save, pos1, pos2, clear, paste..builder save mybase / .builder pos1
.waypointwpManage waypoints: add, remove, clear, teleport..wp add base / .wp tp base

Targeting & Social

CommandAliasesDescriptionUsage
.targettManage target whitelist: add, remove, clear, list, toggle..t add Steve / .t list
.translatetrTranslate messages between languages..tr send hello fr / .tr Steve en es 5
.skinstealsteal, grabskinExtracts a player's skin as a PNG file..skinsteal Steve

Server & System

CommandAliasesDescriptionUsage
.disconnectdc, leaveSimulates a network disconnect (Winsock hook)..dc
.gmgamemodeChanges game mode..gm c / .gm survival / .gm 1
.modelslistmodelsLists available AI models for AIAssistant..models

Script Playground

Test Lua snippets in a live terminal. Type code and press Enter or click Run to execute. This runs a sandboxed Lua interpreter in your browser for quick experimentation.

hercule-lua — playground
Hercule Lua Playground v1.0 — sandboxed browser interpreter
Type Lua code below. Try: print("hello")
---
>
Quick snippets:

Troubleshooting

Baritone won't move

Check that Pathfinding is enabled, a target is queued, and no movement module is overriding inputs. Enable Path Debug HUD.

Inventory rules don't save

Save or load a config after changing rules. The configurator stores entries with the module config.

ESP is noisy

Reduce render distance, enable batching, and remove block/entity types you don't need.

Lua script does nothing

Confirm the module is registered, enabled, and uses correct event names: on_tick, on_attack, on_packet_send.