This is for win32 support..

I will be doing an install on my personal machine to try and keep things accurate. And do realize,
I'm just writing this up based on how I do things, many others may have different methods than I
use.

The first thing we need to do is build our toolbox, this will be the necessary software to build your
own working ArcEmu server.

--===[TOOLS YOU WILL REQUIRE]===--

MySQL Community Server
Tortoise SVN
Microsoft Visual Studio Express/Professional Edition (Either will work for simple compiling).
SQLYog (Used for database management). Download - SQLyog MySQL Frontend, MONyog MySQL Monitoring Tool
.NET Framework 3.5 (Critical Component.) http://www.microsoft.com/downloads/details...31-508D977D32A6

.NET Framework is easy to install, however it uses a web downloader and depending on your connection it coult take quite a while.


--===[INSTALLATION AND CONFIGURATION OF MYSQL]===--

You will require a database to house all the information, such as mobs, items, spells and much
much more. The software of choice is MySQL so we'll start with that.

Download MySQL here: MySQL :: MySQL 5.0 Downloads

Now, run the installer, it will take you through a series of questions most of which are pretty
explanitory, such as the type of database you wish to use.

SETUP TYPE: Typical
CONFIGURATION TYPE: Detailed
SERVER TYPE: Server Machine
DATABASE USAGE: Multifunctional Database
CONCURRENT CONNECTIONS: This part I won't advise on, this will be based on the capacity
your server will be catering to. ENABLE STRICT MODE: This one I won't advise on either, by
default it is enabled and some web applications and servers require it, however having it enabled
has also caused problems with certain web applications as well.
DEFAULT CHARACTER SET: I usually just select MANUAL and set it to utf-8, though I do this
mostly out of habbit from the mangos days.
SECURITY OPTIONS: Fill in the fields, as for "Enable root access from remote machines" I
usually don't advise this unless you use a strong password as a compromised root account
can destroy your entire user base if someone were to try and hack your server.

Now click Next then Execute. You should get "Press [Finish] to close the Wizard."

And now we walk away from the database portion of things for a little while and move on to some
of the more enjoyable stuff such as the lengthly wait to download Microsoft Visual C++, you can
get the free version of this from the link below.

--===[INSTALLATION OF MICROSOFT VISUAL C++ EXPRESS/PROFESSIONAL EDITION]===--

Microsoft has many flavors of diffent programming languages, ranging from Visual Basic, C#, C++
and Web developer. You can choose to download the entire package which contains all of the listed
but they are not necessary. ArcEmu is written in C++ so we are going to download that one to save
some time.

DOWNLOAD VISUAL C++: Downloads


This will take a little while, once it is done just run the installer.

--===[INSTALLATION OF TORTOISESVN AND SETUP OF SVN DIRECTORIES]===--

TortoiseSVN is a great little piece of software used to track and update revisions for many open
source projects. I won't fully explain TortoiseSVN as it would take me days to do so, but it is an
important item needed to download the latest revisions for ArcEmu, your scripts, databases and
other projects.

DOWNLOAD TORTOISESVN: Download | TortoiseSVN

Installation of TortoiseSVN is simple, just follow the installer insrtuctions.

Once you've downloaded and installed TortoiseSVN we will need to make a home folder for our core
and database. Find a location on your hard drive you wish to place the files we will be using and create
a folder for example named "Warcraft Development" now, go under that folder and make two sub
folders, one called "Core" and the other "Database". Once this step is done we will move on to the
steps where TortoiseSVN comes into play.

Next step in this process is obtaining the files for the core and database. The choice of database is
up to you. There are many database projects out there to choose from, many databases are reffered
to as Ascent databases, these work with ArcEmu as of writing this guide 07/07/2008 though this
may change in time so I will be giving you the link to Next-Chapter Database(NCDB) the officially
supported database for ArcEmu.

--===[OBTAINING THE ARCEMU CORE AND DATABASE FILES]===--

This is where TortoiseSVN comes into play, you will use it to do whats called a "Checkout" from
each SVN repository. I will link them below.

ARCEMU: arcemu - Revision 440: /

NCDB: Revision 31: /

First, right click on your folder called Core you should see an option called SVN Ckeckout...
select this option and it will bring up a box. Under the words "URL of Repository" place the
address listed above for ArcEmu: arcemu - Revision 440: / and click the
"OK" button. It will take a few seconds before things start happening but you should eventually see
a long list of files starting to appear in the checkout box. These are the source files for compiling
ArcEmu, there are a lot of files so depending on your connection speed it could take a while to finish.



Once that has completed, go back to your "Warcraft Development" folder is and right click on
Database, repeat the steps above except use the provided address for NCDB:
Revision 31: /
this will take quite some time until you really see anything happen because NCDB uses a special
installer to cover several other WOWEMU platforums other than ArcEmu, so the database.sql is
quite large. Once this has completed we will move to the next phase.

--===[COMPILING ARCEMU]===--

There are many wonderful features to ArcEmu, so many that I will not cover such things as Compiling
the Map extractors, VMAP extractors or Collision engine. This might be covered at a later date but for
now we will focus on the basics. For more information on working with maps please visit:
Main Page - Wiki

Assuming that you have Visual C++ installed by now, we will move on to compiling the actual ArcEmu
software itself. This can be a tricky process for those not familiar with how this works but I will try and
keep it as simple as possible.

Go to your Core folder and go into Trunk>Extras>ascent-windows-libraries inside you will find a few
folders and a file called readme, this file tells you where to place the files in each of these folders in
your Visual C++ folders. Note that these steps are critical to compiling ArcEmu and if not followed
correctly will lead to compile errors. Again, I cannot stress how critical it is that you make sure to
follow the readme contained in there. If you do not you will get header errors and the build will fail.
Thanks go to Ascent for providing these critical files.

Once you have distributed the files to their appropriate folders go back into the trunk folder and you
will see another folder called win, this contains the project solutions used to compile the emulator.
Now, assuming you have the latest version of Visual C++ you will double click on the latest VC
solution, as of writing this guide 07/07/2008 the newest is ascentVC90. This will open up
Visual C++, now at the upper mid-left of the screen you should see a dropdown box next to a
green arrow, in that box it says Debug, click that drop down box and select Release. Next to it
is another dropdown box that says Win32, now this is where you have to stop and think. You
can choose either Win32 or Win64, you can only use the Win64 option if you are running a 64-bit
version of Windows and have a 64-bit processor, if you are unsure wether you are running a 32-bit
or 64-bit install just go with Win32.

Now, look to the left of the solution and you should see a box labeled "Solution Explorer" right
click on "Solution 'ascentVC90'" and select Build Solution, depending on the age of your PC this
could take quite a while. If you did everything correctly up to this point you should see something
similar to the following:

2>Linking...
2> Creating library .\..\..\bin\Release\ascent-world.lib and object .\..\..\bin\Release\ascent-world.exp
2>Generating code
2>Finished generating code
2>Embedding manifest...
2>Build log was saved at "file://c:\Documents and Settings\Darknation\Desktop\Warcraft Development\Core\ArcEmu Clean\trunk\win\VC90\ascent-world___Win32_Release\BuildLog.htm"
2>ascent-world - 0 error(s), 0 warning(s)
========== Build: 3 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

If you get warnings don't worry too much about it, it's errors that will cause things not to compile
correctly, if you get errors please re-review the above steps. Now, back out of that folder back into
the Trunk folder and you should see a new folder called Bin, under that is another folder called
Release this folder contains the compiled binaries needed to run the server. If at the time of reading
this they are called Ascent do not worry, they are the files needed.

Now, find a place on your hard drive to store your ArcEmu server, for example we will use
C:\ArcEmu. Copy all files from the Bin>Release to your C:\ArcEmu folder. The next thing we need to
do is copy our configuration files into our ArcEmu folder, these files can be found in Core>Trunk>Src
copy all files ending in .conf to your server folder, in this case it would be C:\ArcEmu. The
configuration files are what dictates the functions of your server, they control everything from your
drop rates, exp rates, logon information and database information. The database steps will come
next.

--===[INSTALLING A POPULATED DATABASE]===--

Installing NCDB will provide you with a populated database, however NCDB is second party
software affiliated with ArcEmu, for installation instructions please visit their website at:
Next Chapter Community the below instructions were provided by a member of the NCDB forums,
credits go to gamefreak249:

A simpler guide to installing NCDB

Simple guide on how to install the web installer
By: gamefreak249

Introduction
Ok, so lately there's been much confusion on how to install and configure the web installer
for NCDB. I myself have spent many hours trying to get it to work. This guide will hopefully
be easier to understand then the one on NCDB wiki site.

What you need
Well, to start you’ll need MySQL, obviously. You also need a web server like Apache to run
the web installer. What I’d highly recommend you install, if you’re just starting off, would be
AppServ. AppServ is an installer that has MySQL, Apache, phpMyAdmin, and PHP itself,
all in one.

-The download link is here: AppServNetwork
Make sure to download Appserv 2.5.10, and not the latest one with PHP6. PHP6 does NOT
work with NCDB.

-The next thing you need is obviously an emulator. I won’t go into detail with this, but I
recommend ArcEmu. Their SVN is :
arcemu - Revision 440: /

-Now you also need the NCDB files. Their SVN is: Revision 31: /

-You’ll also need something to view your database. I recommend SQLyog:
The DL link is here: Download - SQLyog MySQL Frontend, MONyog MySQL Monitoring Tool
Scroll down until you see “SQLyog MySQL GUI - Community Edition”.
The community edition is what you want.

1) Creating your 2 databases
Now, this new high tech web installer technology requires 2 databases to function properly.
A “base” database, and a “destination” database. So, open up your MySQL with SQLyog,
and enter the information you entered when you installed it with AppServ. Your host should
be localhost, or 127.0.0.1, and username and password, whatever you set it to.

Now, create your “base” database. Call it “ncdb”
Now, create your “destination” databse. Call it “ncdb2”
Now, that’s done. Leave them empty for now.



2) Setting up the web installer, and web server
Now, once your NCDB SVN is all ready, copy the web installer folder, and put it into:
C:/Program Files/AppServ/www/
Go into the web installer folder, and open up “config.inc.php” which is located inside the “include”
folder. Now, fill in the spaces according to your information. Just remember to not confuse your
base and destination. Save that file and exit.

In your web installer folder, you will see “win-install.bat” Right click on that, and click Edit. Now,
this is very important. Fill in the information where it says :
set user=
set pass=
set wdb=
But set it according to your DESTINATION database. So where it says set wdb=,
You should put in “set wdb=ncdb2”
This is one of the main sources of error in the 2 database differences. Now, save it, and exit out.
Run the .bat file, and choose “Install NCDB on ArcEmu (Ascent)”. That will add the necessesary
world files to “ncdb2”.

3) Adding more files to the databases
Once you added the world files to ncdb2, you’ll need to add some files to your base database, “ncdb”.
Go into SQLyog, click on ncdb, and then at the top, click “Restore from SQL Dump”. It has a green
arrow on the icon. Now, go into the NCDB SVN folder, then trunk, then sql, then double click on
“database.sql”. Click execute. Once that’s done, click on ncdb, and click F5. You should see all
the new tables there. Keep in mind that these tables ARE different from the ones we added to ncdb
earlier.

4) Setting up the web server, and ncdb2
Ok, now we’re almost done, just one more database to finish off. If you set up everything in the web
installer folder right, you should be able to load up your internet browser, and type in:
http://127.0.0.1/web%20installer/
The page should come up. Click on OpenAscent in the middle, and make sure all boxes are
checked off, and click Start Convert. That should take awhile, hopefully it makes it to the end without
error. (I doubt it.)
If you do make it to the end, you will know, because it will say “we code for beer and hookers”

Ok, now you have the world files all set up for ncdb2. Now we need our character tables. You’ll have
to download this file, since the one in the ArcEmu conflict with eachother, and the custom one I
made fixes that. You can download it here: ALL character stuff.sql


Once downloaded, load up SQLyog, click on ncdb2, and then click “Restore from SQL Dump”
again, and execute the character tables. Now go into accounts, set up your account, which you
should know how to do. For full gm, you type in “az” under the gm column, and under flags, type
in 8 (If you have The Burning Crusade). Save it, and exit.


Now, compile your ArcEmu core, get the 4 .conf files, your map and dbc files, set them all up, run
ascent-logonserver, and then ascent-world, and hopefully you’ll get no errors. Change your realmlist
to “set realmlist localhost”, run WoW, and test out your account!


For known errors, consult:

Installation - Next Chapter

If you are not comfortable with the web installer or are having issues please visit: Next Chapter Community for an alternative method of installation.

--===[CONFIGURING ARCEMU AND PROPER SETUP]===--

Now that you have successfully compiled ArcEmu and have the proper files placed in your
ArcEmu folder, we need to do a few more things. Navigate into your ArcEmu server folder that
contains your config and .exe files and make the following folders in there: Scripts, Script_bin,
DBC and maps. As stated above, you will need to read the wiki to find out how to obtain maps,
VMAPS and DBC's, the wiki can be found here:
Main Page - Wiki
now here is where you are on your own, the configuration files.

--===[CONFIGURING YOUR LOGON SERVER]===--

Now we have gotten to the point to where it is time to configure your ascent-logonserver.conf file to
get things started, the .conf files can simply be opened with notepad or any other basic test editor.

Open ascent-logonserver.conf and go to here:

<LogonDatabase Hostname = "host"
Username = "user"
Password = "pass"
Name = "dbname"
Port = "3306"
Type = "1">

These are the setting the logonserver requires to connect you to your logon database, I
myself merge the logon and characters database for simplification, if you are running
everything locally then just change your servers Username to Root, Password
to the password you assigned when setting up MySQL and your database to whatever you
named your logon server database. I.E.

<LogonDatabase Hostname = "localhost"
Username = "root"
Password = "12345"
Name = "character"
Port = "3306"
Type = "1">

Next go here:

<LogonServer RemotePassword = "change_me_logon"
AllowedIPs = "***MUST BE COMPLETED***"
AllowedModIPs = "***MUST BE COMPLETED***">

Ok, setting the RemotePassword is a two fold process, this is the password used to hook
your LogonServer to your WorldServer, this has nothing to do with connectting to your
SQL server and should use a seperate, strong password. I use random Alpha Numeric
password generators commonly found on the web for this, but you can use anything you
want as a password, it doesn't matter

AllowedIPs, now this one can be tricky, it will be set depending on wether you plan
to host only a local network server or a public server. For private use only, you can
fill in the fields with the following so the look like this:

<LogonServer RemotePassword = "PASSWORD"
AllowedIPs = "127.0.0.1/24"
AllowedModIPs = "127.0.0.1/24">

This will allow you to play locally on your server, this will not allow remote connections
from the internet, good for developing and just messing around with Arcemu.

To allow remote connections from the internet we have to substitute 127.0.0.1 the
generic localhost IP for that of your WAN (Wide Area Network) IP address. Simply
substitute 127.0.0.1 with your WAN address. If you are not sure what it is you can
simply go to: IP Automation Page it will display in large numbers what your
WAN IP address is, so for example, mine would read:

<LogonServer RemotePassword = "PASSWORD"
AllowedIPs = "98.213.164.234/24"
AllowedModIPs = "98.213.164.234/24">

This tells your logon server to listen on your internet IP address.


--===[CONFIGURING YOUR WORLDSERVER]===--

On to the world server. The ascent-world.conf contains a vast amnmount of
functions to alter how your ascent server runs, from EXP rates, to drop rates,
Honor System control and much more. For now though, to keep things simple
we will just configure ascent-world.conf to make things run. So go ahead and
open ascent-world.conf, the first things we need to do is edit the database
settings so find this in the config:

<WorldDatabase Hostname = "host" Username = "username" Password = "passwd" Name = "database" Port = "3306" Type = "1">
<CharacterDatabase Hostname = "host" Username = "username" Password = "passwd" Name = "database" Port = "3306" Type = "1">

The only things that really need to be edited for a basic server is Hostname, Password and Name.
In host you typically will just put in "Localhost" for each host name. The Password is
whatever you assigned for your MySQL password, so put that in each Password field.
Name is the name of your world database, per the instructions from NCDB you
would call this database NCDB2. So your configuration would look like the following:


<WorldDatabase Hostname = "localhost" Username = "root" Password = "12345" Name = "ncdb2" Port = "3306" Type = "1">
<CharacterDatabase Hostname = "localhost" Username = "root" Password = "12345" Name = "character" Port = "3306" Type = "1">

Now, this next step is going to take you through the entire config file for a quick sweep
of a checker installed called the "Die Directive" it is a directive intended to make you
read through your config files completly. We are going to go ahead and get rid of
those now. So, using notepad or your text editor of choice do a search for <die this should
come up with two results:

<die msg="I am a newb who didn't even read half my config file!">

and

<die2 msg="I read nearly all my config file, but not the whole thing!">

Delete both of these lines, if you do not your world server will not start. Learn from this though,
Ascent put these in here for a reason, it is to teach you to read through your config files
before asking needless questions.

Now, scroll all the way back to the top of the config file and start going down till you
see:

<Server PlayerLimit = "100"
Motd = "No MOTD specified."
SendStatsOnJoin = "1"
EnableBreathing = "1"
SeperateChatChannels = "0"
CompressionThreshold = "1000"
QueueUpdateInterval = "5000"
KickAFKPlayers = "0"
ConnectionTimeout = "180"
RealmType = "1"
AdjustPriority = "0"
RequireAllSignatures = "0"
ShowGMInWhoList = "1"
MapUnloadTime="0"
LimitedNames="1"
UseAccountData="0"
AllowPlayerCommands="0"
EnableLFGJoin="0">

Now, I'm only covering this section for three settings, and they are for
small communities and server configuration. Server PlayerLimit determins
how many people are allowed to be connected at a time, default is 100
meaning only 100 epople can be logged in at the same time.

Modt is your Message of the Day setting, this will be displayed each time
a player logs in.

EnableLFGJoin is mainly for smaller servers and funservers, it will allow
cross faction communications. Meaning if an alliance says hi in LFG
a horde can respond back and they can understand each other.

Now we move on from the World settings onto something different, so scroll
down until you see this:

<LogonServer DisablePings = "0"
RemotePassword = "change_me_world">

Remember that RemotePassword you set in your logonserver? Well you need to
change the one here to mact that one, otherwise the logonserver and worldserver
will not hook.

That should wrap things up for the worldserver conf files, on to the next step!

--===[CONFIGURING YOUR REALMS]===--

Here is where some people get a bit confused. There used to be a realmserver.exe
that compiled with Ascent, this was used to work in clustering, which
with ArcEmu is no longer rellevant as the clustering project never really
was developed publically. However, the ascent-realms.conf is still
very relevant to setting up your server. So go ahead and open that file up
and go to here:

<LogonServer Address = "127.0.0.1"
Port = "8093"
Name = "Default Logon"
RealmCount = "1">

Now leaving LogonServer at 127.0.0.1 is fine if you are only running
things on your local network, nowever if you want ti public you'll need
to change it to your WAN IP, as we discussed under the logonserver
configuration portion of the guide.

Name is for reference only in here, it was for an old multi realm system
part of Ascent/ArcEmu that is no longer needed. Leave the rest of
the setting as they are.

Now navigate to here:

<Realm1 Name = "Test Realm"
Address = "127.0.0.1:8129"
Icon = "PVP"
Population = "1.0"
TimeZone = "1">

Realm1 Name is going to be the name of the realm that is listed
when players log into your server. So whatever name you specify here
will be listed in the realm list like in retail.

Address is where you also will have to replace 127.0.0.1 with
your WAN IP if you want people on the internet to be able to access
it. I recommend leaving TimeZone, Icon and Population alone, I
have heard messing with these settings can cause odd behavior.






--===[CREDITS]===--

Darknation - Install Guide Author
ArcEmu Community - Hosting this Install Guide
NCDB - For the easy to install and fabulous database.
Blackhawk - For the tip on setting up the logon server IP's
Ascent & Burlex - Without them, we would not have had the basis for our fork and the library files.


› See More: ArcEmu Installation Guide