Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
ca19548
Fix transport boarding when master is on a transport (Zep/Boats) (#1830)
Wishmaster117 Mar 13, 2026
dca0be2
Updates to SSC Strategies (#2138)
brighton-chi Mar 13, 2026
5e7613f
Change reinterpret cast to dynamic cast. (#2182)
Celandriel Mar 13, 2026
a695ac7
Small fixes to naxxramas strategy (#2201)
kadeshar Mar 13, 2026
d6f396a
CoreUpdate (#2207)
Celandriel Mar 14, 2026
545b21e
PR template fix (#2216)
kadeshar Mar 17, 2026
a473432
Core update (#2221)
Celandriel Mar 19, 2026
4b7b095
Merge pull request #2205 from mod-playerbots/test-staging
kadeshar Mar 20, 2026
2ce8993
Correct Loot rolling behavior (#2190)
Celandriel Mar 20, 2026
473b2ab
Fix: WLK shaman totem quest vs relic totems: avoid keeping 4 totem it…
XYUU Mar 20, 2026
35a0282
Add Sense Undead for Paladins (#2200)
brighton-chi Mar 20, 2026
4c0cb30
New readme (#2202)
Celandriel Mar 20, 2026
4877dcc
fix: ByteBufferException error (opcode: 149) (#2206)
Aldori15 Mar 20, 2026
5c63aac
Drop server initialization time message. Show number of bots set to l…
NoxMax Mar 20, 2026
957eca0
Feat. Enable multi node flying, and refactor into travel manager (#2156)
Celandriel Mar 20, 2026
cba6af2
Fix Assassination Rogue Finishers and add Cold Blood (#2215)
brighton-chi Mar 20, 2026
c6a07ad
Every Man for Himself racial support (#2198)
kadeshar Mar 20, 2026
d5762b7
Remove Vertical Speed Limit from Knockback Packet (#2223)
brighton-chi Mar 20, 2026
f160420
Fix/talent tree ordered map (#2222)
oskov Mar 20, 2026
98395a1
Added cancellation druid form actions (#2194)
kadeshar Mar 20, 2026
2b273f6
Fix merge error in test staging (#2226)
Celandriel Mar 21, 2026
32af1b9
Paladin Seal of wisdom fallback fix for Ret/Prot Paladins (#2147)
dillyns Mar 21, 2026
9f875a7
CoreUpdate - ThreatMgr (#2228)
Celandriel Mar 21, 2026
d0d1171
Fixed typo (#2230)
kadeshar Mar 22, 2026
f00fe15
PR template checkboxes displaying fix (#2232)
kadeshar Mar 23, 2026
c8dce88
Merge pull request #2225 from mod-playerbots/test-staging
Celandriel Mar 27, 2026
e27b429
Update PR template to reflect translation requirements (#2243)
NoxMax Mar 27, 2026
c7ac849
Fix: Logout refactor and RNDbot logout error handling (#2131)
NoxMax Mar 27, 2026
91eac70
Implement Zul'Aman Strategies (#2186)
brighton-chi Mar 27, 2026
b172e88
Resto druids should always be in tree form (#2192)
dillyns Mar 27, 2026
bbd9d3e
Wait for attack strategy migration (#2211)
kadeshar Mar 27, 2026
45aa6f2
Update valid targets for Hunter Talent: "Improved Tracking" (#2218)
FutterSillo Mar 27, 2026
6db44b5
Will of the forsaken (#2231)
kadeshar Mar 27, 2026
ac99f45
Bugfix(issue-1878): floating players in certain conditions (#2245)
hermensbas Mar 27, 2026
e1f5064
Fix SQL ID conflict (#2251)
NoxMax Mar 28, 2026
4dbcd25
Auto label PR - github action (#2257)
kadeshar Mar 29, 2026
7fa9ab7
Module update for CollisionChange (#2242)
Celandriel Mar 30, 2026
6d2ee70
ci: Use test-staging branch of azerothcore-wotlk for test-staging PRs…
Celandriel Apr 3, 2026
fdd228c
Merge pull request #2253 from mod-playerbots/test-staging
Celandriel Apr 3, 2026
79562be
Fix Hunter Aspect Switching + Trigger Cleanups (#2203)
brighton-chi Apr 3, 2026
496d6c9
Blood dk rotation update (#2227)
dillyns Apr 3, 2026
76dd91c
Hand of Freedom support (#2233)
kadeshar Apr 3, 2026
15bf0ab
Fix Shaman Weapon Enchants & Cure Toxins/Cleanse Spirit (#2234)
brighton-chi Apr 3, 2026
579f972
fix: invert NoRtiTrigger condition so mark rti strategy works (#2256)
SI-ChrisL Apr 3, 2026
f76c286
Fix Destruction Warlock Glyphs, Take Two (#2278)
brighton-chi Apr 3, 2026
c0390a2
feat(Performance): BotActiveAlone activity interval fixes and default…
hermensbas Apr 3, 2026
d07ddb1
Paladin use bubble heal strategy (#2244)
kadeshar Apr 4, 2026
30c142a
Challenging Roar support (#2238)
kadeshar Apr 4, 2026
a87999b
Berserker Rage support (#2261)
kadeshar Apr 4, 2026
f5363c9
Fix Warrior Battle Shout Spam (#2259)
brighton-chi Apr 4, 2026
ca54cff
Bug fix. Edge case where bots would get stuck in cities. (#2269)
Celandriel Apr 4, 2026
4ba0596
Add fireball fallback for frostfire bolt for frost mage (#2271)
dillyns Apr 4, 2026
4c9b0ad
Fire mage cc (#2281)
kadeshar Apr 4, 2026
7b04c56
Add default case to mount initialization for bots. (#2276)
heyitsbench Apr 4, 2026
a4a3a3d
Fix for github action translation labeling (#2285)
kadeshar Apr 4, 2026
9ebccc2
clearified the ac
hermensbas Apr 5, 2026
4bcf8fd
Performance(Core): Some activity sec to ms init fixes, global activit…
hermensbas Apr 8, 2026
cd16f6b
z-axe clamping to prevent clipping throught the map
hermensbas Apr 10, 2026
03db0c3
improving RPG traveland minimize wierd path selections but still happen
hermensbas Apr 10, 2026
5e2f282
fix(Core/Paladin): Remove duplicate trigger registrations (#2301)
Celandriel Apr 10, 2026
51a0d64
Crashfix for wait for attack (#2303)
kadeshar Apr 10, 2026
9fa03dc
Merge pull request #2286 from mod-playerbots/test-staging
Celandriel Apr 10, 2026
7cc00e6
Focus heal targets strategy migration (#2254)
kadeshar Apr 11, 2026
e13aa7d
IsTank fix for Death Knight (#2296)
kadeshar Apr 11, 2026
ae9b76a
Fix Undead/Draenei bots stuck in starting zones (#2298)
Apr 11, 2026
74ccc6f
Mage additional stat weight (#2299)
kadeshar Apr 11, 2026
53a607e
Enable bots to do Outdoor pvp (#2217)
Celandriel Apr 11, 2026
e177901
Bug(self-bot): Self-bot should face target when using ranged or melee…
hermensbas Apr 11, 2026
5d7fb9e
Druid - lifebloom (#2292)
kadeshar Apr 11, 2026
f275f72
Merge pull request #2305 from mod-playerbots/test-staging
Celandriel Apr 17, 2026
8f7d352
Implement Auchenai Crypts Strategies and TBC Dungeon Contexts (#2229)
flashtate98 Apr 17, 2026
937b490
Fix Potential Dereference in AttackAction (#2308)
brighton-chi Apr 17, 2026
ce1adeb
fix(Core): scope AddPlayerBot loading count to master account (#2307)
Hokken Apr 17, 2026
d01316f
Exclude Isle of Quel'danas Areas From PvP (#2304)
brighton-chi Apr 17, 2026
a34681b
Modify UpdateAI to Allow Future Methods to Interrupt Bot Spells (#2295)
brighton-chi Apr 17, 2026
6c517eb
Feat: Reintroduce timed logouts (#2289)
NoxMax Apr 17, 2026
c0c2b6a
feat(Core/Playerbots): Initialize bot professions and specializations…
scarecr0w12 Apr 17, 2026
665a702
Worldbuff classic support (#2311)
kadeshar Apr 17, 2026
19249e9
Pull strategy migration (#2310)
kadeshar Apr 17, 2026
9c5b1d0
Pull strategy GetTarget fix (#2316)
kadeshar Apr 19, 2026
52273b4
Pull multiplier fix (#2317)
kadeshar Apr 21, 2026
e87bca1
Merge pull request #2314 from mod-playerbots/test-staging
Celandriel Apr 24, 2026
a4b37c9
Revert "Feat: Reintroduce timed logouts" (#2329)
Celandriel Apr 24, 2026
a4d2c83
Merge pull request #2330 from mod-playerbots/test-staging
Celandriel Apr 24, 2026
866a73d
Clean up unused variables (#2268)
Celandriel Apr 24, 2026
04f8b0d
Stat weights fix (#2313)
kadeshar Apr 24, 2026
1967b63
Cleanups for Shaman weapon enchant refactor (#2315)
brighton-chi Apr 24, 2026
b6408ca
Fix: Prevent infantry auto attack when IsInVehicle (#2319)
NoxMax Apr 24, 2026
ed0a21e
GetGrave fix (#2320)
kadeshar Apr 24, 2026
eb268c7
Init guilds on login. (#2325)
Celandriel Apr 24, 2026
ad8e844
clean up for DropQuestAction (#2326)
Celandriel Apr 24, 2026
605f1d7
PvP Gear, Autogear Tuning, and Stat Weight Corrections (#2322)
ThePenguinMan96 Apr 24, 2026
ed5791e
Pull target overlap fix (#2335)
kadeshar Apr 25, 2026
4bd5a9b
Crash Fix. Queue arena packet instead of handle directly. (#2331)
Celandriel Apr 26, 2026
da3237f
Merge pull request #2332 from mod-playerbots/test-staging
Celandriel May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/core_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
uses: actions/checkout@v3
with:
repository: 'mod-playerbots/azerothcore-wotlk'
ref: 'Playerbot'
ref: ${{ (github.base_ref || github.ref_name) == 'test-staging' && 'test-staging' || 'Playerbot' }}

- name: Set reusable strings
id: strings
Expand Down
39 changes: 39 additions & 0 deletions .github/workflows/label_translation-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Label translation PRs

on:
pull_request_target:
types: [opened, synchronize, reopened]

permissions:
contents: read
pull-requests: write

jobs:
label-translation:
runs-on: ubuntu-latest
steps:
- name: Fetch PR diff
env:
GH_TOKEN: ${{ github.token }}
run: |
gh api \
repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }} \
--header "Accept: application/vnd.github.v3.diff" > pr.diff

- name: Detect ai_playerbot_texts inserts
id: detect
run: |
if grep -E '^\+.*INSERT[[:space:]]+INTO[[:space:]]+`?ai_playerbot_texts`?' pr.diff; then
echo "has_translation=true" >> "$GITHUB_OUTPUT"
else
echo "has_translation=false" >> "$GITHUB_OUTPUT"
fi

- name: Add label
if: steps.detect.outputs.has_translation == 'true'
env:
GH_TOKEN: ${{ github.token }}
run: |
gh pr edit ${{ github.event.pull_request.number }} \
--repo ${{ github.repository }} \
--add-label "Added translation"
2 changes: 1 addition & 1 deletion .github/workflows/macos_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
uses: actions/checkout@v4
with:
repository: 'mod-playerbots/azerothcore-wotlk'
ref: 'Playerbot'
ref: ${{ (github.base_ref || github.ref_name) == 'test-staging' && 'test-staging' || 'Playerbot' }}
- name: Checkout Playerbot Module
uses: actions/checkout@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@v3
with:
repository: 'mod-playerbots/azerothcore-wotlk'
ref: 'Playerbot'
ref: ${{ (github.base_ref || github.ref_name) == 'test-staging' && 'test-staging' || 'Playerbot' }}
path: 'ac'
- name: Checkout Playerbot Module
uses: actions/checkout@v3
Expand Down
54 changes: 26 additions & 28 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,47 +43,32 @@ any impact on performance, you may skip these question. If necessary, a maintain
## Impact Assessment
<!-- As a generic test, before and after measure of pmon (playerbot pmon tick) can help you here. -->
- Does this change increase per-bot/per-tick processing or risk scaling poorly with thousands of bots?
- [ ] No, not at all
- [ ] Minimal impact (**explain below**)
- [ ] Moderate impact (**explain below**)
- - [ ] No, not at all
- - [ ] Minimal impact (**explain below**)
- - [ ] Moderate impact (**explain below**)



- Does this change modify default bot behavior?
- [ ] No
- [ ] Yes (**explain why**)
- - [ ] No
- - [ ] Yes (**explain why**)



- Does this change add new decision branches or increase maintenance complexity?
- [ ] No
- [ ] Yes (**explain below**)
- - [ ] No
- - [ ] Yes (**explain below**)



## Messages to Translate
<!--
Bot messages have to be translatable, but you don't need to do the translations here. You only need to make sure
the message is in a translatable format, and list in the table the message_key and the default English message.
Search for GetBotTextOrDefault in the codebase for examples.
-->
Does this change add bot messages to translate?
- [ ] No
- [ ] Yes (**list messages in the table**)

| Message key | Default message |
| --------------- | ------------------ |
| | |
| | |

## AI Assistance
<!--
AI assistance is allowed, but all submitted code must be fully understood, reviewed, and owned by the contributor.
We expect contributors to be honest about what they do and do not understand.
-->
Was AI assistance used while working on this change?
- [ ] No
- [ ] Yes (**explain below**)
- - [ ] No
- - [ ] Yes (**explain below**)
<!--
If yes, please specify:
- Purpose of usage (e.g. brainstorming, refactoring, documentation, code generation).
Expand All @@ -92,12 +77,25 @@ If yes, please specify:



<!--
TRANSLATIONS:
Anything new that the bots say in chat must be in a translatable format. This is done using GetBotTextOrDefault,
which you can search for in the codebase to find examples. Your code needs to have English as the default fallback,
while the full translations need to be in an SQL update file. The languages in the file are the nine language
options supported by AzerothCore: English, Korean, French, German, Chinese, Taiwanese, Spanish, Spanish Mexico, and
Russian. See data/sql/playerbots/updates/2025_12_27_ai_playerbot_fishing_text.sql as an example of a translation SQL
update, whose content are called within the codebase at src/strategy/actions/FishingAction.cpp
-->

## Final Checklist

- [ ] Stability is not compromised.
- [ ] Performance impact is understood, tested, and acceptable.
- [ ] Added logic complexity is justified and explained.
- [ ] Documentation updated if needed (Conf comments, WiKi commands).
- - [ ] Stability is not compromised.
- - [ ] Performance impact is understood, tested, and acceptable.
- - [ ] Added logic complexity is justified and explained.
- - [ ] Any new bot dialogue lines are translated.
- - [ ] Documentation updated if needed (Conf comments, WiKi commands).

## Notes for Reviewers
<!-- Anything else that's helpful to review or test your pull request. -->


50 changes: 11 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,58 +32,30 @@ We also have a **[Discord server](https://discord.gg/NQm5QShwf9)** where you can

## Installation

Supported platforms are Ubuntu, Windows, and macOS. Other Linux distributions may work, but may not receive support.
Supported platforms are Ubuntu, Windows, and macOS. Other Linux distributions may work, but may not receive support.

**All `mod-playerbots` installations require a custom branch of AzerothCore: [mod-playerbots/azerothcore-wotlk/tree/Playerbot](https://github.com/mod-playerbots/azerothcore-wotlk/tree/Playerbot).** This branch allows the `mod-playerbots` module to build and function. Updates from the upstream are implemented regularly to this branch. Instructions for installing this required branch and this module are provided below.
> **Important:** All `mod-playerbots` installations require a custom fork of AzerothCore: [mod-playerbots/azerothcore-wotlk (Playerbot branch)](https://github.com/mod-playerbots/azerothcore-wotlk/tree/Playerbot). The standard AzerothCore repository will **not** work.

### Cloning the Repositories

To install both the required branch of AzerothCore and the `mod-playerbots` module from source, run the following:

```bash
git clone https://github.com/mod-playerbots/azerothcore-wotlk.git --branch=Playerbot
cd azerothcore-wotlk/modules
git clone https://github.com/mod-playerbots/mod-playerbots.git --branch=master
```

For more information, refer to the [AzerothCore Installation Guide](https://www.azerothcore.org/wiki/installation) and [Installing a Module](https://www.azerothcore.org/wiki/installing-a-module) pages.

### Docker Installation

Docker installations are considered experimental (unofficial with limited support), and previous Docker experience is recommended. To install `mod-playerbots` on Docker, first clone the required branch of AzerothCore and this module:
### Quick Start

```bash
git clone https://github.com/mod-playerbots/azerothcore-wotlk.git --branch=Playerbot
cd azerothcore-wotlk/modules
git clone https://github.com/mod-playerbots/mod-playerbots.git --branch=master
```

Afterwards, create a `docker-compose.override.yml` file in the `azerothcore-wotlk` directory. This override file allows for mounting the modules directory to the `ac-worldserver` service which is required for it to run. Put the following inside and save:
Then build the server following the platform-specific instructions in our **[Installation Guide](https://github.com/mod-playerbots/mod-playerbots/wiki/Installation-Guide)**.

```yml
services:
ac-worldserver:
volumes:
- ./modules:/azerothcore/modules:ro
```

Additionally, this override file can be used to set custom configuration settings for `ac-worldserver` and any modules you install as environment variables:

```yml
services:
ac-worldserver:
environment:
AC_RATE_XP_KILL: "1"
AC_AI_PLAYERBOT_RANDOM_BOT_AUTOLOGIN: "1"
volumes:
- ./modules:/azerothcore/modules:ro
```
> **Testing branch:** A `test-staging` branch is available with the latest features and fixes before they are merged into `master`. To use it, clone with `--branch=test-staging` instead. Note that this branch may contain unstable or breaking changes — use it at your own risk and only if you are comfortable troubleshooting issues.

For example, to double the experience gain rate per kill, take the setting `Rate.XP.Kill = 1` from [woldserver.conf](https://github.com/mod-playerbots/azerothcore-wotlk/blob/Playerbot/src/server/apps/worldserver/worldserver.conf.dist), convert it to an environment variable, and change it to the desired setting in the override file to get `AC_RATE_XP_KILL: "2"`. If you wanted to disable random bots from logging in automatically, take the `AiPlayerbot.RandomBotAutologin = 1` setting from [playerbots.conf](https://github.com/mod-playerbots/mod-playerbots/blob/master/conf/playerbots.conf.dist) and do the same to get `AC_AI_PLAYERBOT_RANDOM_BOT_AUTOLOGIN: "0"`. For more information on how to configure Azerothcore, Playerbots, and other module settings as environment variables in Docker Compose, see the "Configuring AzerothCore in Containers" section in the [Install With Docker](https://www.azerothcore.org/wiki/install-with-docker) guide.
### Detailed Guides

Before building, consider setting the database password. One way to do this is to create a `.env` file in the root `azerothcore-wotlk` directory using the [template](https://github.com/mod-playerbots/azerothcore-wotlk/blob/Playerbot/conf/dist/env.docker). This file also allows you to set the user and group Docker uses for the services in case you run into any permissions issues, which are the most common cause for Docker installation problems.
| Guide | Description |
|---|---|
| **[Installation Guide](https://github.com/mod-playerbots/mod-playerbots/wiki/Installation-Guide)** | Full step-by-step instructions for clean installs, migrating from existing AzerothCore, Docker setup, adding modules, and updating |
| **[Troubleshooting](https://github.com/mod-playerbots/mod-playerbots/wiki/Troubleshooting)** | Solutions to the most common build errors, database issues, configuration mistakes, crashes, and platform-specific problems |

Use `docker compose up -d --build` to build and run the server. For more information, including how to create an account and taking backups, refer to the [Install With Docker](https://www.azerothcore.org/wiki/install-with-docker) page.
For additional references, see the [AzerothCore Installation Guide](https://www.azerothcore.org/wiki/installation) and [Installing a Module](https://www.azerothcore.org/wiki/installing-a-module) pages.

## Documentation

Expand Down
Loading
Loading