I can offer rather advanced LUA quest system based on tables. Everything is set by using optional parameters:
[UNIQUEID_ON_MAP] = {[itemReward = {ITEM1, COUNT1, ITEM2, COUNT2....}[, experience = EXPERIENCE[, needLevel = LEVEL[, containerId = {ID}[, needStorage = {STORAGE, VALUE}[, setStorage =...