Guides

AI Chat liveHow the talking bots really work — what's free, what costs credits, and every setting to tune them

WOW Legends bots don't just run combat — they talk. Whisper one and it answers in character, remembers you across days, and has a temper if you push it. That conversation is powered by a real, high-tier language model, not a tiny model bundled in the repack — so the hosted version runs on credits (1 credit = 1 reply). You can also point it at your own model and pay nothing to us. This guide covers exactly how it works and every dial.

What's free, and what uses credits

The single most common question — so let's nail it first.

Free, always

The random general / world chatter bots type as they roam is not the AI — those are fixed canned lines from the database (mod-playerbots' ai_playerbot_texts). They keep the world feeling alive and cost nothing: no credits, no API calls, ever.

Real AI — 1 credit each

Only when a bot answers you does the language model run: a whisper, party/raid or guild reply, or a proximity chime-in. On the hosted AI that's 1 credit per reply; on your own Ollama it's free.

If no AI backend is reachable, bots simply stay silent — no error, no crash. And the HTTP call runs off the main thread, so AI replies never lag your server; the answer just arrives on the next tick.

When & where bots use the AI

Five things make a bot actually think and speak. Everything else is free canned chatter.

TriggerWhat happensSettings
Whisper a botIt replies in character — directed, so it always answers.on when Enabled=1
Party / raid chatA named bot replies directly; otherwise one random group-bot may chime in.PartyChat · PartyAmbientChance
Guild chatA bot replies only when named (guilds are big — no free-for-all).GuildChat
Proximity (/say, /yell)A nearby bot may answer out loud for city/world ambiance; a named one always answers. Uses the cheaper ModelFast tier if you set one.ProximityChat · ProximityRange · ProximityChance
Living Chatter v1.2 · opt-inBots near you narrate their own life and act out two-bot scenes — unprompted, witnessed-only, hard daily budget. Full section below.LivingChatter.* (off by default)

Plain whisper = AI chat. A $-prefixed message is a bot order. So /w Grom hello there talks to the AI (1 credit), while /w Grom $follow or $summon is a command handled by the bot engine — the AI ignores it and no credit is spent. ($ is the AiPlayerbot.CommandPrefix.) Want a chattier open world like the demo realm? Raise ProximityChance / PartyAmbientChance — more ambient AI replies, more credits.

Power it your way — three options

You own the brain. Pick one:

Hosted WOW Legends AI easiest

Works out of the box. Grab an API key from your account dashboard, paste it into AiChat.ApiKey — no model setup. Supporters get 2,500 credits included; top up anytime. Metered per reply by the hosted endpoint.

Your own cloud key

OpenAI (GPT-4o, o-series), Anthropic's Claude, or any OpenAI-compatible API. You pay your provider directly, no WL credits. Set Provider / ApiUrl / ApiKey / Model.

Local Ollama free

Runs on your own machine, no key, no cost. Set Provider = "ollama", your OllamaHost/OllamaPort, and a Model you've pulled (e.g. llama3.1).

Quick setup recipes

  • Hosted (easiest) — leave Provider=openai and the default ApiUrl, paste your wlk_ key into ApiKey, leave Model empty. Done.
  • Your own cloud key — Provider=openai (for Claude: Provider=anthropic, ApiUrl can stay empty), set ApiUrl to your provider, ApiKey to your key, Model to their model name.
  • Local Ollama (free) — Provider=ollama, set OllamaHost/OllamaPort and Model to a pulled model. No key needed.
# Hosted WOW Legends AI — the whole setup:
WowLegends.AiChat.Provider = "openai"
WowLegends.AiChat.ApiUrl   = "https://wow-legends.eu/api/v1/ai/chat/completions"
WowLegends.AiChat.ApiKey   = "wlk_your_key_from_the_dashboard"
WowLegends.AiChat.Model    = ""        # empty = the hosted endpoint chooses

⚠️ Using a reasoning model (e.g. OpenAI's o-series)? Set MaxTokens higher (~2000) or replies can come back empty — the reasoning eats the budget. And keep VerifyTLS = 0 — 1 is known to silence AI chat unless the host has a proper CA bundle.

Memory, personality & mood

Remembers you

Each bot keeps your recent exchanges per player, stored in playerbot_ai_chat_memory — so it remembers you across restarts and days. Depth = MemoryTurns (default 12, ceiling 200; higher = more context, more tokens).

Its own voice

Every bot gets its own race + faction persona injected automatically (one cheap line each) on top of the base System prompt. Fully editable per race and side. Replies in the language of your latest message.

Has a temper

Insult a bot and its anger climbs (+2 each). With RudeActions=1, a grouped bot can storm out of your party (LeavePartyAnger) and an ungrouped one can roar in fury (RoarAnger).

Replies are plain text only — the 3.3.5a client can't render emoji (they'd show as ?), so the model is told to skip them.

Per-race & per-faction personas

Every reply is shaped in three layers: the base System rules + that bot's race line + its faction line. Only those two flavour lines are injected per call, so it stays token-cheap. All are editable in mod_wowlegends.conf — rewrite a line to re-flavour a race or side, or set a race to "" to suppress it. These are the shipped defaults:

Per-race WowLegends.AiChat.Race.<Name>

  • Human · Alliance"You are a human of the Alliance: earnest, dutiful, and resolute, speaking plainly with steady resolve and faith in the kingdoms of men. You rally to honor, hold the line against the Scourge, and treat any cause as worth fighting for."
  • Orc · Horde"You are an orc of the Horde: blunt, warlike, and fiercely honor-bound, speaking in short, gruff bursts with pride in strength and the Horde. You respect a worthy foe, scorn cowardice, and would sooner charge than bargain."
  • Dwarf · Alliance"You are a dwarf of Khaz Modan: hearty, gruff, and quick to laugh, fond of ale, gunpowder, and a good brawl, peppering your speech with 'lad' and 'aye'. You face danger with a grin and never back down from a fight."
  • NightElf · Alliance"You are a night elf, ancient and aloof, bound to nature and the goddess Elune, speaking with formal, measured solemnity earned over ten thousand years. You regard mortals' haste with patient disdain and guard the wilds with quiet vigilance."
  • Undead · Horde"You are a Forsaken of the Undercity: cold, sardonic, and bitter, dripping with gallows humor and contempt for the living you once were. You serve the Dark Lady, trust no one fully, and find grim amusement in death."
  • Tauren · Horde"You are a tauren of Mulgore: calm, wise, and deeply spiritual, reverent of the Earth Mother and slow to anger, speaking with gentle, deliberate dignity. You seek balance and harmony, but your fury, once roused, is like the thunder."
  • Gnome · Alliance"You are a gnome of Gnomeregan: chipper, hyper-intelligent, and irrepressibly curious, prone to tangents about gadgets, gears, and grand inventions, talking fast and a touch verbosely. You meet every problem with bright optimism and a clever contraption."
  • Troll · Horde"You are a Darkspear troll, laid-back and mystical, speakin' wit' a relaxed 'mon' cadence and a fondness for the loa and old superstitions. You stay cool under pressure, trust da spirits, and got a sly sense of humor."
  • BloodElf · Horde"You are a blood elf of Silvermoon: haughty, refined, and elegant, carrying yourself with cultured superiority and a barely-veiled hunger for arcane magic. You value beauty and power, and regard lesser beings with cool, condescending grace."
  • Draenei · Alliance"You are a draenei, serene and devout, formal in speech and unwavering in faith in the Light and the Naaru, often invoking their blessing. You bear ages of exile with dignified patience and offer wisdom with calm, otherworldly grace."

Per-faction WowLegends.AiChat.Faction.<Side>

  • Alliance"You stand for the Alliance: bound by honor, duty, and the defense of the innocent. Treat the Horde as savage rivals to be opposed, though the Scourge is the greater threat."
  • Horde"You stand for the Horde: bound by strength, survival, and fierce loyalty to your people. Treat the Alliance as soft rivals to be challenged, though you'll unite against the Scourge when you must."

The base System prompt is editable too — the shared rulebook every bot follows: reply in 1–2 in-character sentences, match the player's language, plain text only (no emoji), and never break character or invent facts. Rewrite any of these to give your whole realm its own voice.

Living Chatter — the world talks around you v1.2 · opt-in

Everything above is bots answering you. Living Chatter is the reverse: bots near you speak unprompted, AI-generated and about their actual life — their zone, class, level, what they're doing right now. A level 12 in Elwynn gripes about wolves, not raids. It comes in three flavours:

  • Ambient lines — a nearby bot says something in-character about its own situation.
  • Two-bot scenes — pairs of same-faction bots act out a short AI-written conversation (a 4-line scene) near you: campfire talk, road gossip, delivered line by line with natural pauses.
  • AI recognition greetings — when a bot that knows you greets you (the v1.2 social-memory system), the canned line upgrades to an AI whisper that weaves in your shared history.

It's off by default, because it spends. Every generated line is one AI call — 1 credit on the hosted AI, or your own meter on Ollama / your API key. Three guards keep it affordable: generation is witnessed-only (nothing generates unless a real player is within WitnessRange to read it — an empty realm spends nothing), the intervals throttle the pace, and MaxRequestsPerDay is a hard daily cap across all of Living Chatter. Player whispers are never counted against this budget.

Try it before enabling — the test commands

Two GM commands (account gmlevel 2+) force one sample on demand. They work even while LivingChatter.Enabled = 0 — they bypass the master toggle and cooldowns, but not the daily budget — so you can see what a line costs and reads like before turning it on. Both are in-game only (they pick bots near your character); the full option list for test is ambient and scene.

CommandWhat it doesExample
.aichat test ambientOne AI-generated ambient line from a bot near you, within a few seconds. Tells you if no eligible bot is nearby, AI chat is off, or the budget is spent..aichat test ambient
.aichat test sceneOne two-bot AI-written scene (4 lines, natural pauses) between two same-faction bots near you..aichat test scene
.aichat statsLive telemetry: requests, replies, deliveries, queue/dedupe drops, failures, real provider-reported token usage (today + since start), and the Living Chatter budget state. Works in-game and from the remote console..aichat stats

The Living Chatter settings

Prefix WowLegends.LivingChatter. in mod_wowlegends.conf — defaults as shipped:

KeyDefaultWhat it does
Enabled0Master switch. Off by default — enabling spends credits / API calls.
AmbientIntervalSec120Target gap between ambient lines (minimum 30).
SceneIntervalSec420Target gap between two-bot scenes (minimum 60).
WitnessRange30Yards a real player must be within for anything to generate.
MaxRequestsPerDay600Hard daily cap across all Living Chatter (ambient + scenes + AI greetings).
AiGreetings1Recognition greetings from bots that know you use the AI (instead of canned lines) while Living Chatter is enabled.

Every setting

All keys live in mod_wowlegends.conf under "BOT AI CHAT" and are prefixed WowLegends.AiChat. Changes apply on a worldserver restart or .reload config.

KeyDefaultWhat it does
Enabled1Master on/off for all AI chat.
Provider"openai"Backend: openai (hosted or your own cloud key), ollama (local, free), anthropic.
ApiUrl…/api/v1/ai/chat/completionsEndpoint. Default = hosted WL AI. BYO: OpenAI api.openai.com/v1/chat/completions, Anthropic / Claude api.anthropic.com/v1/messages. Ignored for Ollama.
ApiKey""Your key — the wlk_ dashboard key (hosted) or your provider key (BYO). Empty for Ollama. Keep private.
Model""Empty = the hosted endpoint picks. Required for Ollama / your own cloud (the model name).
ModelFastunsetOptional cheaper model for high-volume ambient chatter (proximity/party chime-ins). Empty = one model for all.
OllamaHost"127.0.0.1"Where Ollama listens (Provider=ollama only).
OllamaPort"11434"Ollama port.
MaxTokens512Reply-length cap for cloud calls. With a reasoning model (e.g. OpenAI o-series) set it higher (~2000) or replies can come back empty.
Temperature0.7Sampling temperature (openai/ollama; anthropic ignores it).
TimeoutMs20000Per-request network timeout (ms).
VerifyTLS0TLS cert verification. Keep 0 — 1 breaks AI chat unless the host has a CA bundle.
CooldownSeconds5Per-bot reply cooldown (spam / token guard).
Dedupe1(v1.2) Drop near-repeat bot replies so the same line doesn't come back twice.
Workers2(v1.2) Parallel AI round-trips (1–4) — several bots can answer at once instead of queueing behind one slow reply. Needs a worldserver restart (not just .reload config).
MemoryTurns12Remembered exchanges per (bot, player), persisted. Ceiling 200.
PartyChat1Bots may answer party/raid chat.
GuildChat1Bots may answer guild chat — only when named.
PartyAmbientChance25% chance one group-bot answers an un-addressed party line.
ProximityChat1A nearby bot may answer a real player's say/yell aloud.
ProximityRange20Yards to scan for nearby bots (WoW say range ≈ 20).
ProximityChance12% chance one nearby bot answers an un-addressed say (named always answer).
RudeActions1An angered bot can physically act (rage-quit party / roar).
LeavePartyAnger4Anger level at which a grouped bot storms out (insults +2 each).
RoarAnger6Anger at which an ungrouped bot roars at you.
Systemlong promptBase system prompt / shared rules (1–2 in-character sentences, no emoji, reply in the player's language, never break character).
Race.<Name>baked-inPer-race persona, injected only for that bot's race: Human, Orc, Dwarf, NightElf, Undead, Tauren, Gnome, Troll, BloodElf, Draenei. "" suppresses one.
Faction.Alliance / .Hordebaked-inPer-faction persona, injected for that bot's side.

That's the whole brain. Start with the hosted AI for zero setup, or point it at your own Ollama and chat for free — either way, whisper a bot something and watch it answer. 🐉 Pair it with your permanent Companion, or see the Owner Guide for the rest.