Windows Core Installation

Guide

This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.

Windows


Getting started

Before you get scared by this long guide, we assure you the procedure is quite simple.
Most of the following steps are to be performed only the first time you install Trinity and only the Trinity updating procedures will need to be run from time to time.


Required Software

See Windows Requirements

Pulling & Compiling the Source

Pulling the Source

  1. Create a directory in which Core files will be pulled (for example: C:\Trinity).
  2. Right-click on the directory and click on Git Extensions -> Clone (on recent versions: GitExt Clone...)
  3. Fill in the data as follow:

3.3.5 (wotlk client)

This will clone 3.3.5a branch,

this is the RECOMMENDED branch for starters and people wanting playable content.

Repository to clone: https://github.com/TrinityCore/TrinityCore
Destination: C:\Trinity
Subdirectory to create: <none>*
Branch: 3.3.5
Personal Repository: Yes

  • <none>* means leave it empty

master (shadowlands client)

This will clone master branch,

note that this is  NOT  the recommended branch for starters, this branch doesn't ship most of content after 3.3.5a.

Repository to clone: https://github.com/TrinityCore/TrinityCore
Destination: C:\Trinity
Subdirectory to create: <none>*
Branch: master
Personal Repository: Yes

Click Clone. Within a few minutes all of the TrinityCore source files will be pulled into the directory C:\Trinity.

Note: If you don't specify a branch, git will pull master by default! 

Configuring and generating Visual C++ solutions with CMake

Before you begin, create an empty directory called Build. In this example, we will use C:\Build.

Uncommon compilers

Note: If CMake does not recognize your C/C++ compiler, choose Specific Native Compiler, and choose path to target vcvarsall.bat, e.g. C:\Program Files\Microsoft Visual Studio 14.0\VC\vcvarsall.bat


Click Browse Source... -> Select 
the source directory (C:\Trinity)

2. Click  Browse Build...  -> Select
the build directory (C:\Build)

3. Click Configure

4. Make sure that Use default native compilers
 is checked (should be checked by default).

5. In the drop-down menu, choose the
version of the compiler you downloaded
in the Software Required section. Be sure to choose
Win64 version if you work on 64-bits compilation

6. Click Finish.

7. Make sure Tools is checked already.
This will compile the map extractors
needed later in the setup.
(in master branch, this will also
generate connection_patcher.exe)

8. Click Configure again. As long as you have error(s) typed in red in the log window, you will have to check
your parameters and click again on it.

9. Click Generate. This will install the
selected build files into your C:\Build folder.

Some errors fixes

  • If MySQL is not found by CMake it is required to set MYSQL_INCLUDE_DIR = C:/XX/MySQL/MySQL Server 5.XX/include and MYSQL_LIBRARY= C:/XX/MySQL/MySQL Server 5.XX/lib_XX/libmysql.lib.
    XX depends if you are compiling in 32 or 64 bits mode and the mysql version you have selected.
  • If you get linker errors (e.g "error LNK2019: unresolved external symbol mysql_server_init"), make sure MYSQL_LIBRARY is set to the libmysql.lib that matches your compile mode (x64 vs 32 bits).
    (If you do not see the MYSQL fields in CMake, tick the Advanced box).
  • If you get an error that CMake could NOT find OpenSSL:
  1. Check the Advanced checkbox
  2. Find the two OPENSSL entries in the list and point to the correct directories:
      OPENSSL_ROOT_DIR is the installation path (by default, C:/OpenSSL-Win32 or C:/OpenSSL-Win64)
      OPENSSL_INCLUDE_DIR is the "include" folder in installation path (by default, C:/OpenSSL-Win32/include or C:/OpenSSL-Win64/include)

Compiling the Source

In Visual Studio, browse into your C:\Build folder and open TrinityCore.sln with Visual Studio Community.

  • if you are using CMake 3.8.0 or newer, you can use the button [Open Project] to open the solution directly with VS.

On the menu at the top, click Build and select Configuration Manager.

Set Active Solution Configuration to RelWithDebInfo

In the list menus below "Help", set Active Solution Platform to x64 (if you set 32-bit compilation during the CMake configuration, select x86)

and click Close (settings get saved instantly). On some versions of Visual Studio, this will be read and set automatically based on the CMake settings.

Right-click  ALL_BUILD  in the Solution Explorer on the left sidebar and select  Clean

(if your GUI does not show Solution Explorer, click the Build menu and select  Clean Solution).

Right-click ALL_BUILD and select Build (or go to the Build menu and click Build Solution (Ctrl+Shift+B)).

 

  1. Compilation time differs from machine to machine, you can expect it to take anywhere between 5 and 30 minutes.
  2. If you are asked to "Reload build files" during the compile, do so.
  3. When the build is complete, you will find a message similar to the one below (the numbers may be different).

 

========== Build: 22 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

This info may be outdated

Note: in MySQL 5.7 64bit there is a bug. Binary_log_types.h and Binary_log_funcs.h are missing.

you can download http://dev.mysql.com/downloads/file/?id=456917 and open it with winrar (or google something for opening .tar Archive)

then go to mysql-5.7.7-rc\libbinlogevents\include  there you'll find both files.  copy them to C:\Program Files\MySQL\MySQL Server 5.7\include (default location, change to your directory if you have a different mysql install location


You will find your freshly compiled binaries in the C:\Build\bin\RelWithDebInfo or C:\Build\bin\Debug folder. These are all used to run your server at the end of this instruction.

You will need the following files in order for the core to function properly:


3.3.5a

authserver.exe
authserver.pdb
authserver.conf.dist
worldserver.exe
worldserver.pdb
worldserver.conf.dist
libmysql.dll
libeay32.dll
ssleay32.dll

master (9.x)

bnetserver.exe
bnetserver.pdb
bnetserver.conf.dist
bnetserver.cert.perm
bnetserver.key.perm
worldserver.exe
worldserver.pdb
worldserver.conf.dist
libmysql.dll
libeay32.dll
ssleay32.dll


There are three DLL files that need to be manually added to this folder, and you need to copy them over from the following installation/bin directories:

libmysql.dll →  C:\Program Files\MySQL\MySQL Server 5.x\lib\

OpenSSL before 1.1.0 version installed:

libeay32.dll
ssleay32.dll  → C:\OpenSSL-Win64\ or C:\OpenSSL-Win32\ (depends on if your core is 64-bit or 32-bit)

OpenSSL 1.1.0 and more recent installed, names have changed:

libssl-1_1.dll
libcrypto-1_1.dll → C:\OpenSSL-Win32\bin

libssl-1_1-x64.dll
libcrypto-1_1-x64.dll → C:\OpenSSL-Win64\bin

About compilation log and report

pdb files only exist if you compile on Debug or RelWithDebInfo modes, it's not mandatory but it's recommended to compile core on at least RelWithDebInfo mode to get proper crashlogs. If you compile on Release mode the pdb files aren't needed.

To report crash logs it's MANDATORY to compile on Debug or RelWithDebInfo mode.

Please remember to rename the worldserver.conf.dist and authserver.conf.dist / bnetserver.conf.dist files to worldserver.conf and authserver.conf / bnetserver.conf respectively, unless you want to keep the configuration files of a previously compiled version of the core.

Keeping the Source Up-to-Date

TrinityCore Developers are always at work fixing and adding new features to the core. You can always check them here, or by viewing them from within Git Extensions.

Open your TrinityCore repository in GitExtensions. 

  1. Click on the blue arrow
  2. In the new window, click Pull.

This will sync your local repo to the latest commits from the branch you have setup as default.

     3. Now you will need to re-run CMake Configure & Generate to update your solution (.SLN) files.

     4. Compile downloaded source.

     5. Run worldserver, it will apply all new sql files (can see that in console).

Profit!!

Bugs and errors reporting

Before reporting bugs please update your core, since we commit a lot of things monthly. Even one week core is old and your bug can be fixed on next or latest updated revision.
Also keep in mind that this guide is meant to satisfy a maximum of people in compiling TrinityCore under Windows environment in a general and easy way. You may encounter variations
depending on many parameters.

Help

If you still have any problem, check:


Guide

This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.