Inbuilt with multi-purpose announcement bar Check here


  [Eluna] Announce New Players On First Login
User Avatar Forum: Eluna Scripts
Posted by: PrivateDonut - 02-03-2024, 01:01 PM - No Replies

Induction
Are you looking to announce to the entire server on a player logs in for the first time? Look no further! We are sharing with you a nice little Eluna script that will do just that.



Requirements

Download:
Simply copy the code below and paste it into a new file, and save it as AnnounceOnLogin.lua

Code:
local function OnFirstLogin(event, player)
    playerLink = "|Hplayer:"..player:GetName().."|h"..player:GetName().."|h"
    className = player:GetClassAsString(LOCALE_enUS)
    SendWorldMessage("|cffCCFFFBWelcome new player ["..playerLink.."] as "..className.." level "..player:GetLevel()..".")
   
end

RegisterPlayerEvent(30, OnFirstLogin)



Screenshot

[Image: Screen-Shot-2023-01-19-at-11.08.47-PM.png]



Thank you for visiting our site today, we hope you found everything you were looking for. If you encounter any issues, don't hesitate to make a thread in the support section! 

Print this item

  [Linux] Setup FusionGen For Your Private Server
User Avatar Forum: Linux Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:59 PM - No Replies

Today we will be showing you how to install php8, apache2 and setting up FusionGen for your WoW Private Server.

Requirements:

  • Debian 11
  • Git
  • Must have auth, characters & world database already for your server

Step 1: Installing PHP8 and Apache2
In this tutorial, we will begin by installing php8, the necessary extensions, and apache2.

We will need to update & upgrade the server to make sure it’s on the latest, then we will reboot the server.

Code:
sudo apt update
sudo apt -y upgrade
sudo reboot

Add Surý APT repository

Code:
sudo apt update
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2

Add the PHP packages APT repository to your Debian server.

Code:
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list

Import repository key:

Code:
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -

Install php8:

Code:
sudo apt update
sudo apt install php8.0

Let’s install the required php extensions:

Code:
apt install php8.0-mysqli
apt install php8.0-curl
apt install php8.0-openssl
apt install php8.0-soap
apt install php8.0-mbstring
apt install php8.0-json
apt install php8.0-zip
apt install php8.0-gd
apt install php8.0-gmp

We will now install apache2:

Code:
apt install -y apache2

We will need to give permission to the apache user:

Code:
chown -R www-data:www-data /var/www/html


Let’s quickly restart the apache2 server:


Code:
sudo service apache2 restart

Step 2: Downloading FusionGen & Configuration
We will now clone FusionGen from GitHub, and setup the required directory permissions to install the CMS.

Code:
cd /var/www/html
sudo rm index.html
git clone https://github.com/FusionGen/FusionGEN.git
cd FusionGEN/
sudo mv * /var/www/html
cd /var/www/html

Step 3: Creating Database For Website
Let’s go ahead and create a new database for our website. We will connect using the command below, remember root user by default has no password. So just hit enter when it ask for one.

Code:
sudo mysql -u root -p

We will now set up our new website database, verify its presence, and grant access to the designated MySQL user. If you have been following our Linux tutorials, the username should be ‘trinity‘, otherwise, please use your own MySQL username. Replace USERNAME with your MySQL username.

Code:
create database website;
show databases;
GRANT ALL PRIVILEGES ON website.* TO 'USERNAME'@'localhost' WITH GRANT OPTION;


[Image: Screen-Shot-2023-01-12-at-3.41.43-PM.png]

Simply type exit to exit the MariaDB terminal.

Congratulations, you have completed the tutorial. To proceed with the installation, navigate to your web address using either your domain name or IP address and follow the on-screen instructions.

Print this item

  [Linux]How To Setup Automatic Database Backups For Your WoW Server
User Avatar Forum: Linux Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:56 PM - No Replies

Today we will show you how to automatically backup your database daily. This is perfect in case you ever need to roll-back your database to a previous state.

Step 1: Creating Backup Directories
Now we will create the backup folders where we will store our database backups.

Code:
cd /var
mkdir backups
cd backups
mkdir auth | mkdir characters | mkdir world

This will navigate you to the var directory and create the following folders ‘backups’, ‘backups->auth’, ‘backups->characters’, ‘backups->world’.

Step 2: Creating Backup Script
Let’s create a script to backup the auth, character, and world databases and save it with the current year, month, and day appended to the file name.

Let’s create a new shell script inside the new backup folder.

Code:
cd /var/backups
nano backup.sh

Now we’ll type the information below into our new script:

Code:
mysqldump  auth | gzip > /var/backups/auth/auth.$(date +”+%Y-%m-%d”).sql.gz
mysqldump characters | gzip > /var/backups/characters/characters.$(date +”+%Y-%m-%d”).sql.gz
mysqldump  world | gzip > /var/backups/world/world.$(date +”+%Y-%m-%d”).sql.gz

We will now need to give the shell script executable permissions by typing:

Code:
chmod +x backup.sh

Step 3: Setting Up Cron Job
We will now be setting up a corn job to run daily at 0100 in the morning. Let’s start by opening up crontab

Code:
crontab -e

Then we will need to add this line at the very bottom of the crontab.

Code:
0 1 * * *  sh /var/backups/backup.sh

Now you should have your automatic database backup setup to run every day at 0100. If you encounter any problems, feel free to make a thread in the support section. Thank you!

Print this item

  [Linux]How To Enable Remote Access For MariaDB
User Avatar Forum: Linux Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:55 PM - No Replies

Today I will show you how to enable remote access for your MariaDB server, and creating a user to login to remotely. This tutorial is one of many for my planned Linux tutorials and follows my other two related to setting up trinity core on Debian 11.


Step 1: Configuring MariaDB
We will need to edit the MariaDB configuration file in order to allow the server to listen for remote connections. We can access the configuration file by typing the following command:

Code:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Then you will need to scroll down until you find:

Code:
bind-address = 127.0.0.1

and change it to:

Code:
bind-address = 0.0.0.0

After you completed the edit, simply hit control+o followed by control+x to save and exit the file. We will now need to restart the MariaDB server to allow the changes to take affect.

Code:
sudo systemctl restart mariadb

Now let’s check to make sure the server is listening for port 3306 outside of just local host. Type the following command:

Code:
netstat -ant | grep 3306

If you see 0.0.0.0:3306, and it says listen then you are set to move onto the next step.

[Image: Screen-Shot-2023-01-08-at-11.46.19-PM-1024x59.png]

Step 2: Creating A New User With Remote Access
Now that we finished setting up our MariaDB to listen for remote connections, we will now connect to our MariaDB and create a new user with remote access enabled. If you have followed my previous tutorials, then mysql by default doesn’t have a password for local root user. So just hit enter when it ask for the password.

Code:
sudo mysql -u root -p


[Image: Screen-Shot-2023-01-08-at-11.57.49-PM-1024x350.png]

Let’s create a new user account for remote access. To ensure security, please make sure to either restrict access to your IP address or choose a very strong password. Simply replace the username with the username you want and password with the password you want.

Code:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';

Now that you have a new user for remote access, we will grant them access to the databases for your WoW Private Server.

Code:
GRANT ALL PRIVILEGES ON auth.* TO 'username'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON world.* TO 'username'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON characters.* TO 'username'@'%' WITH GRANT OPTION;

Remember to substitute your chosen username in the queries above where it says ‘username’. If you are using this tutorial for databases outside of WoW Emulation, please make sure to select the correct databases when granting permissions.

Finished:
You have now enabled remote access to your database, which can be useful if you are not running your server locally. If you encounter any issues, please make a thread in the support section. Thank you! 

Print this item

  [Linux]How To Set Your Server Up As A Service On Debian
User Avatar Forum: Linux Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:53 PM - No Replies

Today I will be showing you how to make your server into a service with systemd.

One reason to set up a server as a service is to keep it running continuously, even if the server or host is restarted. This ensures that the server will come back online as quickly as possible. I will assume you already have a server setup on Linux, if not you can follow my tutorial How To Compile Trinity Core 3.3.5a On Debian 11 – Step By Step Guide


Step 1: Creating Shell Scripts For Your Authserver And Worldserver

If you happened to followed along with my tutorial on how to compile trinity core on Debian, you can follow the steps in this tutorial exactly. Otherwise, I will assume you know where to find the necessary files.

Code:
cd /home/trinitycore/Server/bin
ls

[Image: Screen-Shot-2023-01-08-at-10.16.23-PM-1024x149.png]

Now that you are in the right directory, we will create the authserver.sh first.

Code:
sudo nano worldserver.sh

This should open a blank file, where we will insert the following lines.

Code:
#!/bin/bash
./authserver

After you have completed that, simply hit control+o followed by control+x to exit the file. Now we need to make the file excusable.

Code:
sudo chmod +x authserver.sh

Now complete the steps again for the worldserver.sh.

Code:
sudo nano worldserver.sh

Enter the same text but sightly modified for the worldserver.

Code:
#!/bin/bash
./worldserver

Let’s give this shell excusable permissions.

Code:
sudo chmod +x worldserver.sh

Step 2: Making The Service Files & Enabling Boot On Startup
We will now be navigating to systemd->system, where we will need to create two new system files.

Code:
cd /etc/systemd/system/

We will start off by making the authserver.service first, and you may do that by typing:

Code:
sudo nano authserver.service

Then we will insert the following information:

Code:
[Unit]
Description=auth
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=trinitycore
WorkingDirectory=/home/trinitycore/Server/bin
ExecStart=/bin/bash /home/trinitycore/Server/bin/authserver.sh
[Install]
WantedBy=multi-user.target

After you have inserted the following information, to save the file, press ‘Control + O’ and then ‘Control + X’. Now we will create a similar file for the worldserver.

Code:
sudo nano worldserver.service

We will then insert the following information:

Code:
[Unit]
Description=worldserver
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=trinitycore
WorkingDirectory=/home/trinitycore/Server/bin
ExecStart=/bin/bash /home/trinitycore/Server/bin/worldserver.sh
[Install]
WantedBy=multi-user.target

If you did not follow the tutorial on how to compile on Debian, you may need to modify the file locations and user references in the script.
Step 3: Enabling Boot On Startup
We will start the new services to make sure that there are no errors. If you followed this tutorial correctly, there should not be any errors.

Code:
sudo systemctl start worldserver
sudo systemctl start authserver

Now we will make it so the services will always try to stay on by typing out the following commands.

Code:
sudo systemctl enable worldserver
sudo systemctl enable authserver

You should see some text similar to this:

Code:
Created symlink /etc/systemd/system/multi-user.target.wants/authserver.service → /etc/systemd/system/authserver.service.

You have reached the end of my tutorial, it’s that simple to set your server up as a service and enable it to start upon crashing, restarting or rebooting your host.

Print this item

  How To Compile Trinity Core 3.3.5a On Debian 11 - Step By Step Guide
User Avatar Forum: Linux Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:50 PM - No Replies

Welcome to my step-by-step tutorial on how to compile Trinity Core 3.3.5a on Debian 11.

Step 1: Requirements To Begin


Step 2: Logging Into Debian via Termius
If you already know how to connect to your server via ssh, you can skip this part. I decided to use termius for this tutorial simply because it is cross platform and anyone can follow along with this tutorial. Now that you have all the tools needed to follow along with this tutorial, let’s begin.

Logging Into the server:
You’ll need to enter your server IP into the field shown in the circle and click Create host.


[Image: Screen-Shot-2023-01-08-at-3.57.07-PM-1024x634.png]

Once you created the host, you’ll see the following screen where you’ll need to enter your username and password to connect to your server.

[Image: Screen-Shot-2023-01-08-at-4.01.44-PM-1024x741.png]
Once you have configured your username and password, simply double-click the host you just created to login into the server via ssh.

Step 3: Creating A User
Let’s create a separate user, we will use to compile and manage our trinity core server from. We will call this user trinitycore for the sake of this tutorial, but you can name it whatever you’d like.

Code:
sudo adduser trinitycore

Quote:[Image: Screen-Shot-2023-01-08-at-4.15.24-PM.png]
[Image: Screen-Shot-2023-01-08-at-4.16.03-PM.png]

Now you’d need to give this newly created user sudo permissions in order to follow along with this tutorial.

Code:
sudo usermod -aG sudo trinitycore

[Image: Screen-Shot-2023-01-08-at-4.20.07-PM.png]
Now let’s switch over to the new user we just created and gave sudo permissions. Use the password you decided on when creating the user.
[Image: Screen-Shot-2023-01-08-at-4.21.28-PM.png]

Now you’ll want to change to your Directory that belongs to this user.

Code:
cd /home/trinitycore/

Please be aware that it is generally considered best practice to avoid using the root username and to refrain from granting sudo permissions to new users, as they are not usually necessary. However, for the purposes of this tutorial, I have demonstrated how to do so.

Step 4: Updating The Server And Installing Required Tools
Now you are ready to update your server and install the required tools to compile trinity core.

Code:
sudo apt-get update && sudo apt-get upgrade

[Image: Screen-Shot-2023-01-08-at-4.27.58-PM-1024x642.png]

Now that your server is updated, you are ready to install the required software to compile trinity core.

Code:
sudo apt-get install git clang cmake make gcc g++ libmariadb-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev p7zip-full unzip
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100

[Image: Screen-Shot-2023-01-08-at-4.29.22-PM-1024x905.png]

Enter ‘Y’ and the installation process for the software may take a moment to complete.

Step 5: Cloning Trinity Core From Github & Compiling
Now that you have the necessary tools for the job. You can clone TrinityCore from GitHub.

Code:
git clone -b 3.3.5 https://github.com/TrinityCore/TrinityCore.git

[Image: Screen-Shot-2023-01-08-at-4.35.50-PM-1024x273.png]

We will know go to the trinity core folder just cloned and make a build directory.

Code:
cd TrinityCore
mkdir build
cd build

[Image: Screen-Shot-2023-01-08-at-4.38.29-PM.png]

Before we begin the compilation process, we need to determine the number of cores in our CPU. As shown in the example below, my server has 8 cores. However, the number of cores on your server may be different, so use the number that corresponds to your server.

Code:
nproc --all​

[Image: Screen-Shot-2023-01-08-at-4.41.03-PM.png]

We are now ready to use cmake to prepare the source code. The command below will set the server directory to /home/trinitycore/Server.

Code:
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinitycore/Server -DTOOLS=0

[Image: Screen-Shot-2023-01-08-at-4.46.21-PM-1024x43.png]

Remember the number of cores in your CPU. You will need to input that information here by replacing ‘X’ with the number of cores. For example, if your server has 8 cores, you would enter ‘8’

Code:
make -j X
sudo make install

You are now compiling trinity core. This may take awhile depending on the resources available on your server.

[Image: Screen-Shot-2023-01-08-at-5.02.12-PM-1024x202.png]

We will now need to rename the configuration files before moving to the next step.
Code:
cd /home/trinitycore/Server/etc/
sudo mv authserver.conf.dist authserver.conf | sudo mv worldserver.conf.dist worldserver.conf


Step 6: Setting up MySQL
We will now go ahead and setup our mysql database for our server, and connect to it using the following command. There is no password by default.
Code:
sudo mysql -u root -p

[Image: Screen-Shot-2023-01-08-at-5.48.31-PM-1024x320.png]

Now that you have connected to your database, you will need to run some queries.

Code:
CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT USAGE ON * . * TO 'trinity'@'localhost';
CREATE DATABASE `world` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

These queries will create a new user with the name trinity, and password trinity. It will also create three new databases ‘auth’, ‘characters’ and ‘world’.
Now that we have our database ready, we will need to visit the trinity core release section of GitHub. You will need to download the latest version, as of right now it’s TDB 335.22101. We will only need the database file, simply right click and copy the link.

[Image: Screen-Shot-2023-01-08-at-5.59.47-PM-1024x497.png]

Now download the file to your server, making sure that you are in the server folder ‘/home/trinitycore/Server/bin/’ before doing so.”

Code:
sudo wget https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.22101/TDB_full_world_335.22101_2022_10_17.7z

Once the download is complete, we will use p7zip to extract the files using the following command.

Code:
sudo 7z x TDB_full_world_335.22101_2022_10_17.7z

It is important to note that if you are using this tutorial at a later date, the name of the file may have changed.

Step 7: Populating Your Databases & Downloading Data
You will now need to start the worldserver to populate the databases, this may take awhile depending on resources available to you.

Code:
cd /home/trinitycore/Server/bin
./worldserver

After the world server completes populating the databases, run the following commands in order to download the data(maps, dbc, mmaps, vmaps) required to run the worldserver.
Code:
cd /home/trinitycore/Server/bin/
sudo wget https://www.mediafire.com/file/7a45qqij3a11xl9/data.zip
sudo unzip data.zip
sudo rm -v data.zip

You may now start your authserver and worldserver by simply typing ./authserver or ./worldserver. But please note, doing it this way will disconnect as soon as you close the SSH session. I will be making a guide shortly about setting these up as a service.



If you need any help, please feel free to make a thread in the support section. Thank you!

Print this item

  How To Compile AzerothCore On Windows: Complete Tutorial
User Avatar Forum: Window Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:36 PM - No Replies

Introduction
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

Quote: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
Quote: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.
[Image: Screen-Shot-2023-01-20-at-6.06.20-PM.png]
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.

MySQL
Quote:We will only need the server only, so when you open the installer be sure to select "Server only"
[Image: Screen-Shot-2023-01-20-at-6.35.08-PM.png]
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.
[Image: Screen-Shot-2023-01-20-at-6.40.49-PM.png]
Then just click next until the end and finish the installation.

HeidiSQL
Quote:HeidiSQL is easy to install, no extra steps required. Click through the options and complete install.

CMake
Quote:CMake is easy to install, no extra steps required. Click through the options and complete install.

OpenSSL
Quote:OPenSSL is easy to install, no extra steps required.Click through the options and complete install.

Boost
Quote: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
[Image: Screen-Shot-2023-01-20-at-6.55.48-PM.png]
[Image: Screen-Shot-2023-01-20-at-6.57.14-PM.png]
[Image: Screen-Shot-2023-01-20-at-6.58.27-PM.png]
[Image: Screen-Shot-2023-01-20-at-7.00.43-PM.png]
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"

[Image: Screen-Shot-2023-01-20-at-7.08.55-PM.png]

On the window it opens, type in:

Code:
git clone https://github.com/azerothcore/azerothcore-wotlk.git

[Image: Screen-Shot-2023-01-20-at-7.11.13-PM.png]

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.

[Image: Screen-Shot-2023-01-20-at-7.15.52-PM.png]

We will now click "Generate" in the bottom left, and select Visual Studio 17 202 as our compiler:

[Image: Screen-Shot-2023-01-20-at-7.19.17-PM.png]

Assuming you have done all the steps correctly to this point, there should be no errors and you'll see:

[Image: Screen-Shot-2023-01-20-at-7.20.31-PM.png]

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:

[Image: Screen-Shot-2023-01-20-at-7.25.45-PM.png]

Now that our source code is open in Visual Studio, we will need to change the compile type from Debug to Release:

[Image: Screen-Shot-2023-01-20-at-7.28.27-PM.png]

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:

[Image: Screen-Shot-2023-01-20-at-7.30.22-PM.png]

Now assuming you have followed all the steps until this point, there should be no errors and you will see:

[Image: Screen-Shot-2023-01-20-at-7.48.02-PM.png]

Our newly compiled source files can be found in: Build\bin\Release

[Image: Screen-Shot-2023-01-20-at-7.49.40-PM.png]


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
  • libssl-1_1-x64.dll
  • libcrypto-1_1-x64.dll

libmysql.dll - location
Quote:Navigate to C:\Program Files\MySQL\MySQL Server 8.0\lib and copy libmysql.dll to your Build->bin->Release folder.

libssl-1_1-x64.dll, libcrypto-1_1-x64.dll
Quote:Nevigate to C:\Program Files\OpenSSL-Win64\bin and copy all 3 of the DLLs listed above to your Build->bin->Release folder.
[Image: Screen-Shot-2023-01-20-at-8.08.27-PM.png]

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 ourselves 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.
[Image: Screen-Shot-2023-01-20-at-8.12.19-PM.png]

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.

[Image: Screen-Shot-2023-01-20-at-8.23.38-PM.png]

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.

[Image: Screen-Shot-2023-01-20-at-8.33.36-PM.png]


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:

[Image: Screen-Shot-2023-01-20-at-8.24.14-PM.png]
[Image: Screen-Shot-2023-01-20-at-8.24.53-PM.png]
[Image: Screen-Shot-2023-01-20-at-8.26.28-PM.png]

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.

Code:
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;

[Image: Screen-Shot-2023-01-20-at-8.28.18-PM.png]

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.



Conclusion
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 make a thread in the support section! 

Print this item

  Compiling Trinity Core 4.3.4 On Windows: A Complete Tutorial
User Avatar Forum: Window Tutorials
Posted by: PrivateDonut - 02-03-2024, 12:27 PM - No Replies

Introduction
Want to create your own World of Warcraft Cataclysm private server? We've got you covered! In this guide, we'll walk you through the process of compiling and setting up your server.
For this tutorial we will be using a source maintained by: The-Cataclysm-Preservation-Project



Step 1: Software Requirements
Please make sure to read the software installment section to ensure you install the software correctly.

Step 2: Software Installment
Git:
Installing Git is a straightforward process. Simply follow the prompts during the installation and click "next" until the installation is complete.

Visual Studio 2019:
Installing Visual Studio 2019 is also an easy process. However, make sure to select the option to install "Desktop C++" during the installation, as this is a requirement for compiling TrinityCore.

[Image: Screen-Shot-2023-01-13-at-2.47.41-PM-2048x1141.png]

Once the installation is complete, you do not need to sign in. Instead, click "Not now, maybe later" and select your preferred theme before clicking "Start Visual Studio". You can exit Visual Studio for now, as it is not needed for the next step.

MySQL
Installing MySQL is easy. When you first open the installer, you will be prompted to upgrade, simply click "Yes". On the next screen, select the option to "install server only.

[Image: Screen-Shot-2023-01-13-at-2.59.53-PM.png]

You will need to make a MySQL root password, remember this information as it will be important later on

[Image: Screen-Shot-2023-01-13-at-3.02.59-PM.png]

Anything after setting the MySQL password, you can just click next until you reach the last page and then click execute and finish. We have now installed MySQL.

HeidiSQL:
HeidiSQL is simple to install, just open the installer and click next and complete the install.

Boost 1.73.0:
We have a complete tutorial on how to install and setup boos 1.73.0, please read it if you have never done it before. You can that tutorial here: Click Link Remember for this tutorial, you will need boost 64bit since all the tools we have downloaded is for 64bit.

cMake:
Installing cMake is easy, no extra steps required. Simply click and install it.

OpenSSL
Installing OpenSSL is easy, no extra steps required. Simply click and install it.

We now have all the tools required to compile, let’s move onto the next step.


Step 3: Cloning Trinity Core 4.3.4
To clone the source from GitHub, we will use the Git Bash tool on your desktop. Begin by right-clicking on an empty space on your desktop and selecting “Git Bash Here.”

[Image: Screen-Shot-2023-01-19-at-1.53.13-AM.png]

After the menu appears, enter or copy the following line into the window:

Code:
git clone https://github.com/The-Cataclysm-Preservation-Project/TrinityCore.git



Step 4: Prepare The Source
We will need to create a new folder on our desktop called "Build", you can name this anything but for this tutorial we will name it Build.

We will now open CMake and select our Trinity Core 4.3.4 source folder and select our Build

[Image: Screen-Shot-2023-01-19-at-2.02.20-AM.png]
Once you have selected the two folders, you will need to click on Generate and select our compiler. We will need to select Visual Studio 16 2019 and then click "Finish".

[Image: Screen-Shot-2023-01-19-at-2.07.13-AM.png]

If you followed the tutorial to this point, you should have no errors and see this:

[Image: Screen-Shot-2023-01-19-at-2.09.19-AM.png]



Step 5: Compiling
We are now ready to compile our source code. You can exit out of CMake, and open the Build folder. Click on ALL_BUILD and let it open Visual Studio for you.

[Image: Screen-Shot-2023-01-19-at-2.14.31-AM.png]
Now that Visual Studio has our source code open, we will need to change it from debug mode to release mode.

[Image: Screen-Shot-2023-01-19-at-2.16.45-AM.png]

We are now ready to compile our source code, you can start the process by hitting F5 or right clicking your source code and then build.

[Image: Screen-Shot-2023-01-19-at-2.18.36-AM.png]

You should have no errors during compiling and see this once its completed:

[Image: Screen-Shot-2023-01-19-at-2.28.27-AM.png]


Step 6: Getting Required Files & Renaming Configuration Files
Now that we have successfully built our source code, our files will be located in Build->Bin->Release. We will need to rename our configation files.
Rename authserver.conf.dist to bnetserver.conf
Rename worldserver.conf.dist to worldserver.conf


[Image: Screen-Shot-2023-01-19-at-2.33.21-AM.png]
Now we will need to grab a few libraries from the programs we installed at the start of our tutorial. Please Note: Copy these files from these locations and not remove them completely.
libmysql.dll
You may find this library in: C:\Program Files\MySQL\MySQL Server 8.0\lib
libssl-1_1-x64.dll & libcrypto-1_1-x64.dll
You may find these two libraries in: C:\Program Files\OpenSSL-Win64\bin



Step 7: Extracting Data From Game Client
We will need to extract the data from our WoW 4.3.4 game client. These files are required to successfully start your worldserver.
You will need to copy the following files from your Build->Bin->Release into your WoW 4.3.4 client(The folder where your wow.exe is stored).
  • mapextractor
  • mmaps_generator
  • vmap4assembler
  • vmap4extractor

[Image: Screen-Shot-2023-01-19-at-3.25.34-AM.png]

Next, navigate to your TrinityCore folder (the one you obtained from GitHub, not your build folder) and go to the “TrinityCore/contrib” subdirectory. Copy the extractor.bat from there and paste it into your WoW 4.3.4 client folder.

[Image: Screen-Shot-2023-01-19-at-3.29.05-AM.png]
Now start it up, and choose option 4 to extract all the data from the game client. Important: This may take a couple of hours, time varies depending on computer resources.

[Image: Screen-Shot-2023-01-19-at-3.30.07-AM.png]
Once the data has been successfully extracted, you will need to copy the following folders over to your Build->Bin->Release folder.
  • Maps
  • vMaps
  • mMaps
  • DBC
  • Cameras


Step 8: Populating The Database Automatically
We will now proceed to populate the databases. This is a process that TrinityCore performs to set up the databases and apply all the latest database fixes automatically.
Connecting to your database:
We are now ready to connect to our database, open HeidiSQL.

[Image: 111111111.png]
Running Query To Create Databases And User
We will need to run the queries below to our MySQL server to create the username trinity, and the databases Auth, World, Characters And Hotfixes.
Code:
CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT USAGE ON * . * TO 'trinity'@'localhost';
CREATE DATABASE `world` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `hotfixes` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `hotfixes` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

To proceed, we need to first download the database from the Github repository specified in this tutorial. Please navigate to the release section of The Cataclysm Preservation Project on Github(here), and download the most recent version of the world database as shown in the image below:
[Image: Screen-Shot-2023-01-19-at-9.39.26-PM.png]
Download latest database

We will need to extract these two SQL files to our Build->Bin->Release folder as shown below:

[Image: Screen-Shot-2023-01-19-at-9.41.04-PM.png]

Now open the worldserver.exe, it should ask you if you want to create the hotfixes database, simply type yes.

[Image: Screen-Shot-2023-01-19-at-9.24.24-PM.png]

Afterwards it should automatic detect that we have not setup any of our other databases and start to populate those automatically using the files from the source and the world databse we just downlaoded.
Please Note: Populating the database may take a few minutes depending on your computer specs. But after it is done, there should be no errors and the world server should start right up.

[Image: Screen-Shot-2023-01-19-at-9.47.51-PM.png]


Conclusion
Congratulations you have now successfully compiled your own Cataclysm 4.3.4 Private Server!
Now we covered all the steps to compile, connecting to your new Private Server can be tricky due to the way the source handles authentication. But no worries, you can follow the two links below to learn more about getting the right client setup.
Trouble Shooting For Connecting


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 make a thread in the support section! 

Print this item

  Compiling Trinity Core 3.3.5a on Windows: A Complete Tutorial
User Avatar Forum: Window Tutorials
Posted by: PrivateDonut - 02-03-2024, 11:04 AM - No Replies

Introduction
In this tutorial, I will be showing you how to compile Trinity Core 3.3.5a(WOTLK) on windows server 2022, but this will work on any windows version above windows 7.

Software Requirements




Step 1: Installing the software
Git:
Installing Git is very simple for this tutorial, simply just keep clicking next until you get to the end of the installation questions and install it.

Visual Studio 2019:
Installing visual studio 2019 is also simple, but we have to make sure to check to install desktop c++ during the installation process since this is a requirement to compile trinity core.

[Image: Screen-Shot-2023-01-13-at-2.47.41-PM-1024x570.png]

Once done installing, you do not need to sign in, simply click “not now, maybe later” and choose the theme you want before clicking Start Visual Studio. You can exit out of Visual Studio after that, as it isn’t needed right now.

MySQL
Installing MySQL is easy, when you first open the installer it’ll ask you to upgrade simply click yes. During the next screen, we will only need to install Server only.

[Image: Screen-Shot-2023-01-13-at-2.59.53-PM-1024x769.png]

After that, click next until you reach this screen:
You will need to make a MySQL root password, remember what you set as this will be useful later on.

[Image: Screen-Shot-2023-01-13-at-3.02.59-PM-1024x774.png]

Anything after setting the MySQL password, you can just click next until you reach the last page and then click execute and finish. We have now installed MySQL.

HeidiSQL:
HeidiSQL is simple to install, just open the installer and click next and complete the install. This isn’t required at the moment but is a very useful database client for future use.

Boost 1.73.0:
I made a entire tutorial on how to install boost you can view it here: Downloading and Installing Boost 1.73.0. Remember for this tutorial, you will need boost 64bit since all the tools we have downloaded is for 64bit.

cMake:
Installing cMake is easy, no extra steps required. Simply click and install it.

OpenSSL
Installing OpenSSL is easy, no extra steps required. Simply click and install it.

We now have all the tools required to compile, let’s move onto the next step.




Step 2: Cloning Trinity Core 3.3.5a.
To clone the source from GitHub, we will use the Git Bash tool on your desktop. Begin by right-clicking on an empty space on your desktop and selecting “Git Bash Here.”
[Image: Screen-Shot-2023-01-13-at-3.31.27-PM.png]

After the menu appears, enter or copy the following line into the window:
Code:
git clone -b 3.3.5 https://github.com/TrinityCore/TrinityCore.git



Step 3: Prepare The Source
Before moving forward, open the cMake program that was installed earlier in this tutorial. Also, create a new folder on the desktop called “Build.” Once you have created the new folder and opened cMake, you will need to select the source code and the new build folder as shown in the image provided.
[Image: Screen-Shot-2023-01-13-at-3.45.12-PM-1024x852.png]

After selecting the two folders, click the “Generate” button at the bottom. It will bring up a window to select the compiler, you will need to select Visual Studio 16 2019

[Image: Screen-Shot-2023-01-13-at-3.50.20-PM.png]

As long as you followed the steps to this point, there should be no errors during the cmake process.



Step 3: Compiling
You can now close out of the cmake program, and open the build folder on your desktop and click “ALL_BUILD”

[Image: Screen-Shot-2023-01-13-at-3.52.33-PM-1024x534.png]


Once it opens Visual Studio, we will need to change the build type to “release” as shown in the image provided.

[Image: Screen-Shot-2023-01-13-at-3.53.40-PM-1024x193.png]

Now we are ready to compile, simply push F5 or right click “Solution ‘Trinity Core” and click build. If you followed along the tutorial, you should have no errors once the compiling is done and should see:

[Image: Screen-Shot-2023-01-13-at-4.02.35-PM-1024x38.png]

Assuming you succeeded with compiling with no errors, congratulations you successfully compiled trinity core! Your new compiled files can be found in your Build Folder Build->Bin->Release.



Step 4: Getting Required Files & Renaming Configuration Files
We will need to grab a few files from the programs at installed at the start of this tutorial. Remember these files will need to be placed in your Build->Bin->Release folder.

libmysql.dll:
We will need to copy the libmysql.dll file from the location below. Remember to only copy this file, and not cut/delete it from the original folder.
Code:
C:\Program Files\MySQL\MySQL Server 8.0\lib

You will need to place this file inside your Build directory on the desktop Build->Bin->Release.

libssl-1_1-x64.dll & libcrypto-1_1-x64.dll
We will need to copy these two files from the location below. Remember to only copy these files and do not delete them from the original folder.
Code:
C:\Program Files\OpenSSL-Win64\bin

You will need to place this files inside your Build directory on your desktop Build->Bin->Release.

Rename Configuration Files
We will now need to rename the configuration files, you may find these located inside your Release folder Build->Bin->Release.
Rename the authserver.conf.dist file to authserver.conf
Rename the worldserver.conf.dist file to worldserver.conf



Step 5: Extracting Data From Game Client
We will need to extract the data from our WoW 3.3.5a game client, these files are required to successfully start your worldserver.
You will need to copy the following files from your Build->Bin->Release into your WoW 3.3.5a client(This is where your wow.exe and data folder is stored).
  • mapextractor
  • vmap4extractor
  • vmap4assembler
  • mmaps_generator

[Image: Screen-Shot-2023-01-13-at-7.54.15-PM-1024x458.png]

Next, navigate to your TrinityCore folder (the one you obtained from GitHub, not your build folder) and go to the “TrinityCore/contrib” subdirectory. Copy the extractor.bat from there and paste it into your WoW 3.3.5a client folder.

[Image: Screen-Shot-2023-01-13-at-7.56.15-PM-1024x512.png]

Once all the necessary files are in your WoW 3.3.5a game client folder, run the extractor.bat and select option 4 to extract all data (maps, vmaps, dbc, and mmaps). This process may take a few hours, but the duration may vary depending on your computer’s resources.

[Image: Screen-Shot-2023-01-13-at-7.59.21-PM-1024x542.png]

Once the data has been successfully extracted, you will need to copy the following folders over to your Build->Bin->Release folder.
  • Maps
  • vMaps
  • mMaps
  • DBC
  • Cameras

[Image: Screen-Shot-2023-01-13-at-8.48.36-PM-1024x522.png]



Step 5: Populating The Database Automatically
We will now proceed to populate the databases. This is a process that TrinityCore performs to set up the databases and apply all the latest database fixes automatically.

Setting Up Your Database User
We will setup a database user to manage your database setup
Let’s go ahead and connect to our MySQL Server using HeidiSQL(We installed this earlier):

[Image: Screen-Shot-2023-01-13-at-8.21.06-PM-1024x723.png]

Once connected, we’ll create our new user and databases(Auth, World And Characters).

Running Query To Create Databases And User
We will need to run the queries below to our MySQL server to create the username trinity, and the databases Auth, World And Characters.
Code:
CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT USAGE ON * . * TO 'trinity'@'localhost';
CREATE DATABASE `world` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

[Image: Screen-Shot-2023-01-13-at-8.37.11-PM-1024x648.png]
[Image: Screen-Shot-2023-01-13-at-8.38.28-PM-1024x614.png]

We can now close HeidiSQL.

Downloading Database From Github
We will now need to download the database from Github, this will allow us to setup our database automatically. So head on over to:

Code:
https://github.com/TrinityCore/TrinityCore/releases

We are looking for the latest TDB 335.XXXX like shown in the picture below:
[Image: Screen-Shot-2023-01-13-at-8.54.05-PM-1024x254.png]

Please note: The name might be different from the time you’re following this tutorial, so make sure to look for the latest one at that using the link above.
Once you locate the latest release for 3.3.5, click on it and download the TDB_World_Database. Once you have the latest 3.3.5 database downloaded, we will need to copy that over to our Build->Bin->Release folder as shown below:

[Image: Screen-Shot-2023-01-13-at-8.56.59-PM-1024x520.png]

Now we have all the files required to successfully start our server. Simply start the authserver.exe and worldserver.exe.
Once you open the worldserver.exe, it will detect the database has not been setup yet and will try to auto-populate it using the data we provided during this tutorial. Give it a few minutes to execute the SQL files into the database and all the fixes

[Image: Screen-Shot-2023-01-13-at-9.02.20-PM-1024x538.png]

Congratulations, you have reached the end of our tutorial on compiling Trinity Core 3.3.5a on Windows. If you need any help feel free to reach out!


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 make a thread in the support section. Thank you! 

Print this item

  Downloading and Installing Boost 1.73.0
User Avatar Forum: Window Tutorials
Posted by: PrivateDonut - 02-03-2024, 10:07 AM - No Replies

Welcome to WoWEmulation! In this tutorial, I will teach you how to download, install, and configure Boost 1.73.0, an essential component for compiling the latest WoW emulators.



Step 1: Downloading Boost
You only need to download the boost version that corresponds to the type of compilation you plan to do. It is highly recommended to compile in 64-bit, in which case you should download the 64-bit version of boost.

Step 2: Installing Boost
When you have completed the download of Boost 1.73.0, click on the file to start the installer. It is generally best to use the default installation path.

[Image: jHGGZ0d.png]

Simply click next and wait for the installation to complete.



Step 3: Configuration
Now that you have finished installing Boost, you can begin configuring it correctly. We will need to set a system environment variable so that later on during the compiling process, it can recognize the boost installation.
[Image: iKuzw0j.png]

You will now need to click “environment variable”

[Image: HZU04I7.png]

This is where we will need to set a system variable for the boost path.

[Image: FDgvmwi.png]

In this step, we will need to set the variable name and value. Remember when we installed Boost 1.73.0 earlier in the tutorial? We will use the path from that installation for the value, as shown in the image below.

[Image: DKD8VYC.png]

Simply click okay, and congratulations you have finished downloading, installing and configuring boost 1.73.0 and you are ready to move onto the next step to compiling your emulator!

IMPORTANT TIP: During this installation tutorial we used the boost version 1.73.0, if you decide to download another version of boost remember to use the correct version number for that version.

Print this item