Are you interested in starting your own Wrath of the Lich King WoW private server? Look no further! Today we will show you how to compile and setup your very own Private Server using the Azeroth Core running on patch 3.3.5a.
Step 1: Software Requirements
We have provided direct download links to the correct program versions below to make following this tutorial easier.
Step 2: Installing Software
We will now help you install the software, most of the software listed above is simple to install besides two where we have a few extra steps we will walk you through.
Git is easy to install, no extra steps required. Simply open the installer, and click next until you reach the last page and click install and complete the installation.
Visual Studio 2022
Visual Studio requires one extra step before installing it, Visual Studio no longer comes with C++ pre-installed, we will have to select it when we first open the installer as shown in the picture below.
Now that we selected the desktop development with c++, simply install it. Once its done, it'll ask to sign in just skip that part and choose the theme you want. Exit out of this program for now.
We will only need the server only, so when you open the installer be sure to select "Server only"
Just keep clicking through the installer until you reach the password screen, where you will need to a root password. Important: Don't forget this password as it will be required later in the tutorial.
Then just click next until the end and finish the installation.
HeidiSQL is easy to install, no extra steps required. Click through the options and complete install.
CMake is easy to install, no extra steps required. Click through the options and complete install.
OPenSSL is easy to install, no extra steps required.Click through the options and complete install.
Boost is easy to install, but requires an extra step to ensure the system recognizes the install. Start the installer and install it then follow the steps below.
Now we will need to open the start menu on windows, and type system environment variables
Click okay, and exit out of all the windows.
Step 3: Clone Source
Now that all the software is installed and setup, we are ready to clone the source from github. For tutorial purposes, we will be doing everything on the desktop but you can use whatever directory you choose just be sure to pick the right path.
Right click on your desktop, and click "git bash here"
On the window it opens, type in:
git clone https://github.com/azerothcore/azerothcore-wotlk.git
This will create a new folder on our desktop called azerothcore-wotlk. This is the source code that we will be compiling. Go ahead and create a new folder on the desktop and name it "Build".
Step 4: Preparing The Source
We will now use CMake to prepare our source for compiling. Go ahead and open the CMake program we installed earlier.
We will now need to select our source folder and the new build folder we just created:
We will now click "Generate" in the bottom left, and select Visual Studio 17 202 as our compiler:
Assuming you have done all the steps correctly to this point, there should be no errors and you'll see:
The source is now prepared for compiling, you can close out of CMake.
Step 5: Compiling
We are now ready to compile our source code, we will navigate to our Build folder.
We will need to open our source code in visual studio:
Now that our source code is open in Visual Studio, we will need to change the compile type from Debug to Release:
We are now ready to compile our source, you can start the process by hitting F5 on your keyboard or by right clicking the solution on the right side:
Now assuming you have followed all the steps until this point, there should be no errors and you will see:
Our newly compiled source files can be found in: Build\bin\Release
Step 6: Getting Required Libraries And Downloading Game Data
Now let's grab a few libraries required to start our new applications. You can navigate back to Build->bin->Release as this is where we will place all our libraries at.
Important: Make sure you only copy these libraries, and not remove them from the original path.
libmysql.dll - location
Navigate to C:\Program Files\MySQL\MySQL Server 8.0\lib and copy libmysql.dll to your Build->bin->Release folder.
Nevigate to C:\Program Files\OpenSSL-Win64\bin and copy all 3 of the DLLs listed above to your Build->bin->Release folder.
Now that we have all the required libraries, we are ready to get the game data that our world needs to start run. Thankfully we do not have to manually extract this data ourselfs as wowgaming does it for us over on their github.
Head on over to wowgaming's github page HERE and download the latest data as shown below:
IMPORTANT: Please make sure you are downloading the latest one for the time you are reading this tutorial. At this moment 1/20/23 the current version is AC Data v16, but yours could be different.
While the data.zip file is downloading, navigate to Build->bin->Release and create a new folder called "data". Once the download is complete, we will extract the zip folder into Build->bin->Release->data.
We will need to edit the worldserver.conf to define our data location. Navigate to Build->bin->Release->configs and open your worldserver.conf in an editor of your choice.
Now go to line 72. You should see: DataDir = "."
Now we will need to edit our DataDir to match our the path of our data folder we just extracted the files to.
IMPORTANT: Please make sure the path is the correct path to your Build->bin->Release->data folder.
Step 7: Creating Database User
We will need to create a new database user that we will use to auto populate the databases for an easy database installation.
Connect to your MySQL with HediSQL:
Now that we are connected to our database and in the query tab, we will need to run the following SQL to create a new user and the databases the server needs to run.
DROP USER IF EXISTS 'acore'@'localhost'; CREATE USER 'acore'@'localhost' IDENTIFIED BY 'acore' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0; GRANT ALL PRIVILEGES ON * . * TO 'acore'@'localhost' WITH GRANT OPTION; CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci; CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci; CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'localhost' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'localhost' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'localhost' WITH GRANT OPTION;
Don't worry about any warnings if there are any, as long as it was successful. You can close out of HediSQL now.
Step 8: Populating Your Database
We are now ready to populate our database automatically. Nevigate to your Build->bin->Release folder and open authserver.exe and worldserver.exe.
It will detect that your database has not be installed yet, and will begin to auto populate the databases with a fresh auth, characters and world database. This may take a few minutes.
Congratulations you have reached the end of our tutorial. Assuming you followed all the steps correctly and ran any errors your authserver and worldserver should now be running.
My aim in creating these tutorials is to help newcomers learn the fundamentals of working with WoW Emulation. Thank you for taking the time to read my tutorial, and I sincerely hope you find it helpful.
If you have any questions or comments, please don't hesitate to contact me on Discord: privatedonut