Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Mega Thread] Getting Started for beginners

Newbie Spellweaver
Joined
Apr 1, 2009
Messages
35
Reaction score
0
Getting the source code:
- Get GIT




Getting Arcemu with GIT:
- First you need to create a directory for Arcemu.
- If you are on windows, you will have to start a git bash in that directory.



- Starting cloning the Arcemu GIT repository with the following command:
Code:
git://github.com/arcemu/arcemu.git



- Then you wait until it downloads



- This is how it looks when it's done.



Your read for the next step!

CMake build system:
- Get CMake




Next Step For Windows:
- You will need a C++ Compiler


- Find and start the CMake GUI



- Type in the path to the "cmake" sub-directory of your Arcemu checkout to the "Where is the sourecode" field, or click "Browse source" button and find it using the file browser dialog.

- Type in the path to the directory where you will build in to the "Where to build the binaries" field, or click the "Browse Build" button and find or create it using the file browser dialog.

- Click the "Configure" button, and you will see



- Choose the compiler you want to build Arcemu with.



- Click "Finish"



- Find the "CMAKE_INSTALL_PREFIX" option, and edit it. Fill in the path to the directory where you want to install Arcemu.



- Now click the "Configure" button



- Click the "Generate" button.



Then you should be done with that! Close CMake!

Next Step For Linux:
This would take to long to type out. so go here!

Next Step For Mac:
This would take to long to type out. so go here!

Now Lets Compile:

Windows:
- Browse to where you have generated the build files.
Then open "Arcemu.sln"

- Go to the previous menu in the toolbar or press F7 to "Build Solution"

- The program will do some work and compile the code and related link libraries, sit back for a bit.

- If your build was successful(you followed this guide to a T) you will get an output similar to this.



- Now that you have a successful build of ArcEmu you need to install/copy the files. You can do that by selecting the INSTALL project in Visual Studio, right clicking on it, then selecting Project-Only -> Build only INSTALL.

- Select the INSTALL project



- Right click on it, then select Project-Only -> Build only INSTALL



- After doing this, you should see something similar to this



You have successfully compiled your server

Linux:
This would take to long so go here!

Mac:
This would take to long so go here!

Database Setup:
- Install MySQL
Windows
-
-
Linux
-
-
Mac
-
-

Install MySQL Client:
Windows -
Linux - (Goes to google, to help out)
Mac - (Goes to google, to help out)

- Using your client, connect to 127.0.0.1 with the username as "root" and the password you set when you installed MySQL.
Create 3 databases and name them:
arc_logon
arc_character
arc_world


- Open your arcemurootfolder\sql directory. In this you will find 3 files:
character_structure.sql
logon_structure.sql
world_structure.sql


- After that, switch to your character database and import the character_structure.sql file. If you're using SQLyog or Navicat you can do this by right-clicking the newly-created database, and then selecting Execute Batch File. Repeat this step with the logon database and the logon_structure.sql file.

- world_structure.sql is the database structure only and it is for people who want to build their own database project. It doesn't contain any data. It's better to follow the next step how to get a world database.

- The world database contains all data on things like NPCs, GameObjects, quests, gossips.

- There are many different projects with different aims the most popular categories are:
- Blizzlike data that is similar or identical to the real thing.
- Funserver data created or made with insane, game breaking stats or values.​

WhyDB:
-
- SVN Address: http://svn.xp-dev.com/svn/whydb-users/

German WhyDB:
-
- SVN Address: http://svn.code.sf.net/p/arcgdb/arcgdb/trunk

Pathway (blizzlike, custom gmisland):
-
-

Note: To download data from the SVN repositories you need a up to date SVN client, f.ex. for Windows .

Creating your administrator account:
- Switch to your logon database. Run the following query (replacing the values for login and password with your own):

Code:
INSERT INTO `accounts` (login, password, gm, flags, forceLanguage, banned) VALUES ('admin', 'admin', 'az', '24', 'enEN', '0');

A breakdown of this query for those that do not understand SQL:
  • Username (login): Admin
  • Password: Admin
  • GM Level: az (for all commands)
  • Expansion: All
  • Banned: Not banned. (the field doesn't have a default value, so it's required)

Configuration Files:
- Look for the *.conf files in the "configs" folder of ArcEmu SVN trunk. Copy the entire configs folder to your ArcEmu Installation Folder in order for the server to read them.

  • /wherever-you-put-arcemu-/configs/world.conf
  • /wherever-you-put-arcemu-/configs/logon.conf
  • /wherever-you-put-arcemu-/configs/realms.conf
  • /wherever-you-put-arcemu-/configs/optional.conf

Configuring world.conf:
- Enter your MySQL information at the top of this file.
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">
  • Note: username = mysql username password = mysql password name = database name

Code:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# LogonServer Setup
#
#    DisablePings   
#        This directive controls whether pings will be sent to the logonserver to check
#        if the connection is still "alive". Expect problems if it is disabled.
#        Default: 0
#
#    RemotePassword
#        This directive controls the password used to authenticate with the logonserver.
#        It must be the same between the two configs. If it is not, your server will
#        not register.
#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

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

Configuring logon.conf:
- Enter your MySQL information.
Code:
<LogonDatabase Hostname = "localhost"
               Username = "root"
               Password = "passwd"
               Name     = "arc_logon"
               Port     = "3306"
               Type     = "1">

I hope you remembered that password. Enter it here.

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

Note: If your servers communicate to each other through a different ip then 127.0.0.1 change it to your IP's to allow them to communicate to each other.


Hosting on localhost:
- Scenario
  • Single developer setup for local testing, server is hosted on the same machine as the client.
  • Fastest and easiest way of deploying Arcemu.

- Settings
  • The default network settings of Arcemu are tuned for this use-case, so no modification is necessary on the server part.
  • Set the client realmlist to 127.0.0.1


Hosting on a LAN:
- Scenario
  • Single developer setup for local testing, server is hosted in the same private network as the client.

- Settings
  • By default Arcemu listens on all IP addresses of the computer it's hosted on, so no changes are neccessary.
  • Set the client realmlist to the IP address of the computer hosting the server.


Hosting publicly on the Internet:
- Scenario
  • Single or multiple developer setup for hosting the server on a remote host.

Hosting publicly from a remote dedicated server:
- Settings
  • Set the address of the realm in realms.conf to the IP address of the network card exposed to the Internet.
  • Set the realm list of the client(s) to the same IP address.

HHosting multiple realms:
- Scenario
  • Multiple developer setup for hosting multiple copies, possible built from different code.
  • 1 Logon and multiple world servers.
  • You will need a total of X+1 copies of Arcemu for this, where X is the number of realms.

  • You will need a total of X character databases, one for each realm you set up.

- Settings
  • Install Arcemu as usual
  • Make a copy of the installation into X+1 number of new folders ( X is the number of realms ).
  • Set the "RealmCount" directive in the first (original) directory to X ( where X is the number of realms ).
  • Add the realms to the realm section of the realms.conf file of the first (original) directory, making sure that their ports are not the same.
  • A good port numbering scheme could be that you use 8129 as the port for the first realm and increase it by one for every realm.

  • Set up each realm's realms.conf file too.
  • Make sure that each realm's realms.conf file has 1 set as "RealmCount"
  • Make sure that each realm's realms.conf file has 1 realm, with the same settings as their entry in the first directory's realms.conf.
  • Set up each realm's world.conf file so that the "WorldServerPort" setting matches the port that you set in realms.conf for that realm.
  • Set up a separate character database for each realm, and make sure that the "CharacterDatabase" directive of world.conf points to each realm's own character database.
  • You can start up the servers by starting up the logon server in the first directory, and the world servers from each realm's directory.
  • differences when hosting the realms on different computers
  • Instead of making X+1 copies to different directories, you make those copies to different computers.
  • Set up the right IP addresses in the first machine's first directory's realms.conf file.
  • Add the IP addresses of the realms either individually or as a CIDR mask to the logon.conf file of the logon server, to the AllowedIPs, and AllowedModIPs variables.
  • Set the client realm list to the logon server's IP address.

Hosting using more than 1 computers:
- Scenario
  • Rare use case considering nowadays' hardware, but possible.
  • Useful when there are already services, but the machine hosting them are too busy to host everything for Arcemu.
  • In this scenario there is a dedicated database server, dedicated logon server and dedicated world server.

- Settings
  • Set up the database server normally, import the Arcemu databases.
  • Set up the dedicated logon / world server's host computer like you would normally.
  • Configure the logon server and world server to connect to the dedicated database server in the database section of the logon.conf and world.conf files.
  • Set up the realms.conf file like you normally would for remote hosting.
  • Copy the same realms.conf to both servers.
  • Change the IP address in the "LogonServer Address" variable in the world server's realms.conf to the logon server's IP address.
  • Add the world server's IP address to the logon server's logon.conf file's "AllowedIPs" and "AllowedModIPs" variable.
  • Set the client's realm list to the logon server's IP address.

Final Words:
  • Make sure to allow traffic thru the ports used by your servers in your firewall.
  • In the NAT scenario you will also need to set up port forwarding.
  • The default ports used by Arcemu are 3724 for the logon server and 8129 for the world server.
  • You will have to allow incoming traffic thru the inter-server connection port, if you are hosting the realms and the logon server on different machines.
  • The inter-server port is 8093 by default.

  • You can change this default port in the realms.conf file by setting the "ServerPort" variable to the desired port.

  • When hosting multiple realms on the same machine, you can save some space if you instead of copying all the DBCs, maps, and vmaps to every realm's directory, you just use symlinks

Steps to extracting vmaps:
  • Go to the tools folder inside your Arcemu folder ( for example C:\Arcemu\tools )
  • Copy the following files to your World of Warcraft directory ( where wow.exe is )
  • vmap_extractor ( .exe on Windows )
  • vmap_assembler ( .exe on Windows
  • vmaps ( .bat on Windows, .sh on Linux, BSD, or OS X )
  • Go to your World of Warcraft directory ( where wow.exe is )
  • Start vmaps (.bat on Windows, .sh on Linux )
  • Wait until the process completes ( it could take several hours in the worst case )
  • When it is done and all went OK, you will see 2 new directories Buildings and vmaps
  • Delete the Buildings directory ( it was only needed while creating the vmaps )
  • Copy the vmaps directory ( not the .bat or .sh file!!! ) to your Arcemu directory ( C:\Arcemu for example )

Enabling collision in world.conf:
  • Go to your Arcemu directory ( C:\Arcemu for example )
  • Go to the configs sub-directory.
  • Open world.conf with a text editor
  • Find where it says
Code:
Collision="0"
  • Change it to
Code:
Collision="1"
  • Save your changes!

Starting the server:
- The procedure for starting the server is very simple:
  • Go to your Arcemu directory / folder ( for example C:\Arcemu )
  • Start the logon server ( logon.exe on Windows and simply logon on Unix / Linux )
  • Start the world server ( world.exe on Windows and simply world on Unix / Linux )

There you go, you obviously need WoW (v 3.3.5)

-

Note: If you need any help with this, please refer to here:


Source:
 
Newbie Spellweaver
Joined
Jun 20, 2012
Messages
23
Reaction score
0
that's awesome.. very complicated i'll try....
 
Newbie Spellweaver
Joined
Jun 30, 2011
Messages
37
Reaction score
2
Does one no longer need to run ad.exe to create the DBC files for ArcEmu?
 
Newbie Spellweaver
Joined
Mar 9, 2011
Messages
42
Reaction score
1
lol you should add a few sites for say as weapons website templates and support
 
Newbie Spellweaver
Joined
May 27, 2008
Messages
11
Reaction score
0
Im sorry

i have problem with

can u fix for me? im very2 noob . n tq for ur attention
 
cats addicted
Loyal Member
Joined
Apr 1, 2010
Messages
1,363
Reaction score
295
For the linux part of "Install MySQL Client" its phpmyadmin or if you prefer real programs, its Navicat for Linux.

phpmyadmin:

Navicat:

-------------------------------------------------

SVN on Linux is subversion. Its in allmost all repositories. For Ubuntu or Debian Linux open Terminal and type: sudo apt-get install subversion
 
Newbie Spellweaver
Joined
Jul 2, 2013
Messages
11
Reaction score
0
I have tried it on Windows, but every time I try to compile i get errors.
Is there any solutions for it?
 
Back
Top