blob: 1cb16fea2af16f546d813a9a1ba1d3b8c7289ca4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# The Modular Structure
The project of AzerothCore is based on a fully modular structure that is composed by:
- Custom Modules
- Core Modules
**CUSTOM MODULES:**
The main purpose of AzerothCore modules is to add/extend functionalities to your server avoiding as much possible the modification of AzerothCore code ( patching ).
Currently you are able to:
Create scripts that don’t need any patches for CMake / ScriptLoader
Use script hooks that can operate from the very first start of the server ( as soon as the World initialization starts ) In this way you can handle / overwrite the server configurations.
Use cmake special hooks, allowing you to inject your instructions during specific events ( e.g. after/before game library configuration )
Create, Install and load your custom .conf files during the server startup, avoiding worldserver.conf.dist patching.
Install other module dependencies using udw/joiner , a special bash script used by AzerothCore to maintain deps.
Create and use include.sh in your root directory to interact with our bash system ( extend db_assembler, runner, compiler etc )
*NOTE: *Even if core file modification is not suggested by AzerothCore project, developing as much as possible under your module and patching the core with small rows of code could be a good practice. You can eventually provide an install/uninstall script that can automatically patch/unpatch the core using our bash system.
Read guide on [how to create a module](Create-a-Module)
**CORE MODULES:**
Core modules instead are composed by following projects:
- AzerothCore: The platform that includes all shared tools and sources to develop a WoW Server
- World Engine: Our MMO framework on which the AzerothCore is based
- HW-Core: Generic Libraries for c++
- UWD: Generic tools used by our project
You can see a model of the Software Layers here:

|