Skip to content

Playerbot @ commands are not ignored by Chatter memory / player-message handling #40

Description

@apw1963

Summary

When using mod-llm-chatter with AzerothCore Playerbots, Playerbot commands typed with the common @ prefix can be treated as normal player chat by Chatter.

Examples:

@tank attack
@dps aoe
@heal me
@follow

These commands should still be processed by Playerbots, but Chatter should not treat them as normal player conversation, reply material, or persistent memory material.

Observed behavior

After typing a Playerbot command such as:

@tank attack

Chatter may later reference it as if it were a meaningful roleplay memory, for example:

That time Rubberbean shouted @tank attack in Tanaris still echoes in my mind.

This is funny once, but long term it can pollute Chatter memory with command syntax.

This was observed after the guild chat improvements landed, but the issue appears to be in the existing Playerbot command detection path rather than guild chat itself.

Expected behavior

Playerbot command messages beginning with @ should be ignored by Chatter’s player-message response and memory generation logic.

The command should still go to Playerbots normally.

Code path observed

tools/chatter_group.py already has:

def _is_playerbot_command(message: str) -> bool:

The group player-message handler already skips events when _is_playerbot_command(player_message) returns true.

The player-message memory queue also already checks _is_playerbot_command(msg) before generating a player_message memory.

So the existing design already appears to support command filtering. The issue is that @tank attack is not detected because the first word becomes @tank instead of tank.

Suggested fix

Either strip one leading @ before command detection, or treat messages beginning with @ as Playerbot command syntax before checking the existing command list.

Possible minimal approach:

msg = message.strip().lower()
if not msg:
    return False

if msg.startswith('@'):
    msg = msg[1:].lstrip()
    if not msg:
        return True

Then the existing command matching can handle:

@tank attack -> tank attack
@dps -> dps
@follow -> follow

This may be safer than blindly ignoring every message that starts with @, because it allows the existing Playerbot command list to decide whether the stripped command is valid.

Why this helps

This prevents Playerbot command syntax from becoming Chatter context or persistent memory, while preserving normal Playerbot behavior.

It would help anyone running mod-llm-chatter together with AzerothCore Playerbots.

Environment

AzerothCore Playerbot branch
mod-llm-chatter used with Playerbots
Observed after update on 2026-07-31

Version

mod-llm-chatter commit:

97274f8 Merge develop into master

Recent commits:

97274f8 Merge develop into master
b070409 Merge guild chat improvements into develop
ced010e feat: make guild chat a sustained social channel

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions