The previous posts I did on building your own WoW server are very popular on this website, according to the visitor's statistics. But they're not for everybody, since not everybody has a Linux machine, or the willingness to work with Linux. That's why this post is especially for all the Windows users out there. We're going to be building our own, private, World of Warcraft server with PlayerBots, using AzerothCore, ON WINDOWS!
The great thing about AzerothCore is that it allows you to implement modules. Some of these modules are really powerful in what they can do for your server. I've been trying nearly every single module out there, and I've put together a collection that I believe is a nice collection of modules. More on this later on. For now, though, we'll only be using the PlayerBots module, to keeps it simple and error-free.
All of these instructions can also be found on the official Wiki pages ↗, and I shamelessly copied some of the parts below.
Here's the list of required software we need to build the server. All of these are 100% free. Be sure to read the instructions below, because some apps come with specific instructions.
First, download the installer ↗. During install, at some point you will be asked about "adjusting your PATH environment". Be sure you choose this specific option: "Git from the command line and also from 3rd-party software".
Download the pre-built Windows Binary for Visual Studio 2022 ↗. Pay attention to the following:
Add an environment variable to the "System" variable named "BOOST_ROOT" and with the value being your Boost installation directory, e.g. C:/local/boost_1_81_0. Important is to use '/', not '\' when pointing to the directory. (Make sure that it does not have a trailing slash (end of the path). If you still get problems, add the same variable in the USER variables section too, as shown in the image below.)

Download the Latest Release windows-x86_64.msi file ↗. (NEVER the RC (Release Candidate) versions), and install it.
Download the 64bit version ↗. Find the 64-bit version by finding the latest 3.x.x Win64 OpenSSL that is NOT the "light" version. (Example: Win64 OpenSSL v3.0.7)
Note: While installing OpenSSL, choose The OpenSSL binaries (/bin) directory (NOT "The Windows system directory") when given the choice of where to copy the OpenSSL DLLs. These DLLs will need to be located easily for Core Installation.
Note: If you get the error 'Missing Microsoft Visual C++ .... Redistributable' while installing OpenSSL, download the Microsoft Visual C++ 2017/2019/2022 Redistributable Package (x64) (Direct Download) (1.7MB Installer) and install it.
Download the Windows MSI Installer ↗.
Scroll down to the bottom and click on "No thanks, just take me to the downloads!"
When the installation is almost done, make sure "Launch the MySQL Instance Configuration Wizard" is checked, then click "Finish".
When the MySQL Instance Configuration Wizard launches, most default options are fine, but remember the username and password you use (root // whatever). You will need them to log into your chosen database management tool (below) in order to import SQL files later.
To test if MySQL is set up correctly, hit CTRL+ALT+DEL on your keyboard, enter the Task Manager, and select the "Services" tab. In the list of services, you should see "MySQL" with a status of "Running".
Add MySQL to Environment Variables.
Make sure to find the MySQL development files; you'll need them later. These files are shipped with MySQL Server, search for them in the program files directory, MySQL\MySQL Server 8.0\lib / MySQL\MySQL Server 8.4\lib.
Download Visual Studio Community 2022 (ver 17) ↗. You will need to install the C++ compiler. To do this, select Desktop development for C++ under Workloads -> Desktop & Mobile.
Now that all the required apps are installed, we can finally proceed with building our server. We're going to use Git to download all the files from the official AzerothCore repository. The mod for PlayerBots that we'll be using, requires a specific branch of AzerothCore, as shown below. Open a command prompt, choose a location where you want to store the server files, and download the repository.
git clone https://github.com/mod-playerbots/azerothcore-wotlk.git --branch=PlayerbotThen we go into the folder we just downloaded, and into the folder "modules", where the PlayerBots module needs to go.
cd azerothcore\modules
git clone https://github.com/mod-playerbots/mod-playerbots.git --branch=masterOpen the CMake (GUI) app that we installed earlier, and click the button labeled "Browser Source", and point it to where you downloaded the repository files from the previous step. Then proceed to click the "Browser Build" button, and choose a folder that will be used for all the build files. I usually just choose a sub-folder named build, as shown in this screenshot.


Now you need to click the "Configure" button, that can be found a bit further down in this window. You will now see all sorts of things appear in the text window.
Once this is done, click on the "Generate" button, this will prepare the files for Visual Studio, and will only take a second. Afterward, click on "Open Project" to open the project in Visual Studio.


Once you are in Visual Studio, the first thing you should do is go to "Build", in the top menu, and open the "Configuration Manager". This will open a new window.

In this new window, you will need to choose "RelWithDebInfo" under Active solution configuration. And, assuming you are on a x64 machine, you'll need to choose that under Active solution platform, and close this window.
On the right side of the window, you'll see some sort of file tree, with on the top it says "ALL_BUILD". Right-click on that, and choose "Clean". This will only take a second.

Then you are ready to actually build the server, by right-clicking ALL_BUILD again, and this time choose "Build solution". Mind you, this can take a really long time, depending on your hardware. You may probably also notice that your computer becomes less responsive, and that your CPU is working at 100%. This is normal, and this would be a good moment to go outside and touch some grass.
Since we are compiling AzerothCore, with just one module (PlayerBots, it's almost guaranteed that the build process will complete successfully. Once you start trying out other modules, this may change.
The server files can now be found in a sub-folder of your build folder. So, go to your "build" folder, then open "bin", then open "RelWithDebInfo", and there you'll see a bunch of files. You can select all these files and sub-folders, and copy them to where you want to keep the files. (The folder we specified in CMake earlier on).
There are many different ways to work with MySQL, but the one I prefer is HeidiSQL. Which you can download from here. This tool makes it super easy to manually add databases and manage user credentials. Watch the video on how to do this, if you are unsure.
You'll need to add four databases. In the video, I used these database names.
I also created a dedicated user for AzerothCore, which I did during the set-up of MySQL. But, if you skipped that, you can also easily do this with HeidiSQL.
It is possible to generate the data files yourself, by using the tools we built, but this is a very lengthy process. Since we can just as easily download these files, I went with that options. The data.zip file can be found on this page: https://github.com/wowgaming/client-data/releases/
Unzip this file wherever you want, but be sure to specify this location to the worldserver.conf file. I usually choose to store it in a folder named data, directly under the folder where the server files are stored.
Before we can actually run the server, we'll need to copy four files from elsewhere on your machine, to the folder where you have your server files stored.
You will need the file libmysql.dll, that can be found here: C:\Program Files\MySQL\MySQL Server 8.x\lib
Then you will also need these three files: legacy.dll, libcrypto-3-x64.dll and libssl-3-x64.dll, which you can copy from this folder: C:\OpenSSL-Win64\bin.

Once these files are in place, we can continue editing the config files for your server, which can be found in the folder "Configs". Copy authserver.conf.dist to authserver.conf, and copy worldserver.conf.dist to worldserver.conf.
Then open the sub-folder modules, and do the same for the playerbots config. So, copy playerbots.conf.dist to playerbots.conf.
Now it's time to change some variables in these config files, most importantly, the database details. Feel free to change other variables so the server will meet your needs. In the video I quickly go through the playerbots configuration, so be sure to watch it to see how I've set it up.
The .conf files we created can be opened with a text editor, like Notepad. Just drag and drop them on a opened Notepad window. There are several important things you'll need to change here. Most importantly, the database details.



Of course, you should go through all the other variables in these three config files. Especially the worldserver.conf and playerbots.conf files. The options given there allow you to fully customize your server.
We'll start by running authserver.exe. Simply double-click it from Windows explorer, and it will open a new window. Once you see that it has successfully started, after importing some things to the database, you can use CTRL+C to stop it.

Now use HeidiSQL again, and open the acore_wotlk_auth database, then go to "Realmlist", then click the "Data" tab, and here we can edit the name of your realm, and its IP address.
Now you can start authserver.exe again, and proceed to also start worldserver.exe. The worldserver needs some time to import all the data in to the database. So be patient. Once it is finally done, you can add your own (GM) account. Press enter once, so you get to see the server prompt. From there, type the following commands:
account create YOURNAME YOURPASSWORD
account set gmlevel YOURNAME 3 -1
account set addon YOURNAME 2
Open the folder to where you saved the Wrath of Lich King client files. In case you don't have this version of the WoW client yet, you can download it from many places. One I quickly found just now was this address: https://www.dkpminus.com/blog/wow-wotlk-3-3-5a-download-wrath-of-the-lich-king-client/.
Download it, and unzip it to some folder. Then open this folder, and proceed to open sub-folder "Data", and then "EnUS" (or some other language), and open the realmlist.wtf file with a text editor like Notepad. Make sure you change the address to the IP address of your server. Save the file, and start the WoW client by double-clicking WoW.exe. Log in with the GM account details we set earlier, and you can play the game!
Have fun!
We have built our own AzerothCore WoW private realm with the module PlayerBots in this tutorial. But like PlaerBots, many more modules exist. Some of them are great, others not so much. Some will work, others will not. I've literally tried all of them, and here's a list that I've compiled of modules that work, and are fun or useful. To use the modules, all you need to do is clone the repositories below, into your azerothcore-wotlk/modules folder, and re-compile the server. An overview of all the modules that exists, can be found here: https://www.azerothcore.org/catalogue.html ↗