Unlike making custom vendors, there is a lot more customization that you can do with quests. Rather then list a guide showing how to create every quest combination I'm just going to explain each part of a quest. For simplification purposes I am using SQLyog to edit the tables for quests. For some odd reason when I use Navicate there are "memo" column I'm not allowed to edit thus making naming the quests impossible.
I break quests into 4 parts. Though some quests only need 3 parts to them. Everyquest has to have the quest itself. (part 1) Some method of starting the quest. (part 2) More then one method to starting a quest can be used. Some object or person to turn the quest into. (part 3) The 4th part is something that gives you a quest item. I am still working on this part, have had some problems with it.
Part one: The Quest
Zone ID: The zone you want your quest to be listed under. Some usable ID numbers.
blank = 5
aldrassil = 256
azshara = 16
azshara crater = 268
blasted lands = 4
duskwood = 10
echo ridge mine = 34
Elwynn forest = 12
kul tiras = 21
longshore = 2
moonbrook = 20
refuge pointe = 320
reuse me 6 = 66
stranglethorn vale = 33
swamp of sorrows = 8
the cemetery = 32
the dark portal = 72
the maclure vineyards = 64
the world tree = 13
westfall = 49
ziata'jal ruins = 128
QuestSort: The zone you want your quest to be listed under again. Why twice I don't know, but imputing a number into the first gives the same result as imputing a number into the second and leaving the first. However if you have different numbers in both of these columns the ZoneID numbers seems to be ignored and the quest will still be listed under whatever ID number you put into QuestSort
QuestFlags: Though one would imagine there is a usefulness of this column as of yet different numbers in here doesn't seem to effect quests any.
Minlevel: the level you have to be to pick up the quest
Maxlevel: the level of the quest itself. (not the "max" level to get credit for) so if you put 30 here the quest will be yellow to a 30 but gray to a 60
Type: The numbers say it all
0 blank (solable)
1(group)
41(pvp)
62(raid)
81(dungeon)
Required Races: Only these races will be able to pick up the quest. This is done binary style. To have more then one race be allowed to pick it up add the listed ID numbers together. If you only want only humans put a 1 into here. If you want only humans and dwarfs place a 5 into here. 1+4=5.
1 = human
2 = orc
4 = dwarf
8 = night elf
16 = undead
32 = tauren
64 = gnome
128 = troll
512 = bloodelf
1024 = dranei
690 = all horde races
1101 = all alliance races
***as of 5.0/5.1 this column isn't working quite right. I'll see if the base numbers have changed later***
The other Requireds are pretty self explanatory. I'll try to create a ID listing of usable numbers for these fields later on.
Limittime: now many seconds you have to complete the quest. 60=1 minute ect. Have to actually have a requirement to complete the quest, or it auto flags failed.
Special flags: Don't seem to be very special. Haven't noticed any difference in quests by placing any numbers into here.
PrevquestID: Self explanatory
NextquestID: QuestID you'll be offered as soon as you finish this one
SrcItem: ID number of an item you get when accepting the quest
SrcItemCount: How many of the items you get when picking up the quest.
Title: The name that appears inside your quest log
Details: The text at the top when you pick up a quest (ideally the in character explanation for the quest)
Quest Objectives: Text at the bottom when you pick up a quest. (the recap on what you need to do)
Quest incomplete: Text you get when you go to turn in the quest. (gives the gray out continue if you haven't completed the requirements or the pushable continue if you have)
Quest ending: shown underneath quest objectives when viewed from the quest log.
quest complete: Text you get when you turn in the quests before you click on "complete quest" button
Object text: Overwrite text describing what is required to complete a requirement. If left bank this will be be taken care of automatically by creating required mobkill or items ect later on. Text placed into here will overwrite the auto fills. Does nothing if quest has no requirements (the text to the left of "0/1" in your quest log)
ReqItemId1-4: ID numbers of item(s) needed to complete the quest
ReqItemCount1-4: How many of the item(s) you need to complete the quest
ReqKillmoborGOId1: ID number of the creature you want to require to be killed. Found inside creature_names. I'll look into the GOid part later on.
ReqkillmoborGOidcount: How many you have to kill
RewChoiceItem1-6: ID number of item(s) you can pick for completing the quest
RewChoiceCount1-6: How many you get of said item
RewItemId1-4: Item you automatically get when completing the quest
RewRepFaction1-2: ID for reputation modification when completing a quest
RewRepValue1-2: #value your rep will increase. Can also use negative numbers to decrease rep
RewRepLimit: may have a use but all blizzard quests have 0 so 0 is good enough for me.
RewMoney: how many coins you get. 1=1copper 10000=1gold
ReqXP: amount of XP you get (at max level this is automatically turned into gold)
Rewspell: Spell ID you learn upon completing the quest
Castspell: spell ID that gets casted on you upon completing the quest
Pointmapid: Not sure how it works
RequiredMoney: to complete quest. 1=1copper 10000=copper
Exploretrigger1-4: Location you must have explored to complete quest
RequiredQuest1-4: IDs of quests required to have been completed before you can get this quest
ReceiveItemId11-4: IDs of item(s) you will receive upon completing the quest. (often used to give additional quest items for later quest chains)
ReceiveItemCount1-4: Number you get of said item(s)
Isrepeatable: 0=not repeatable 1=repeatable
Part 2
Quest starter
Creature_quest_starter or gameobject_quest_starter
ID = ID of NPC who offers the quest
Quest = ID of quest offered
To make an Item give you the quest create an item or use an already made one.
Add the Quest ID number to the quest_id column
Part 3
Quest finisher
Creature_quest_finisher or gameobject_quest_finisher
ID = ID of NPC who offers the quest
Quest = ID of quest offered
Part 4
Drop quest Items
Still working on this part myself
Long but it works
All Credit Goes to Xerex.