World of Warcraft being one of the most popular MMORPG’s caught the attention of the independent developers. Lot of emulators have been developed to host private World of Warcraft Servers, with an active support by independent developers by thousands of developers. That said, our first in the series of guides on World of Warcraft, gets to be, how you can create World of Warcraft Private Server using Trinity Core, one the most stable wow emulator.
Before you get started,I want you to know that this guide is very simple and easy to follow. Most of the steps are to be performed only the first time you install Trinity and only the Trinity updating procedures will be required to run after that.
Click on ‘clone’. Wait for few minutes (or less) and all the files will be pulled in the directory C:\Trinity.
All the core files by now have been installed to the directory specified, “C:\Trinity”.
Compiling the Source
When you are done with pulling, compiling comes next, its easy as compared to installing all the core files.
Open the solution file C:\Trinity\win\TrinityCore&Script VC90.sln (VS 2008).
Go on the top menu click ‘Build’ and click on Configuration Manager. Make sure you set the build to ‘release Win32′ or ‘release x64′ depending on the Operating System Trinity will be running on.
Now go back to the ‘Build’ menu and click on ‘Clean Solution’. Unless you are just testing a compilation, it is always best to clean your build before compiling your new Trinity revision.
Compilation length differs from machine to machine, you should expect it to take 15-30 minutes.
You will find the following message once the compilation has finished successfully.
========== Build: 10 completed, 0 failed, 0 up-to-date, 0 skipped ==========
You will find your freshly compiled binaries in the C:\Trinity\bin folder.
Keep the following files:
Delete any other file which is not in the above list, you will not need them.
Note: Keep the AuctionhouseBot readme files, they will come in handy in future once you are comfortable with Trinity and want to try some of its many advanced features.
How to Keep the Trinity Updated
TrinityCore Developers are always at work, fixing and adding new features to the core. You can always check them here or by using the Tortoise HG View Change log option.
Right-click on your C:\Trinity folder and click on ‘TortoiseHG’ -> ‘Synchronize’.
Click on the button ‘pull’ at top of the window and it will start pulling the new/updated files.
Once it is finished click on ‘Update to Branch Tip’ at the bottom of the window and you are done! Now you can repeat the compiling procedure above.
Note: It is always best to remove the binaries from the C:\Trinity\bin folder every time you compile a new revision (and remember to clean your build).
Install The Databases
Before you start this phase you need to have installed Tortoise HG, MySQL Server, and MySQL GUI Tools.
Pulling the Source “Installing The Database Files”
Create a directory in which DB files will be pulled (for example: C:\TDB).
Right-click on the Create a directory in which DB files will be pulled (for example: C:\TDB).
Right-click on the directory and click on ‘TortoiseHG’ -> ‘Clone a Repository’.
Fill in the data as follows.
directory and click on ‘TortoiseHG’ -> ‘Clone a Repository’.
Fill in the data as follows:
Source Path: https://trinitydb.googlecode.com/hg
Destination Path: C:\TDB
Click on ‘clone’. Wait a few minutes (or less) and all the files will be pulled in the directory C:\TDB.
Installing MySQL Server
When configuring MySQL make sure you remember the password you set for the default root account and that you enabled both MyISAM and InnoDB engines.
You can leave all the other settings as default. You might want to enable remote access to your MySQL server. If your are also testing a website for your Trinity server or if you have friends testing with you, who need access remotely.
Note: Remember that this will decrease the security level of your MySQL server.
Installing The Trinity Databases
realmd – holds accounts data.
characters – holds characters data.
world – holds game-experience content such as spawns, stats, quests, etc.
The first two are to be taken from the Core directory, the world DB is to be taken from the TDB directory.
1. Create the three databases by importing C:\Trinity\sql\create_mysql.sql. Note: You now have three databases called realmd, characters and world.
2. Import realmd database structure by importing C:\Trinity\sql\realmd.sql in the realmd DB.
3. Import characters database structure by importing C:\Trinity\sql\characters.sql in the characters DB.
4. Unzip C:\TDB\full_db\TDB_333.9.29_7924.zip and import world DB structure and contents by importing TDB_333.9.29_7924.sql in the world DB.
5. Import in the world DB the following files in this precise order:
6. Import all *.sql update files from C\Trinity\sql\updates which start with a number above ‘8307’ so that your DB structure is up to date with the revision you just pulled and compiled.
Note: Now your world DB structure is for TrinityCore revision 8307. You need to import the update files to have the proper world DB structure for the revision you just pulled and compiled. You will notice they are all named XXXX_world_tablename.sql or XXXX_characters_tablename.sql or XXXX_realmd_tablename.sql, and you need to import the *_world_*.sql files only.
XXXX_world_tablename.sql -> World DB
XXXX_characters_tablename.sql -> Characters DB
XXXX_realmd_tablename.sql -> Realm DB
How to Keep the DB Up to Date
TDB Developers are always at work fixing and adding new data to the DB. Unlike Core development, DB updatepacks come more on a 1-2 times a month basis with many fixes, you can check the status of these updates from here and a lot of new data from the Developers and contributors.
Simply right-click on your C:\TDB folder and click on ‘TortoiseHG’ -> ‘Synchronize’.
Click on the button ‘pull’ at top of the window and it will start pulling the new updatepack.
Once it is finished click on ‘Update to Branch Tip’ at the bottom of the window and you are done.
Now you can repeat the compiling procedure above.
How to Setup World of Warcraft Private Server
Now that you have the Source compiled and the Databases installed, you need to set up World of Warcraft server.
1. Extract dbc, maps and vmaps files
In order to run, Trinity needs dbc and maps files. In addition, if you want to enable vmaps (mobs not seeing through walls, etc) you will need to extract them as well. Warning: Use Trinity’s extractors. If you use extractors from other projects it is almost certain that your Trinity Core will not recognize the extracted data.
dbc and maps files
Find the application C:\Trinity\contrib\extractor\ad.exe and place it in your WoW Client directory.
Before running this application, run your Client once (the login screen is enough). You need to do this so that the ‘ad.exe’ knows where your Client is and where to extract the files from.
Now you can run ‘ad.exe’ and you will find two directories in your WoW Client called ‘dbc’ and ‘maps’.
Move them where your Trinity binaries are (C:\Trinity\bin\Win32_release or C:\Trinity\bin\x64_release).
You can also extract vmaps which will take quite a while depending on your machine (1-2 hours).
Copy all files from C:\Trinity\contrib\vmap_extract_assembler_bin\ to where all your binaries, dbc dir and maps dir are.
Run makevmaps_SIMPLE.bat. It will take a long time. It will first create a directory called ‘buildings’. Then it will start extracting files to the directory ‘vmaps’.
Note:You will not see any progress in the application’s window or anything else. You will just notice files being created in the ‘vmaps’ folder as it is proceeding. Do not stop the process, it will ask to “press any key” to terminate the program when it is finished.
How to Configure World of Warcraft Server
First of all you need to change the extension of TrinityCore.conf.dist -> TrinityCore.conf and TrinityRealm.conf.dist -> TrinityRealm.conf (make sure you enabled “show known files extensions” in the Windows folder option).
Now you can edit them.
Step 2 | TrinityCore.conf
Edit MySQL account username and password (instead of trinity;trinity).
You need to make sure that TrinityRealm.exe directs incoming connections to your realm. In the realmd DB there is a table called realmlist. You need to edit the field address according to your needs:
127.0.0.1 – Leave default localhost if you are connecting alone from the same machine Trinity runs on.
LAN IP – Use the machine’s LAN ip if you want other computers from the same network as Trinity’s to connect to your server.
Public IP – Use your public ip if you have friends and testers which need to connect your server from the internet.
This section aims to cover frequent errors encountered by users during installation or basic configuration. Mostly, these are procedures already presented in the installation guide. Feel free to improve this section.
1# I have followed the install guide thoroughly, installed and compiled the core and the databases. When I run trinitycore.exe a window flashes and nothing else happens
First, if you are under Windows, try starting the program from a console window, so that you can see the error messages shown. Also, you’ve always got the error logs normally located in the same folder as the executable.
Make sure you have the config files “trinitycore.conf” and “trinityrealm.conf” in the right place and properly configured. If it is a fresh install, don’t forget to remove the additional extension “.dist” from these files names.
Check if the SQL server is running. If it is installed in the same machine, you may check if something like “mysqld.exe” is running.
2# When I run trinitycore.exe, I get an error stating that maps or data are missing
Make sure you put the files extracted using ad.exe and makevmaps into the data folder set in trinitycore.conf, normally “c:\trinity\data” (and its subfolders). Double-check the configuration file.
3# I get some errors regarding the DBC stores
Before running ad.exe, run your Client once (the login screen is enough), and make sure it is from the same version that is supported by the core. You need to do this so that the ‘ad.exe’ knows where your Client is and where to extract the files from. When ad is running, have attention in its output to make sure it has got the right Client (especially if you have more than one copy of WoW in you machine).
4# When the core is loading the database, I get lots of errors
If you are using the supported database, TDB, and have installed it correctly, normally you are not supposed to see error messages during the loading. Double-check database install.
5# Why so many database install files?
“Corepatch” files, as well as sqls in “sql/updates” folder, contains database updates to support core changes. When a new TDB updatepack is released, files contained in the updates folder are merged and inserted into corepatches, as well as moved to the old updates folders. “Updatepacks” contains new additions and corrections from the database project.
6# I get errors when applying a corepatch sql
If you are updating from a revision between two updatepack revisions, some modifications contained in the corepatch dump may have already been applied to your database, and will give error messages when tried to be upgraded again. New updates are still applied, so don’t worry. You may check the error messages from mysql or its frontend for safety.
7# I can connect the server from the same machine it is hosted, but my friends can’t do it from other computers
Edit your realm IP, contained in the table “realmlist” inside the DB “realmd” (or the name chosen for it) and set it with your LAN address to alow access from your network, or your external ip to allow access over the internet.
Disclaimer: The TrinityCore Development Team and Owners, the TrinityDB Team and Owners, SegmentNext and the writer of this article DO NOT in any case sponsor nor support illegal public servers. If you use these projects to run an illegal public server and not for testing and learning it is your own personal choice.