Documentation › Modules

Engine

The Engine tab sets the bot's pace: how often it thinks, how long it waits between actions and how many packets it may send per second. CaveBot's tool ids live here too. Underneath all of it runs the Humanizer, the layer that makes the bot's timing look like a person's.

Engine tab with timing and tools

Timing#

OptionDefaultWhat it does
Tick interval ms100How often the modules run
Action cooldown ms1000Minimum wait between two actions of the same group
Max packets/s12Packets per second, modules and scripts together
Separate cooldown groupsonHealing, attack, support and potions each with their own cooldown
Load the character's profile on loginonLoads profiles/<character>.json when you log in

Press Enter in the field to apply it.

Cooldown groups#

In Tibia, healing spells, attack spells, potions and support spells have separate exhausts. With groups on, the bot respects that:

GroupUsed by
healingHealing and Heal Friend spells
potionany item rule (potions, healing runes)
attackShooter and PvP rune max
supportConditions spells and CaveBot's exani hur

Off, everything shares one cooldown, and an exura can delay an exori.

Tools (item ids)#

The items CaveBot uses at rope, shovel, machete and pick waypoints. Each row shows the item's icon.

ToolDefault id
Rope3003
Shovel3457
Machete3308
Pick3456

Change them if your OT uses a different item (a multi-purpose tool, for example).

Humanizer#

The Humanizer is the main defence against timing-based detection. Packets already come from the real client; what gives a bot away is a rhythm that is too exact. The Humanizer breaks that rhythm in four ways:

Jitter#

Every action cooldown and every step gets a random extra delay. With 0.35, up to +35% on top of the base value.

Reaction#

After a while idle, the first action waits a moment, like someone who just "noticed" what is going on.

Micro-pauses#

Now and then, while walking, the character stops for a second or two, like a distracted player.

Fatigue#

On long sessions, steps get slightly slower, up to the configured limit.

Configuring it#

The Humanizer is on by default. Its settings live in General.Human in bot.json, and the bot applies them as soon as the file changes:

json
"General": {
  "Human": {
    "Enabled": true,
    "Jitter": 0.35,
    "ReactionMs": 180,
    "ReactionAfterIdleMs": 1500,
    "MicroPauseChance": 0.02,
    "MicroPauseMinMs": 900,
    "MicroPauseMaxMs": 2600,
    "FatigueMax": 1.12,
    "FatigueRampMinutes": 90
  }
}
FieldWhat it does
Enabledfalse goes back to exact, fast, robotic timing
Jitter0 to 1: maximum random delay, as a fraction of the base value
ReactionMsReaction delay in ms (drawn between half and 1.5x). 0 disables
ReactionAfterIdleMsHow long idle counts as "idle"
MicroPauseChanceChance per step of a micro-pause (0.02 = 2%). 0 disables
MicroPauseMinMs / MicroPauseMaxMsMicro-pause length
FatigueMaxMaximum step multiplier at the end of the ramp. 1 disables
FatigueRampMinutesSession minutes until FatigueMax is reached

Read more about account protection in Security.