Skip to content

rndbot character creation failure in progressive realm #2283

@wukodlak21

Description

@wukodlak21

Title:
Second realm with shared auth + different RandomBotAccountPrefix creates bot accounts but no bot characters

Setup

  • AzerothCore WotLK Playerbot branch

  • Two realms:

    • Premium
    • Progressive
  • Shared auth DB for real players: acore_auth

  • Separate DBs per realm:

    • Premium: acore_characters, acore_world, acore_playerbots
    • Progressive: acore_characters_r2, acore_world_r2, acore_playerbots_r2

Goal
I want:

  • one shared auth for real players, so one account can enter both realms
  • separate random bot populations on both realms

What works
Premium works correctly with random bots.

Example:

SELECT COUNT(*) AS premium_rndbot_chars
FROM acore_characters.characters c
JOIN acore_auth.account a ON a.id = c.account
WHERE a.username LIKE 'rndbot%';

Result:

20000

Also, Premium rndbot% accounts are populated with 10 characters each.

What fails
On Progressive, I changed bot account prefix to avoid collision with Premium:

AiPlayerbot.RandomBotAutologin = 1
AiPlayerbot.MinRandomBots = 500
AiPlayerbot.MaxRandomBots = 500
AiPlayerbot.RandomBotAccountCount = 2000
AiPlayerbot.RandomBotAccountPrefix = "prgbot"
AiPlayerbot.DeleteRandomBotAccounts = 0

This successfully creates prgbot% accounts in shared acore_auth, but creates no bot characters in acore_characters_r2.

Progressive DB evidence

Accounts are created:

SELECT COUNT(*) AS prgbot_accounts
FROM acore_auth.account
WHERE username LIKE 'prgbot%';

Result:

2000

But no bot characters are created on Progressive:

SELECT COUNT(*) AS prgbot_characters
FROM acore_characters_r2.characters c
JOIN acore_auth.account a ON a.id = c.account
WHERE a.username LIKE 'prgbot%';

Result:

0

No bot characters exist for prgbot% on Premium either:

SELECT COUNT(*) AS prgbot_chars_premium
FROM acore_characters.characters c
JOIN acore_auth.account a ON a.id = c.account
WHERE a.username LIKE 'prgbot%';

Result:

0

These prgbot% accounts are empty on both realms:

SELECT a.id AS account_id, a.username, COUNT(x.guid) AS total_chars_any_realm
FROM acore_auth.account a
LEFT JOIN (
    SELECT account, guid FROM acore_characters.characters
    UNION ALL
    SELECT account, guid FROM acore_characters_r2.characters
) x ON x.account = a.id
WHERE a.username LIKE 'prgbot%'
GROUP BY a.id, a.username
ORDER BY total_chars_any_realm DESC
LIMIT 20;

Result: all shown accounts have 0 characters.

Progressive links remain empty:

SELECT COUNT(*) AS progressive_links
FROM acore_playerbots_r2.playerbots_account_links;

Result:

0

Progressive random bot table contains only bot_count:

SELECT * FROM acore_playerbots_r2.playerbots_random_bots LIMIT 20;

Example:

event = bot_count
value = 500

Log
Progressive startup shows:

Creating random bot accounts...
Creating random bot characters...
No more unused names left

Important checks already done

  • Config path issue was fixed (ConfDir / correct playerbots.conf)
  • RandomBotAccountPrefix = "prgbot" is definitely being read, because prgbot% accounts are created
  • playerbots_names exists and is identical in acore_playerbots and acore_playerbots_r2
  • there are still many free names available across both realms
  • missing weightscales data in acore_playerbots_r2 was fixed
  • server no longer fails because of config mismatch

There are still many free names:

SELECT COUNT(*) AS free_names_any_realm
FROM acore_playerbots_r2.playerbots_names p
LEFT JOIN (
    SELECT name FROM acore_characters.characters
    UNION
    SELECT name FROM acore_characters_r2.characters
) c ON c.name = p.name
WHERE c.name IS NULL;

Result:

79957

So the No more unused names left message seems inconsistent with DB state.

Question
Is this scenario supported?

  • shared auth for real players
  • separate character/playerbots DB per realm
  • different RandomBotAccountPrefix per realm

Right now it looks like on the second realm:

  • bot accounts are created
  • account types are assigned
  • but character creation/linking never happens

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions