Jump to content

WIKI Activity

Showing articles posted in for the last 365 days.

This stream auto-updates     

  1. Today
  2. Errdan

    How to use EasyBuild

    I had an error when I click the BUILD PROJECT button error code MSB1008 Only one project can be specified
  3. Earlier
  4. onixiya

    Installing Mangos on Debian 9 or a Debian based Distribtion

    Use InstallDatabases.sh and toggle only updates
  5. Fernando Oliveira

    Installing Mangos on Debian 9 or a Debian based Distribtion

    Hello sir! Sorry for such inconvenience. But now I get an error message when start ./mangod . The ./realmd starts flawlessly. But I get this message when running ./mangosd: How can I apply those updates? Thanks a lot!
  6. onixiya

    Installing Mangos on Debian 9 or a Debian based Distribtion

    Vmaps should be easy. Its mmaps thats the problem
  7. Fernando Oliveira

    Installing Mangos on Debian 9 or a Debian based Distribtion

    Very good! It worked! Does it take so long when extracting vmaps? Its been like 10 hours so far.
  8. onixiya

    Installing Mangos on Debian 9 or a Debian based Distribtion

    It should be in where you installed it under tools. For example, if mangos is installed in /home/onixiya/mangos0 it will be at /home/onixiya/mangos0/tools
  9. Fernando Oliveira

    Installing Mangos on Debian 9 or a Debian based Distribtion

    Hello sir! Im stucked at ./ExtractResources.sh Where can i find this file? Its not in the database/tools folder. Thanks!!!
  10. ctcrst

    Updating existing database with latest updates

    in my Windows 10 simple chinese version, the batch file doesn't run properly, i finally found the solution : type "chcp 437" in cmd window first, then run the batch file, then every thing works fine. the cmd "chcp 437" change the code page to USA...US-EN
  11. Stu Art

    Installing Mangos on Debian 9 or a Debian based Distribtion

    Thanks for the guide got stuck at: The error was that I did not have the CMAKE_CXX_COMPILER Solution: sudo apt-get update sudo apt-get install build-essential The error was that I did not have the MYSQL dev libs and headers, in case anyone else has this issue on a headless Debian 9 Solution: sudo apt-get install default-libmysqlclient-dev
  12. Talendrys

    Configuring MaNGOS

    HI, no its not. You can use your own user with full access o' mangos schemas.
  13. Arawra

    Configuring MaNGOS

    One part that interests me, you're using `root` for the database. Is this required? Obviously using a non-root user would be better E: Nevermind, needed to do more than skimming the directions
  14. Goals for 2019 For 2019 the following are what we would like to achieve: Release Version 22 for Zero, One, Two and Three containing all the recent updates and fixes we have. Redo the server commands to make them a bit more standard and obvious. Break out AHBot into its own daemon process Develop a mangos update daemon, which allows the ability to apply DB content and minor updates automatically Normalise the character DB and remove data blob fields Move some hardcoded values from the core into the DB, possibly some enums as well. Implement Stormlib library for Zero, One and Two and remove mlib Apply the Unified Extractor to Three and Four (requires stormlib) Look at removing DBC usage from the Core and change the extraction process to include importing into a DB for use by the core. Including Multiple locale support. This would facilitate the removal of stormlib / mlib from the core and only be needed by the extraction tools. Look at Adapting EAI to match SAI functionality. As well as some of the more obvious ones: Continue to standardise the code across the cores where its appropriate to do so. Document where it differs and why. Clear down reported bugs on the Project Tracker. Improve the World Database with updates and corrections. Improve the Wiki Documentation. Include some example Eluna scripts to assist those starting out learning to script with Eluna. Include some custom Eluna scripts to help showcase it's abilities. Finally, we would like to get into a twice yearly Release cycle of more major releases. MangosVB (Formerly Spurious) RoadMap for 2017 Add RealmDB from c++ Mangos and modifying MangosVB to be compatible with it. Once done, this will be linked via a git submodule Work out how to get MangosVB to use the standard Mangos map format. Finishing warden functionality (so it can use/read signatures from DB) Merge all of the changes from Zero to One and Two Investigate into voice functionality for One / Two Doing spells.. implementing them like stealth and getting a proper DB script system in place.
  15. I tested this on Debian 9.6 however this guide should work on any recent Debian distribution such as Ubuntu. Required Packages First we need to install all of the required programs and library's. Open up a root terminal. If your not root, enter this to become root sudo su Install the following packages apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev We need to grab the mysql stuff from here. Follow the instructions there. Also, choose mysql 5.7. A script needed later requires this so don't install mysql 8. Install the server with apt install mysql-server You also need to grab and compile libace. You can get it from here. Extract it and read the instructions.They're pretty straight-forward. It should be named 'ACE-INSTALL.html' or something similar. When thats done, enter this command. I highly recommend doing this even if your just keeping the server to yourself mysql_secure_installation I suggest these options: Don't use the password plugin Change the root password Remove the anonymous user Disable remote access for root Remove the test database Reload privileges Restart your system with init 6 Getting the Mangos source code Now we need the source code for mangos. Open up a terminal as root and go to the home directory: cd ~ Lets create a root directory for all of the mangos files mkdir mangos Now we clone the source code. Mangos servers above two are unstable or incomplete. Don't be surprised if something doesn't work or is missing. git clone https://github.com/mangoszero/server.git --recursive --depth 1 For the database git clone https://github.com/mangoszero/database.git --recursive --depth 1 If you want a different server(say mangos one), simply change the url. For example git clone https://github.com/mangosone/server.git --recursive --depth 1 For the mangos one server. If you want mangos two, simply do the same. Do the same with the database. Wait for the repos to be cloned (the server is about 200-250mb-ish) Compilaton The good part. Enter the mangos source directory cd server Make a new directory for the build files. mkdir build Go into it cd build Now run this to configure the makefiles cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/bin/mangos If cmake doesn't complain about anything, your good to go with compiling it. To speed up compilation, you need to know how many cores your cpu has. Most cpus have 2 or 4 cores. Search it up if your not sure. Now to compile it, simply enter this make -j2 Change -j2 to how cores you have. If you have 4 cores, change it to make -j4 If you only have one core, don't bother with the -j flag, just type in 'make' and hit enter. This will take a while depending on how fast your cpu is. Just be paitent. After a bit, mangos will be compiled(yay)and you will need to separate the needed files from the source code. To install it into your install prefix(default is /usr/local/bin/mangos), do this make install Database Setup: The Sequel Now for another database setup (i know, its crazy). This time, we will be loading some stuff into it. Enter the database folder you cloned earlier and execute InstallDatabases.sh ./InstallDatabases.sh If it says something similar to 'bash: ./InstallDatabases.sh: Permission denied', the script isn't marked as executable. Mark everything needed as executable by running this chmod -R +x *.sh Now have a go at running the script again. When execute it, you'll be brought to a menu. The defaults are fine for a new server so just press 'n' and hit enter You will have to give it your mysql details. This needs to be your server hostname(ip address), username, password and server port. The only things you need to change are the username and password. Keep in mind all of this must be done as the ROOT user. Game Data Now this is the longest part if decide to get mmaps. To run the server, you MUST extract the .dbc and .map files. To do this, copy everything in the tools folder to where your wow client is. Keep in mind the version of the client as it must be a specific version for this(mangoszero is a bit more lenient then others). You need 1.12.x (x can be any number) for mangoszero, 2.3.4 for mangosone, 3.3.5 for mangostwo(favourite), 4.3.4 for mangosthree and 5.4.1 for mangosfour. To extract the data, execute 'ExtractResources.sh' ./ExtractResources.sh Server Configuration Now to configure the server. Go to the mangos configuration folder cd /usr/local/bin/mangos/etc Copy the files to their proper name. DON'T delete them. They're a backup in case your .conf files get corrupted. cp mangosd.conf.dist mangosd.conf cp realmd.conf.dist realmd.conf Edit realmd.conf and find the line 'LoginDatabaseInfo', change the information to suit your database. For example if my database hostname is localhost or 127.0.0.1, the port is 3306, username is root, the password is mangos and my realm database is realmd, it would look like this LoginDatabaseInfo = "127.0.0.1;3306;root;mangos;realmd" Save the file and edit mangosd.conf. Look for lines, LoginDatabaseInfo, WorldDatabaseInfo and CharacterDatabaseInfo. Do the same to those lines as you did to the one in realmd.conf. You may wish to fully read mangosd.conf to fine-tune your server if you wish. Save the file. Starting the Server Now to see if your hard work has paid off. Go to where you installed the server and start realmd ./realmd Now start mangosd ./mangosd If theres a error mangosd or realmd can't fix, it'll tell you problem then exit. It will be up to fix it however. The most common problem is that the password or username is wrong. Try editing mangosd.conf or realmd.conf if thats the case. If it started and gives you a prompt, the server is loaded and awaiting a connection from a client. Starting the server with systemd This allows you to startup your computer and have mangosd and realmd load with it. Very useful on a dedicated server. We need to make 2 .service files to do this. touch /etc/systemd/system/mangosd.service touch /etc/systemd/system/realmd.service Edit mangosd.service with your preferred text editor. Don't type 'edit /etc/systemd/system/mangosd.service' unless you know how to quit vi. [Unit] Description=WoW server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf Restart=on-abort [Install] WantedBy=multi-user.target Do the same with realmd.service [Unit] Description=WoW server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/realmd -c /usr/local/bin/mangos/etc/realmd.conf Restart=on-abort [Install] WantedBy=multi-user.target Let systemd reload. systemctl daemon-reload Start realmd via systemd to see if the .service file is valid systemctl start realmd Do the same with mangosd systemctl start mangosd Check the status of both services with systemctl status realmd systemctl status mangosd If it's working, you should see something like a green OK on both daemons (fun fact: daemons and services are the same thing) then you should be good to enable them at startup. Do this for realmd systemctl enable realmd systemctl enable mangosd Restart your system init 6 Check that they started as root systemctl status realmd Do the same with mangosd If its good then mangosd and realmd will always start with your system until you disable them. Letting WoW clients connect to your server This is the 2nd last thing you need to do. This will allow WoW clients to connect to your server. We need to edit a table in the database. If you know what your doing with mysql, follow along but do the equivalent on the terminal. If you prefer doing things with a gui(graphical user interface, your using one right now!), lets install a gui mysql client. We'll use 'mysql-workbench' apt install mysql-workbench After its installed, check your start menu in 'Programming'. Start mysql workbench and click on your server. Enter your password and look on the lower left. Click on the little arrow next to realmd and scroll down to realmlist. Right click on it and click on 'Alter Table'. Go down to localAddress and double click on the '127.0.0.1'. Change this to your lan ip. You can find out your lan ip by opening a terminal and typing in ifconfig You will see about 4-5 interfaces. If your connection is a wired one, you should look at a interface named 'enp' followed by letters and numbers. For example, 'enp14s0'. Then look at the 'inet' part. This is your lan ip. Do the same if your connection is wireless or wi-fi. Wireless connections will be named like 'wlp' with some letters and numbers. 'wlp20s0' is a example. Once you have changed localAddress to your lan ip, you need to change address to your external ip. Go here to find out your ip. Now we need to let realmd know that the database has changed. Stop it with systemctl stop realmd Now start it again with systemctl start realmd Connecting a WoW client to your server Nearly there! Go to where your wow client is and look for a file named realmlist.wtf. Delete everything in this file and put the following stuff in it set realmlist 10.1.1.1 set patchlist 10.1.1.1 Change 10.1.1.1 to your server ip. It can be the lan ip if its on the same network as the server. Now for the moment of truth. Open up WoW.exe(not the launcher)and wait for it to load. Skip the cinematic if want by pressing escape(esc). Now login into the server by using administrator as the email and no password. Choose the only realm and create your character. You now have a functioning WoW server for you and your friends to play on! Also, since you logged in using the admin account, you can use game master commands. Type in the chat '.gm help' for a list of commands currently in mangos. Have fun with it!
  16. MadBits

    ace Installing ACE on CentOS 7

    Can we get a tutorial for Debian ?! Cheers!
  17. acolytes

    Creating a "Breaking News" Article for your server

    I guess the players will have to make the same change in "hosts" to see the news?
  18. Rochet2

    How to use EasyBuild

    Did you do a recursive clone? See the instructions for downloading mangos source code.
  19. Gapsm

    How to use EasyBuild

    i can´t find "Easy build" in Win folder
  20. Ariador

    Installing Mangos on Windows (using EasyBuild)

    For ServerTwo there is currently a problem with creating databases (step 22). The dbTwo\Tools directory appeared to contain outdated mysql.exe and mysqldump.exe. To proceed I had to replace these with actual files from my \MySQL\MySQL Server 8.0\bin
  21. antz

    creature_template

     NOTE:  This page is auto-generated from the MAGNET DBDocs module,             Any changes made directly to this page will be lost when it is regenerated. Description of the 'creature_template' table for MaNGOSZero This table contains the description of creatures. Each spawned creature is an instance of a template present in this table, this means every creature MUST be defined in this table. Table Notes This table uses the 'MyISAM' DB Engine The Field definitions follow: Field Name Field Type Nullable Key Default Value Attributes Notes Entry mediumint(8) unsigned NO PRI '0'   This is the Primary NPC Entry Number and is Also the Dungeon Normal Mode / Raid Name char(100) NO {Blank String}   The creature's name that will be displayed. SubName char(100) YES {Blank String}   An optional tag, which will be shown below the creature's name. MinLevel tinyint(3) unsigned NO '1'   The minimum level of the creature when it is spawned in-game. MaxLevel tinyint(3) unsigned NO '1'   The maximum level of the creature when it is spawned in-game. ModelId1 mediumint(8) unsigned NO '0'   A display model identifier for the creature_template. ModelId2 mediumint(8) unsigned NO '0'   An alternative display model identifier for the creature_template. ModelId3 mediumint(8) unsigned NO '0'     ModelId4 mediumint(8) unsigned NO '0'     FactionAlliance smallint(5) unsigned NO '0'   The Faction If The Creature Is On The Alliance Side [See FactionTemplate.dbc]. FactionHorde smallint(5) unsigned NO '0'   The Faction If The Creature Is On The Alliance Side [See FactionTemplate.dbc]. Scale float NO '1'   The scale/size of the creature. Normal => 1 (100%) Family tinyint(4) NO '0'   This Defines The Family That This Creature Belongs To. CreatureType tinyint(3) unsigned NO '0'   This Field Defines The Type Of Creature This NPC Is. InhabitType tinyint(3) unsigned NO '3'   This Field Controls Where The Creature Can Move Into, Chase And Attack. RegenerateStats tinyint(3) unsigned YES NULL   Controls if a creature template should regenerate it's Health/Mana. RacialLeader tinyint(3) unsigned NO '0'   Determines if a creature template is a racial leader. NpcFlags int(10) unsigned NO '0'   The flags of the creature. UnitFlags int(10) unsigned NO '0'   Allows the manual application of unit flags to creatures. DynamicFlags int(10) unsigned NO '0'   Dynamic flags are used to control the visual appearance of a creature template. ExtraFlags int(10) unsigned NO '0'   The extra flags allow to modify special behaviour for a creature_template. CreatureTypeFlags int(10) unsigned NO '0'   Type flags seem to control what actions a player can perform. SpeedWalk float NO '1'   Controls how fast the creature can move in walking mode. SpeedRun float NO '1.14286'   Controls how fast the creature can move in running mode. UnitClass tinyint(3) unsigned NO '0'   A creature's class. The following table describes the available classes. Rank tinyint(3) unsigned NO '0'   The border of a creature portrait. HealthMultiplier float NO '1'   Modifies the creature template's health by this factor. PowerMultiplier float NO '1'   The affects the creature's power. DamageMultiplier float NO '1'   This affects the amount of damage a creature can do. DamageVariance float NO '1'   This is used in damage calculations. ArmorMultiplier float NO '1'   Modify the creature template's armor by this factor. ExperienceMultiplier float NO '1'   This affects the amount of experience the creature will earn. MinLevelHealth int(10) unsigned NO '0'   The minimum health of the creature. MaxLevelHealth int(10) unsigned NO '0'   The maximum health of the creature. MinLevelMana int(10) unsigned NO '0'   The miminum mana of the creature if the creature has variable mana. MaxLevelMana int(10) unsigned NO '0'   The maximum mana of the creature. MinMeleeDmg float NO '0'   Minimum damage the creature deals in melee combat. MaxMeleeDmg float NO '0'   Maximum damage the creature deals in melee combat. MinRangedDmg float NO '0'   Minimum damage the creature deals in ranged combat. MaxRangedDmg float NO '0'   Maximum damage the creature deals in ranged combat. Armor mediumint(8) unsigned NO '0'   The total armor of the creature. MeleeAttackPower int(10) unsigned NO '0'   The attack power for the creature's melee attacks. RangedAttackPower smallint(5) unsigned NO '0'   The attack power for the creature's ranged attacks. MeleeBaseAttackTime int(10) unsigned NO '2000'   A creature's melee attack time in milliseconds. RangedBaseAttackTime int(10) unsigned NO '2000'   The delay between ranged attacks, in milliseconds. DamageSchool tinyint(4) NO '0'   A damage school for melee combat. MinLootGold mediumint(8) unsigned NO '0'   Minimum money the creature drops when killed, in copper. MaxLootGold mediumint(8) unsigned NO '0'   The money dropped by the creature in copper. LootId mediumint(8) unsigned NO '0'   This adds loot to the creature. PickpocketLootId mediumint(8) unsigned NO '0'   This adds pickpocket loot to the creature. SkinningLootId mediumint(8) unsigned NO '0'   This adds skinning loot to the creature. KillCredit1 int(11) unsigned NO '0'   If killing a creature should credit towards a different creature_template. KillCredit2 int(11) unsigned NO '0'   If killing a creature should credit towards a different creature_template. MechanicImmuneMask int(10) unsigned NO '0'   This mask can be used to make creatures immune to spell mechanics. SchoolImmuneMask int(10) unsigned NO '0'     ResistanceHoly smallint(5) NO '0'   The Holy resistance of the creature. ResistanceFire smallint(5) NO '0'   The Fire resistance of the creature. ResistanceNature smallint(5) NO '0'   The Nature resistance of the creature. ResistanceFrost smallint(5) NO '0'   The Frost resistance of the creature. ResistanceShadow smallint(5) NO '0'   The Shadow resistance of the creature. ResistanceArcane smallint(5) NO '0'   The Arcane resistance of the creature. PetSpellDataId mediumint(8) unsigned NO '0'   ID that displays what spells the pet has in the client. MovementType tinyint(3) unsigned NO '0'   The movement type defines what a creature spawn will behave like after spawning. TrainerType tinyint(4) NO '0'   This details what kind of trainer the creature is. TrainerSpell mediumint(8) unsigned NO '0'   This will restrict access to a profession trainer. TrainerClass tinyint(3) unsigned NO '0'   The value of this field will restrict access to class and/or pet trainers TrainerRace tinyint(3) unsigned NO '0'   This field allows to restrict a riding trainer to a specific race. TrainerTemplateId mediumint(8) unsigned NO '0'   This field adds a training spells to a creature template. VendorTemplateId mediumint(8) unsigned NO '0'   This field adds a vendor items to a creature template. GossipMenuId mediumint(8) unsigned NO '0'   This field is used for adding gossip to the creature. EquipmentTemplateId mediumint(8) unsigned NO '0'   The field adds equipment to a creature. Civilian tinyint(3) unsigned NO '0'   Marks a creature template as a civilian. AIName char(64) YES {Blank String}   This string determines which built-in AI script will be used. Description of the fields Entry mediumint(8) unsigned This is the Primary NPC Entry Number and is Also the Dungeon Normal Mode / Raid 10-Man Normal Mode Entry. Name char(100) The creature's name that will be displayed. SubName char(100) An optional tag, which will be shown below the creature's name. MinLevel tinyint(3) unsigned The minimum level of the creature when it is spawned in-game. MaxLevel tinyint(3) unsigned The maximum level of the creature when it is spawned in-game. Must be higher than minlevel! ModelId1 mediumint(8) unsigned A display model identifier for the creature_template. This references the unique ID in table "creature_model_info" [See creature_model_info] for which this entry is valid. ModelId2 mediumint(8) unsigned A display model identifier for the creature_template. This references the unique ID in table "creature_model_info" [See creature_model_info] for which this entry is valid. ModelId3 mediumint(8) unsigned A display model identifier for the creature_template. This references the unique ID in table "creature_model_info" [See creature_model_info] for which this entry is valid. ModelId4 mediumint(8) unsigned A display model identifier for the creature_template. This references the unique ID in table "creature_model_info" [See creature_model_info] for which this entry is valid. FactionAlliance smallint(5) unsigned The Faction If The Creature Is On The Alliance Side [See FactionTemplate.dbc].. Just Because More Than One Faction Has The Same Name, The Inter-Faction Relationships Can Be Different. Note: This Field Also Controls The Creature Family Assistance Mechanic. Only Creatures With The Same Faction Will Assist Each Other. FactionHorde smallint(5) unsigned The Faction If The Creature Is On The Horde Side [See FactionTemplate.dbc].. Just Because More Than One Faction Has The Same Name, The Inter-Faction Relationships Can Be Different. Note: This Field Also Controls The Creature Family Assistance Mechanic. Only Creatures With The Same Faction Will Assist Each Other. Scale float The scale/size of the creature. Normal => 1 (100%) Family tinyint(4) This Defines The Family That This Creature Belongs To. This Is Only Used If CreatureType Is 1 (Beast). ID Family 1 Wolf 2 Cat 3 Spider 4 Bear 5 Boar 6 Crocolisk 7 Carrion Bird 8 Crab 9 Gorilla 11 Raptor 12 Tallstrider 15 Felhunter 16 Voidwalker 17 Succubus 19 Doomguard 20 Scorpid 21 Turtle 23 Imp 24 Bat 25 Hyena 26 Owl 27 Wind Serpent 28 Remote Control Note: It has to be evaluated if creatures of type 3 (Demons) should have their family set, as there are creature families defined for these. Also, remote control family would probably be having a type of 9 since these are mechanical. CreatureType tinyint(3) unsigned This Field Defines The Type Of Creature This NPC Is. ID Family 0 None 1 Beast 2 Dragonkin 3 Demon 4 Elemental 5 Giant 6 Undead 7 Humanoid 8 Critter 9 Mechanical 10 Not Specified 11 Totem 12 Non-combat pet 13 Gas Cloud InhabitType tinyint(3) unsigned This Field Controls Where The Creature Can Move Into, Chase And Attack. The NPC Is Limited To ONLY This: ID Family 1 Ground Movement Only 2 Water Movement Only 3 Both Ground and Water Movement 4 Always Flying RegenerateStats tinyint(3) unsigned This flag is a bitmask field which controls if a creature template should regenerate it's Health and/or Power. i.e. To Regenerate both Health and Mana, you would set the template to 3 (1+2). ID Color Quality 0 Grey Poor 1 White Common 2 Green Uncommon 3 Blue Rare 4 Purple Epic 5 Orange Legendary 6 Red Artifact RacialLeader tinyint(3) unsigned Determines if a creature template is a racial leader. Racial leaders will grant increased honor points upon death. Value Description 0 Normal creature 1 Racial leader NpcFlags int(10) unsigned The flags of the creature. Note that most of these also require the "Gossip" [1] flag to work. So if you want a NPC that is a quest giver, a vendor and can repair you just add the specific flags together: 1 + 2 + 128 + 4096 = 4227. Pure Flags Decimal Binary (32 Bit) Remarks UNIT_NPC_FLAG_NONE 0 0000 0000 0000 0000 0000 0000 0000 0000   UNIT_NPC_FLAG_GOSSIP 1 0000 0000 0000 0000 0000 0000 0000 0001 (If NPC has more gossip options, add this flag to bring up a menu.) UNIT_NPC_FLAG_QUESTGIVER 2 0000 0000 0000 0000 0000 0000 0000 0010 (Any NPC giving or taking quests needs to have this flag.) UNIT_NPC_FLAG_UNKNOWN1 4 0000 0000 0000 0000 0000 0000 0000 0100   UNIT_NPC_FLAG_UNKOWN2 8 0000 0000 0000 0000 0000 0000 0000 1000   UNIT_NPC_FLAG_TRAINER 16 0000 0000 0000 0000 0000 0000 0001 0000 (Allows the NPC to have a trainer list to teach spells, all trainers must have this flag) UNIT_NPC_FLAG_TRAINER_CLASS 32 0000 0000 0000 0000 0000 0000 0010 0000   UNIT_NPC_FLAG_TRAINER_PROF 64 0000 0000 0000 0000 0000 0000 0100 0000   UNIT_NPC_FLAG_VENDOR 128 0000 0000 0000 0000 0000 0000 1000 0000 (Any NPC selling items needs to have this flag) UNIT_NPC_FLAG_VENDOR_AMMO 256 0000 0000 0000 0000 0000 0001 0000 0000   UNIT_NPC_FLAG_VENDOR_FOOD 512 0000 0000 0000 0000 0000 0010 0000 0000   UNIT_NPC_FLAG_VENDOR_POISON 1024 0000 0000 0000 0000 0000 0100 0000 0000   UNIT_NPC_FLAG_VENDOR_REAGENT 2048 0000 0000 0000 0000 0000 1000 0000 0000   UNIT_NPC_FLAG_ARMORER 4096 0000 0000 0000 0000 0001 0000 0000 0000 (NPC with this flag can repair items.) UNIT_NPC_FLAG_TAXIVENDOR 8192 0000 0000 0000 0000 0010 0000 0000 0000 (Any NPC serving as fly master has this.) UNIT_NPC_FLAG_SPIRITHEALER 16384 0000 0000 0000 0000 0100 0000 0000 0000 (Makes the NPC invisible to alive characters and has the resurrect function.) UNIT_NPC_FLAG_SPIRITGUIDE 32768 0000 0000 0000 0000 1000 0000 0000 0000   UNIT_NPC_FLAG_INNKEEPER 65536 0000 0000 0000 0001 0000 0000 0000 0000 (NPC with this flag can set hearthstone locations.) UNIT_NPC_FLAG_BANKER 131072 0000 0000 0000 0010 0000 0000 0000 0000 (NPC with this flag can show the bank) UNIT_NPC_FLAG_ARENACHARTER 262144 0000 0000 0000 0100 0000 0000 0000 0000 UNIT_NPC_FLAG_TABARDVENDOR 524288 0000 0000 0000 1000 0000 0000 0000 0000 (Allows the designing of guild tabards.) UNIT_NPC_FLAG_BATTLEFIELDPERSON 1048576 0000 0000 0001 0000 0000 0000 0000 0000 (NPC with this flag port players to battlegrounds. Like battlemasters, arena organzier etc.) UNIT_NPC_FLAG_AUCTIONEER 2097152 0000 0000 0010 0000 0000 0000 0000 0000 (Allows NPC to display auction list.) UNIT_NPC_FLAG_STABLE 4194304 0000 0000 0100 0000 0000 0000 0000 0000 (Has the option to stable pets for hunters.) UNIT_NPC_FLAG_GUILD_BANK 8388608 0000 0000 1000 0000 0000 0000 0000 0000   UNIT_NPC_FLAG_SPELLCLICK 16777216 0000 0001 0000 0000 0000 0000 0000 0000 (Needs data on npc_spellclick_spells table) Mailbox 67108864 0000 0100 0000 0000 0000 0000 0000 0000 (NPC will act like a mailbox, opens mailbox with right-click) Guard 268435456 0001 0000 0000 0000 0000 0000 0000 0000 (Cityguards, must be scripted) Flag Combinations Decimal Binary (32 Bit) TRAINER_CLASS + TRAINER + GOSSIP 49 0000 0000 0000 0000 0000 0000 0011 0001 VENDOR + QUESTGIVER + GOSSIP 131 0000 0000 0000 0000 0000 0000 1000 0011 VENDOR + TRAINER_CLASS + TRAINER + GOSSIP 177 0000 0000 0000 0000 0000 0000 1011 0001 TABARDVENDOR + ARENACHARTER (GUILDMASTER) 786433 0000 0000 0000 1100 0000 0000 0000 0000 UnitFlags int(10) unsigned Allows the manual application of unit flags to creatures. Again this is a bitmask field and to apply more than one flag, just add the different numbers. Some possible flags are: Bit Flag Name Comments 0 1 UNIT_FLAG_UNK_0 Movement checks disabled, likely paired with loss of client control packet. 1 2 UNIT_FLAG_NON_ATTACKABLE not attackable 2 4 UNIT_FLAG_CLIENT_CONTROL_LOST Generic unspecified loss of control initiated by server script, movement checks disabled, paired with loss of client control packet. 3 8 UNIT_FLAG_PLAYER_CONTROLLED players, pets, totems, guardians, companions, charms, any units associated with players 4 16 UNIT_FLAG_PET_RENAME   5 32 UNIT_FLAG_PET_ABANDON   6 64 UNIT_FLAG_UNK_6 Related to Movement? often paired with UNIT_FLAG_SWIMMING 7 128     8 256 UNIT_FLAG_IMMUNE_TO_PLAYER Target is immune to players 9 512 UNIT_FLAG_IMMUNE_TO_NPC makes you unable to attack everything. Almost identical to our "civilian"-term. Will ignore it's surroundings and not engage in combat unless "called upon" or engaged by another unit. 10 1024     11 2048     12 4096 UNIT_FLAG_PVP Allows item spells to be casted upon. changed in 3.0.3 13 8192 UNIT_FLAG_SILENCED silenced, 2.1.1 14 16384 UNIT_FLAG_PERSUADED persuaded, 2.0.8 15 32768 UNIT_FLAG_SWIMMING controls water swimming animation 16 65536 UNIT_FLAG_UNK_16 removes attackable icon, if on yourself, cannot assist self but can cast TARGET_SELF spells - added by SPELL_AURA_MOD_UNATTACKABLE 17 131072 UNIT_FLAG_PACIFIED pacified, 3.0.3 18 262144 UNIT_FLAG_STUNNED stunned, 2.1.1 Unit is a subject to stun, turn and strafe movement disabled 19 524288 UNIT_FLAG_IN_COMBAT   20 1048576 UNIT_FLAG_TAXI_FLIGHT Unit is on taxi, paired with a duplicate loss of client control packet (likely a legacy serverside hack). Disables any spellcasts not allowed in taxi flight client-side. 21 2097152     22 4194304 UNIT_FLAG_CONFUSED Unit is a subject to confused movement, movement checks disabled, paired with loss of client control packet. 23 8388608 UNIT_FLAG_FLEEING Unit is a subject to fleeing movement, movement checks disabled, paired with loss of client control packet. 24 16777216 UNIT_FLAG_POSSESSED Unit is under remote control by another unit, movement checks disabled, paired with loss of client control packet. New master is allowed to use melee attack and can't select this unit via mouse in the world (as if it was own character). 25 33554432 UNIT_FLAG_NOT_SELECTABLE Can't be selected by mouse 26 67108864 UNIT_FLAG_SKINNABLE   27 134217728 UNIT_FLAG_AURAS_VISIBLE magic detect 28 268435456 UNIT_FLAG_UNK_28   29 536870912 UNIT_FLAG_UNK_29   30 1073741824 UNIT_FLAG_SHEATHE   31 2147483648 UNIT_FLAG_UNK_31 set skinnable icon and also changes color of portrait)(no affect in 2.4.3) DynamicFlags int(10) unsigned Dynamic flags are used to control the visual appearance of a creature template. The following table provides a list of valid values. Multiple flags may be combined. Value Description Comments 0 None   1 Lootable   2 Track unit   4 Other tagger Makes creature name tag appear grey 8 Rooted   16 Specialinfo Show basic creature stats in tooltip 32 Dead Make creature appear dead without tag 64 Tapped by all threat list   ExtraFlags int(10) unsigned The extra flags allow to modify special behaviour for a creature_template. The following table contains a list of combinable flags. Value Type Description 0 NONE Default: do nothing. 1 INSTANCE_BIND Bounds killer's party to the instance 2 CIVILIAN Makes creature ignore aggro 4 NO_PARRY Prohibits from parrying 8 NO_PARRY_HASTEN Parries do not speed up its next attack 16 NO_BLOCK Prohibits from blocking 32 NO_CRUSH Prohibits from dealing crushing blows 64 NO_XP_AT_KILL Creature rewards no XP at kill 128 INVISIBLE Creature invisible for player, e.g triggers 256 NOT_TAUNTABLE Creature is immune to taunts 512 AGGRO_ZONE Sets itself in combat with zone on aggro 1024 GUARD Is zone guard and death will be announced 2048 NO_TALKTO_CREDIT Does not give quest credit (temporary) CreatureTypeFlags int(10) unsigned This Field Controls If a Mob Is Mineable or Herbable. If Any Of These Flags Are Used Then The Loot Given When It Is Herb Picked / Mined Will Be Stored In The "Skinning_Loot_Template" Table. Aside From These Two Flags, This Field Has No Special Meaning Server-Side. It will be send to the client in SMSG_CREATURE_QUERY_RESPONSE Flag Name Comments 1 CREATURE_TYPEFLAGS_TAMEABLE Makes the mob tameable (must also be a beast and have family set) 2 CREATURE_TYPEFLAGS_GHOST_VISIBLE Sets Creatures that can ALSO be seen when player is a ghost. Used in CanInteract function by client, can't be attacked 4 CREATURE_TYPEFLAGS_UNK3 Sets "BOSS" flag for tooltips 8 CREATURE_TYPEFLAGS_UNK4   16 CREATURE_TYPEFLAGS_UNK5 Controls something in client tooltip related to creature faction 32 CREATURE_TYPEFLAGS_UNK6 Something related to Sound 64 CREATURE_TYPEFLAGS_UNK7 Related to attackable / not attackable creatures with spells 128 CREATURE_TYPEFLAGS_INTERACT_DEAD has something to do with unit interaction / quest status requests 136 CREATURE_TYPEFLAGS_NON_PVP_PLAYER   256 CREATURE_TYPEFLAGS_HERBLOOT Makes Mob Corpse Herbable - Uses Skinning Loot Field 512 CREATURE_TYPEFLAGS_MININGLOOT Makes Mob Corpse Mineable - Uses Skinning Loot Field 1024 CREATURE_TYPEFLAGS_ANIMATION_UNK11 no idea, but it used by client 2048 CREATURE_TYPEFLAGS_ANIMATION_UNK12 related to possibility to cast spells while mounted 4096 CREATURE_TYPEFLAGS_CAN_ASSIST Can aid any player or group in combat. Typically seen for escorting NPC's 8192 CREATURE_TYPEFLAGS_UNK14 checked from calls in Lua_PetHasActionBar 16384 CREATURE_TYPEFLAGS_UNK15 Lua_UnitGUID, client does guid_low &= 0xFF000000 if this flag is set 32768 CREATURE_TYPEFLAGS_ENGINEERLOOT Makes Mob Corpse Engineer Lootable - Uses Skinning Loot Field SpeedWalk float Controls how fast the creature can move in walking mode. SpeedRun float Controls how fast the creature can move in running mode. UnitClass tinyint(3) unsigned A creature's class. The following table describes the available classes. Value Name Description 1 Warrior Has increased health and no mana 2 Paladin Has increased health and low mana 4 Rogue Has increased damage, but lower armor 8 Mage Has low health, but increased mana Note: Depending on the creature's class, you have to make sure that the mana values are set properly. E.g. a Warrior or Rogue will not have mana set. Rank tinyint(3) unsigned The rank of a creature determines which border the game client will draw around the creature tooltip in the user interface. The following table lists all valid values: Value Name Description 0 Normal Default type 1 Elite Increased health, damage, better loot 2 Rare elite Like Elite but with increased respawn time 3 World boss Highest rank, best loot, highest respawn time 4 Rare Increased respawn time, better loot HealthMultiplier float Setting this value to a value smaller or larger than 1 will modify the creature template's health by this factor. PowerMultiplier float Setting this value to a value smaller or larger than 1 will modify the creature template's power by this factor. DamageMultiplier float Setting this value to a value smaller or larger than 1 will modify the creature template's damage by this factor. DamageVariance float Damage Variance is a Co-Efficient used in Damage Calculations To Limit the Min/Max Damage Range. Default Value is 1 (Normal) ===> See DamageMultiplier for More Information ArmorMultiplier float Setting this value to a value smaller or larger than 1 will modify the creature template's armor by this factor. ExperienceMultiplier float Setting this value to a value smaller or larger than 1 will modify experience gained from the creature template by this factor. MinLevelHealth int(10) unsigned The minimum health of the creature if the creature has variable health. MaxLevelHealth int(10) unsigned The maximum health of the creature if the creature has a variable health. When added to world, the health value is chosen in proportion to the level chosen. MinLevelMana int(10) unsigned The miminum mana of the creature if the creature has variable mana. MaxLevelMana int(10) unsigned The maximum mana of the creature if the creature has variable mana. When added to world, the mana value is chosen in proportion to the level chosen. MinMeleeDmg float Minimum damage the creature deals in melee combat. This field is combined with the attackpower field to calculate the damage. MaxMeleeDmg float Maximum damage the creature deals in melee combat. This field is combined with the attackpower field to calculate the damage. MinRangedDmg float Minimum damage the creature deals in ranged combat. This field is combined with the ranged attackpower field to calculate the damage. MaxRangedDmg float Maximum damage the creature deals in ranged combat. This field is combined with the ranged attackpower field to calculate the damage. Armor mediumint(8) unsigned The armor value of the creature. It controls how much damage reduction the creature gets from physical attacks. MeleeAttackPower int(10) unsigned The attack power for the creature's melee attacks. This field along with MinMeleeDmg and MaxMeleeDmg dictate how much the creature will hit for. The formula for applying correct damages is as follows: UPDATE `creature_template` SET `MinMeleeDmg` = , `MaxMeleeDmg` = , `MeleeAttackPower` = ROUND((`MinMeleeDmg` + `MaxMeleeDmg`) / 4 * 7), `MinMeleeDmg` = ROUND(`MinMeleeDmg` - `MeleeAttackPower` / 7), `MaxMeleeDmg` = ROUND(`MaxMeleeDmg` - `MeleeAttackPower` / 7) WHERE `Entry` = ... In the query above, substitute with the minimum damage you want the creature to deal and with the maximum damage you want the creature to deal. Note: You might want to double check the calculated values after the query has run because a large difference between MinMeleeDmg and MaxMeleeDmg can cause MinMeleeDmg to become a negative value. RangedAttackPower smallint(5) unsigned The attack power for the creature's ranged attacks. MeleeBaseAttackTime int(10) unsigned A creature's melee attack time in milliseconds. RangedBaseAttackTime int(10) unsigned The delay between ranged attacks, in milliseconds. DamageSchool tinyint(4) A damage school for melee combat. The following table provides a list of valid values. Value Description 0 Normal damage 1 Holy damage 2 Fire damage 3 Nature damage 4 Frost damage 5 Shadow damage 6 Arcane damage MinLootGold mediumint(8) unsigned Minimum money the creature drops when killed, in copper. MaxLootGold mediumint(8) unsigned The money dropped by the creature in copper (1000 = 10s, 100000 = 1g, 111111 = 11g 11s 11c) LootId mediumint(8) unsigned The field adds loot to a creature template and references the "creature_loot_template" table unique ID for which the entry is valid. PickpocketLootId mediumint(8) unsigned The field adds pickpocketing loot to a creature template and references the "pickpocketing_loot_template" tables unique ID for which the entry is valid. SkinningLootId mediumint(8) unsigned The field adds skinning loot to a creature template and references the "skinning_loot_template" tables unique ID for which the entry is valid. KillCredit1 int(11) unsigned If killing a creature should credit towards a different creature_template, this should be set to the creature template's identifier. KillCredit2 int(11) unsigned If killing a creature should credit towards a different creature_template, this should be set to the creature template's identifier. MechanicImmuneMask int(10) unsigned This mask can be used to make creatures immune to spell mechanics. Multiple immunities can be combined. Value Type Value Type 0 NONE 32768 BANDAGE 1 CHARM 65536 POLYMORPH 2 CONFUSED 131072 BANISH 4 DISARM 262144 SHIELD 8 DISTRACT 524288 SHACKLE 16 FEAR 1048576 MOUNT 32 FUMBLE 2097152 PERSUADE 64 ROOT 4194304 TURN 128 PACIFY 8388608 HORROR 256 SILENCE 16777216 INVULNERABILITY 512 SLEEP 33554432 INTERRUPT 1024 SNARE 67108864 DAZE 2048 STUN 134217728 DISCOVERY 4096 FREEZE 268435456 IMMUNE_SHIELD 8192 KNOCKOUT 536870912 SAPPED 16384 BLEED     Note: In theory this should somehow relates to SpellMechanic.dbc and the immunities list there, but it does not match. SchoolImmuneMask int(10) unsigned This makes the NPC immune to specific spell schools. Name Value SPELL_SCHOOL_MASK_NORMAL 1 SPELL_SCHOOL_MASK_HOLY 2 SPELL_SCHOOL_MASK_FIRE 4 SPELL_SCHOOL_MASK_NATURE 8 SPELL_SCHOOL_MASK_FROST 16 SPELL_SCHOOL_MASK_SHADOW 32 SPELL_SCHOOL_MASK_ARCANE 64 To combine spell school immunities just add values. Immune to everything corresponds to the value 127. ResistanceHoly smallint(5) The Holy resistance of the creature. ResistanceFire smallint(5) The Fire resistance of the creature. ResistanceNature smallint(5) The Nature resistance of the creature. ResistanceFrost smallint(5) The Frost resistance of the creature. ResistanceShadow smallint(5) The Shadow resistance of the creature. ResistanceArcane smallint(5) The Arcane resistance of the creature. PetSpellDataId mediumint(8) unsigned ID that displays what spells the pet has in the client. MovementType tinyint(3) unsigned The movement type defines what a creature spawn will behave like after spawning. Value Behaviour 0 Idle on spawn point 1 Random movement within spawndist radius 2 Waypoint movement TrainerType tinyint(4) For creature templates set to be trainers, this details what kind of trainer the creature is. The following table provides a list of valid trainer types. ID Type Related Field Comments 0 TRAINER_TYPE_CLASS trainer_class Trains Class Spells 1 TRAINER_TYPE_MOUNTS trainer_race Trains Riding Skill 2 TRAINER_TYPE_TRADESKILLS trainer_spell Trains Professions 3 TRAINER_TYPE_PETS trainer_class Trains Pet Skills TrainerSpell mediumint(8) unsigned If set to a valid spell identifier from Spell.dbc [See Spell.dbc], this will restrict access to a profession trainer so that the player needs to already have access to the spell to access the trainer. TrainerClass tinyint(3) unsigned The value of this field will restrict access to class and/or pet trainers, if set to a value corresponding with the class identifiers from ChrClasses.dbc. Value Description 1 Warrior 2 Paladin 3 Hunter 4 Rogue 5 Priest 7 Shaman 8 Mage 9 Warlock 11 Druid Note: Pet trainers should always use the Hunter class identifier 3. TrainerRace tinyint(3) unsigned This field allows to restrict a riding trainer to a specific race. Players not from that race will require exalted reputation with the trainers race before being able to buy from him. Values in this field correspond with the content of ChrRaces.dbc [See ChrRaces.dbc]. TrainerTemplateId mediumint(8) unsigned This field adds a training spells to a creature template and references the "npc_trainer_template" tables unique ID for which the entry is valid. VendorTemplateId mediumint(8) unsigned This field adds a vendor items to a creature template and references the "npc_vendor_template" tables unique ID for which the entry is valid. GossipMenuId mediumint(8) unsigned This references the "gossip_menu" tables unique ID for which the entry is valid, if the creature_template should have a gossip dialogue. EquipmentTemplateId mediumint(8) unsigned The field adds equipment to a creature template and references the "creature_equip_template" tables unique ID for which the entry is valid. Civilian tinyint(3) unsigned Marking a creature template as civilian will prevent it from aggroing and may influence the honor points gained negatively. Value Description 0 No civilian 1 Civilian AIName char(64) This string determines which built-in AI script will be used for the creature template. By default and empty string will lead to the creature doing nothing. The following table lists all valid entries. Value Description NullAI Do nothing. Same as empty string. AggressorAI Creature attacks when entering aggro radius. ReactorAI Creature attacks only if aggroed by spell. GuardAI Creature is a zone guard. PetAI Creature is a pet. TotemAI Creature casts spell from spell1. EventAI Creature uses event based AI. auto-generated by the getMaNGOS.eu MAGNET dbdocs module
  22. Mephisto_VI

    Installing Visual Studio 2015 (Community)

    Thanks for the guide. Currently removing the 2017 edition so I can install the 2015 edition and follow it properly. Do note, if you do not have a subscription with Microsoft, the older versions are not available to download from them. I just ran into that and had to find a copy elsewhere.
  23. antz

    Installing Visual Studio 2015 (Community)

    @reno - Yes you do
  24. reno

    Installing Visual Studio 2015 (Community)

    For using the easymangos tool, you also need the command line c++ tools installed, or am I way out of touch now?
  25. kins

    Installing Visual Studio 2015 (Community)

    How does this change with the 2017 version? I loaded it up but i cannot find a WIN32 project.
  26. antz

    Updating your cloned Server / Database files

    Either run Easybuild / cmake again (Windows) or cmake / make (Linux)
  27. antz

    creature_ai_scripts

     NOTE:  This page is auto-generated from the MAGNET DBDocs module,             Any changes made directly to this page will be lost when it is regenerated. Description of the 'creature_ai_scripts' table for MaNGOSZero This table specifies the actions that a creature script will do. A basic eventAI script works with and requires only two pieces of information: What to do and When to do it. Table Notes This table uses the 'MyISAM' DB Engine The Field definitions follow: Field Name Field Type Nullable Key Default Value Attributes Notes id int(11) unsigned NO PRI NULL 'auto_increment' The unique identifier for the AI script entry. creature_id int(11) unsigned NO '0'   This references the Unique ID in the Creature Template table. event_type tinyint(5) unsigned NO '0'   Event Type ID event_inverse_phase_mask int(11) NO '0'   Mask for the event. event_chance int(3) unsigned NO '100'   The percentage chance for this event to happen. event_flags int(3) unsigned NO '0'   Event flags allow you to modify how events are executed. event_param1 int(11) NO '0'   Parameter Value 1 for the eventtype [See creature_ai_scripts.event_type]. event_param2 int(11) NO '0'   Parameter Value 2 for the eventtype [See creature_ai_scripts.event_type]. event_param3 int(11) NO '0'   Parameter Value 3 for the eventtype [See creature_ai_scripts.event_type]. event_param4 int(11) NO '0'   Parameter Value 4 for the eventtype [See creature_ai_scripts.event_type]. action1_type tinyint(5) unsigned NO '0'   The first actiontype. action1_param1 int(11) NO '0'   Parameter 1 of the action1_type [See creature_ai_scripts.action1_type] action1_param2 int(11) NO '0'   Parameter 2 of the action1_type [See creature_ai_scripts.action1_type] action1_param3 int(11) NO '0'   Parameter 3 of the action1_type [See creature_ai_scripts.action1_type] action2_type tinyint(5) unsigned NO '0'   The Second actiontype [See creature_ai_scripts.action2_type] action2_param1 int(11) NO '0'   Parameter 1 of action2_type [See creature_ai_scripts.action2_type] action2_param2 int(11) NO '0'   Parameter 2 of action2_type [See creature_ai_scripts.action2_type] action2_param3 int(11) NO '0'   Parameter 3 of action2_type [See creature_ai_scripts.action2_type] action3_type tinyint(5) unsigned NO '0'   The Third actiontype [See creature_ai_scripts.action3_type] action3_param1 int(11) NO '0'   Parameter 1 of action3_type [See creature_ai_scripts.action3_type] action3_param2 int(11) NO '0'   Parameter 2 of action3_type [See creature_ai_scripts.action3_type] action3_param3 int(11) NO '0'   Parameter 3 of action3_type [See creature_ai_scripts.action3_type] comment varchar(255) NO {Blank String}   Documents what an event script is supposed to do. Description of the fields id int(11) unsigned The unique identifier for the AI script entry. To ease development, it has been defined that the identifier always equals the creature_template.entry * 100 [See creature_template.entry]. creature_id int(11) unsigned This references the Unique ID in the Creature Template table [See creature_template.id] for which the entry is valid. event_type tinyint(5) unsigned Event Type ID, from one of the Events below: Value Type Parameters Description Notes 0 EVENT_T_TIMER_IN_COMBAT InitialMin, InitialMax, RepeatMin, RepeatMax Expires at first between (Param1) and (Param2) and then will repeat between every (Param3) and (Param4) EXPIRES ONLY IN COMBAT. 1 EVENT_T_TIMER_OOC InitialMin, InitialMax, RepeatMin, RepeatMax Expires at first between (Param1) and (Param2) and then will repeat between every (Param3) and (Param4) EXPIRES ONLY OUT OF COMBAT BUT NOT DURING EVADE. 2 EVENT_T_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when the NPC's HP% is between (Param1) and (Param2). Will repeat between every (Param3) and (Param4) If Event Conditions Are Still Met. 3 EVENT_T_MANA ManaMax%,ManaMin% RepeatMin, RepeatMax Expires when the NPC's Mana% is between (Param1) and (Param2). Will repeat between every (Param3) and (Param4) If Event Conditions Are Still Met. 4 EVENT_T_AGGRO NONE   Expires ONLY upon the NPC's INITIAL Aggro at the Start of Combat (Does NOT Repeat) and Only Resets on Spawn or Evade.   5 EVENT_T_KILL RepeatMin, RepeatMax Expires upon Killing a Player. Will Repeat Check between (Param1) and (Param2). This Event Will Not Trigger Again Until Repeat Timer Expires 6 EVENT_T_DEATH NONE   Expires on the NPC's Death. (This Triggers At The Moment The NPC Dies)   7 EVENT_T_EVADE NONE   Expires at the moment the Creature EnterEvadeMode() and Exits Combat.   8 EVENT_T_SPELLHIT SpellID, School, RepeatMin, RepeatMax Expires upon Spell Hit of the NPC. When (param1) is set, it is the specific Spell ID used as the trigger. With (param2) specified, the expiration is limited to specific spell schools (-1 for all) and Spell ID value is ignored. Will repeat Event Conditions Check between every (Param3) and (Param4). Only A Spell ID or Spell School may be Specified but NOT both. 9 EVENT_T_RANGE MinDist, MaxDist, RepeatMin, RepeatMax Expires when the Highest Threat Target Distance is Greater than (Param1) and Less than (Param2). Will repeat between every (Param3) and (Param4) if Event Conditions Are Still Met. 10 EVENT_T_OOC_LOS NoHostile, MaxRange, RepeatMin, RepeatMax Expires when a unit moves within distance (MaxAllowedRange) of the NPC. If (Param1) is 0 it will expire only when unit is hostile, If (Param1) is 1 it will expire only when unit is friendly. This depends generally on faction relations. Will repeat every (Param3) and (Param4). Does NOT expire when the NPC is in combat. 11 EVENT_T_SPAWNED Condition, CondValue1 Expires on initial spawn and respawn of the NPC (Useful for setting Ranged Movement/Summoning Pets/Applying Buffs).   12 EVENT_T_TARGET_HP HPMax%, HPMin%, RepeatMin, RepeatMax Expires when current target's HP% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4) If Event Conditions Are Still Met. 13 EVENT_T_TARGET_CASTING RepeatMin, RepeatMax Expires when the current target is casting a spell. Will repeat every (Param1) and (Param2) If Event Conditions Are Still Met. 14 EVENT_T_FRIENDLY_HP HPDeficit, Radius, RepeatMin, RepeatMax Expires when a friendly unit in (Radius) has at least (Param1) HP points missing. Will repeat every (Param3) and (Param4) If Event Conditions Are Still Met. 15 EVENT_T_FRIENDLY_IS_CC DispelType, Radius, RepeatMin, RepeatMax Expires when a friendly unit is crowd controlled within the given Radius (Param2). Will repeat every (Param3) and (Param4).   16 EVENT_T_FRIENDLY_MISSING_BUFF SpellId, Radius, RepeatMin, RepeatMax Expires when a friendly unit is missing aura(s) given by a spell (Param1) within Radius (Param2). Will repeat every (Param3) and (Param4) If Event Conditions Are Still Met.   17 EVENT_T_SUMMONED_UNIT CreatureId, RepeatMin, RepeatMax Expires after creature with entry = (Param1) is spawned (Param1 = 0 means all spawns). Will repeat every (Param2) and (Param3). 18 EVENT_T_TARGET_MANA ManaMax%, ManaMin%, RepeatMin, RepeatMax Expires when current target's Mana% is between (Param1) and (Param2). Will repeat every (Param3) and (Param4) If Event Conditions Are Still Met. 19 EVENT_T_QUEST_ACCEPT QuestID       20 EVENT_T_QUEST_COMPLETE       21 EVENT_T_REACHED_HOME NONE Expires when a creature reaches it's home (spawn) location after evade. This is commonly used for NPC's who Stealth once reaching their Spawn Location 22 EVENT_T_RECEIVE_EMOTE EmoteId, Condition, CondValue1, CondValue2 Expires when a creature receives an emote with emote text id ("enum TextEmotes" from SharedDefines.h in Mangos Source) in (Param1). Conditions can be defined (Param2) with optional values (Param3,Param4), see (enum ConditionType) in ObjectMgr.h (Mangos Source). 23 EVENT_T_AURA Param1 = SpellID, Param2 = Number of time stacked, Param3/4 Repeat Min/Max Expires when a creature has spell (Param1) auras applied in a stack greater or equal to value provided in (Param2). Will repeat every (Param3) and (Param4) If Event Conditions Are Still Met. 24 EVENT_T_TARGET_AURA Param1 = SpellID, Param2 = Number of time stacked, Param3/4 Repeat Min/Max Expires when a target unit has spell (Param1) auras applied in a stack greater or equal to value provided in (Param2). Will repeat every (Param3) and (Param4) If Event Conditions Are Still Met. 25 EVENT_T_SUMMONED_JUST_DIED CreatureId, RepeatMin, RepeatMax Expires after creature with entry = (Param1) is die (Param1 = 0 means all spawns). Will repeat every (Param2) and (Param3). 26 EVENT_T_SUMMONED_JUST_DESPAWN CreatureId, RepeatMin, RepeatMax Expires before creature with entry = (Param1) is despawn (Param1 = 0 means all spawns). Will repeat every (Param2) and (Param3). 27 EVENT_T_MISSING_AURA Param1 = SpellID, Param2 = Number of time stacked expected, Param3/4 Repeat Min/Max Expires when a creature not has spell (Param1) auras applied in a stack greater or equal to value provided in (Param2). Will repeat every (Param3) and (Param4). 28 EVENT_T_TARGET_MISSING_AURA Param1 = SpellID, Param2 = Number of time stacked expected, Param3/4 Repeat Min/Max Expires when a target unit not has spell (Param1) auras applied in a stack greater or equal to value provided in (Param2). Will repeat every (Param3) and (Param4). 29 EVENT_T_TIMER_GENERIC InitialMin, InitialMax, RepeatMin, RepeatMax Expires at first between (Param1) and (Param2) and then will repeat between every (Param3) and (Param4).   30 EVENT_T_RECEIVE_AI_EVENT AIEventType, Sender-Entry, unused, unused Expires when the creature receives an AIEvent of type (Param1), sent by creature (Param2 != 0). If (Param2 = 0) then sent by any   Now that all of the supported events have been listed and described, we shall now move on to the actions that can be performed. Each event can take up to three actions. The actions will all be performed when the event is triggered and they will be performed in the order that they have been defined. This means that, for a certain event, action 1 will be performed first, followed by action 2, then lastly by action 3. Just like event definitions, Each action can use up to three different parameters but not all actions will use all three parameters. If a parameter isn't mentioned for an action, then that action does not need that parameter. event_inverse_phase_mask int(11) This field allows to restrict the event occurences to certain EventAI phases. The EventAI script phases are changed with actions 22 and 23, see below. This mask contains 1 in the bits corresponding to the phases for which you DO NOT wish the event occuring. The default value 0 means that the event may happen in any script phase. The value 1 will disable the event for the phase 0 while keeping it enabled for all other phases. The value 5 will disable the event for phases 0 and 2, and so on. event_chance int(3) unsigned The percentage chance for this event to happen. Values have to be between 1 and 100. event_flags int(3) unsigned Event flags allow you to modify how events are executed. Value Type Description 1 EFLAG_REPEATABLE Event repeats (Does not repeat if this flag is not set) 2 EFLAG_RESERVED_1 Unused 4 EFLAG_RESERVED_2 Unused 8 EFLAG_RESERVED_3 Unused 16 EFLAG_RESERVED_4 Unused 32 EFLAG_RANDOM_ACTION At event occur execute one random action from event actions instead all actions. 64 EFLAG_RESERVED_6 Unused 128 EFLAG_DEBUG_ONLY Event only occurs in debug builds event_param1 int(11) Parameter Value 1 for the eventtype [See creature_ai_scripts.event_type]. event_param2 int(11) Parameter Value 2 for the eventtype [See creature_ai_scripts.event_type]. event_param3 int(11) Parameter Value 3 for the eventtype [See creature_ai_scripts.event_type]. event_param4 int(11) Parameter Value 4 for the eventtype [See creature_ai_scripts.event_type]. action1_type tinyint(5) unsigned The first actiontype Before we start to list and explain the different actions that can be taken, we must first look at how the eventAI targeting system works. Due to technical reasons in how targetting is handled, the eventAI script cannot target anything or anyone that is not in its threat list or is not the scripted creature itself. It also can't currently target anyone specific in its threat list except by their position in the threat list. However, even then it can only target specifically the current victim, the second unit in its threat list, and the last unit in its threat list. It can also target units in its threat list at random and has two options for that: anyone in its threat list at random, or anyone in its threat list excluding the unit with the most threat. Aside from all of those external targets, the script can always target itself. More information on the target types can be found in the reference tables at the end of this guide. One last note before we start looking at individual actions is about the texts. The eventAI script has support for localized text entries. Therefore, you can define what the mob will say in more than one language all in another table and the script will show the corresponding localized text to the corresponding client (english text to enUS/enGB clients, german text to deDE clients, etc). All of the localized text entries will have a unique text ID assigned to them and it is that text ID that will be used by any actions that require textual input. Action Type Enum Name Description Parameters 0 ACTION_T_NONE Does nothing!   1 ACTION_T_SAY Displays the -TextId as defined. In case -TextId2 and optionally -TextId3, the output will be randomized. Type text are defined in the eventai_texts table (say, yell, whisper, etc) along with other options for the text. All values are required to be negative. Parameter 1: The entry of the text that the NPC should use from eventai_texts table. Optionally a entry from other tables can be used (such as custom_texts are required to be negative and exist in a *_texts-table. The type text to be displayed are defined in the texts-table itself (Say, Yell, Whisper, Emote Text, Boss Whisper, Boss Emote)Other options are also to be defined in the texts-table, such as a sound to be heard with the text and the language used in output (common, dwarvish, etc).In case this entry has a localized version of the text, the localized text will be displayed in client that support this locale.Parameter 2: Optional. TextId can be defined in addition. The same apply to this as explained above, however eventAI will randomize between the two.Parameter 3: Optional, if Parameter 2 exist. In this case, eventAI will randomize between three. 2 ACTION_T_YELL UNUSED   3 ACTION_T_TEXTEMOTE UNUSED   4 ACTION_T_SOUND When activated, the creature will play the specified sound. Parameter 1: The sound ID to be played. Sound IDs are contained in the DBC files. 5 ACTION_T_EMOTE When activated, the creature will perform a visual emote. Unlike a text emote, a visual emote is one where the creature will actually move or perform a gesture. Parameter 1: The emote ID that the creature should perform. Emote IDs are also contained in the DBC but they can be found in the mangos source as well. 6 ACTION_T_RANDOM_SAY UNUSED   7 ACTION_T_RANDOM_YELL UNUSED   8 ACTION_T_RANDOM_TEXTEMOTE UNUSED   9 ACTION_T_RANDOM_SOUND Similar to the ACTION_T_SOUND action, when this action is activated, it will choose at random a sound to play. This action needs all three parameters to be filled and it will pick a random entry from the three. Note: (1) Parameter 1: The sound ID to be played as choice one.Parameter 2: The sound ID to be played as choice two.Parameter 3: The sound ID to be played as choice three. 10 ACTION_T_RANDOM_EMOTE Similar to the ACTION_T_EMOTE action, when this action is activated, it will choose at random an emote ID to emote visually. This action needs all three parameters to be filled and it will pick a random entry from the three. Note: (1) Parameter 1: The emote ID that the creature should perform as choice one.Parameter 2: The emote ID that the creature should perform as choice two.Parameter 3: The emote ID that the creature should perform as choice three. 11 ACTION_T_CAST When activated, the creature will cast a spell specified by a spell ID on a target specified by the target type. Parameter 1: The spell ID to use for the cast. The value used in this field needs to be a valid spell ID.Parameter 2: The target type defining who the creature should cast on. The value in this field needs to be a valid target type as specified in the reference tables below.Parameter 3: See spell flags. If it is 1, then the spell cast will interrupt any spells that are already in the progress of being casted; otherwise if the creature is already casting a spell and this field is 0, then this action will be skipped. 12 ACTION_T_SUMMON When activated, the creature will summon another creature at the same spot as itself that will attack the specified target. Parameter 1: The creature template ID to be summoned. The value here needs to be a valid creature template ID.Parameter 2: The target type defining who the summoned creature will attack. The value in this field needs to be a valid target type as specified in the reference tables below. Note: Using target type 0 will cause the summoned creature to not attack anyone.Parameter 3: The duration until the summoned creature should be unsummoned. The value in this field is in milliseconds or 0. If zero, then the creature will not be unsummoned until it leaves combat, but only works with t_type !=0. 13 ACTION_T_THREAT_SINGLE_PCT When activated, this action will modify the threat of a target in the creatureâ?Ts threat list by the specified percent. Parameter 1: Threat percent that should be modified. The value in this field can range from -100 to +100. If it is negative, threat will be taken away and if positive, threat will be added.Parameter 2: The target type defining on whom the threat change should occur. The value in this field needs to be a valid target type as specified in the reference tables below. 14 ACTION_T_THREAT_ALL_PCT When activated, this action will modify the threat for everyone in the creatureâ?Ts threat list by the specified percent. Parameter 1: The percent that should be used in modifying everyoneâ?Ts threat in the creatureâ?Ts threat list. The value here can range from -100 to +100. Note: Using -100 will cause the creature to reset everyoneâ?Ts threat to 0 so that everyone has the same amount of threat. It does NOT make any changes as to who is in the threat list. 15 ACTION_T_QUEST_EVENT When activated, this action will satisfy the external completion requirement for the quest for the specified target defined by the target type. This action can only be used with player targets so it must be ensured that the target type will point to a player. Parameter 1: The quest template ID. The value here must be a valid quest template ID. Furthermore, the quest should have SpecialFlags | 2 as it would need to be completed by an external event which is the activation of this action.Parameter 2: The target type defining whom the quest should be completed for. The value in this field needs to be a valid target type as specified in the reference tables below. 16 ACTION_T_CASTCREATUREGO When activated, this action will call CastedCreatureOrGO() function for the player. It can be used to give quest credit for casting a spell on the creature. Parameter 1: The quest template ID. The value here must be a valid quest template ID.Parameter 2: The spell ID to use to simulate the cast. The value used in this field needs to be a valid spell ID.Parameter 3: The target type defining whom the quest credit should be given to. The value in this field needs to be a valid target type as specified in the reference tables below. 17 ACTION_T_SET_UNIT_FIELD When activated, this action can change the targetâ?Ts unit field values. More information on the field value indeces can be found at character data data. Parameter 1: The index of the field number to be changed. Use character data data for a list of indeces and what they control. Note that a creature shares the same indeces with a player except for the PLAYER_* ones.Parameter 2: The new value to be put in the field.Parameter 3: The target type defining for whom the unit field should be changed. The value in this field needs to be a valid target type as specified in the reference tables below. 18 ACTION_T_SET_UNIT_FLAG When activated, this action changes the targetâ?Ts flags by adding (turning on) more flags. For example, this action can make the creature unattackable/unselectable if the right flags are used. Parameter 1: The flag(s) to be set. Multiple flags can be set by using bitwise-OR on them (adding them together).Parameter 2: The target type defining for whom the flags should be changed. The value in this field needs to be a valid target type as specified in the reference tables below. 19 ACTION_T_REMOVE_UNIT_FLAG When activated, this action changes the targetâ?Ts flags by removing (turning off) flags. For example, this action can make the creature normal after it was unattackable/unselectable if the right flags are used. Parameter 1: The flag(s) to be removed. Multiple flags can be set by using bitwise-OR on them (adding them together).Parameter 2: The target type defining for whom the flags should be changed. The value in this field needs to be a valid target type as specified in the reference tables below. 20 ACTION_T_AUTO_ATTACK This action controls whether or not the creature should stop or start the auto melee attack. Parameter 1: If zero, then the creature will stop its melee attacks. If non-zero, then the creature will either continue its melee attacks (the action would then have no effect) or it will start its melee attacks on the target with the top threat if its melee attacks were previously stopped. 21 ACTION_T_COMBAT_MOVEMENT This action controls whether or not the creature will always move towards its target. Parameter 1: If zero, then the creature will stop moving towards its victim (if its victim gets out of melee range) and will be stationary. If non-zero, then the creature will either continue to follow its victim (the action would have no effect) or it will start to follow the target with the top threat if its movement was disabled before. 22 ACTION_T_SET_PHASE When activated, this action sets the creatureâ?Ts event to the specified value. Parameter 1: The new phase to set the creature in. This number must be an integer between 0 and 31 inclusive. 23 ACTION_T_INC_PHASE When activated, this action will increase (or decrease) the current creatureâ?Ts phase. Parameter 1: The number of phases to increase or decrease. Use negative values to decrease the current phase. After increasing or decreasing the phase by this action, the current phase must not be lower than 0 or exceed 31. 24 ACTION_T_EVADE When activated, the creature will immediately exit out of combat, clear its threat list, and move back to its spawn point. Basically, this action will reset the whole encounter.   25 ACTION_T_FLEE When activated, the creature will try to flee from combat. Currently this is done by it casting a fear-like spell on itself called "Run Away".   26 ACTION_T_QUEST_EVENT_ALL This action does the same thing as the ACTION_T_QUEST_EVENT does but it does it for all players in the creatureâ?Ts threat list. Note that if a player is not in its threat list for whatever reason, he/she wonâ?Tt get the quest completed. Parameter 1: The quest ID to finish for everyone. 27 ACTION_T_CASTCREATUREGO_ALL This action does the same thing as the ACTION_T_CASTCREATUREGO does but it does it for all players in the creatureâ?Ts threat list. Note that if a player is not in its threat list for whatever reason, he/she wonâ?Tt receive the cast emulation. Parameter 1: The quest template ID.Parameter 2: The spell ID used to simulate the cast. 28 ACTION_T_REMOVEAURASFROMSPELL This action will remove all auras from a specific spell from the target. Parameter 1: The target type defining for whom the unit field should be changed. The value in this field needs to be a valid target type as specified in the reference tables below.Parameter 2: The spell ID whose auras will be removed. 29 ACTION_T_RANGED_MOVEMENT This action changes the movement type generator to ranged type using the specified values for angle and distance. Note that specifying zero angle and distance will make it just melee instead. Parameter 1: The distance the mob should keep between it and its target.Parameter 2: The angle the mob should use. 30 ACTION_T_RANDOM_PHASE Randomly sets the phase to one from the three parameter choices. Note: (1) Parameter 1: A possible random phase choice.Parameter 2: A possible random phase choice.Parameter 3: A possible random phase choice. 31 ACTION_T_RANDOM_PHASE_RANGE Randomly sets the phase between a range of phases controlled by the parameters. Parameter 1: The minimum of the phase range.Parameter 2: The maximum of the phase range. The number here must be greater than the one in parameter 1. 32 ACTION_T_SUMMON Summons a creature using the data specified in the separate summons table. Parameter 1: The creature template ID to be summoned. The value here needs to be a valid creature template ID.Parameter 2: The target type defining who the summoned creature will attack. The value in this field needs to be a valid target type as specified in the reference tables below. Note: Using target type 0 will cause the summoned creature to not attack anyone.Parameter 3: The summon ID from the eventai_summons table controlling the position (and spawntime) where the summoned mob should be spawned at. 33 ACTION_T_KILLED_MONSTER When activated, this action will call KilledMonster() function for the player. It can be used to give creature credit for killing a creature (note that it can be ANY creature including certain quest specific triggers). In general if the quest is set to be accompished on different creatures (e.g. "Credit" templates). Parameter 1: The creature template ID. The value here must be a valid creature template ID.Parameter 2: The target type defining whom the quest kill count should be given to. The value in this field needs to be a valid target type as specified in the reference tables below. 34 ACTION_T_SET_INST_DATA Sets data for the instance. Note that this will only work when the creature is inside an instantiable zone that has a valid script (ScriptedInstance) assigned. Parameter 1: The field to change in the instance script. Again, this field needs to be a valid field that has been already defined in the instanceâ?Ts script.Parameter 2: The value to put at that field index. The number here must be a valid 32 bit number. 35 ACTION_T_SET_INST_DATA64 Sets GUID (64 bits) data for the instance based on the target. Note that this will only work when the creature is inside an instantiable zone that has a valid script (ScriptedInstance) assigned. Parameter 1: The field to change in the instance script. Again, this field needs to be a valid field that has been already defined in the instanceâ?Ts script.Parameter 2: The target type to use to get the GUID that will be stored at the field index. The value in this field needs to be a valid target type as specified in the reference tables below. 36 ACTION_T_UPDATE_TEMPLATE This function temporarily changes creature entry to new entry, display is changed, loot is changed, but AI is not changed. At respawn creature will be reverted to original entry. Parameter 1: The creature template ID. The value here must be a valid creature template ID.Parameter 2: Use model_id from team: Alliance(0) or Horde (1). 37 ACTION_T_DIE Kills the creature   38 ACTION_T_ZONE_COMBAT_PULSE Places all players within the instance into combat with the creature. Only works in combat and only works inside of instances.   39 ACTION_T_CALL_FOR_HELP Call any friendly creatures (if its not in combat/etc) in radius attack creature target. Parameter 1: Radius from creature. 40 ACTION_T_SET_SHEATH Let set sheath state for creature (0-no weapon show (not used mostly by creatures), 1-melee weapon show, 2-ranged weapon show) Parameter 1: Sheath state of the creature. 41 ACTION_T_FORCE_DESPAWN Despawns the creature. Parameter 1: Despawn delay. action1_param1 int(11) Parameter 1 of the action1_type [See creature_ai_scripts.action1_type] action1_param2 int(11) Parameter 2 of the action1_type [See creature_ai_scripts.action1_type] action1_param3 int(11) Parameter 3 of the action1_type [See creature_ai_scripts.action1_type] action2_type tinyint(5) unsigned The Second actiontype [See creature_ai_scripts.action2_type] Possible target types Value Type Description 0 TARGET_T_SELF self cast 1 TARGET_T_HOSTILE Our current target (ie: top aggro) 2 TARGET_T_HOSTILE_SECOND_AGGRO Second highest aggro, usually offtank (generaly used for cleaves and some special attacks) 3 TARGET_T_HOSTILE_LAST_AGGRO Bottom aggro target (these are healers usually) 4 TARGET_T_HOSTILE_RANDOM Just any random target on our threat list 5 TARGET_T_HOSTILE_RANDOM_NOT_TOP Any random target except top aggro 6 TARGET_T_ACTION_INVOKER Unit who caused this Event to occur (only works for EVENT_T_AGGRO, EVENT_T_KILL, EVENT_T_DEATH, EVENT_T_SPELLHIT, EVENT_T_OOC_LOS, EVENT_T_FRIENDLY_HP, EVENT_T_FRIENDLY_IS_CC, EVENT_T_FRIENDLY_MISSING_BUFF, EVENT_T_RECEIVE_EMOTE, EVENT_T_RECEIVE_AI_EVENT) 7 TARGET_T_ACTION_INVOKER_OWNER Unit owning the one responsible for Event to occur, for example, the hunter which pet triggered the event (only works for EVENT_T_AGGRO, EVENT_T_KILL, EVENT_T_DEATH, EVENT_T_SPELLHIT, EVENT_T_OOC_LOS, EVENT_T_FRIENDLY_HP, EVENT_T_FRIENDLY_IS_CC, EVENT_T_FRIENDLY_MISSING_BUFF, EVENT_T_RECEIVE_EMOTE, EVENT_T_RECEIVE_AI_EVENT) 8 TARGET_T_HOSTILE_RANDOM_PLAYER Just any random player on our threat list 9 TARGET_T_HOSTILE_RANDOM_NOT_TOP_PLAYER Any random player from threat list except top aggro (ie except main tank) 10 TARGET_T_EVENT_SENDER Unit who sent an AIEvent that was received with EVENT_T_RECEIVE_AI_EVENT action2_param1 int(11) Parameter 1 of action2_type [See creature_ai_scripts.action2_type] action2_param2 int(11) Parameter 2 of action2_type [See creature_ai_scripts.action2_type] action2_param3 int(11) Parameter 3 of action2_type [See creature_ai_scripts.action2_type] action3_type tinyint(5) unsigned The Third actiontype [See creature_ai_scripts.action3_type] action3_param1 int(11) Parameter 1 of action3_type [See creature_ai_scripts.action3_type] action3_param2 int(11) Parameter 2 of action3_type [See creature_ai_scripts.action3_type] action3_param3 int(11) Parameter 3 of action3_type [See creature_ai_scripts.action3_type] comment varchar(255) Documents what an event script is supposed to do. It has been defined that comments should use the form: 'Creature/GameObject name - Cast Spellname'. auto-generated by the getMaNGOS.eu MAGNET dbdocs module
  1. Load more activity

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×