FANDOM


Logo
ArcEmu - Part Two!&nbsp



Configuring file logon.confEdit

/*********************************************************************** * ArcEmu Logonserver Configuration File * Last edited: 11/14/2010 * ******************************************************************************* * Configure the logonserver to connect to the accounts mysql database below * ******************************************************************************* * Database Section * * LogonDatabase.Host - The hostname that the database is located on * LogonDatabase.Username - The username used for the mysql connection * LogonDatabase.Password - The password used for the mysql connection * LogonDatabase.Name - The database name * LogonDatabase.Port - Port that MySQL listens on. Usually 3306. *******************************************************************************/

<LogonDatabase Hostname = "host" Username = "username" Password = "Passwd" Name = "database" Port = "3306">

/* Host Directive * * This is the address that the realmlist will listen on. * To listen on all addresses, set it to 0.0.0.0 * Default: 127.0.0.1 (localhost) * * Note: ISHost is the interserver communication listener. */

<Listen Host = "0.0.0.0" ISHost = "0.0.0.0" RealmListPort = "3724" ServerPort = "8093">

/* Server file logging level * * This directive controls how much output the server will * write to log files. It cannot be disabled * 0 = Normal + Error; 1 = Detail; 2 = Debug * Default: 0 */

<LogLevel File = "0">

/* Account Refresh Time * * This controls on which time interval accounts gets * refreshed. (In seconds) * Default = 600 * 600 seconds = 10 minutes - 1 second = 0.0166666667 minutes 300 seconds = 5 minutes, 150 seconds = 2.5minutes * */

<Rates AccountRefresh = "600">

/* WorldServer Setup * * RemotePassword * This directive controls the password used to authenticate with the worldserver. * It must be the same between the two configs. If it is not, your server will * not register. * * Default: "change_me_logon" * * AllowedIPs * This section MUST be completed, otherwise all attempts to link your servers will fail. * These "Allowed" fields are a space-separated list of CIDR-form IP addresses that are allowed * to make server connections to your logonserver, and register realms. * For example, everything in the 127.0.0.* range would be: * 127.0.0.0/24, as 24 of the bits must match the 127.0.0.0 * * To allow a single IP, * 1.3.3.7/32, would allow only 1.3.3.7 to connect as 32 of the bits must match. * * AllowedModIPs * In the same form as AllowedIPs, these are the IPs that are allowed to modify the database * (adding bans, GMs, account permissions, etc) */

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

Configuring file Realms.confEdit

/***************************************************** * ArcEmu Realms Configuration File * Last edited: 11/14/2010 * * Configure ArcEmu's Realms below ****************************************************** ****************************************************** * LogonServer Section * * Address: * The address (no port) of the server. * * Port: * The port on which the logon server listens. (*** NOT 3724 ***) * * Name: * Not really relevant, but name the logon. * * RealmCount: * The number of realms in the next section. * To add more realms, increase this - and also fill out more realms below depending on the configuration you need to connect to them. * ******************************************************/

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

/****************************************************** * Realm Section * * Name: * The name of the realm. * * Address: * The address (and port) of that realm. * * Icon: * The type of realm (PVP, Normal, RPPVP, RP) * * TimeZone: * The location of the server (1=Development, 2=United States, 3=Oceanic, 4=Latin America, * 5=Tournament, 6=Korean, 8=English, 9=German, 10=French) * * Population: * (0 = low, 1 = medium, 2 = high) * * Important information below * * * To make your server public and for you to be able to connect to it, please read this entirely. * * * We added two more realms to the default, why? Because of how internal networking works - each outside IP to your IP needs a connection to listen on for players/you to be able to log into. * This issue came up alot and MANY poorly written guides also came up with modifications to the host list in windows and a bunch of other fallacies. * Using these new "three realm" configs you don't have to follow any guides but this one. * * <Realm1 Name = "My Realm Name" * Address = "internet-url-or-ip:8129" * Icon = "PVP" * Population = "1.0" * TimeZone = "2"> * * <Realm2 Name = "Private" * Address = "internal-ip-address-for-lan-access:8129" * Icon = "PVP" * Population = "1.0" * TimeZone = "1"> * * <Realm3 Name = "Localhost" * Address = "localhost:8129" * Icon = "PVP" * Population = "1.0" * TimeZone = "1"> * * EXPLANATION: * * These three realms are all one realm, all making different listening IPs so others may log into the world. * * Realm1 is the public realm, people outside of your network log into this. * * Realm2 is the IP of the computer hosting the server. It will most commonly be a 192.168.*.* IP. NOT YOUR OUTSIDE/INTERNET IP. This is so other computers in your local arena network can connect to the realm. * * Realm3 is the localhost connection, you will be using this to log into your server if you host and login to the server from the SAME computer. * * Realmlist would then be the IP that is suitable for you to use in your setup, players will use the realm1 URL - while you use either realm2 or realm3 depending on the server setup. * * You can cleanup the unused realms you made while doing this process if you have any, however even if you use a Realm3 type configuration to login, remember local network users on the same LAN as you will use Realm2 to login. * * To obtain your LAN IP address on: * Windows = windows-key+r > type "cmd" > type "ipconfig" > under "IPV4 Address:" * Linux = terminal > type "ifconfig" > under eth0's "inetaddr:" * To obtain your INTERNET IP: * Go to: http://www.whatsmyip.org/ * Foward ports: 3724 (Realmlist) and 8129 (World) * If you add more outside(public) realms remember that their world ports need forwarding too. * * Timezone values : * 0=Korean 16=China * 1=Development 17=CN1 * 2=United States 18=CN2 * 3=Oceanic 9=CN3 * 4=Latin America 20=CN4 * 5=Tournament 21=CN5 * 6=Korean 22=CN6 * 8=English 23=CN7 * 9=German 24=CN8 * 10=French 25=Tournament * 11=Spanish 26=Test Server * 12=Russian 27=Tournament * 13=Tournament 28=QA Server * 14=Taiwan 29=CN9 * 15=Tournament 30=TestServer2 ******************************************************/

<Realm1 Name = "My Realm Name" Address = "internet-url-or-ip:8129"
Icon = "PVP" Population = "1.0" TimeZone = "2">

<Realm2 Name = "Private" Address = "internal-ip-address-for-lan-access:8129"
Icon = "PVP" Population = "1.0" TimeZone = "1">

<Realm3 Name = "Localhost" Address = "localhost:8129"
Icon = "PVP" Population = "1.0" TimeZone = "1


Configuring file Optional.confEdit

/******************************************************************************** * ArcEmu Optional Configuration File * Last edited: 11/14/2010 * * This configuration file contains all non-blizzlike values. ******************************************************************************** ******************************************************************************** * How to use this config file: * Config files are in a block->variable->setting format. * A < signifies the opening of a block, the block name is expected after that. * After the block name, a space and then the settings separated by = / ' '. * * e.g. * <block setting="0" someval = "1"> * * Comments can be in C format, * e.g. /* some stuff * / * with a // at the start of the line * or in shell format (#). ******************************************************************************** ******************************************************************************** * Optional Settings * * Starting Level * This controls at which level characters are created. Range is from 1-80. * Default: 1 * * Level Cap * This variable controls the level that stats will be generated up to internally. * Beyond this level players can still see a higher level visually but their stats won't * increase beyond this point. * Default: 80 * * Generated Level Level Cap * This variable controls the level at which stats will generate up to. Generally the formulas go * crazy after level 80 so this way you can keep the high visual but stats at a reasonable value. * Default: 80 * * Allow The Burning Crusade characters * This will override account settings, so you can disable TBC from your server without having to mess with accounts. * Default: 1 * * AdditionalFun * it's verbose. * Default: 0 (disabled) * * Unstuck * Default: 0 (disabled) * * UnstuckCooldown * Default: 60 (0 = No cooldown, otherwise time in seconds) * * UnstuckToBind (Hearthstone coordinates) * Default: 1 (0 = No, 1 = Yes) * * MaxProfessions * The maximum number of professions a player can have at a time. * Default: 2 * ********************************************************************************/

<Optional StartingLevel="1" LevelCap="80" GenLevelCap="80" AllowTBC="1" AntiMasterLootNinja="0" AdditionalFun="0" DKStartingTalents="0" Unstuck="0" UnstuckCooldown="60" UnstuckToBind="1" MaxProfessions="2">

/******************************************************************************** * Inter-faction Options * * InterfactionChat * This directive controls whether horde and alliance players can talk to each other. * Default: 0 (disabled) * * InterfactionGroup * This directive controls whether horde and alliance players are able to create a group together. * Default: 0 (disabled) * * InterfactionGuild * This directive controls whether horde and alliance players are able to create cross-faction guilds * Default: 0 (disabled) * * InterfactionTrade * This directive controls whether horde and alliance players can trade with each other. * Default: 0 (disabled) * * InterfactionFriends * If this is enabled players can add other players from the opposite faction to their friends list * Default: 0 (disabled) * * InterfactionMisc * This directive controls whether horde and alliance players are able to use different functions * on players of the opposite faction. This includes e.g. using the /who command. * Default: 0 (disabled) * * CrossOverCharacters * If this is enabled players are able to create both, horde and alliance characters on a PVP realm. * Default: 1 (enabled)(Blizzlike) * ********************************************************************************/

<Interfaction InterfactionChat="0" InterfactionGroup="0" InterfactionGuild="0" InterfactionTrade="0" InterfactionFriends="0" InterfactionMisc="0" CrossOverCharacters="1">

/******************************************************************************** * Color Configuration * * AnnTagColor * This controls which color the [] tag in front of announces has. * Default: 2 (Light Blue) * * AnnGMTagColor * This controls the color of the GM/Admin tag in announces. Only enabled if GMAdminTag is set to 1. * Default: 1 (Light red) * * AnnNameColor * This controls the color of the game master's name in announces. * Default: 4 (Green) * * AnnMsgColor * This controls the color of message in announces. * Default: 6 (Gold) * * * You can choose one of the colors below. * LightRed = 1 * LightBlue = 2 * Blue = 3 * Green = 4 * Red = 5 * Gold = 6 * Grey = 7 * White = 8 * Magenta = 9 * Yellow = 10 ********************************************************************************/

<Color AnnTagColor = "2" AnnGMTagColor = "1" AnnNameColor = "4" AnnMsgColor = "6">

/******************************************************************************** * Extra Scripts Configuration * * Instant80 * Enables Instant80 mode. * * Portals * Spawns portals at transports and cities. For player fast travel. * ********************************************************************************/

<Extra Instant80="0" Portals="0">

/******************************************************************************** * Game Master Configuration * * ListOnlyActiveGMs * List only game masters with enabled GMFlag to players without any permissions. * Default: 0 * * HidePermissions * Hides permission flags from players without any permissions. * Default:0 * * ********************************************************************************/

<GameMaster ListOnlyActiveGMs = "0" HidePermissions = "0">

/******************************************************************************** * Common Schedule Configuration * * AutoBroadCast (Multi-Languages supported) * Enable/Disable new broadcast system. * Default: 0(Disable) 1(Enable) * * BroadCastInterval * Contents sending on interval by second * Default:(Min:10 Max:1440) * * BroadCastTriggerPercentCap * Setup the cap of chance in condition with contents sending in each BroadCastInterval's value * Notice: OP can setup any of message's priority, this could be adjustment in field `percent` of table `worldbroadcast` * Default:99 (min:1 max:99, 99 only displaying message on priority 100 set.) * i.e : If set 50 ,it means all of messages 100% selected(but may not displayed) by higher than '50' priority with each broadcastinterval. * The total selected messages(>51 priority) chosen at random with send to all players. * * BroadCastOrderMode [0-1] * 0:RandomMode - By Triggering & Conditions * 1:SerialMode - [ignored both ->field `percent` from table `worldbroadcast` & TriggerPercentCap parameters.] * Default:0 * ********************************************************************************/

<CommonSchedule AutoBroadCast = "0" BroadCastInterval = "10" BroadCastTriggerPercentCap = "2" BroadCastOrderMode = "0">

/******************************************************************************** * Extra Class Configurations * DeathKnightPreReq * Enable/Disable requirement to have a level 55 character on your account before allowing creation * Of a Death Knight hero class. * 1 = level 55 * 0 = Any level * * DeathKnightLimit * Enable/Disable limit to have a more than one Death Knight Hero Class per realm. * 1 = Enabled (Only one Death Knight per realm) * 0 = Disabled (You can create a 10 DK per realm) * ********************************************************************************/

<ClassOptions DeathKnightPreReq = "1"

   DeathKnightLimit = "1" >

/******************************************************************************** * Gold Settings Configuration * * EnableGoldCap * Enable/Disable Maximum Gold. * Default: 0(Disable) 1(Enable) * * StartingGold * On Creating a character they will start with this amount in Gold * Default: 0 * * MaximumGold * Maximum amount of Gold a character can hold * Default: 214748 (214k gold) * Note: Client Max is 214748 Gold (2^31, signed int32) * ********************************************************************************/

<GoldSettings EnableGoldCap = "1"

     StartingGold = "0"
     MaximumGold = "214748">



I add there too a small instructions for configurinf files.


Configuring world.conf

Enter your MySQL information at the top of this file.

<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">

username = mysql username password = mysql password name = database name


#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# 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.confEdit

Enter your MySQL information.

<LogonDatabase Hostname = "localhost"
               Username = "root"
               Password = "passwd"
               Name     = "arc_logon"
               Port     = "3306"
               Type     = "1">

I hope you remembered that password. Enter it here.

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

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.


Configuring hosting of the server!Edit

This page explains how to set up Arcemu for different use-cases.

If you haven't yet done so, first configure the settings that are common for all use-cases, you can find documentation here

Hosting on localhostEdit

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 LANEdit

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 InternetEdit

scenario

  • Single or multiple developer setup for hosting the server on a remote host.


Hosting publicly from a remote dedicated serverEdit

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.


[1] When using a Virtual Private Network (VPN) the setting is pretty much the same, except you need to set the realm's IP address and the client(s) realm list to the VPN interface address of the server





Hosting publicly from a home network behind NAT ( home gateway / router )Edit

settings

  • For this scenario to work you will have to use at least a dynamic DNS address.
  • Set the address of the realm in realms.conf to the DNS address.
  • Set the realm list of the client(s) to the same address.
  • Create a hosts file entry in the client computer(s) that are inside the LAN, that resolves this DNS address to the LAN side IP address of the computer where you are hosting.


[2] This workaround is necessary because the server sends the address field as it was typed, and most SOHO ( Small Or Home Office ) router devices don't allow connection from the inside to the outside IP address.


Hosting multiple realmsEdit

scenario

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



[4] 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.


[5] 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 computersEdit

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 WordsEdit

  • 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.


[6] 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.


[7] The inter-server port is 8093 by default.



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



[9] 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


Enabling collisions.Edit

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.confEdit

  • 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
Collision="0"
  • Change it to
Collision="1"
  • Save your changes!

Starting the server!Edit

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 )

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.