WoW private server development
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Display results as :

Rechercher Advanced Search



Latest topics
» Darknezx and Rhodey
How to compile a fresh Trinity Core  EmptySat Nov 23, 2013 12:24 pm by Achidru

» _Ikester_ git_repo_list
How to compile a fresh Trinity Core  EmptyWed Jul 31, 2013 8:20 pm by _Ikester_

» [RELEASE]Eternion WoW Repack 4.0.6
How to compile a fresh Trinity Core  EmptyWed Jun 12, 2013 6:47 pm by trooper87

» [Trinity] Funserver Levelcap 255 + tutorial how to set it up! Thread Tools Display
How to compile a fresh Trinity Core  EmptySat Jun 01, 2013 11:25 am by medaion

» VPS server set up service..
How to compile a fresh Trinity Core  EmptyTue May 21, 2013 10:44 pm by _Ikester_

» Wow How To: Downgrade to 4.0.6 from 5.0.5/5.1.0
How to compile a fresh Trinity Core  EmptyTue May 21, 2013 12:09 pm by _Ikester_

» BGT's Tutorials - How to make a world of warcraft private server for patch 5.2.0
How to compile a fresh Trinity Core  EmptyTue May 21, 2013 11:57 am by _Ikester_

» Darktower public server...
How to compile a fresh Trinity Core  EmptyMon May 20, 2013 7:41 pm by _Ikester_

» December. WoW Source 4.3.4 Repack
How to compile a fresh Trinity Core  EmptySat May 18, 2013 10:05 pm by _Ikester_

April 2023

Calendar Calendar

How to compile a fresh Trinity Core

Go down

How to compile a fresh Trinity Core  Empty How to compile a fresh Trinity Core

Post by treetrees Sun May 05, 2013 10:18 pm

Before you get scared by this rather long guide, I can assure you that the procedure is quite simple. Most of the following steps are performed only the first time you install Trinity. Once you get used to these steps, you won't have to look to this guide again.

What do I need?

GitExtensions (Includes Git, MySYSGit and KDiff, install like this!)
Visual C++ 2008 Express (vcsetup.exe)
CMake (Get the Win32 Installer)
OpenSSL (Get the Win32 full installer.)
MySQL 5.5.9 server
NET Framework 3.5 or higher (Should have got this via Windows Updates.)

Pulling the source:
Before you can jump into compiling anything, you'll need to get the source; this is fairly easy:

Create a directory in which the core files will be pulled. (e.g: C:/Trinity)
Right-click on the directory, navigate to 'Git Extensions' and press Clone
Fill in the data as following:

Repository to clone:
Destination: C:/Trinity
Subdirectory to create: <none>
Personal Repository: Yes

Click on 'Clone' and wait a couple minutes whilst the files are being pulled.

Configuring and Generating Visual C++ solutions via CMake:
Before you can continue and compile the source, you'll have to generate the solution. This is done via Cmake.

Create a directory in which the compile will be built. (Different from the source.) (e.g: C:/Build)
Launch CMake GUI
Navigate to the source and the build directories
Press configure. (Choose Visual Studio 10, Native compiles.)
Once configured, you'll get a table coloured in bright red with various options.
The options should be set correctly, although, hover over them and see if you need any extras. Be sure to keep 'Servers' and 'WITH_MYSQL_SOURCES' checked.
Press configure again, and then Generate.
When everything went correctly, you should get a message saying:
"Generating Done"
You can now close CMake.

Compiling the source:
Finally we came to the step where we'll compile the source;

Go into your build folder, and open the 'TrinityCore.sln' file
Once Microsoft Visual C++ has launched, at the top change the setting from 'Debug' to 'Release' and be sure that the platform is 'Win32'
Press the small green (> play arrow to start building.
Building should take about 30 minutes.
Once done you should get an error that 'Build All' went unsuccessfully, however at the bottom of the screen you should see the line:

========== Build: 15 completed, 0 failed, 0 up-to-date, 1 skipped ==========

The freshly compiled core can be found in the 'Build/bin/release' folder.

You'll need the following files to get the core to function properly:


libeay32.dll, libmySQL.dll, and ssleay32.dll will need to be added to this folder as well, and you need to copy them over from the original installation/bin directories, (OpenSSL/MySQL) or out of my repack.

Keeping the core up to date:
Trinity developers are always working to fix bugs or add new features. I'd suggest doing this step at least once a month;

Go back to your source folder, and right click.
Navigate to GitExtensions and press 'Pull'
Make sure it is configured as following:

Pull from Remote: origin
Remote Branch: master
Merge remote branch to current branch

Click Pull, and the latest core revision will be downloaded.

Now you just repeat 'Compiling the core' and you'll have the latest revision.

Getting the databases:
Before your server will function, you'll need to configure the databases. Database revisions are always supplied by the core repo (TC/sql/updates) However you'll have to download the 'world' base from the Trinity Core fora. You can find that here.

Installing the databases:
Trinity needs 3 databases to be able to run. ('Auth', 'Characters' and 'World'.)

In HeidiSQL first make a new connection with the information you filled in during the installation of the MySQL server.
Once in the application, create 3 new databases named


When created, execute the database structures into the databases:
Import auth database structure by importing /Trinity/sql/base/auth_database.sql to the auth database.
Import characters database structure by importing /Trinity/sql/base/character_database.sql to the characters database.
Unzip 'world' database zip file and import world DB structure and contents by importing the SQL to the world database.

Now your world database structure should be at the latest revision, it is required that you also import various additional SQL updates that are included with each core (and database.) updates

Browse into the /Trinity/sql/updates folder
Import ALL .sql update files which start with a number above your current revision so that your DB structure is up to date with the revision you just pulled and compiled.

You will notice they are always named XXX_world_tablename.sql or XXX_characters_tablename.sql, you need to execute them in the corresponding database.

Keeping the database up to date:
As much as the core, the database also gets updated nearly weekly. You can always get the latest, smaller fixes by pulling it from the core repo.
You should now repeat the procedure listed above. (Executing the update files into the corresponding databases.)

Setting up the server:
Whilst you can download these files from the web, it might be useful to extract them yourself;

In order to run, Trinity needs dbc, maps, vmaps and mmaps. These need to be extracted. The extractors can be compiled together with Trinity. (select the 'tools' option in CMake)

Put the extractors in your World of Warcraft client directory
Launch the WoW client, once you see the home screen, close it again.
Run 'mapextractor.exe' and you'll find two maps in your client directory; maps and dbc
Then extracting the vmaps; (Will take a little longer, but is highly recommended.) Simply run 'makevmaps3_simple.bat'. You'll find two more folders, 'Buildings and 'Vmaps'
Lastly, run the 'maps_generator.exe'. (Will take even longer.)
Once all extractors have finished, you may delete the 'Buildings' folder and move the other folders (maps, vmaps, mmaps, dbc) to the folder your core binaries are.
(e.g: /Trinity/bin/Win32_release or C:/Trinity/bin/x64_release)

Unless moving to another patch or explicitly stated in a commit note, the maps, vmaps and dbc should stay the same. By thus, this process shouldn't be repeated.

Configuring the server
You can alter various settings of your server by editing the configuration files. This is required to do before starting it, since you'll need to fill in the correct MySQL details.

Rename the worldserver.config.dist to worldserver.config
Read through all the settings, however be sure to change:

LoginDatabaseInfo = ";3306;trinity;trinity;auth"
WorldDatabaseInfo = ";3306;trinity;trinity;world"
CharacterDatabaseInfo = ";3306;trinity;trinity;characters"

And make it reflect your MySQL settings.
Rename the authserver.config.dist to authserver.config
Read through all the settings, however be sure to change:

LoginDatabaseInfo = ";3306;trinity;trinity;auth"

After all these steps are complete, you should have successfully compiled and configured a fresh Trinity Core compile. Be sure to change your realmlist to 'Set realmlist' and launch both the authserver.exe and worldserver.exe, After a couple minutes these should be started without any issue's. You will have to create your account using the world console, just type the following two lines in it:

account create NAME PASSWORD
account set gmlevel 3 NAME -1

Your account will be created, and will have admin powers in-game.

This guide should be all you need taking in consideration that you are a beginner and left everything to it's default values.
Warning: The Trinity Core team nor myself DO NOT - in any case - sponsor nor support illegal public private servers.
This tutorial is meant for educational purposes only. Using it to run an illegal public server, is your personal choice.

Quote Originally Posted by Jeutie
On a side note,
This tutorial would apply to various other Private WoW Server emulators, such as MaNGOS, ArcEmu and Cactus-Emu, however they will use different GIT / HG urls, you'll need to get those by yourself.
I also made a video tutorial on how to do this, click here to watch it. (Slightly outdated...)

If you'd be wondering how to add some custom code to your compile, I have a separate guide on that, here.
This tutorial was brought to you by Jeutie.

Need support? Post in this thread. Got another question? Ask here. Other inquiries? Mail me.


Posts : 44
Join date : 2013-05-02

Back to top Go down

Back to top

- Similar topics

Permissions in this forum:
You cannot reply to topics in this forum