Would you like to learn about AzerothCore (AC), setup your WoW server for the first time, understand how to modify it and become able to contribute? You came to the right place!
Getting started with WoW emulation might be tricky at first, but don't worry, we will be there to help you in case you encounter any issue or have any questions to ask. Just read this page before asking for help.
If while reading any of the tutorials linked on this page you find something that is not clear: let us know. We'll do our best to rephrase it and make it easier to be understood for beginners. Improving the docs is also a way to contribute!
There are NO technical requirements. You just need to be patient and willing to learn.
If you already have some programming knowledge it would surely be an advantage for you. However, trust me, you don't need any pre-existing knowledge to learn about WoW servers.
Personal note from the author of this tutorial: when I first installed my first WoW server I was 15, I had no programming knowledge at all, I was using Windows XP and barely understood English. I'm sure if you are reading this, you have already more skills than I used to have when I was trying to install MaNGOS+UDB+ScriptDev2 and get a decent WoW server to run on my local machine. Initially, I spent hours trying to read and understand tutorials from different people written on different websites, but eventually, I succeeded. AzerothCore is an all-in-one project so it's going to be easier than that, bear with me and you'll get there!
Tempted to use a repack instead? Don't do it.
The first step is always installing a local WoW server in your own machine. And there are several ways to do it, which can vary according to the operating system.
Let me be clear about one thing: ALL operating systems are supported by AzerothCore. So you can successfully install AzerothCore GNU/Linux, macOS or Windows without any issue.
However, I can tell you if you use a Linux distribution such as Ubuntu 20.04, the process is going to be easier. If you would like to install Ubuntu, you can download it from here and you can find plenty of tutorials online about how to do it. There is a nice tutorial about running WoW on Linux here.
Would you like to stick with Windows or macOS? That's absolutely fine.
Basically, there are 3 main ways to install AC:
You can choose one setup, or even try more than one. You can find all the instructions here:
Should you encounter any issue or doubt while trying to install your AC server, ask us for help.
Got your WoW server installed? Congratulations! Now let's see what you can do next.
First of all,
set realmlist localhost and join your own server using the
test1 account with password
a (yes, one-letter password). This account is already
GM so you can use the commands from this list:
Get confident with the commands, you will need them for any administration, testing or development activities.
You can just blindly copy-paste the
git commands that you'll see in the tutorials linked here, most likely you will not have issues with them.
However, properly learning
git will make you really aware of what you're doing, and this knowledge can help you with whatever other software development project you may work with.
git is one of the most important tools used in many software engineering projects. Learning its basics will not only help you a lot with AzerothCore, but it's also something very good to put in your CV.
You can find plenty of resources online about learning
git, for example try.github.io
We release improvements to AzerothCore on a daily basis. You should learn how to update your server and keep updating it often. We recommend avoiding working on older versions of AzerothCore because they can have bugs that we already resolved and you don't want to stay behind.
So it is very important that you update your AzerothCore server regularly. We recommend you to do it at least once a week. Read this guide:
After you follow the update procedure, it is important to verify that:
server infocommand to make sure of it.
A great way to start contributing is by testing PRs made by other contributors. This is not only quite easy to do, but it is extremely helpful for the project and can help you to get into our development process.
This topic is so important that there is a dedicated tutorial for it:
The Database is the best place to start developing a WoW server. Because it's easier than the other components, and there are tools that are able to automatically generate the code for you. For example, Keira3.
Keira3 is a DB editor for AzerothCore which allows you to edit or add contents to the world very easily, we recommend to install and play with it:
Keira3 automatically generates the SQL code needed to create or change stuff in the database. Sounds complicated? Give it a try and you'll see how it works.
You'll need a generic database management tool too in order to manage tables and their contents.
Always read the documentation about every table that you deal with:
With SmartAI you can do a lot of things. You can add special behaviour to an element of the game such as a creature, without ever touching a single line of C++.
In a nutshell, with SmartAI you can make an entity (for example a Creature) perform a certain action when a certain event occurs, optionally specifying a target. In other words, you can make entities react to events with behaviour defined by you.
For example, you can make a creature cast a spell (action), when its health goes below 50% of its total health (event), against a random member of the party group (target).
smart_script is just a table inside the world database (and its documentation can be found here). Tools like Keira3 help you working with SmartAI using a practical graphic interface.
Try to open Keira3, look for any creature that has "SmartAI" as "AIName", open it and click on "SmartAI" on the right menu. You'll be prompted with a visual editor that will assist you when working with SmartAI.
Experiment with the SmartAI and get confident with it. It's a simple but very powerful tool. After getting some knowledge of it, you will be able to do many things. Many bugs can be fixed just using the SmartAI.
The AI of most of the creatures you'll find in the world is done with SmartAI. While more complex creatures (typically raid bosses) are scripted in C++.
Usually, you'll need only the basics of the SQL language, and in most cases, you'll probably figure it out by yourself, however, it's not a bad idea to read about the SQL language. You can find a lot of resources online, for example:
if you understand how basic statements such as
DELETE work, that's usually enough. You don't need to go too deep into SQL in order to be able to contribute.
You can submit your improvement via PR. Read this guide:
If you mastered some of the above parts, there is already A LOT you can do to help our project and becoming a contributor. For example:
Would you like to talk to us? Join the AzerothCore Discord server.
Never stop learning. Go to learn the basics behind Object-Oriented Programming (OOP). Get some C++ tutorial, start experimenting with the core source code. Look at other people PR's as examples.
Or learn another programming language, there are plenty of tools you might build for AzerothCore users or developers using your favourite programming language.
Whatever you are going to do, always remember: StackOverflow is your friend.
In this tutorial, I wanted to help beginners and demonstrate how much you can learn and contribute without even knowing C++. All you need is some time and patience.
-- Shin aka Francesco