Contents of this Guide:
1.) What this guide is about
2.) The SQL queries
3.) Step by Step guide on how to make a custom npc
1.) What this Guide is about
Hey guys! This guide is all about how to make a Custom npc for your World of Warcraft private server. In this guide you will learn two things. The first is what an SQL query is, and how to use SQL queries to make Custom npcs. (This is my first guide, sorry if its not the best).
2.) The SQL queries
So, some of you people out there might be wondering what an SQL Query is? Well an SQL query is very simple, it is a command that inserts information into your database. SQL queries can be used for more that creating npcs. They can create custom quests, custom items, custom game objects, etc. So basically if you ever want to have a custom server that you made, you need to know how to form and utilize SQL queries.
3.) Step by Step guide on creating a custom NPC
So after all the boring stuff we finally get to creating a custom npc . This guide will be about making a custom ELITE raid mob.
So we will start by opening a blank word document and typing this in
"INSERT INTO `creature_proto`" (without the RED Quotation marks)
This command is the starting point for any query. This command tells the SQL server to insert the following information into the database.
Now add a space and type the following "VALUES" without the red quotes. Now your Query should look this "INSERT INTO `creature_proto` VALUES"
Now after this type a space then type the following in...
('EntryID', 'MinLevel', 'Maxlevel', 'Faction', 'MinHealth', 'Maxhealth', 'Mana', 'Scale', 'Npc flags', 'Attack time', 'Attack Type', 'Mindamage', 'Maxdamage', 'Rangedattacktime', 'RangedMindamage', 'RangedMaxdamage', 'MountdisplayId', 'EquipModel1', 'Equipinfo1', 'EquipSlot1', 'EquipModel2', 'EquipInfo2', 'EquipSlot2', 'Equipmodel3', 'Equipinfo3', 'EquipSlot3', 'Respawntime', 'Armour', 'Resistance1', 'Resistance2', 'Resistance3', 'Resistance4', 'Resistance5', 'Resistance6', 'Combatreach', 'Bounding Radius', 'Auras', 'Boss', 'Money', 'Invisibilitytype', 'Deathstate', 'walkspeed', 'Runspeed', 'Flyspeed', 'Extraa9flags');
Now I'm 100% sure that 99% of the people looking at this are going, WTF?
Do not worry, I will explain it all to you The following is a list of what all of these mean, if I do not explain something LEAVE IT AT 0. If you leave anything simply blank, when you try to use this it will not work!
Okay, now back to buisness
EntryId: Replace this with the entryId you wish your custom npc to have!
MinLevel: The minimum level your npc, If your minimum level is 69 and your maximum is 71 every time you spawn it it could be level 69, 70 or 71.
MaxLevel: The Maximum level of your custom Npc
Faction: The faction of your npc, if you want your NPC to be friendly to everyone put its faction at 35! If you want your NPC to be hostile to everyone put the faction as 46!
MinHealth: The minimum health of your NPC
Maxhealth: The maximum health of your NPC
Mana: The mana of your npc
Scale: The scale of your npc, the bigger the number the bigger your npc is! (Dont make it over scale 10 or players will have problems attacking the npc, and it will lag the server)
AttackTime: The attack time of your npc, the attack time is in MS. Therefore 1000=1 second. so if you want the attack time of your NPC to be 3, the attack time would be 3000
MinDamage: The minimum damage of your npc (Take into account the fact that 60%-70% of this damage can be negated by a druid or a warrior in tanking gear)
MaxDamage: The maximum damage of your npc
Rangedattacktime: Same as attack time
Rangedmindamage: The same as Min damage
Rangedmaxdamage: The same as Max damage
MountDisplayid: This is the display id of the creature you want them to mount, look through your database or look around the forums to get the displayids of some mounts.
EquipModel1: The displayid of the weapon you want your NPC to be holding
EquipModel2: The same as EquipModel1
EqupModel3: The same as Equipmodel1
RespawnTime: How long it takes for the NPC to respawn. This Value is in MS meaning if you want it to respawn in one minute the respawn time would be 60000!
Armour: The armour value of the NPC, works the same as player armour does.
Resitance1-Resitance6: Leave blank, sometimes they bug the script
CombatReach: How far the NPC can reach in combat, set the Value of combatreach to 1 if you want it to be like a normal NPC
BoundingRadius: Leave at 1
Auras: Spell Id of an Aura. Go to Thottbot: World of Warcraft to find spell Id's If you don't want any leave it at 0
Boss: If you want the Npc to be a boss set this to 1, if you dont set it to 0
Money: The ammount of money the NPC drops in copper (Take into consideration the Money drop rate on your server)
Walkspeed: The walk speed of the NPC, the standard walk speed of an NPC is 2.5
Runspeed: The run speed of the NPC, the standard run speed of an NPC is 8, so it can outrun players.
Flyspeed: The flyspeed of the NPC, the standard fly speed of an npc is 14.
Now that thats done I will give you an example of what my Query for Necro knight looks SO FAR
INSERT INTO `creature_proto` VALUES ('234242', '72', '72', '46', '40000', '40000', '0', '1.5', '0', '1450', '0', '7000', '13000', '0', '0', '0', '0', '45509', '0', '256', '0', '0', '0', '0', '0', '0', '360000', '25000', '0', '0', '0', '1', '0', '0', '1', '1', '0', '1', '154', '0', '0', '2.5', '8', '14', '0');
I know what most of you are thinking, "So far! Isn't this it?"
Well guess what! It's not! We still need to add another part to the file
Now Below that Query insert another one...
"INSERT INTO `creature_names` VALUES ('EntryId', 'Name', 'Subname', 'Info_str', 'Flags', 'Type', 'Family', 'Rank', 'Unk_4', 'Spell_id_date', 'Maledisplayid1', 'Femaledisplayid1', 'Maledisplayid2', 'femaledisplayid2', 'Unkown_float1', 'Unkown_float2', 'Civilian', 'Leader');" Without the red quotes
EntryId: Same as you used in Creature_proto
Name: Name of your NPC
Subname: The name that goes underneath your npcs name, very much similar to Guilds.
Info_str: LEAVE BLANK! Dont put a zero or anything, simply leave it blank, this is the only VALUE that you can do this with
Flags: I normally leave them blank, it just complicates things.
Type: Determines whether your NPC is a beast, humanoid, undead, etc.
1 = Beast
2 = Dragonkin
3 = Demon
4 = Elemental
5 = Giant
6 = Undead
7 = Humanoid
8 = Critter
9 = Mechanical
10 = Not Specified
11 = Totem
Rank: Determines if the Npc is a boss, rare, or an elite, 1 = an elite 2 = rare, 3 = Boss.
Family: leave at 0
Maledisplayid : This is where you put the displayid of the NPC, if the displayid is male put it here
Femaledisplayid: If the displayid is female put it here
Civilian: Leave at 0
Leader: leave at 0
So once your done your file should look like this
INSERT INTO `creature_proto` VALUES ('234242', '72', '72', '46', '40000', '40000', '0', '1.5', '0', '1450', '0', '7000', '13000', '0', '0', '0', '0', '45509', '0', '256', '0', '0', '0', '0', '0', '0', '360000', '25000', '0', '0', '0', '1', '0', '0', '1', '1', '0', '1', '154', '0', '0', '2.5', '8', '14', '0');
INSERT INTO `creature_names` VALUES ('234242', 'Necro Warrior', 'Servant of Arthas', '', '0', '6', '0', '1', '0', '0', '11396', '0', '0', '0', '1.15', '1', '0', '0');
(feel free to copy that Query and use it on your server )
Now once your done save it as a .SQL file, open up your database click on the right click on the ascent folder and click "Execute Batch". After your done do .reload creature_proto and .reload creature_names. Then spawn your creature
Thanks for reading, this is my first guide.
No one can copy this guide.