• This is a read only backup of the old Emudevs forum. If you want to have anything removed, please message me on Discord: KittyKaev

Written How to make and release a proper repack (or how to compile and setup a server on various OSs)

Epicblood

Epic Member
I will be updating this regularly to include different OSs and Cores


What is a repack?
A repack is a precompiled core, it includes everything needed to successfully run the wow server program

How do I make a repack?
you start by pulling the source, the location of this source varies by core, along with the method used to store the source, the two most common being "git" or "svn".
Once you have pulled the core, you will want to add all your custom scripts to it, once again method varies by core.
then, you will want to add those scripts to the "Cmake" list. once done, make the build directory and files.
you will now want to compile the core for either 32 or 64 bit architecture (most common is 32bit).
once that is done place the output files in a folder in the repack (repackhome/core/).
Now, either build your own portable MySQL or use on released here.
add all necessary databases and import the SQL files.
once done, compress your whole repack folder and upload to megaupload or similiar site.
now, start extracting maps, vmaps, and dbc, or just use some pre released maps, etc.

Alright, what do I include in the thread?
In the thread itself, you will want to include a variety of information
  • link to download repack
  • link to download maps, vmaps, and dbc
  • any possible changes you have made
  • list of features (working and non working)
  • login info for the MySQL database
  • login info for the world
  • core name and revision number
  • instructions on how to use repack
  • credits to all those whose work you used
  • (optional) upcoming changes
If I want to make a repack for an OS other than windows, what do I do
If you are asking this question, you should probably not attempt this, but if you insist,
you would compile the source on the OS you intend to use having applied all necessary patchs
include a portable MySQL runnable on intended OS, or include raw .sql dumps and instructions on how to install MySQL
include instructions on how to install necessary dependencies.




 
Last edited:

Epicblood

Epic Member
How to Compile: Linux​
First, please note I am doing this on a CentOS machine, so some things may be slightly off for other distributions.

Let's get started.
what dependencies do I need to compile/run?
-For debian based distros, use these commands
Code:
sudo apt-get install build-essential autoconf libtool gcc g++ make cmake git-core patch wget links zip unzip unrar
sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline6-dev zlib1g-dev libbz2-dev
-for Redhat based distros, use these
Code:
yum groupinstall "development tools"
yum groupinstall "development libraries"
yum install gcc-g++ git-core wget links zip unzip unrar
yum install mysql-server mysql-client mysql-devel
yum install openssl
yum install Cmake
TrinityCore.info
- Cmake not found, or not working?
you need to use RPMForge to get Cmake,
this process can seem daunting to new linux users, but really isnt very hard.
Code:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm
you can now try
Code:
yum install cmake
-installing ACE
ACE is required for trinitycore to properly run on your system.
Code:
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.0.tar.gz
tar xvzf ACE-6.0.0.tar.gz
cd ACE_wrappers/
mkdir build
cd build
ok, you have now unpacked the source, and created a build directory.
now we start the build
Code:
../configure
make
make install
if you get errors at the
Code:
make install
try
Code:
sudo make install
congrats, you have installed ACE
alright, you now have everything you need and can start.
Now let us get into the meat of things here and get the sourcode to trinity
-pulling the source
here, you are getting the source of trinity using "GIT"
Code:
cd ~/
git clone git://github.com/TrinityCore/TrinityCore.git
now you might have to wait awhile, or not depending on your hosts bandwidth.
once that is done pulling, proceed to the next step
-Building the source
this is where the rubber meets the road, we will be building and compiling the sourcecode so that it can be used by others, or yourself.
first, create a build directory
Code:
mkdir build
cd build
ok, now that you are in the build directory, let us configure the source code
Code:
cmake ../TrinityCore/ -DSERVERS -DSCRIPTS -DUSE_SCRIPTPCH -DUSE_COREPCH
alright, now you might see some text fly by, and you are set to start the build
-building/compiling
Code:
make
this shouldn't take too long, but have some patience, note it is recommended to have atleast 2gb of RAM available, or this process MAY NOT work!
alright, now lets install the server
Code:
make install
alright, now you have your core compiled!
you will find your binaries in
Code:
/home/local/server/bin
you will want to put your maps, mmaps, vmaps, and dbc folders in here
to get there simply type
Code:
cd /home/local/server/bin
and your *.conf files will be located in
Code:
/home/local/server/etc
to get there type
Code:
cd
cd ../
cd home/local/server/etc
the type
Code:
vi <conf file name here>
to edit
 
Last edited:

Epicblood

Epic Member
Setting up MySQL
Alright, now you need to setup your MySQL.
you already downloaded/installed all you need in the first step so nothing new to install
-start the mysql server
Code:
service mysqld start
Note: this is much easier with "WebMin" installed, you can find my tutorial on how to install that Here (then you can just hit a button to start/stop mysqld and create users for it etc.
Firt you are going to need to create your databases (auth, world, and characters)
-Creating the database
Code:
mysql create database databasename
repeat this for each until you have all three databases
-Executing the SQL files
Code:
mysql -u USERNAME -p DATABASENAME < FILE.SQL

Please note that combining all your updates into 1 SQL file will fuck them up. They do not combine in order and you end up getting errors and not applying them correctly. I know it is a pain to apply them all individually, but it's gotta be done.

Now we don't want trinity to use our root mysql user so we will create a new user for it (remember to set this one in the configs, not root)
-Creating a new user and setting permissions
Code:
mysql create user 'username'@'localhost' identified by 'password'
mysql grant all privileges on 'world' . * to 'username'@'localhost' with grant option
mysql grant all privileges on 'auth' . * to 'username'@'localhost' with grant option
mysql grant all privileges on 'characters' . * to 'username'@'localhost' with grant option

If you are using this to host a server and not to create a repack, you will want to do this:
Code:
mysql
use auth;
update realmlist set address = yourserver'sexternalip and name = 'server name';

Getting your repack together​
Now you will want to put everything in one file so everyone can easily download and run it.
A linux repack is going to be a little bit different than a windows one, it will require a bit more work on the downloader's end.

Get your two executables (authserver & worldserver)
Get your two .conf files
put them all into a single folder somewhere
now drop your databases to SQL files:
Code:
mysqldump -u USERNAME -pPASSWORD --all-databases > mydatabases.sql #no space between -p and PASSWORD
put that file into the folder as well
compress it by going to its parent folder and using the following command:
Code:
tar -zcvf repack.tar.gz NameOfDir
Now you will want to include instructions on how to install ACE, openssl, and mysql
Also be sure to include what user/pass you used for the mysql so that the downloaders can easily create said user and not have to edit .conf files

Since this is for a linux server, you will want to upload this to an ftp host as these are easier to download using the command-line.
Also don't forget to upload your maps, mmaps, vmaps, and dbc folders (all compressed as well)
 
Last edited:

Epicblood

Epic Member
How to Compile: Windows
Alright, time for the much more common, slightly easier windows version of this tutorial.
There are a few things you will want to install so let's do those first.
-Dependencies
To pull the source, you will need Git.
Then you will need to generate the project files using CMake.
Then you will want to compile the source with Microsoft Visual Studio.
You will need to Install a MySQL server.
You need the .Net framework 3.5.
And finally you need OpenSSL
These can all be downloaded here:

Most of these you can just install normally, however if you plan on creating a portable MySQL server to include with your repack, you have to do this (Skip this if this is for you/your server or you don't plan on including a portable MySQL server)
Please note, this part of the tutorial is taken mostly from jeutie's thread here

First, you want to uncheck "install as windows service" and "include bin directories in PATH" then just install as normal.
in the "installdir/bin/my.cnf" change
Code:
basedir=""
datadir=""
to
Code:
basedir="../Server/mysql"
datadir="../Server/mysql/data"
Now inside the Server folder you will want to create a .bat file to start up the server, here is the one provided by Jeutie:
Code:
@echo off
COLOR F
echo _______________________Jeutie's Blizzlike Repack________________________
echo _______________________________MySQL 5.5.9______________________________
echo ################Made Using Epicblood's complete tutorial##############
echo.
echo MySQL is currently running. Please only close this window for shutdown.
echo Please disregard any InnoDB or Plugin notices. They are unnecessary.
echo After your server is shut off, press CTRL C to shut down this service.
mysql\bin\mysqld --defaults-file=mysql\bin\my.cnf --standalone --console

if errorlevel 1 goto error
goto finish

:error
echo.
echo ERROR: the MySQL service could not be started.
echo Please check if no other MySQL server is running.
pause

:finish

Alright, now that you have the "Server" Folder of the repack done, let's move on to compiling the core, shall we?
-Compiling the core
Compiling the core is really very simple and is just some button pushing
First you want to pull the source.
Create a folder anywhere (let's say Desktop).
Now name that folder something like Trinity.
Right click that folder and go to Git Extensions -> Clone
In the "Repository to clone" field, enter
Code:
https://github.com/TrinityCore/TrinityCore.git
The rest should remain the same.
Simply hit clone, wait a few seconds/minutes and congrats you have the source.


Now we want to generate the project files.
This is quite possibly the easiest part (maybe second easiest)
First create a new directory (we will call it Build and put it in the Trinity folder)
Open the CMake GUI
in the source path, browse the folder you just pulled (Desktop/Trinity/TrinityCore)
in the build path go to your build folder (Desktop/Trinity/Build)
then select configure
a window will pop up asking which compiler you want to use, we will use Visual Studio 2010
Make sure the following is checked:
Code:
Scripts
Servers
Tools (unless you don't plan on extracting your own maps, vmaps, mmaps, and dbcs
Use_CorePCH
Use_MYSQL_Souces
Use_Script_PCH
The rest should be fine.
Click configure again.
Then hit generate.
Congrats, the project files have been generated.


Now we want to actually compile our core
In the build folder, find the file called "ALL_BUILD.vcprojx"
Open it with Visual Studio 2010
near the top of the GUI is a part that says "Debug" click that and change to "Release"
now click on the little green arrow next to it
Now go grab a snack, take a walk, do something cause this may take awhile.
When it is done, browse to your build folder again and then to bin/Release
Copy all the files in there to your Core folder (as in Repack/Core and Repack/Server)
Rename the .conf.dist files to simply .conf files
Either extract or download your maps, vmaps, mmaps, and dbcs and put them in the core folder as well.


Now start up your MySQL server
using your favorite DB management tools (Not NaviCat) connect to the server
run the Create.sql file found in TrinityCore/sql/create
then run the auth.sql and characters.sql in their respective databases
download the world database from here
Now run all the updates found in the TrinityCore/sql/updates folder
DO NOT TRY AND COMBINE THESE they do not combine in order, and will not apply properly. I know this is a pain, but it has to be done.

Congrats, you have made a server/repack on a windows host.
Please feel free to ask any questions or give any comments/feedback in this thread.

If I forgot anything or made some sort of typo/mistake let me know :)
 
Last edited:

Epicblood

Epic Member
ArcEmu
How to Compile: Windows
-Things you will need
Before we get started, you will want to install a few programs
You will need:
Code:
[URL="http://code.google.com/p/gitextensions/"]Git[/URL]
[URL="http://www.cmake.org/cmake/resources/software.html"]CMake[/URL]
[URL="http://www.microsoft.com/express/Downloads/#2010-Visual-CPP"]VC++ 10[/URL]
[URL="http://dev.mysql.com/downloads/mysql/"]MySQL[/URL]
[URL="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en"].Net 3.5[/URL]
[URL="http://www.slproweb.com/products/Win32OpenSSL.html"]OpenSSL[/URL]

-Pulling the source
Now you will want to pull the source code, this is really very simple.
Simply make a folder anywhere and name it anything (we will use ArcEmu on Desktop)
Now in there, make a folder named Code
Then right click it and go to Git -> Clone
Repository address is:
Code:
git://github.com/arcemu/arcemu.git
Hit Clone
Now wait a few seconds/minutes and Voilà you have the source (see, that was easy)

-Generating the project files
Now that we have the source code, we want to make it easier to compile.
To do this, we will use CMake to generate project files that Visual Studio will read/interpret and know what files to compile, in what order, and what to include where
So first, make a Build folder under your ArcEmu folder (for me it would be Desktop/ArcEmu/Build)
now open the CMake GUI
Set the Source folder to the Cmake folder inside the Code Folder (Dekstop/ArcEmu/Code/CMake)
Set the build folder to the Build folder we just made (Desktop/ArcEmu/Build)
hit configure
A window will pop up asking us which compiler we want to use
We will be using Visual Studio 10
hit ok, then configure
the default options will be fine for us, so hit configure again
now hit Generate
Woot, another step done. Let's move on

-Compiling the code
This part may seem intimidating, but is really quite simple.
Browse to your Build folder (Desktop/ArcEmu/Build)
Open ArcEmu.sln with Visual Studio 2010
Now it may take a while as it has to parse all the files and get everything ready for you, so don't worry, just relax
If a box pops up asking what language you want to use, select Microsoft Visual C++
Change the box that says "Debug" to "Release"
Now simply click The ALL_Build in the sidebar and hit F7 or the green arrow next to "Release"
This may take a while so grab a snack
There may be some warnings, but as long as there are no errors we're fine.
Congrats, you have compiled ArcEmu

-Making Portable MySQL (only if you want to make this a repack)
Make a folder called Repack inside your ArcEmu folder (Desktop/ArcEmu/Repack)
Now in there, make a folder called Server (Desktop/ArcEmu/Repack/Server)
Please note, this part of the tutorial is taken mostly from jeutie's thread here

in the "installdir/bin/my.cnf" (usually C:\Program Files\MySQL\bin\my.cnf) change
Code:
basedir=""
datadir=""
to
Code:
basedir="../Server/mysql"
datadir="../Server/mysql/data"
Now inside the Server folder you will want to create a .bat file to start up the server, here is the one provided by Jeutie:
Code:
@echo off
COLOR F
echo _______________________Jeutie's Blizzlike Repack________________________
echo _______________________________MySQL 5.5.9______________________________
echo ################Made Using Epicblood's complete tutorial##############
echo.
echo MySQL is currently running. Please only close this window for shutdown.
echo Please disregard any InnoDB or Plugin notices. They are unnecessary.
echo After your server is shut off, press CTRL C to shut down this service.
mysql\bin\mysqld --defaults-file=mysql\bin\my.cnf --standalone --console

if errorlevel 1 goto error
goto finish

:error
echo.
echo ERROR: the MySQL service could not be started.
echo Please check if no other MySQL server is running.
pause

:finish
Now to start your MySQL server, simply run the .bat file

-Setting up MySQL
ArcEmu uses 3 databases:
Code:
arc_logon
arc_character
arc_world
use something like heidiSQL to connect to your database and create these tables
now browse to your code folder (Desktop/ArcEmu/Code)
open the sql folder
execute
Code:
character_structure.sql
logon_structure.sql
into their respective Databases (nothing in the world DB)
We will be using WhyDB for the world database
To use WhyDB, create a new .bat file and insert the following:
Code:
http://svn.xp-dev.com/svn/whydb-users/tool.bat
Then Run the bat file (you only need to import the DB, don't worry about the other options)
Now you will want to create an account, run the following query in the logon database:
Code:
 INSERT INTO `accounts` (login, password, gm, flags, forceLanguage, banned) VALUES ('USERNAME', 'PASSWORD', 'az', '24', 'enEN', '0');

-Configuration
Alright, you have everything all ready and compiled, now you just have to configure your server. This really looks a lot harder than it actually is, so let's get to it.

-World.conf
World.conf needs to know your database info, so set that here:
Code:
<WorldDatabase Hostname = "localhost" Username = "root" Password = "passwd" Name = "arc_world" Port = "3306" Type = "1">
<CharacterDatabase Hostname = "localhost" Username = "root" Password = "passwd" Name = "arc_character" Port = "3306" Type = "1">
Most likely you don't have to change anything (default user/pass for Xampp is root/nopassword)
Simple enough right?

And one more thing:
Code:
<LogonServer DisablePings = "0"
             RemotePassword = "HERE_MUST_BE_THE_SAME_PASSWORD">

-logon.conf
Same thing as world.conf, it needs to know your database infos. Fill those in here:
Code:
<LogonDatabase Hostname = "localhost"
               Username = "root"
               Password = "passwd"
               Name     = "arc_logon"
               Port     = "3306"
               Type     = "1">

And set the Remote password

Code:
<LogonServer RemotePassword = "HERE_MUST_BE_THE_SAME_PASSWORD"
             AllowedIPs = "127.0.0.1/24"
             AllowedModIPs = "127.0.0.1/24">

-Realms.conf
This varies on whether you want to host locally, on Lan, or make it public.
If you want to do Local (just host computer) or Lan (computers in your network or hamachi) you don't have to change anything. However, if you want to make it public, set the realm IP to your external IP address (https://www.google.com/search?q=what+is+my+ip)

-Put in one folder
Now make a folder called ArcEmu or Repack. Inside make 2 folders, one called Server, and one Called core.
Move all core files (arcemu executables, dll files, config file/folders etc) and maps/vmaps/mmaps/dbc into here. In the server folder put your portable MySQL in there.
Now compress and upload to a site like mediafire.
 
Last edited:
Top