gitwtfhub

wtf is wow-llm-personas?

merrymak3r/wow-llm-personas — explained in plain English

Analysis updated 2026-05-18

17PythonAudience · developerComplexity · 4/5Setup · hard

TL;DR

A tiny local Python shim that gives AI playerbots in a classic WoW private server real, distinct personalities using a locally run language model via Ollama.

Mindmap

mindmap
  root((wow-llm-personas))
    What it does
      Adds personas to bots
      Per bot memory
      Bot to bot banter
    Tech stack
      Python stdlib only
      Ollama
      CMaNGOS playerbots
    Use cases
      Roleplay party bots
      Populate a private server
      Run fully offline
    Design
      Fail quiet on errors
      Output cleanup
      Deterministic personas
    Audience
      WoW private server hosts

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Give AI playerbots on a classic WoW private server distinct, consistent personalities instead of generic lines.

REASON 2

Run an offline roleplay experience where hundreds of bots each feel like a different character.

REASON 3

Let party bots banter with each other in character during a dungeon run, within safe limits.

REASON 4

Add a custom character by dropping in a plain text persona file, no coding required.

What's in the stack?

PythonOllama

How it stacks up

merrymak3r/wow-llm-personas0petru/sentimoagi-eval-official/forte
Stars171717
LanguagePythonPythonPython
Setup difficultyhardmoderatehard
Complexity4/53/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires an already working CMaNGOS 1.12 playerbots server plus a local Ollama install with a model pulled before this shim does anything.

The README does not state a license, so the terms for using or redistributing this code are unclear.

Wtf does this do

This project gives AI controlled party members in vanilla World of Warcraft actual personalities, powered by a local language model instead of the bland scripted lines they normally speak. It is a small Python shim, only around 230 lines and using nothing beyond Python's standard library, that sits between a CMaNGOS classic WoW server running the playerbots mod and Ollama, a tool for running language models on your own computer. It does not include the game server or the bots themselves. Those are existing, separate projects you set up first. This repository is only the glue that gives those existing bots a voice: it intercepts the chat requests the playerbots system already sends out and answers them in character instead of with generic text. Three things make this work. First, any bot with a matching text file in a personas folder speaks using that written character, and bots without a custom file still get a consistent personality automatically generated from their name, so a large crowd of ambient bots still feels varied rather than repetitive. Second, each bot remembers the last few exchanges of a specific conversation, so its replies stay consistent instead of resetting with every line. Third, bots can banter with each other, not just with human players, with careful limits in place so one line does not spiral into an endless chain of bot replies flooding the chat. The shim is also built to fail safely: if the local language model is slow or errors out, the bot just stays quiet for a moment rather than freezing the game chat. It also cleans up messy output that smaller uncensored language models sometimes produce, such as stray narration, leaked prompt text, or broken formatting, before anything reaches the in game chat window. Everything runs locally on your own computer and network, with a small uncensored model suggested as the default so bots can talk casually and stay in character, since the author found that more heavily filtered, polite models refused to play along with rowdy NPC personalities.

Yoink these prompts

Prompt 1
Walk me through setting up this shim between a CMaNGOS playerbots server and a local Ollama model.
Prompt 2
Explain how this shim keeps bot to bot banter from spiraling into a chat flood.
Prompt 3
Show me how to write a custom persona text file for one of my WoW playerbots.
Prompt 4
List the output cleanup rules this shim applies before a bot's AI reply reaches in game chat.

Frequently asked questions

wtf is wow-llm-personas?

A tiny local Python shim that gives AI playerbots in a classic WoW private server real, distinct personalities using a locally run language model via Ollama.

What language is wow-llm-personas written in?

Mainly Python. The stack also includes Python, Ollama.

What license does wow-llm-personas use?

The README does not state a license, so the terms for using or redistributing this code are unclear.

How hard is wow-llm-personas to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is wow-llm-personas for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.