Arcemu F.A.Q (Frequently Asked Questions)
What is Arcemu?
Arcemu is a reimplementation of the World of Warcraft server, based on OpenAscent. Historically it is referred to as "World of Warcraft server emulator", altough this is not correct.
Who makes Arcemu?
Arcemu is made by a bunch of hobbists for learning and fun purposes.
Which language is Arcemu being written in?
Arcemu is written in the C++ programming language using various libraries.
Is Arcemu portable?
Yes it is, the 2 main platform it is used on is Windows and Linux on both x86 and X64 processor architectures.
How does Arcemu know how a Wow server works? Does it contain Blizzard code from the retail servers?
The Arcemu codebase doesn't contain any code from Blizzard. Everything in there was reimplemented from the datas found during reverse engineering.
Are you affiliated and/or supported by Blizzard?
No, we are not in any way.
Can you give me the client? Can you provide a link to the client? How can I get the World of Warcraft client?
We cannot nor would we give you a client even if we could. We encourage you to buy the client from a software store. Doing so shows your support towards Blizzard and the money you pay financially supports the further development of World of Warcraft. If you cannot or not willing to pay the monthly subscription of the game, then it is the least you can do. We condemn piracy, and ask you to buy the game.
Is Arcemu illegal?
As far as we are concerned practically neither legal nor illegal. Legally it is somewhere in between.
Is playing on an Arcemu server illegal?
It is not illegal. However when you open the world of warcraft client you accept Blizzard's TOU and EULA which explicitly states that you can only connect to an official Blizzard server with it. This means they can sue you for playing on an Arcemu server (or any other non-blizzard server for that matter). They can also terminate your retail account. However we have yet to see it happening to anyone.
Is hosting an Arcemu server illegal?
Yes. Since Arcemu in order to be able to function as a wow server, requires Blizzard files extracted from the client (dbc, maps, vmaps).
How much does Arcemu cost?
Arcemu is a free software. This means you can get it without paying anything. You are also allowed to have the source code (in fact we distribute the source only). You can redistribute it, modify it, use it and do whatever you want with it as far as you respect the terms and conditions in the GNU AGPL license. For more information please refer to the license itself: http://www.gnu.org/licenses/agpl.html When you get Arcemu you automatically accept that license.
What is the intended audience of Arcemu?
As Arcemu is under constant development, the primary audience of the project are system/network administrators and software developers who have adequate problem solving ability and who can work on their own without supervision. Unfortunately we don't have the time or the resources to train simple users to become one of these. Also we don't have the time and resources to help "professionals" who lack the mentioned skills. So if you are interested in hosting an Arcemu server you need to get the appropriate training yourself.
Which skills do I need to successfully set up and host an Arcemu server?
- Most importantly reading and understanding "the english language".
- System administration (installing software, running software, managing users/permission, managing system
load, managing system resources, troubleshooting)
- Network administration (Setting up and keeping a network running, understanding and being able to use TCP/IP
networks, network security, troubleshooting, etc)
- Database management (Setting up and running a database server, understanding and being able to use a database
If you have problems with either of these or you find these too vague you shouldn't even try to set Arcemu up.
You are not going to get *ANY* support regarding these topics.
How can I get Arcemu?
You can either download a binary package we provide or clone our GIT repository and compile the source code.
How can I get earlier versions of Arcemu?
GIT stores all versions of the software so you just need to tell your client that you want an earlier version. As to how to do this on your system, with your client, please refer to the documentation of that software.
Where can I get binary distributions of Arcemu?
The wiki has download links.
Where can I find instructions for setting up Arcemu:
We suggest and require you to read the Arcemu wiki throughoutly. You can find it here:
In a nutshell:
- You need to check out Arcemu from the GIT repo
- You need to compile Arcemu with a C++ compiler
- You need to configure Arcemu
- You need to extract the required files from the wow client (dbcs, maps, vmaps)
- You need to set up a database backend, and install an Arcemu database
- After all this you need to have lots and lots of fun :D
How many people can my server hold?
Well it depends on your hardware and Internet connection. There are no official figures, but you should be able to make a rough estimate on your own.
Where can I get support for Arcemu?
We have a discussion board: http://www.arcemu.org/forums/ We also have an IRC channel: irc.freenode.net/6667, #arcemu
Please note that you are not going to get support regarding the following topics:
- Topics that are covered by this FAQ and by the wiki.
- Topics that are not Arcemu related
- Topics regarding customizing your server
- Topics regarding system/network administration
Ofc if something is too vague you may ask, the worst thing that can happen is that we don't answer and you will have to find it on your own. In this case you need to extend your knowledge.
How can I get involved?
As Arcemu is a community driven project, you are strongly advised to get involved if you can. You can help out multiple ways:
- Spread the word about Arcemu.
- Help covering the site hosting costs by making a small donation.
- Report bugs.
- Improve Arcemu by submitting patches, contributing code.
What are the causes of "bugs"? Why is Arcemu behind the official patch?
As it was mentioned earlier Arcemu is a product of reverse engineering the protocol and reimplementing the official server. Therefore we do not have all datas the client needs from the server to make all features work (or at least it takes more time to implement all of them). Also whenever Blizzard moves on a new version we need to do further reverse engineering to find the changes they made. The team and the number of active contributors being small also contributes to the delays.
Where can I report bugs?
We have a bug tracker here: https://github.com/arcemu/arcemu/issues?direction=desc&sort=created&state=open
Please note that you will have to register on the site to be able to report bugs. Please also note that the bug tracker is independent from the forums and the IRC. Therefore you will have to register everywhere seperately. Please make sure to report only Arcemu related errors, as we cannot do anything about content related problems (contents are provided by the database).
What is the difference between database and core (Arcemu) bugs?
The core (Arcemu) provides the functions, features, and the database provides contents.
Examples: Arcemu provides the ability to spawn (push into the game world) npcs, gameobjects, etc. The database provides the actual spawns, and their properties.
Arcemu provides the ability to learn spells at a trainer. The database provides the list of spells a trainer can teach you, their costs, and the requirements that you need to meet to be able to learn the spell.
So for example missing spawns are not Arcemu bugs, they are database bugs. Unresponsive NPCs can be either database or core bugs. However if it is only 1 or some npcs then it is definitely a database issue. If it involves all NPCs after a core update it is either a database structure issue, or a core issue. The same goes for every other issue.
What do I need to know to be able to contribute code?
First of all thanks for considering to contribute. It's very appreciated since we can use all the help we can get.
What you are expected and will need to know:
- All aspects of standard C++ language
- Object Oriented Programming
- Network programming using sockets (BSD socks library, WINSOCK2, etc)
- Multi-threaded applications
You should have considerable World of warcraft playing experience to understand how things work.
Also you should know the World of Warcraft protocol. This can be learned from the codebase. If you want to help make Arcemu to be compatible with the latest wow version, you should be able to reverse engineer the client. Getting packet samples can be extremely helpful in the reverse engineering process so you should also get a packet sniffer that can decrypt the packets then dump them into a plain text file in whatever format.
Obviously you need a retail wow account for this.
WARNING: Capturing World of Warcraft packets is against the TOU and EULA of Blizzard. Therefore by doing so you risk your account being banned and legal action against you!!
We do not encourage you to do so! However if you do it anyways all responsibility is yours.
In order to be able to reverse engineer the client you need to know the x86-win32 assembly language, and you need to use a disassembler like IDA pro.
In a nutshell: 1.) Learn the neccessary skills, obtain the neccessary knowledge. 2.) Study the codebase. 3.) See what needs doing on the bugtracker. 4.) Contribute
The contents of this FAQ are subject to change without notice. The contents of this FAQ are up-to-date as of November 9, 2011.