What is EQBuffBot?
Are you a cleric, shaman, enchanter, or druid whose tells channel is a never-ending flood of "SoW me!", "Haste please!", and "Buffs??"? Does your guild rely on you to keep everyone buffed through a long raid night?
EQBuffBot is a lightweight Windows utility that watches your EverQuest log file in real time and automatically responds to incoming tells with the correct spell sequences — so you can focus on playing instead of playing secretary.
SoW Stations
Park a druid or shaman in the bazaar and let EQBuffBot handle the endless SoW requests automatically.
Raid Buffing
Set up buff stations in your guild hall. Let your alts hand out haste, clarity, and buffs while you focus.
Targeted Spells
Give specific guildmates custom buff sets. Raifin gets Speed of Shissar. Everyone else gets the default.
Sanity Preservation
Stop clicking the same spell buttons 200 times a raid night. Let the bot do the repetitive work.
How It Works
EQBuffBot operates through a simple read → match → act pipeline:
Monitor the Log
Tails your EverQuest log file in real time, detecting new lines as EQ writes them. Handles log rotation automatically.
[Sun Mar 08 12:34:56 2026] Raifin tells you, 'haste please'
Parse Tells
Each log line is parsed with a regex to extract the sender's name and message content from direct tells.
Match Triggers
The message is compared against your configured triggers (case-insensitive substring match). Optionally filtered by a sender whitelist and governed by a global cooldown.
Send Keystrokes to EQ
EQBuffBot focuses the EverQuest window and sends the configured action sequence — commands, spell casts, and replies — exactly as if you typed them.
/rtar → /cast Talisman of Celerity → /r You should be hasted now!
Tehom is an enchanter on raid night. His tells are blowing up with haste requests.
With EQBuffBot configured, each "haste please" tell automatically triggers
/rtar (target last teller), /cast Talisman of Celerity,
and a reply — all without Tehom lifting a finger. His sanity survives the night.
Features
null.
delay_after between them — long enough for spells to land.
{ENTER}, {TAB}, {F1}–{F12}, arrow keys, and more in action sequences.
eqbuffbot.log (5 MB × 3 backups). See exactly which tells fired which triggers.
--config flag.
Installation
Requirements
- Windows 10 or 11
- EverQuest with logging enabled (
/log onin-game) - Python 3.11 or newer
- Python packages: PyYAML, watchdog, pywinauto, pywin32, pystray, Pillow
Step 1 — Enable EQ Logging
Log into EverQuest and type /log on to enable log file output. Log files are written to:
C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest\Logs\
Step 2 — Install Dependencies
With a virtual environment (recommended):
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Or globally:
pip install -r requirements.txt
Step 3 — Edit config.yaml
Open config.yaml and set your character name, log file path, and triggers. See the Configuration section below.
Step 4 — Run the Bot
Double-click run.bat, or from a terminal:
python -m eqbuffbot.main
To use a different config file:
python -m eqbuffbot.main --config mychar_config.yaml
python -m eqbuffbot.main -c mychar_config.yaml
The bot will minimize to your system tray and begin monitoring immediately.
Configuration
All settings live in config.yaml. The file has two sections: global settings and triggers.
Global Settings
| Setting | Description |
|---|---|
character_name | Your character's name |
log_file | Full path to your EQ log file |
eq_window_title | Part of the EverQuest window title (used to locate the window) |
global_cooldown | Minimum seconds between any two trigger fires (prevents spam) |
Triggers
Each trigger watches for a keyword in incoming tells and fires a sequence of actions when matched.
triggers:
- name: "Spirit of the Wolf"
match: "sow" # case-insensitive substring match
sender_whitelist: null # null = anyone can trigger this
actions:
- text: "{ENTER}/rtar{ENTER}"
delay_after: 0.5 # seconds before next action
- text: "{ENTER}/cast 8{ENTER}"
delay_after: 1.5
- text: "{ENTER}/r You are fast now{ENTER}"
delay_after: 0.0
Sender Whitelist
Restrict a trigger to specific characters. Useful for private buff sets or trusted guildmates only.
sender_whitelist:
- "Guildmaster"
- "Altchar"
- "Raifin"
Set to null to respond to tells from anyone.
Default / Catch-All Trigger
A trigger with default: true fires when no other trigger matched. Perfect for guild hall buff bots that need to reply with a help message.
- name: "default"
default: true
sender_whitelist: null
actions:
- text: "{ENTER}/r Available commands: sow, haste, buffs{ENTER}"
delay_after: 0.0
Special Keys Reference
| Token | Key Sent |
|---|---|
{ENTER} | Enter |
{TAB} | Tab |
{ESC} | Escape |
{SPACE} | Space |
{F1}–{F12} | Function keys |
{UP} {DOWN} {LEFT} {RIGHT} | Arrow keys |
{DELETE} | Delete |
{BACK} | Backspace |
System Tray
EQBuffBot runs silently in the Windows system tray. Right-click the tray icon for these options:
EQ Log Format
EverQuest writes log lines in this format. EQBuffBot parses the sender name and message from direct tell lines:
[Sun Mar 08 12:34:56 2026] SenderName tells you, 'message here'
Enable logging in-game with /log on. Log files are located at:
C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest\Logs\
The filename includes your character name and server, e.g. eqlog_Tehom_veeshan.txt.