浏览代码

Sync Lua from dev server to git

devn00b 7 月之前
父节点
当前提交
34b588c370
共有 100 个文件被更改,包括 8441 次插入267 次删除
  1. 57 0
      server/ItemScripts/AGnollsDoll.lua
  2. 84 0
      server/ItemScripts/ARuinedBloodsaberChestpiece.lua
  3. 23 1
      server/ItemScripts/ATwitchingCrabClaw.lua
  4. 56 0
      server/ItemScripts/AWantedPoster.lua
  5. 12 5
      server/ItemScripts/AcommemorativeQeynosCoin.lua
  6. 24 0
      server/ItemScripts/Acrudegnollscrawling.lua
  7. 17 11
      server/ItemScripts/AnOrcBrain.lua
  8. 17 11
      server/ItemScripts/AnOrcEar.lua
  9. 17 11
      server/ItemScripts/AnOrcEye.lua
  10. 17 11
      server/ItemScripts/AnOrcHeart.lua
  11. 16 10
      server/ItemScripts/AnOrcSkin.lua
  12. 17 11
      server/ItemScripts/AnOrcTooth.lua
  13. 62 0
      server/ItemScripts/AntonicaCreatureCatalog.lua
  14. 55 0
      server/ItemScripts/AntonicaCreatureCatalogComplete.lua
  15. 328 0
      server/ItemScripts/BardCertificationPapers.lua
  16. 51 0
      server/ItemScripts/BeggarsCourtcitizenshiptask.lua
  17. 52 0
      server/ItemScripts/BigBendcitizenshiptask.lua
  18. 29 0
      server/ItemScripts/BlightoftheMorning.lua
  19. 147 0
      server/ItemScripts/BootstruttersFieldGuidetoAntonica.lua
  20. 302 0
      server/ItemScripts/BrawlerCertificationPapers.lua
  21. 11 0
      server/ItemScripts/BucklerofUncommonBravery.lua
  22. 57 0
      server/ItemScripts/CaltorsisClericPage14.lua
  23. 1 1
      server/ItemScripts/CastleviewHamletcitizenshiptask.lua
  24. 45 1
      server/ItemScripts/ChugglesToolbox.lua
  25. 284 0
      server/ItemScripts/ClericCertificationPapers.lua
  26. 287 0
      server/ItemScripts/CrusaderCertificationPapers.lua
  27. 89 0
      server/ItemScripts/DirtCakedShield.lua
  28. 288 0
      server/ItemScripts/DruidCertificationPapers.lua
  29. 22 0
      server/ItemScripts/DwarvenWorkBoots.lua
  30. 282 0
      server/ItemScripts/EnchanterCertificationPapers.lua
  31. 18 0
      server/ItemScripts/FishWine.lua
  32. 630 0
      server/ItemScripts/ForgeryFreeportCitizenshipPapers.lua
  33. 634 0
      server/ItemScripts/ForgeryQeynosCitizenshipPapers.lua
  34. 22 0
      server/ItemScripts/FroglokPondstoneEvil.lua
  35. 22 0
      server/ItemScripts/FroglokPondstoneGood.lua
  36. 1 1
      server/ItemScripts/GraystoneYardcitizenshiptask.lua
  37. 158 0
      server/ItemScripts/IgnatiaCellusFamilyHistoryBook.lua
  38. 85 0
      server/ItemScripts/IgnatiaCellusFamilyHistoryBookHouseItem.lua
  39. 184 0
      server/ItemScripts/IsabellaCellusFamilyHistoryBook.lua
  40. 101 0
      server/ItemScripts/IsabellaCellusFamilyHistoryBook_House.lua
  41. 52 0
      server/ItemScripts/LongshadowAlleycitizenshiptask.lua
  42. 89 0
      server/ItemScripts/MeteorChunk.lua
  43. 27 0
      server/ItemScripts/MinorAntiVenin.lua
  44. 26 0
      server/ItemScripts/MinorElementalOintment.lua
  45. 21 0
      server/ItemScripts/MinorEnigmaticFormula.lua
  46. 21 0
      server/ItemScripts/MinorSalve.lua
  47. 57 0
      server/ItemScripts/MutatedRatDrawing.lua
  48. 62 0
      server/ItemScripts/OutlyingQeynosCreatureCatalog.lua
  49. 55 0
      server/ItemScripts/OutlyingQeynosCreatureCataloging.lua
  50. 52 0
      server/ItemScripts/OutlyingQeynosCreatureCatalogingDone.lua
  51. 1 1
      server/ItemScripts/OverflowManifest.lua
  52. 84 0
      server/ItemScripts/PatchofDogFur.lua
  53. 18 0
      server/ItemScripts/PickledGuktaJuice.lua
  54. 323 0
      server/ItemScripts/PredatorCertificationPapers.lua
  55. 311 0
      server/ItemScripts/QeynosWarriorCertificationPapers.lua
  56. 27 0
      server/ItemScripts/RemedyoftheGarden.lua
  57. 322 0
      server/ItemScripts/RogueCertificationPapers.lua
  58. 25 0
      server/ItemScripts/SacredSustenanceFood.lua
  59. 24 0
      server/ItemScripts/SacredSustenanceWater.lua
  60. 284 0
      server/ItemScripts/ShamanCertificationPapers.lua
  61. 25 0
      server/ItemScripts/SharkFinSouffle.lua
  62. 280 0
      server/ItemScripts/SorcererCertificationPapers.lua
  63. 1 1
      server/ItemScripts/StarcrestCommunecitizenshiptask.lua
  64. 52 0
      server/ItemScripts/StonestairBywaycitizenshiptask.lua
  65. 279 0
      server/ItemScripts/SummonerCertificationPapers.lua
  66. 52 0
      server/ItemScripts/TempleStreetcitizenshiptask.lua
  67. 22 0
      server/ItemScripts/The5YearFirework.lua
  68. 1 1
      server/ItemScripts/TheBaubbleshirecitizenshiptask.lua
  69. 121 0
      server/ItemScripts/TheFreeportCitizensGuidetoOpportunity.lua
  70. 111 0
      server/ItemScripts/TheHistoryofFrogloks.lua
  71. 1 1
      server/ItemScripts/TheJournaloftheSunWolf.lua
  72. 32 0
      server/ItemScripts/TheLegendaryDwarvenWorkBoots.lua
  73. 176 0
      server/ItemScripts/TheRatQueenofVerminsSnye.lua
  74. 96 0
      server/ItemScripts/TheRatQueenofVerminsSnye_Complete.lua
  75. 52 0
      server/ItemScripts/TheScaleYardcitizenshiptask.lua
  76. 18 0
      server/ItemScripts/VoleensSweetbread.lua
  77. 15 13
      server/ItemScripts/WelcometoQeynosCitizen.lua
  78. 1 1
      server/ItemScripts/WillowWoodcitizenshiptask.lua
  79. 84 0
      server/ItemScripts/aRustySword.lua
  80. 26 11
      server/ItemScripts/aRustySymbolOfMarr.lua
  81. 43 7
      server/ItemScripts/a_locked_chest.lua
  82. 16 11
      server/ItemScripts/abixieeye.lua
  83. 16 11
      server/ItemScripts/abixieleg.lua
  84. 16 11
      server/ItemScripts/abixiestinger.lua
  85. 15 10
      server/ItemScripts/abixiethorax.lua
  86. 16 11
      server/ItemScripts/abixiewing.lua
  87. 7 0
      server/ItemScripts/abrasskey.lua
  88. 44 3
      server/ItemScripts/abrokenmusicbox.lua
  89. 48 3
      server/ItemScripts/acarvedorcaxe.lua
  90. 16 11
      server/ItemScripts/acentaurear.lua
  91. 16 11
      server/ItemScripts/acentaureye.lua
  92. 16 11
      server/ItemScripts/acentaurhand.lua
  93. 16 11
      server/ItemScripts/acentaurhoof.lua
  94. 16 11
      server/ItemScripts/acentaurmane.lua
  95. 89 0
      server/ItemScripts/achainedbundle.lua
  96. 17 11
      server/ItemScripts/acorruptedzombiebrain.lua
  97. 17 11
      server/ItemScripts/adecomposingzombieorgan.lua
  98. 56 0
      server/ItemScripts/adirtygraverobbernote.lua
  99. 16 11
      server/ItemScripts/afairydustjar.lua
  100. 15 9
      server/ItemScripts/afairyear.lua

+ 57 - 0
server/ItemScripts/AGnollsDoll.lua

@@ -0,0 +1,57 @@
+--[[
+    Script Name    : ItemScripts/AGnollsDoll.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.17 07:05:00
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5838
+
+function examined(Item, Player)
+	if not HasCompletedQuest(Player,Quest) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "These gnolls and their dark magic must stop!","Offer")
+    end
+    AddConversationOption(conversation, "[Keep the little stuffed animal in your bag.]")
+    AddConversationOption(conversation, "[Drop it. You've done enough gnoll hunting.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This doll is similar to one you've seen before. The dark magics it was used for still infuriate you!")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Look closely at the stuffed animal.]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the stuffed animal away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This is a cute little stuffed animal.")
+end
+
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "Antonica would be a safer place with fewer Darkpaw Mystics.", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the stuffed animal away away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This small stuffed animal looks to have been a human child's toy at one-time.  The toy looks to have been used in some ritual magic as it has many bite marks and bone powder caking its surface.")
+
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,1825) then
+        RemoveItem(Player,1825,1)
+    end
+end

+ 84 - 0
server/ItemScripts/ARuinedBloodsaberChestpiece.lua

@@ -0,0 +1,84 @@
+--[[
+    Script Name    : ItemScripts/ARuinedBloodsaberChestpiece.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.19 03:05:54
+    Script Purpose : 
+                   : 
+--]]
+--
+local Quest = 5841
+
+function examined(Item, Player)
+if not HasQuest(Player, Quest) and not HasCompletedQuest(Player, Quest) then
+    Dialog1(Item,Player)
+elseif GetQuestStep(Player,Quest)==1 or GetQuestStep(Player,Quest)==2 or GetQuestStep(Player,Quest)==3 then
+    Dialog2(Item,Player)
+elseif GetQuestStep(Player,Quest)==4 or GetQuestStep(Player,Quest)==5 or GetQuestStep(Player,Quest)==6 then
+    Dialog3(Item,Player)
+elseif GetQuestStep(Player,Quest)==7 or GetQuestStep(Player,Quest)==8 then
+    Dialog4(Item,Player)
+elseif  HasCompletedQuest(Player, Quest)then
+    Completed(Item,Player)
+end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Inspect the chestpiece closely]", "Dialog2")
+    AddConversationOption(conversation, "[Put the chestpiece away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This leather armor has seen better days. You have to wonder why someone would hold on to this...")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    if GetQuestStep(Player,Quest)==3 then
+    AddConversationOption(conversation, "[Attempt a repair using the gnoll armor sections.]", "Dialog3")
+    end
+    AddConversationOption(conversation, "[Put the ruined chestpiece away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This appears to be a chestpiece that belonged to the once powerful Bloodsaber Clan. There seems to be a large hole in the back of this armor; whatever arcane forces hit this piece of armor must have devastated the poor soul wearing it.")
+end
+
+
+function Dialog3(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==6 then
+    AddConversationOption(conversation, "[Use the Queen Klicnik eye on the armor.]", "Dialog4")
+    end
+    if GetQuestStep(Player,Quest)==3 then
+    SetStepComplete(Player,Quest,3)
+    end    
+    AddConversationOption(conversation, "[Consider a way to disenchant the armor.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "While attempting to attach the gnoll armor segment you notice that it is almost repelled by the Bloodsaber armor. Magical forces seem to be preventing the repair of this armor.")
+end
+
+function Dialog4(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==8 then
+    AddConversationOption(conversation, "[Craft a lining from the kodiak hides.]", "QuestFinish")
+    end
+    if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+    end    
+    AddConversationOption(conversation, "[Put the jagged chestpiece away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "When held near the gnoll armor segments the Bloodsaber armor starts shaking. The gnoll armor is pulled into and seemingly absorbed by the Bloodsaber armor. While the armor is now functional, the rough edges will make it almost impossible to wear.")
+end
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if GetQuestStep(Player,Quest)==8 then
+    SetStepComplete(Player,Quest,8)
+    end    
+    if HasItem(Player,2543) then
+        RemoveItem(Player,2543,1)
+    end
+end
+    
+function Completed(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Hold on to the ruined chestpiece.]", "QuestFinish")
+    AddConversationOption(conversation, "[Toss this aside. It is ruined, after all.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This ruined chestpiece has the same Bloodsaber clan emblem from one you repaired. Apparently, more than one of them met their fate to a similar wound. Hopefully the one you repaired lasts longer than this one!")
+end

+ 23 - 1
server/ItemScripts/ATwitchingCrabClaw.lua

@@ -1,6 +1,28 @@
 local QUEST = 385
+
+
 function examined(Item, Player)
-     if CanReceiveQuest(Player, QUEST)
+    Dialog1(Item,Player)
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,QUEST) then
+    AddConversationOption(conversation, "[Try to pry the shiney object from the pincer.]", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the twitching claw away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This crab claw twitches slightly. You notice something glint near the closed pincer...")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player, QUEST)
    then OfferQuest(NPC, Player, QUEST)
 end
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "These crabs must die! I will slay them ALL!", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The claw spasms tightly on your finger! You wince at the pinch as you wrestle your hand free. You are seething with anger at this... this CRAB! Your throbbing finger will be avenged...")
+    PlayFlavor(Player,"","","wince",0,0,Player)
 end

+ 56 - 0
server/ItemScripts/AWantedPoster.lua

@@ -0,0 +1,56 @@
+--[[
+    Script Name    : ItemScripts/AWantedPoster.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.19 01:05:03
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5835
+
+function examined(Item, Player)
+	if not HasCompletedQuest(Player,Quest) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "These mutated creatures do not belong here!", "Offer")
+    end
+    AddConversationOption(conversation, "[Keep the poster in your bags.]")
+    AddConversationOption(conversation, "[Toss the poster. You've taken care of the gnolls.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This weathered poster is identical to one you worked with before. There must have been countless of them posted about.")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Unfurl the poster.]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the poster away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Time has not been kind to this rolled-up poster. The edges are frayed and splottched from moisture.")
+end
+
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Pursue the gnolls!]", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the poster away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This is obviously an old wanted poster with images of gnoll faces across the top. You can make out some of the words.\n\n\"WANTED!\"\n\n\"Darkpaw gnolls have pillaged Antonica farmlands and must be dealt with!\"\n\n Unfortunately any mention of a reward has worn away.")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,3213) then
+        RemoveItem(Player,3213,1)
+    end
+end

+ 12 - 5
server/ItemScripts/AcommemorativeQeynosCoin.lua

@@ -9,13 +9,20 @@
 function examined(Item, Player)
 choice = MakeRandomInt(0,100)
 if choice >=2 then
-conversation = CreateConversation()
-PlayFlavor(Player, "voiceover/english/queen_antonia_bayle/qey_north/antonia_isle_speech_1.mp3", "", "", 499186274, 1744595600, Player)
+    if GetClientVersion(Player) >546 then
+    conversation = CreateConversation()
+    PlayFlavor(Player, "voiceover/english/queen_antonia_bayle/qey_north/antonia_isle_speech_1.mp3", "", "", 499186274, 1744595600, Player)
     -- PlayFlavor(Player,"voiceover/english/tullia_domna/fprt_hood04/quests/tulladomna/tulla_x1_initial.mp3","","",309451026,621524268,Player)
     --	PlayFlavor(Player,"voiceover/english/queen_antonia_bayle/qey_north/antonia_isle_speech.mp3","","", 2297205435, 1273418227,Player)
-AddConversationOption(conversation, "\"Many among you...\"", "visage03")
-AddConversationOption(conversation, "Put the coin away.", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "As you clutch the coin in your hand, you hear a voice magically speaking in your mind.                                                                                                                                      \"Good traveler, you have seen much in your journey, and now you seek refuge in our humble City of Qeynos. As ruler and servant of the good people of Qeynos, I, Antonia Bayle, welcome you.\"")
+    AddConversationOption(conversation, "\"Many among you...\"", "visage03")
+    AddConversationOption(conversation, "Put the coin away.", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "As you clutch the coin in your hand, you hear a voice magically speaking in your mind.                                                                                                                                      \"Good traveler, you have seen much in your journey, and now you seek refuge in our humble City of Qeynos. As ruler and servant of the good people of Qeynos, I, Antonia Bayle, welcome you.\"")
+    else
+    conversation = CreateConversation()
+    PlayFlavor(Player,"voiceover/english/queen_antonia_bayle/qey_north/antonia_isle_speech.mp3","","", 2297205435, 1273418227,Player)
+    AddConversationOption(conversation, "Put the coin away.", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "As you clutch the coin in your hand, you hear a voice magically speaking in your mind.")    
+end
 else
 conversation = CreateConversation() -- A SECRET DEEP DIVE INTO ANTONIA'S THOUGHTS (This is in jest, obviously)
 PlayFlavor(Player,"voiceover/english/tullia_domna/fprt_hood04/quests/tulladomna/tulla_x1_initial.mp3","","",309451026,621524268,Player)

+ 24 - 0
server/ItemScripts/Acrudegnollscrawling.lua

@@ -0,0 +1,24 @@
+--[[
+    Script Name    : ItemScripts/Acrudegnollscrawling.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.13 05:05:06
+    Script Purpose : 
+                   : 
+--]]
+quest = 5644
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+if CanReceiveQuest(Player,quest) then
+AddConversationOption(conversation, "Warn Walcott.","QuestStart")
+end
+AddConversationOption(conversation, "Put the scroll away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The crude scrawling seems to be a map. It shows four crop fields with the name Walcott scrawled on it. Just to the west of the fields is the drawing of a gate and castle beyond a wall.")
+end
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, quest)
+end
+

+ 17 - 11
server/ItemScripts/AnOrcBrain.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/AnOrcBrain.lua
-    Script Author  : Premierio015
+    Script Author  : Premierio015//Dorbin
     Script Date    : 2021.06.20 09:06:23
     Script Purpose : Item Script for Lore and Legend:Orc Quest
                    : 
@@ -10,19 +10,25 @@
 local LoreAndLegendOrc = 5257
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
-OfferQuest(nil, Player, LoreAndLegendOrc)
-elseif not QuestStepIsComplete(Player, LoreAndLegendOrc, 3) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
+    OfferQuest(nil, Player, LoreAndLegendOrc)
+else
+    conversation = CreateConversation()    
+    if HasQuest(Player, LoreAndLegendOrc) and  GetQuestStepProgress(Player, LoreAndLegendOrc, 3)==0  then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+    end
+    AddConversationOption(conversation, "No, put it away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendOrc, 3)
-RemoveItem(Player, 3796)
+if HasItem(Player,3796,1) then
+    SetStepComplete(Player, LoreAndLegendOrc, 3)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 3796)
+end
 end
 
 

+ 17 - 11
server/ItemScripts/AnOrcEar.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/AnOrcEar.lua
-    Script Author  : Premierio015
+    Script Author  : Premierio015//Dorbin
     Script Date    : 2021.06.20 09:06:11
     Script Purpose :  Item Script for Lore and Legend:Orc Quest
                    : 
@@ -11,19 +11,25 @@
 local LoreAndLegendOrc = 5257
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
-OfferQuest(nil, Player, LoreAndLegendOrc)
-elseif not QuestStepIsComplete(Player, LoreAndLegendOrc, 8) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
+    OfferQuest(nil, Player, LoreAndLegendOrc)
+else
+    conversation = CreateConversation()    
+    if HasQuest(Player, LoreAndLegendOrc) and  GetQuestStepProgress(Player, LoreAndLegendOrc, 8)==0  then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+    end
+    AddConversationOption(conversation, "No, put it away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendOrc, 8)
-RemoveItem(Player, 3797)
+if HasItem(Player,3797,1) then
+    SetStepComplete(Player, LoreAndLegendOrc, 8)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 3797)
+end
 end
 
 

+ 17 - 11
server/ItemScripts/AnOrcEye.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/AnOrcEye.lua
-    Script Author  : Premierio015
+    Script Author  : Premierio015//Dorbin
     Script Date    : 2021.06.20 09:06:00
     Script Purpose : Item Script for Lore and Legend:Orc Quest
                    : 
@@ -9,19 +9,25 @@
 local LoreAndLegendOrc = 5257
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
-OfferQuest(nil, Player, LoreAndLegendOrc)
-elseif not QuestStepIsComplete(Player, LoreAndLegendOrc, 4) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
+    OfferQuest(nil, Player, LoreAndLegendOrc)
+else
+    conversation = CreateConversation()    
+    if HasQuest(Player, LoreAndLegendOrc) and  GetQuestStepProgress(Player, LoreAndLegendOrc, 4)==0  then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+    end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendOrc, 4)
-RemoveItem(Player, 3798)
+if HasItem(Player,3798,1) then
+    SetStepComplete(Player, LoreAndLegendOrc, 4)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 3798)
+end
 end
 
 

+ 17 - 11
server/ItemScripts/AnOrcHeart.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/AnOrcHeart.lua
-    Script Author  : Premierio015
+    Script Author  : Premierio015//Dorbin
     Script Date    : 2021.06.20 09:06:24
     Script Purpose : Item Script for Lore and Legend:Orc Quest
                    : 
@@ -9,19 +9,25 @@
 local LoreAndLegendOrc = 5257
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
-OfferQuest(nil, Player, LoreAndLegendOrc)
-elseif not QuestStepIsComplete(Player, LoreAndLegendOrc, 2) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
+    OfferQuest(nil, Player, LoreAndLegendOrc)
+else
+    conversation = CreateConversation()    
+    if HasQuest(Player, LoreAndLegendOrc) and  GetQuestStepProgress(Player, LoreAndLegendOrc, 2)==0  then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+    end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendOrc, 2)
-RemoveItem(Player, 3799)
+if HasItem(Player,3799,1) then
+    SetStepComplete(Player, LoreAndLegendOrc, 2)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 3799)
+end
 end
 
 

+ 16 - 10
server/ItemScripts/AnOrcSkin.lua

@@ -9,19 +9,25 @@
 local LoreAndLegendOrc = 5257
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
-OfferQuest(nil, Player, LoreAndLegendOrc)
-elseif not QuestStepIsComplete(Player, LoreAndLegendOrc, 5) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
+    OfferQuest(nil, Player, LoreAndLegendOrc)
+else
+    conversation = CreateConversation()    
+    if HasQuest(Player, LoreAndLegendOrc) and  GetQuestStepProgress(Player, LoreAndLegendOrc, 5)==0  then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+    end
+    AddConversationOption(conversation, "No, put it away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendOrc, 5)
-RemoveItem(Player, 3800)
+if HasItem(Player,3800,1) then
+    SetStepComplete(Player, LoreAndLegendOrc, 5)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 3800)
+end
 end
 
 

+ 17 - 11
server/ItemScripts/AnOrcTooth.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/AnOrcTooth.lua
-    Script Author  : Premierio015
+    Script Author  : Premierio015//Dorbin
     Script Date    : 2021.06.20 09:06:36
     Script Purpose : Item Script for Lore and Legend:Orc Quest
                    : 
@@ -11,19 +11,25 @@
 local LoreAndLegendOrc = 5257
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
-OfferQuest(nil, Player, LoreAndLegendOrc)
-elseif not QuestStepIsComplete(Player, LoreAndLegendOrc, 6) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendOrc) and not HasCompletedQuest(Player, LoreAndLegendOrc) then
+    OfferQuest(nil, Player, LoreAndLegendOrc)
+else
+    conversation = CreateConversation()    
+    if HasQuest(Player, LoreAndLegendOrc) and  GetQuestStepProgress(Player, LoreAndLegendOrc, 6)==0  then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+    end
+    AddConversationOption(conversation, "No, put it away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the orc. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendOrc, 6)
-RemoveItem(Player, 3802)
+if HasItem(Player,3802,1) then
+    SetStepComplete(Player, LoreAndLegendOrc, 6)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 3802)
+end
 end
 
 

+ 62 - 0
server/ItemScripts/AntonicaCreatureCatalog.lua

@@ -0,0 +1,62 @@
+--[[
+    Script Name    : ItemScripts/AntonicaCreatureCatalog.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.15 04:09:12
+    Script Purpose : 
+                   : 
+--]]
+local Catalogue = 5885
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Before the Rending, Antonica was the name of a very large continent that included the cities of Qeynos, Freeport, Halas, Rivervale, Highhold, Oggok and Gukta. Since the cataclysms that changed the lands, the name \"Antonica\" refers only to the western half of the continent of Karan. Its major city is Qeynos, which is located on Antonica's western coast.")
+end
+
+
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page2")
+AddConversationOption(conversation, "Turn back to previous section.","examined")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Antonica is the western half of the continent of Karan. It is surrounded by the ColdwindCoast on its north, west and southwestern edges. To the southeast, the PhantomMountains separate Antonica from the Thundering Steppes. Travel through the PhantomMountains is difficult. One can take advantage of Blind Man's Pass which is under the protection of the Qeynos Guard, however the lands surrounding the Pass are inhospitable.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page3")
+AddConversationOption(conversation, "Turn back to previous section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The climate of Antonica is temperate, with cool nights and comfortable days. The winds are generally from the west during the days, bringing sea breezes from across the ColdwindCoast. In the evenings, the wind flows from the east down the slopes of the Phantom Mountains. When the winds are reversed, the air is drier during the day but not uncomfortably so. Rains are generally mild during Growth and Harvest seasons. Overnight frosts are common during Decay, but melt away with the sunrise.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page4")
+AddConversationOption(conversation, "Turn back to previous section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "As the temperatures are so temperate, Antonica has a good season of Growth. The fertile lands contain scattered farms with pastures and fields. Trees are mainly deciduous oaks and maples in the valleys, while the hills are crowned by coniferous pines. Beneath the shade of the trees one can find flowers such as violets, Tunare's breath and dwarf-bearded iris. At night, one might be fortunate enough to find the rare night blooming gnoll's bane.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+if not HasQuest(Player,Catalogue) and not HasCompletedQuest(Player,Catalogue)then
+AddConversationOption(conversation, "Record the depicted creatures in your journal.","QuestStart")
+end
+AddConversationOption(conversation, "Turn back to previous section.","Page3")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Gnolls are the most obvious creature throughout Antonica. Various clans stake out territories for themselves and attempt to establish themselves as the major player in the region. Non-sentient creatures scattered through the green hills include timber wolves, badgers, bears, and klicnik beetles. Bats are known to wander near old ruined structures or amongst the trees. The ColdwindCoast around Antonica abounds with sea life as well, including crabs, pikes and lurkers.")
+end
+
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Catalogue)
+end
+
+
+
+

+ 55 - 0
server/ItemScripts/AntonicaCreatureCatalogComplete.lua

@@ -0,0 +1,55 @@
+--[[
+    Script Name    : ItemScripts/AntonicaCreatureCatalogComplete.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.15 04:09:53
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Before the Rending, Antonica was the name of a very large continent that included the cities of Qeynos, Freeport, Halas, Rivervale, Highhold, Oggok and Gukta. Since the cataclysms that changed the lands, the name \"Antonica\" refers only to the western half of the continent of Karan. Its major city is Qeynos, which is located on Antonica's western coast.")
+end
+
+
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page2")
+AddConversationOption(conversation, "Turn back to previous section.","examined")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Antonica is the western half of the continent of Karan. It is surrounded by the ColdwindCoast on its north, west and southwestern edges. To the southeast, the PhantomMountains separate Antonica from the Thundering Steppes. Travel through the PhantomMountains is difficult. One can take advantage of Blind Man's Pass which is under the protection of the Qeynos Guard, however the lands surrounding the Pass are inhospitable.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page3")
+AddConversationOption(conversation, "Turn back to previous section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The climate of Antonica is temperate, with cool nights and comfortable days. The winds are generally from the west during the days, bringing sea breezes from across the ColdwindCoast. In the evenings, the wind flows from the east down the slopes of the Phantom Mountains. When the winds are reversed, the air is drier during the day but not uncomfortably so. Rains are generally mild during Growth and Harvest seasons. Overnight frosts are common during Decay, but melt away with the sunrise.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page4")
+AddConversationOption(conversation, "Turn back to previous section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "As the temperatures are so temperate, Antonica has a good season of Growth. The fertile lands contain scattered farms with pastures and fields. Trees are mainly deciduous oaks and maples in the valleys, while the hills are crowned by coniferous pines. Beneath the shade of the trees one can find flowers such as violets, Tunare's breath and dwarf-bearded iris. At night, one might be fortunate enough to find the rare night blooming gnoll's bane.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn back to previous section.","Page3")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Gnolls are the most obvious creature throughout Antonica. Various clans stake out territories for themselves and attempt to establish themselves as the major player in the region. Non-sentient creatures scattered through the green hills include timber wolves, badgers, bears, and klicnik beetles. Bats are known to wander near old ruined structures or amongst the trees. The ColdwindCoast around Antonica abounds with sea life as well, including crabs, pikes and lurkers.")
+end
+
+
+
+
+
+
+
+

+ 328 - 0
server/ItemScripts/BardCertificationPapers.lua

@@ -0,0 +1,328 @@
+--[[
+    Script Name    : ItemScripts/BardCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.14 10:06:07
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5855
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==31 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Bard\" if you signed it and are a Commoner or Scout.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Bard.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Bard","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Bard as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Bard.")
+ 	if GetClass(Player)== 1 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,35)   
+   local level = GetLevel(Player)*5
+
+if not HasSkill(Player, 1921433074) then -- Reconnaissance
+    AddSkill(Player, 1921433074,1,level)
+    SendMessage(Player, "You have learned the Reconnaissance skill")
+end
+if not HasSkill(Player, 1311635100) then -- Melodies/Bard
+    AddSkill(Player, 1311635100,1,level)
+    SendMessage(Player, "You have learned the Melodies skill")
+end
+if not HasSkill(Player, 1468243427) then -- Tracking
+    AddSkill(Player, 1468243427,1,level)
+    SendMessage(Player, "You have learned the Tracking skill")
+end
+if not HasSkill(Player, 2200201799) then -- Disarm Trap
+    AddSkill(Player, 2200201799,1,level)
+    SendMessage(Player, "You have learned the Disarm Trap skill")
+end
+if not HasSkill(Player, 3232294366) then -- Safe Fall
+    AddSkill(Player, 3232294366,31,level)
+    SendMessage(Player, "You have learned the Safe Fall skill")
+end
+ if not HasSkill(Player, 1756482397) then -- Ranged
+    AddSkill(Player, 1756482397,1,level)
+    SendMessage(Player, "You have learned the Ranged skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+if not HasSkill(Player, 418532101) then -- Slashing
+    AddSkill(Player, 418532101,1,level)
+    SendMessage(Player,  "You have learned the Slashing skill")
+end
+if not HasSkill(Player, 1852383242) then -- Dual Wield
+    AddSkill(Player, 1852383242,1,level)
+    SendMessage(Player, "You have learned the Dual Wield skill")
+end
+if not HasSkill(Player, 2650425026) then -- Thrown Weapon
+    AddSkill(Player, 2650425026,1,level)
+    SendMessage(Player, "You have learned the Thrown Weapon skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+ if not HasSkill(Player, 2897193374) then -- Light Armor
+    AddSkill(Player, 2897193374,1,level)
+   SendMessage(Player, "You are now more proficient with Light Armor")
+end
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 3173504370) then -- Roundshield
+    AddSkill(Player, 3173504370,1,level)
+    SendMessage(Player, "You are now more proficient with a Roundshield")
+end
+if not HasSkill(Player, 1616998748) then -- Spear
+    AddSkill(Player, 1616998748,1,level)
+    SendMessage(Player, "You are now more proficient with a Spear")
+end
+if not HasSkill(Player, 887279616) then -- Dagger
+    AddSkill(Player, 887279616,1,level)
+    SendMessage(Player, "You are now more proficient with a Dagger")
+end
+if not HasSkill(Player, 1743366740) then -- Bow
+    AddSkill(Player, 1743366740,1,level)
+    SendMessage(Player, "You are now more proficient with a Bow")
+end
+if not HasSkill(Player, 2476073427) then -- Axe
+    AddSkill(Player, 2476073427,1,level)
+    SendMessage(Player, "You are now more proficient with an Axe")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 641561514) then -- Rapier
+    AddSkill(Player, 641561514,1,level)
+    SendMessage(Player, "You are now more proficient with a Rapier")
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    AddSkill(Player, 1696217328,1,level)
+    SendMessage(Player, "You are now more proficient with a Sword")
+end
+if not HasSkill(Spawn, 613995491) then -- Disruption
+    AddSkill(Spawn, 613995491,1,level)
+    SendMessage(Spawn, "You have learned the Disruption skill")
+end
+if not HasSkill(Spawn, 366253016) then -- Ministration
+    AddSkill(Spawn, 366253016,1,level)
+    SendMessage(Spawn, "You have learned the Ministration skill")
+end
+if not HasSkill(Spawn, 3587918036) then -- Ordination
+    AddSkill(Spawn, 3587918036,1,level)
+    SendMessage(Spawn, "You have learned the Ordination skill")
+end
+if not HasSkill(Spawn, 882983852) then -- Subjugation
+    AddSkill(Spawn, 882983852,1,level)
+    SendMessage(Spawn, "You have learned the Subjugation skill")
+end
+--REMOVE SKILLS
+-- Remove Fighter for Scout
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Advance Scout
+
+
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest for Scout
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage for Scout
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 1616998748) then -- Spear
+    RemoveSkill(Player, 1616998748)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 1553857724) then -- Investigation
+    RemoveSkill(Player, 1553857724)
+end
+if HasSkill(Player, 3429135390) then -- Mystical Destruction
+    RemoveSkill(Player, 3429135390)
+end
+
+    SendMessage(Player, "Congratulations! You are a Bard.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Bard.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001099) then
+    RemoveItem(Player,1001099,1)
+    end
+end

+ 51 - 0
server/ItemScripts/BeggarsCourtcitizenshiptask.lua

@@ -0,0 +1,51 @@
+--[[
+    Script Name    : ItemScripts/BeggarsCourtcitizenshiptask.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 03:06:10
+    Script Purpose : 
+                   : 
+--]]
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog2")
+StartDialogConversation(conversation, 2, Item, Player, "By order of the Overlord, all residents wishing to become citizens of the city must complete a trial to prove themselves.")
+
+end
+
+
+function Dialog2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read about where tokens are found]","Dialog3")
+StartDialogConversation(conversation, 2, Item, Player, "Tokens are scattered throughout the surrounding area. You must find five of these tokens to earn the right to speak to a city official.")
+end
+
+
+function Dialog3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog4")
+
+StartDialogConversation(conversation, 2, Item, Player, "Each district has been assigned an area in which to hunt for their tokens. Only tokens from within that area will be accepted.")
+end
+
+function Dialog4(Item, Player)
+conversation = CreateConversation()
+if GetLevel(Player)<6 then
+ AddConversationOption(conversation, "[I need more experience to pursue Citizenship]","CloseItemConversation")
+elseif not HasQuest(Player,5867) and not HasCompletedQuest(Player,5867)then
+AddConversationOption(conversation, "[write this in your quest journal]","StartQuest")
+end
+if HasQuest(Player,5867) or  HasCompletedQuest(Player,5867) then
+AddConversationOption(conversation, "[continue]","StartQuest")
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Beggar's Court residents must gather five tokens from the Sunken City.")
+end
+
+function StartQuest(Item,Player)
+conversation = CreateConversation()
+if not HasQuest(Player,5867) and not HasCompletedQuest(Player,5867)then
+   OfferQuest(nil,Player,5867)
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Use the citizenship sign to report to Abbetor T'avi once you complete your task.")
+end

+ 52 - 0
server/ItemScripts/BigBendcitizenshiptask.lua

@@ -0,0 +1,52 @@
+--[[
+    Script Name    : ItemScripts/BigBendcitizenshiptask.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 03:06:24
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog2")
+StartDialogConversation(conversation, 2, Item, Player, "By order of the Overlord, all residents wishing to become citizens of the city must complete a trial to prove themselves.")
+
+end
+
+
+function Dialog2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read about where tokens are found]","Dialog3")
+StartDialogConversation(conversation, 2, Item, Player, "Tokens are scattered throughout the surrounding area. You must find five of these tokens to earn the right to speak to a city official.")
+end
+
+
+function Dialog3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog4")
+
+StartDialogConversation(conversation, 2, Item, Player, "Each district has been assigned an area in which to hunt for their tokens. Only tokens from within that area will be accepted.")
+end
+
+function Dialog4(Item, Player)
+conversation = CreateConversation()
+if GetLevel(Player)<6 then
+ AddConversationOption(conversation, "[I need more experience to pursue Citizenship]","CloseItemConversation")
+elseif not HasQuest(Player,5866) and not HasCompletedQuest(Player,5866)then
+AddConversationOption(conversation, "[write this in your quest journal]","StartQuest")
+end
+if HasQuest(Player,5866) or  HasCompletedQuest(Player,5866) then
+AddConversationOption(conversation, "[continue]","StartQuest")
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Big Bend residents must gather five tokens from the Sprawl.")
+end
+
+function StartQuest(Item,Player)
+conversation = CreateConversation()
+if not HasQuest(Player,5866) and not HasCompletedQuest(Player,5866)then
+   OfferQuest(nil,Player,5866)
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Use the citizenship sign to report to Abbetor T'avi once you complete your task.")
+end

+ 29 - 0
server/ItemScripts/BlightoftheMorning.lua

@@ -0,0 +1,29 @@
+--[[
+    Script Name    : ItemScripts/BlightoftheMorning.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.11 12:10:41
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies Blight of the Morning when Activated.  Lasts for 12 hours.
+	* On a combat hit this spell may cast Poison on target of attack.  Lasts for 24.0 seconds.  Triggers about 5.0 times per minute. 
+		* Inflicts 9 poison damage on target
+		* Inflicts 11 poison damage on target instantly and every 6 seconds
+		* Cannot be modified except by direct means
+		* Grants a total of 100 triggers of the spell.
+
+End Item Effects--]]
+
+function examined(Item, Player)
+
+end
+
+function used(Item, Player)
+    Spell = GetSpell(2550440)
+    CastCustomSpell(Spell, Player, Player)
+end
+
+

+ 147 - 0
server/ItemScripts/BootstruttersFieldGuidetoAntonica.lua

@@ -0,0 +1,147 @@
+--[[
+    Script Name    : ItemScripts/BootstruttersFieldGuidetoAntonica.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.04.22 10:04:48
+    Script Purpose : 
+                   : 
+--]]
+
+local Bootstrutter = 5806
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry One","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Antonica was once called Qeynos Hills. It was renamed Antonica after the Age of Cataclysms left the former continent of Antonica divided into islands. This land is part of the territory claimed as the Kingdom of Qeynos.")
+end
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Two","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Crater Pond:\n\nThis is a shallow pond. A meteor of large size impacted and created this crater that is now filled with inviting clear cool water. Do not be deceived traveler. This water is toxic allowing only the rarest of aquatic life to exist in its embrace. I waded through the water to reach the rock from the sky in the middle: a chunk of Luclin!")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Three","Page3")
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Coldwind Point:\n\n This is an isle resting just off the Southwest tip of Antonica. Upon this isle, the Lamp of Prexus acts as a beacon to warn ships of the dangerous crags that lurk beneath the water's surface. This lighthouse is a safe haven for those caught beyond the walls of Qeynos during thunderstorms.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Four","Page4")
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Fippy's Hill:\n\n This is an often gnoll-infested hill near the Qeynos gates. A gnoll by the name of Fippy Darkpaw used to climb atop this hill to plot out his next storming of the Qeynos Gates. Gnolls usually pitch camp up here to spy on the Qeynosians. They are frequently chased from this hill only to return.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Five","Page5")
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Forbidden Isle:\n\n This isle is far from forbidden any longer. It contains the ruins of a mausoleum that belonged to an evil mage who was placed in this warded mausoleum, Varsoon the Undying. The wards were to hold his soul for eternity, but a meteor shower breached the walls and released the evil.")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Six","Page6")
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Keep of the Ardent Needle:\n\n This is the refurbished keep of what was the grand citadel of the Clothspinners of Qeynos. They made their fortune in textiles and built this magnificent keep in the outskirts of the Qeynos Hills. As with many of the dreams of Old Antonica, the falling skies of the Shattering put an end to it. Lord Quinn Clothspinner has begun to rebuild his ancestor's estate, but his distaste for visitors makes this a place better left off the traveler's itinerary.")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Seven","Page7")
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Tower of the Oracles:\n\n This spire is unrivaled in Antonica. One look tells you that arcane inhabitants are present. This is the residence of the Coldwind Oracles. It was difficult to arrange a meeting with these mages. They prefer that their activities remain clandestine, and we dare not delve into their mysteries.")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Eight","Page8")
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Qeynos Hill:\n\n It is said that this is the hill that the Qeynos Claymore was wielded to repel an evil avatar in the War of Plagues. A replica of the Qeynos Claymore monument found in Qeynos was built here as well. On days of remembrance of past battles, Qeynosians come here to praise the fallen.")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Nine","Page9")
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Archer Woods, The Glade:\n\n This little thicket was once the training ground of early bowman. Rumor has it that the legendary Holly Windstalker honed her skills here as well, marking one tree with her secret symbol. This place is now the occasional training ground for the elite division of the Qeynos Guard known as the Green Hoods. But beware all who enter ... the local gnolls now claim these woods.")
+end
+
+function Page9(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Ten","Page10")
+AddConversationOption(conversation, "Turn back to previous entry.","Page8")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Bells of Vhalen:\n\n This was a region-wide signal device designed by a legendary bard named Vhalen. The tower was destroyed during the War of Plagues when Vhalen used it to not only warn the entire region of invasion but played some of the largest bard spells ever composed. Here he fell to a horde, hands still tugging at the bells to the end.")
+end
+
+function Page10(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Eleven","Page11")
+AddConversationOption(conversation, "Turn back to previous entry.","Page9")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Keep of the Gnollslayers:\n\n This ruin is all that remains of the keep that once held the Order of Gnollslayers, a band of knights dedicated to patrolling the borders of Qeynos and slaying all gnolls. It is rumored that their leader, Lord Hefax Tinmar, buried the magical Sabertooth sword near here. I searched in vain.")
+end
+
+function Page11(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Twelve","Page12")
+AddConversationOption(conversation, "Turn back to previous entry.","Page10")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Fangbreaker Keep:\n\n As with most keeps in the region, this is nothing but ruins. The werewolf hunting Order of the Fangbreakers was once based here. They once rid the Plains of Karana of its werewolves in the Age of Turmoil. Tales tell of a horde of werewolves slaying the entire order on this spot. The merchant lords of Caltorsis were quick to purchase the deed. An odd act considering they were at odds with the order for quite some time.")
+end
+
+function Page12(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Thirteen","Page13")
+AddConversationOption(conversation, "Turn back to previous entry.","Page11")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Ruins of Caltorsis:\n\n Caltorsis was once a small port and keep established to service the watch of the northern coastline. Mere seasons after the beginning of the Age of Destiny the knights of Caltorsis were all slain in a battle with pirates invading the shoreline. All that remains is the crumbling keep.")
+end
+
+function Page13(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Fourteen","Page14")
+AddConversationOption(conversation, "Turn back to previous entry.","Page12")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Grave of Windstalker:\n\n This gravesite overlooks the serene village of Windstalker Pond. Here rests the remains of one of the most revered and feared rangers of the Age of Turmoil, Holly Windstalker. Many rangers regard this as a sacred place imbued with magical powers.")
+end
+
+function Page14(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Fifteen","Page15")
+AddConversationOption(conversation, "Turn back to previous entry.","Page13")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Hidden Vale:\n\n This isolated place of green grandeur is unknown to most Antonicans. I happened upon the narrow passage leading to the secret vale within the Doghold Mountains. A very curious thing--my first visit I noted an obelisk in the vale, and on my second return it was not to be found! Perhaps I should sip less Clockwork Oil Stout.")
+end
+
+
+function Page15(Item, Player)
+conversation = CreateConversation()
+if not HasQuest(Spawn,Bootstrutter) and not HasCompletedQuest(Spawn,Bootstrutter)then
+AddConversationOption(conversation, "Write down these locations in your journal","QuestStart")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page14")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Stormhold:\n\n The grand entryway has been found! There I stood gazing at the sinking grandeur of what was once a marble entryway to the lost fortress called Stormhold. The sprawling underground bunker is rumored to be littered with jewels and artifacts, but beware... the evil that befell the Knights of Thunder that dwelt there still lurks in the dark bowels of Stormhold.")
+end
+
+
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Bootstrutter)
+end
+

+ 302 - 0
server/ItemScripts/BrawlerCertificationPapers.lua

@@ -0,0 +1,302 @@
+--[[
+    Script Name    : ItemScripts/BrawlerCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.11 07:06:34
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5845
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==1 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Brawler\" if you signed it and are a Commoner or Fighter.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Brawler.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Brawler","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Brawler as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Brawler.")
+ 	if GetClass(Player)== 1 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,5)   
+ 
+    RemoveSpellBookEntry(Player, 2550401)
+
+   local level = GetLevel(Player)*5
+
+if not HasSkill(Player, 1408356869) then -- Martial
+    AddSkill(Player, 1408356869,1,level)
+    SendMessage(Player, "You have learned the Martial skill")
+end
+if not HasSkill(Player, 3856706740) then -- Brawling
+    AddSkill(Player, 3856706740,1,level)
+    SendMessage(Player, "You have learned the Brawling skill")
+end
+if not HasSkill(Player, 3850377186) then -- Deflection
+    AddSkill(Player, 3850377186,1,level)
+    SendMessage(Player, "You have learned the Deflection skill")
+end
+if not HasSkill(Player, 3232294366) then -- Safe Fall
+    AddSkill(Player, 3232294366,1,level)
+    SendMessage(Player, "You have learned the Safe Fall skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 418532101) then -- Slashing
+    AddSkill(Player, 418532101,36,36)
+    SendMessage(Player, "You have learned the Slashing skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+ if not HasSkill(Player, 2897193374) then -- Light Armor
+    AddSkill(Player, 2897193374,1,level)
+    SendMessage(Player, "You are now more proficient with Light Armor")
+end
+if not HasSkill(Player, 3177806075) then -- Fists
+    AddSkill(Player, 3177806075,1,level)
+    SendMessage(Player, "You are now more proficient with your Fists")
+end
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 554333641) then -- Hammer
+    AddSkill(Player, 554333641,1,level)
+   SendMessage(Player, "You are now more proficient with a Hammer")
+end
+if not HasSkill(Player, 1653482350) then -- Great Hammer
+    AddSkill(Player, 1653482350,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Hammer")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+    SendMessage(Player, "You are now more proficient with a Staff")
+end
+
+
+--REMOVED SKILLS
+--Removed Advance Fighter
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Scout for Fighter
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest for Fighter
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage for Fighter
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVED WEAPON
+if not HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if  HasSkill(Player, 3173504370) then -- Roundshield
+    RemoveSkill(Player, 3173504370)
+end
+if  HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if  HasSkill(Player, 2476073427) then -- Axe
+    RemoveSkill(Player, 2476073427)
+end
+if  HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    RemoveSkill(Player, 1696217328)
+end
+if not HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 1553857724) then -- Investigation
+    RemoveSkill(Player, 1553857724)
+end
+if HasSkill(Player, 3429135390) then -- Mystical Destruction
+    RemoveSkill(Player, 3429135390)
+end
+if  HasSkill(Player, 2200201799) then -- Disarm Trap
+    RemoveSkill(Player, 2200201799)
+end
+if HasSkill(Player, 366253016) then --Ministration
+    RemoveSkill(Player, 366253016)
+end
+if HasSkill(Player, 613995491) then -- Disruption
+    RemoveSkill(Player, 613995491)
+end
+if HasSkill(Player, 882983852) then -- Subjigation
+    RemoveSkill(Player, 882983852)
+end
+if HasSkill(Player, 3587918036) then -- Ordination
+    RemoveSkill(Player, 3587918036)
+end    
+    SendMessage(Player, "Congratulations! You are a Brawler.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Brawler.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001098) then
+    RemoveItem(Player,1001098,1)
+    end
+end

+ 11 - 0
server/ItemScripts/BucklerofUncommonBravery.lua

@@ -0,0 +1,11 @@
+--[[
+    Script Name    : ItemScripts/BucklerofUncommonBravery.lua
+    Script Author  : coldllama (testing/can delete)
+    Script Date    : 2024.01.02 02:01:32
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+
+end

+ 57 - 0
server/ItemScripts/CaltorsisClericPage14.lua

@@ -0,0 +1,57 @@
+--[[
+    Script Name    : ItemScripts/CaltorsisClericPage14.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.18 02:05:28
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5839
+
+function examined(Item, Player)
+	if not HasCompletedQuest(Player,Quest) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "These undead should have learned their lesson!", "Offer")
+    end
+    AddConversationOption(conversation, "[Roll up the page and put it away.]")
+    AddConversationOption(conversation, "[Get rid of it. You've already learned what you can.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This old page appears to be part of a journal that has long since been torn away.")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Try to read the page]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the page away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This old page appears to be part of a journal that has long since been torn away.")
+end
+
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "The Caltorsis clerics will not be around much longer.", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the page away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I have the journal entry of a Paladin named Grentithius. It reads: \"I'm concerned about the undead population in this area. Left unchecked, they may prove to be the end of our great city. I should destroy the more powerful undead to cull their numbers.\"")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,1001094) then
+        RemoveItem(Player,1001094,1)
+    end
+end

+ 1 - 1
server/ItemScripts/CastleviewHamletcitizenshiptask.lua

@@ -47,6 +47,6 @@ conversation = CreateConversation()
 if not HasQuest(Player,5719) and not HasCompletedQuest(Player,5719)then
    OfferQuest(nil,Player,5719)
 end
-AddConversationOption(conversation, "[put the note]","CloseItemConversation")
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
 StartDialogConversation(conversation, 2, Item, Player, "After you complete your task, report to Marshal Glorfel using the citizenship sign.")
 end

+ 45 - 1
server/ItemScripts/ChugglesToolbox.lua

@@ -8,7 +8,7 @@
 
 local ChugglesToolbox = 483
 
-
+--
 function examined(Item, Player)
 if not HasQuest(Player, ChugglesToolbox) and not HasCompletedQuest(Player, ChugglesToolbox) then
 OfferQuest(nil, Player, ChugglesToolbox)
@@ -16,5 +16,49 @@ end
    end
 
 
+local ChugglesToolbox = 483
+
+
+function examined(Item, Player)
+	if CanReceiveQuest(Player,ChugglesToolbox) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the toolbox away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This toolbox is similar to one you've found before. You can't fathom a need for it, but someone else might be able to use it.")
+	end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,ChugglesToolbox) then
+    AddConversationOption(conversation, "[Inspect the toolbox.]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the toolbox away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This box feels lighter than you expected.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,ChugglesToolbox) then
+    AddConversationOption(conversation, "[Write the list in your journal.]", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the toolbox away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The words \"Chuggle of Temple Street\" are inscribed on a plate on top of the lid. The box is empty except for a handwritten note stuck to the inside of the box's top; the note lists the tools that once belonged in the box, and who among the denizens of Thieves' Way they were allocated to.")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,ChugglesToolbox) then
+    OfferQuest(nil,Player,ChugglesToolbox)
+    end
+    CloseItemConversation(Item,Player)
+end
+
 
 
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,5014) then
+        RemoveItem(Player,5014,1)
+    end
+end

+ 284 - 0
server/ItemScripts/ClericCertificationPapers.lua

@@ -0,0 +1,284 @@
+--[[
+    Script Name    : ItemScripts/ClericCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.15 03:06:45
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5848
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==11 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Cleric\" if you signed it and are a Commoner or Priest.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Cleric.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Cleric","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Cleric as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Cleric.")
+ 	if GetClass(Player)== 11 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,12)   
+   local level = GetLevel(Player)*5
+
+
+--WEAPON SKILLS
+if not HasSkill(Player, 2463145248) then -- Inspirations
+    AddSkill(Player, 2463145248,1,level)
+    SendMessage(Player, "You have learned the Inspirations skill")
+end
+if not HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    AddSkill(Player, 3341842907,1,level)
+    SendMessage(Player, "You have learned the Theurgy skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+
+--CASTING SKILLS
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 545043066) then -- Symbol
+    AddSkill(Player, 545043066,1,level)
+    SendMessage(Player, "You are now more proficient with a Symbol")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 554333641) then -- Hammer
+    AddSkill(Player, 554333641,1,level)
+    SendMessage(Player, "You are now more proficient with a Hammer")
+end
+if not HasSkill(Player, 1653482350) then -- Great Hammer
+    AddSkill(Player, 1653482350,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Hammer")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+   SendMessage(Player, "You are now more proficient with a Staff")
+end
+--REMOVE SKILLS
+-- Remove Fighter
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Remove Scout
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 1616998748) then -- Spear
+    RemoveSkill(Player, 1616998748)
+end
+if HasSkill(Player, 3173504370) then -- Round Shield
+    RemoveSkill(Player, 3173504370)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+
+
+    SendMessage(Player, "Congratulations! You are a Cleric.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Cleric.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001102) then
+    RemoveItem(Player,1001102,1)
+    end
+end

+ 287 - 0
server/ItemScripts/CrusaderCertificationPapers.lua

@@ -0,0 +1,287 @@
+--[[
+    Script Name    : ItemScripts/CrusaderCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.11 07:06:47
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==1 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Crusader\" if you signed it and are a Commoner or Fighter.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Crusader.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Crusader","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Crusader as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Crusader.")
+ 	if GetClass(Player)== 1 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,8)   
+   local level = GetLevel(Player)*5
+
+if not HasSkill(Player, 1408356869) then -- Martial
+    AddSkill(Player, 1408356869,1,level)
+    SendMessage(Player, "You have learned the Martial skill")
+end
+if not HasSkill(Player, 3809066846) then -- Faith/Crusader
+    AddSkill(Player, 3809066846,1,level)
+    SendMessage(Player, "You have learned the Faith skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 418532101) then -- Slashing
+    AddSkill(Player, 418532101,1,level)
+    SendMessage(Player, "You have learned the Slashing skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+--WEAPON SKILLS
+ if not HasSkill(Player, 2897193374) then -- Light Armor
+    AddSkill(Player, 2897193374,1,level)
+    SendMessage(Player, "You are now more proficient with Light Armor")
+end
+if not HasSkill(Player, 2246237129) then -- Medium Armor
+    AddSkill(Player, 2246237129,1,level)
+    SendMessage(Player, "You are now more proficient with Medium Armor")
+end
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 3173504370) then -- Roundshield
+    AddSkill(Player, 3173504370,1,level)
+    SendMessage(Player, "You are now more proficient with a Roundshield")
+end
+if not HasSkill(Player, 2608320658) then -- Kite Shield
+    AddSkill(Player, 2608320658,1,level)
+    SendMessage(Player, "You are now more proficient with a Kite Shield")
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    AddSkill(Player, 1696217328,1,level)
+    SendMessage(Player, "You are now more proficient with a Sword")
+end
+if not HasSkill(Player, 2292577688) then -- Great Sword
+    AddSkill(Player, 2292577688,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Sword")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 554333641) then -- Hammer
+    AddSkill(Player, 554333641,1,level)
+   SendMessage(Player, "You are now more proficient with a Hammer")
+end
+if not HasSkill(Player, 1653482350) then -- Great Hammer
+    AddSkill(Player, 1653482350,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Hammer")
+end
+
+--REMOVED SKILLS
+--Removed Advance Fighter
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Scout for Fighter
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest for Fighter
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage for Fighter
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVED WEAPON
+if not HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if  HasSkill(Player, 2476073427) then -- Axe
+    RemoveSkill(Player, 2476073427)
+end
+if  HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if  HasSkill(Player, 3180399725) then -- Staff(2h)
+    RemoveSkill(Player, 3180399725)
+end
+if HasSkill(Player, 1553857724) then -- Investigation
+    RemoveSkill(Player, 1553857724)
+end
+if HasSkill(Player, 3429135390) then -- Mystical Destruction
+    RemoveSkill(Player, 3429135390)
+end
+if  HasSkill(Player, 2200201799) then -- Disarm Trap
+    RemoveSkill(Player, 2200201799)
+end
+    SendMessage(Player, "Congratulations! You are a Crusader.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Crusader.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001097) then
+    RemoveItem(Player,1001097,1)
+    end
+end

+ 89 - 0
server/ItemScripts/DirtCakedShield.lua

@@ -0,0 +1,89 @@
+--[[
+    Script Name    : ItemScripts/DirtCakedShield.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.16 12:05:54
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5831
+
+function examined(Item, Player)
+if not HasQuest(Player, Quest) and not HasCompletedQuest(Player, Quest) then
+    Dialog1(Item,Player)
+elseif GetQuestStep(Player,Quest)==1 or GetQuestStep(Player,Quest)==2 then
+    Dialog2(Item,Player)
+elseif GetQuestStep(Player,Quest)==3 or GetQuestStep(Player,Quest)==4 then
+    Dialog3(Item,Player)
+elseif GetQuestStep(Player,Quest)==5 or GetQuestStep(Player,Quest)==6 then
+    Dialog4(Item,Player)
+elseif  HasCompletedQuest(Player, Quest)then
+    Completed(Item,Player)
+end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Examine the shield more closely.]", "Dialog2")
+    AddConversationOption(conversation, "[Put the dirt-encrusted shield away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This dirt-encrusted shield has seen better days. Whoever originally owned it didn't care of it. Even now it's caked with so much dirt that it's hard to make out what was originally embossed on the face.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    AddConversationOption(conversation, "[Wipe the caked dirt off the shield face.]", "Dialog3")
+    end
+    AddConversationOption(conversation, "[Put the shield away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The dirt is hard-packed into the grooves of the shield. It may be possible to remove all the dried soil and see what the shield originally looked like. You may want to dip it in Crater Lake to loosen up the outer layer.")
+end
+
+
+function Dialog3(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==4 then
+    AddConversationOption(conversation, "[Scrub the dirt with the badger fur]", "Dialog4")
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+    end    
+    AddConversationOption(conversation, "[Put the shield away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The water from Crater Lake was able to loosen up most of the dirt, making it a bit muddy. Scraping away the outer layer of mud reveals even more dirt inside all of the etchings. You're going to need to scrub it out with something. The fur from the badgers in Antonica might do the job.")
+end
+
+function Dialog4(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==6 then
+    AddConversationOption(conversation, "[Scrub the tarnish away with the centipede poison.]", "Dialog5")
+    end
+    if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+    end    
+    AddConversationOption(conversation, "[Put the shield away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The hard fur from the badgers seems to do the trick. You are able to brush out all of the grime from the crevices. In the end, you see that it's an old shield with an image of the Qeynos gates on it. Unfortunately, it's rather tarnished. Maybe the poison from centipedes might be able to get rid of the tarnish.")
+end
+
+function Dialog5(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Admire your reflection in the smooth shield face]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "Making sure not to get any on your hands, you scrub at the metal with the centipede poison.  After a while, you start to see the original luster shine on the face of the shield again.  Even though it's a very old shield, you're certain it'll work just as good as it did when it was originally forged.")
+end
+--
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+    end    
+    if HasItem(Player,6448) then
+        RemoveItem(Player,6448,1)
+    end
+end
+    
+function Completed(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Keep the shield, for whatever reason.]")
+    AddConversationOption(conversation, "[Toss the shield into the mud]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This dirt-caked shield resembles one you cleaned up before! You have no need to keep this one around.")
+end

+ 288 - 0
server/ItemScripts/DruidCertificationPapers.lua

@@ -0,0 +1,288 @@
+--[[
+    Script Name    : ItemScripts/DruidCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.15 03:06:56
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5849
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==11 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Druid\" if you signed it and are a Commoner or Priest.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Druid.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Druid","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Druid as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Druid.")
+ 	if GetClass(Player)== 11 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,15)   
+   local level = GetLevel(Player)*5
+
+
+--WEAPON SKILLS
+if not HasSkill(Player, 2463145248) then -- Inspirations
+    AddSkill(Player, 2463145248,1,level)
+    SendMessage(Player, "You have learned the Inspirations skill")
+end
+if not HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    AddSkill(Player, 3282420779,1,level)
+    SendMessage(Player, "You have learned the Archegenesis skill")
+end
+if not HasSkill(Player, 3341842907) then -- Theurgy/Druid
+    AddSkill(Player, 3341842907,1,level)
+    SendMessage(Player, "You have learned the Theurgy skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 418532101) then -- Slashing
+    AddSkill(Player, 418532101,1,level)
+    SendMessage(Player,  "You have learned the Slashing skill")
+end
+--CASTING SKILLS
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    AddSkill(Player, 1696217328,1,level)
+    SendMessage(Player, "You are now more proficient with a Sword")
+end
+if not HasSkill(Player, 554333641) then -- Hammer
+    AddSkill(Player, 554333641,1,level)
+    SendMessage(Player, "You are now more proficient with a Hammer")
+end
+if not HasSkill(Player, 1653482350) then -- Great Hammer
+    AddSkill(Player, 1653482350,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Hammer")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+   SendMessage(Player, "You are now more proficient with a Staff")
+end
+--REMOVE SKILLS
+-- Remove Fighter
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Remove Scout
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Remove Priest
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Remove Mage
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 3173504370) then -- Round Shield
+    RemoveSkill(Player, 3173504370)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if  HasSkill(Player, 545043066) then -- Symbol
+    RemoveSkill(Player, 545043066)
+end
+
+
+    SendMessage(Player, "Congratulations! You are a Druid.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Druid.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001104) then
+    RemoveItem(Player,1001104,1)
+    end
+end

+ 22 - 0
server/ItemScripts/DwarvenWorkBoots.lua

@@ -0,0 +1,22 @@
+--[[
+    Script Name    : ItemScripts/DwarvenWorkBoots.lua
+    Script Author  : Premierio015
+    Script Date    : 2023.04.22 07:04:14
+    Script Purpose : 
+                   : 
+--]]
+
+local DwarvenWorkBootsID = 146379
+local TheLegendaryDwarvenWorkBootsID = 66088
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Place the mounting on the item. (This will remove any adornments and reforging)", "mount")
+AddConversationOption(conversation, "Leave the item as is", "CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The Dwarven Work Boots can be mounted and placed on the surface.")
+end
+
+function mount(Item, Player)
+RemoveItem(Player, DwarvenWorkBootsID) 
+SummonItem(Player, TheLegendaryDwarvenWorkBootsID)
+end

+ 282 - 0
server/ItemScripts/EnchanterCertificationPapers.lua

@@ -0,0 +1,282 @@
+--[[
+    Script Name    : ItemScripts/EnchanterCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.15 04:06:36
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5851
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==21 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Enchanter\" if you signed it and are a Commoner or Priest.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Enchanter.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Enchanter","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Enchanter as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Enchanter.")
+ 	if GetClass(Player)== 21 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,25)   
+   local level = GetLevel(Player)*5
+
+
+--WEAPON SKILLS
+if not HasSkill(Player, 3820670534) then -- Evocations/Mage
+    AddSkill(Player, 3820670534,1,level)
+    SendMessage(Player, "You have learned the Evocations skill")
+end
+if not HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    AddSkill(Player, 287643040,1,level)
+    SendMessage(Player, "You have learned the Enchantments skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+--CASTING SKILLS
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+if not HasSkill(Player, 545043066) then -- Symbol
+    AddSkill(Player, 545043066,1,level)
+    SendMessage(Player, "You are now more proficient with a Symbol")
+end
+if not HasSkill(Player, 887279616) then -- Dagger
+    AddSkill(Player, 887279616,1,level)
+    SendMessage(Player, "You are now more proficient with a Dagger")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+   SendMessage(Player, "You are now more proficient with a Staff")
+end
+
+--REMOVE SKILLS
+-- Removed Fighter
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Scout
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage
+
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 770311065) then -- Mace
+    RemoveSkill(Player, 770311065)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 1696217328) then -- Sword
+    RemoveSkill(Player, 1696217328)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 3173504370) then -- Round Shield
+    RemoveSkill(Player, 3173504370)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if  HasSkill(Player, 545043066) then -- Symbol
+    RemoveSkill(Player, 545043066)
+end
+if HasSkill(Player, 4037812502) then -- Buckler
+    RemoveSkill(Player, 4037812502)
+end
+
+    SendMessage(Player, "Congratulations! You are a Enchanter.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Enchanter.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001105) then
+    RemoveItem(Player,1001105,1)
+    end
+end

+ 18 - 0
server/ItemScripts/FishWine.lua

@@ -0,0 +1,18 @@
+--[[
+    Script Name    : ItemScripts/FishWine.lua
+    Script Author  : neatz09
+    Script Date    : 2023.12.12 03:12:11
+    Script Purpose : 
+                   : 
+--]]
+
+function cast(Item, Player)
+	Spell = GetSpell(5463)
+	Regenz = 24.0
+	newDuration = 18000
+	SetSpellData(Spell, "duration1", newDuration)
+	SetSpellData(Spell, "duration2", newDuration)
+	SetSpellDataIndex(Spell, 0, Regenz)
+	SetSpellDisplayEffect(Spell, 0, "description", "Increases Out-of-Combat Power Regeneration of target by " .. Regenz)
+	CastCustomSpell(Spell, Player, Player)
+end

+ 630 - 0
server/ItemScripts/ForgeryFreeportCitizenshipPapers.lua

@@ -0,0 +1,630 @@
+--[[
+    Script Name    : ItemScripts/ForgeryFreeportCitizenshipPapers.lua
+    Script Author  : dorbin
+    Script Date    : 2024.01.09 04:01:41
+    Script Purpose : 
+                   : 
+--]]
+local BB = 5860  --Welcome to Freeport (Big Bend )
+local BB_F = 5866 --Big Bend Citizenship Task
+local BC = 5861     --Beggar's Court
+local BC_F = 5867
+local LA = 5862     --Longshadow Alley
+local LA_F = 5868
+local SB = 5859     --Stonestair Byway
+local SB_F = 5870
+local SY = 5863     --Scale Yard
+local SY_F = 5869
+local TS = 5864     --Temple Street
+local TS_F = 5871
+
+
+
+function examined(Item, Player)
+local Race = GetRace(Player)
+conversation = CreateConversation()
+if not HasQuest(Player,BB)
+ and not HasQuest(Player,BB_F)
+     
+ and not HasQuest(Player,BC) 
+ and not HasQuest(Player,BC_F) 
+     
+ and not HasQuest(Player,SB) 
+ and not HasQuest(Player,SB_F) 
+ 
+  and not HasQuest(Player,LA) 
+ and not HasQuest(Player,LA_F) 
+     
+ and not HasQuest(Player,SY) 
+ and not HasQuest(Player,SY_F) 
+  
+  and not HasQuest(Player,TS) 
+ and not HasQuest(Player,TS_F) then
+     
+    if CanReceiveQuest(Player,BB) or     
+    CanReceiveQuest(Player,BC) or 
+    CanReceiveQuest(Player,SB) or 
+    CanReceiveQuest(Player,LA) or 
+    CanReceiveQuest(Player,SY) or 
+    CanReceiveQuest(Player,TS) then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    AddConversationOption(conversation, "[Put the papers away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This stack of papers looks like Freeport Citzenship forms. They could be useful for someone looking to quickly become a citizen...")
+elseif
+ GetQuestStep(Player,BB_F) <12 or   
+ GetQuestStep(Player,BC_F) <12 or   
+ GetQuestStep(Player,SB_F) <12 or   
+ GetQuestStep(Player,LA_F) <12 or   
+ GetQuestStep(Player,SY_F) <12 or   
+ GetQuestStep(Player,TS_F) <12 then   
+ Welcome2(Item,Player)
+ elseif
+ GetQuestStep(Player,BB_F) ==12 and CanReceiveQuest(Player,BB) or   
+ GetQuestStep(Player,BC_F) ==12 and CanReceiveQuest(Player,BC) or   
+ GetQuestStep(Player,SB_F) ==12 and CanReceiveQuest(Player,SB) or   
+ GetQuestStep(Player,LA_F) ==12 and CanReceiveQuest(Player,LA) or   
+ GetQuestStep(Player,SY_F) ==12 and CanReceiveQuest(Player,SY) or   
+ GetQuestStep(Player,TS_F) ==12 and CanReceiveQuest(Player,TS) then
+ Task1(Item,Player)    
+ elseif
+ GetQuestStep(Player,BB_F) ==12 and GetQuestStep(Player,BB)==1 or   
+ GetQuestStep(Player,BC_F) ==12 and GetQuestStep(Player,BC)==1 or   
+ GetQuestStep(Player,SB_F) ==12 and GetQuestStep(Player,SB)==1 or   
+ GetQuestStep(Player,LA_F) ==12 and GetQuestStep(Player,LA)==1 or   
+ GetQuestStep(Player,SY_F) ==12 and GetQuestStep(Player,SY)==1 or   
+ GetQuestStep(Player,TS_F) ==12 and GetQuestStep(Player,TS)==1 then 
+ Task1(Item,Player)
+ else
+    Intro(Item,Player)
+end
+end
+
+function Intro(Item,Player)
+    local Race = GetRace(Player)
+    conversation = CreateConversation()
+    if Race == 11 then --Kerra
+    if not HasQuest(Player,LA_F) and not HasCompletedQuest(Player,LA_F) then
+    AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+     OfferQuest(nil,Player,LA_F)
+    end 
+    
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if not HasQuest(Player,SY_F)  and not HasCompletedQuest(Player,SY_F) then
+     AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+   OfferQuest(nil,Player,SY_F)
+    end
+    
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if not HasQuest(Player,LA_F) and not HasCompletedQuest(Player,LA_F)  then
+    AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+    OfferQuest(nil,Player,LA_F)
+    end
+    
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if not HasQuest(Player,SB_F) and not HasCompletedQuest(Player,SB_F)  then
+    AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+    OfferQuest(nil,Player,SB_F)
+    end
+    
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if not HasQuest(Player,BC_F)  and not HasCompletedQuest(Player,BC_F) then
+    AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+    OfferQuest(nil,Player,BC_F)
+    end
+    
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 or Race == 16 then
+    if not HasQuest(Player,TS_F)  and not HasCompletedQuest(Player,TS_F) then
+     AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+    OfferQuest(nil,Player,TS_F)
+    end
+    
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if not HasQuest(Player,BB_F)  and not HasCompletedQuest(Player,BB_F) then
+    AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+    OfferQuest(nil,Player,BB_F)
+    end
+    
+    else
+    if not HasQuest(Player,LA_F)  and not HasCompletedQuest(Player,LA_F) then
+    AddConversationOption(conversation, "[Make up a Overseer name]","Welcome1")
+    OfferQuest(nil,Player,LA_F)
+    end
+    end
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "It states a Overseer is suppose to sign the document...\n\n[ ACCEPT THE QUEST ]")
+end
+
+function Welcome1(Item,Player)  --ALIGNMENT/FACTION CHANGE + CHECK FOR QUEST1
+local Race = GetRace(Player)
+if not HasQuest(Player,BB)
+ and not HasQuest(Player,BB_F)
+     
+ and not HasQuest(Player,BC) 
+ and not HasQuest(Player,BC_F) 
+     
+ and not HasQuest(Player,SB) 
+ and not HasQuest(Player,SB_F) 
+ 
+  and not HasQuest(Player,LA) 
+ and not HasQuest(Player,LA_F) 
+     
+ and not HasQuest(Player,SY) 
+ and not HasQuest(Player,SY_F) 
+  
+  and not HasQuest(Player,TS) 
+ and not HasQuest(Player,TS_F) then    
+Intro(Item,Player)
+else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Forge an address and check the list]","Welcome2")
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The form states you need signitures from a landlord and to complete their checklist...")
+    Faction(Item,Player)
+end
+end
+
+function Faction(Item,Player)
+    Freeport = GetFactionAmount(Player, 11)
+    Freeport_Add = (10000-Freeport)
+    Freeport = GetFactionAmount(Player, 12)
+    Freeport_Add = (-20000-Freeport)
+    Neriak = GetFactionAmount(Player, 13)
+    Kelethin = GetFactionAmount(Player, 14)
+    Halas = GetFactionAmount(Player, 16)
+    Gorowyn = GetFactionAmount(Player, 17)
+    alignment = GetAlignment(Player)
+ if Freeport <10000 and Freeport >=0 then ChangeFaction(Player, 11, Freeport_Add)
+    elseif Freeport <0 then ChangeFaction(Player, 11, (Freeport*-1))
+    Faction(Item,Player)    
+end
+if Freeport <-20000 then ChangeFaction(Player, 12, Freeport_Add)
+    elseif Freeport >-20000 then ChangeFaction(Player, 12, (Freeport*-1))
+end
+if Neriak >0 then ChangeFaction(Player, 13, -Neriak)
+    elseif Neriak <0 then ChangeFaction(Player, 13, (Neriak*-1))
+end
+if Kelethin >0 then ChangeFaction(Player, 14, -Kelethin)
+    elseif Kelethin <0 then  ChangeFaction(Player, 14, (Kelethin*-1))
+end
+if Halas >0 then ChangeFaction(Player, 16, -Halas)
+    elseif Halas <0 then ChangeFaction(Player, 16, (Halas*-1))
+end
+if Gorowyn >0 then ChangeFaction(Player, 17, -Gorowyn)
+    elseif Gorowyn <0 then ChangeFaction(Player, 17, (Gorowyn*-1))
+end
+if GetRace(Player) == 0 or GetRace(Player) == 3 or GetRace(Player) == 5 or GetRace(Player) == 6 or GetRace(Player) == 9 or GetRace(Player) == 11 or GetRace(Player) == 20 then
+SetAlignment(Player, 2)
+end   
+end
+
+
+function Welcome2(Item,Player)
+ local Race = GetRace(Player)
+   conversation = CreateConversation()
+    AddConversationOption(conversation, "[Read the second form]","Task1")
+    if Race == 11 then --Kerra
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,1)        
+    SetStepComplete(Player,LA_F,2)        
+    SetStepComplete(Player,LA_F,3)        
+    SetStepComplete(Player,LA_F,4)        
+    SetStepComplete(Player,LA_F,5)        
+    SetStepComplete(Player,LA_F,6)        
+    SetStepComplete(Player,LA_F,7)        
+    SetStepComplete(Player,LA_F,8)        
+    SetStepComplete(Player,LA_F,9)        
+    SetStepComplete(Player,LA_F,10)        
+    SetStepComplete(Player,LA_F,11)        
+    SetStepComplete(Player,LA_F,12)
+    end
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if HasQuest(Player,SY_F) then
+    SetStepComplete(Player,SY_F,1)        
+    SetStepComplete(Player,SY_F,2)        
+    SetStepComplete(Player,SY_F,3)        
+    SetStepComplete(Player,SY_F,4)        
+    SetStepComplete(Player,SY_F,5)        
+    SetStepComplete(Player,SY_F,6)        
+    SetStepComplete(Player,SY_F,7)        
+    SetStepComplete(Player,SY_F,8)        
+    SetStepComplete(Player,SY_F,9)        
+    SetStepComplete(Player,SY_F,10)        
+    SetStepComplete(Player,SY_F,11)        
+    SetStepComplete(Player,SY_F,12)
+    end    
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,1)        
+    SetStepComplete(Player,LA_F,2)        
+    SetStepComplete(Player,LA_F,3)        
+    SetStepComplete(Player,LA_F,4)        
+    SetStepComplete(Player,LA_F,5)        
+    SetStepComplete(Player,LA_F,6)        
+    SetStepComplete(Player,LA_F,7)        
+    SetStepComplete(Player,LA_F,8)        
+    SetStepComplete(Player,LA_F,9)        
+    SetStepComplete(Player,LA_F,10)        
+    SetStepComplete(Player,LA_F,11)        
+    SetStepComplete(Player,LA_F,12)
+    elseif HasQuest(Player,SY_F) then
+    SetStepComplete(Player,SY_F,1)        
+    SetStepComplete(Player,SY_F,2)        
+    SetStepComplete(Player,SY_F,3)        
+    SetStepComplete(Player,SY_F,4)        
+    SetStepComplete(Player,SY_F,5)        
+    SetStepComplete(Player,SY_F,6)        
+    SetStepComplete(Player,SY_F,7)        
+    SetStepComplete(Player,SY_F,8)        
+    SetStepComplete(Player,SY_F,9)        
+    SetStepComplete(Player,SY_F,10)        
+    SetStepComplete(Player,SY_F,11)        
+    SetStepComplete(Player,SY_F,12)
+    end    
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if HasQuest(Player,SB_F) then
+    SetStepComplete(Player,SB_F,1)        
+    SetStepComplete(Player,SB_F,2)        
+    SetStepComplete(Player,SB_F,3)        
+    SetStepComplete(Player,SB_F,4)        
+    SetStepComplete(Player,SB_F,5)        
+    SetStepComplete(Player,SB_F,6)        
+    SetStepComplete(Player,SB_F,7)        
+    SetStepComplete(Player,SB_F,8)        
+    SetStepComplete(Player,SB_F,9)        
+    SetStepComplete(Player,SB_F,10)        
+    SetStepComplete(Player,SB_F,11)        
+    SetStepComplete(Player,SB_F,12)
+    end        
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if HasQuest(Player,BC_F) then
+    SetStepComplete(Player,BC_F,1)        
+    SetStepComplete(Player,BC_F,2)        
+    SetStepComplete(Player,BC_F,3)        
+    SetStepComplete(Player,BC_F,4)        
+    SetStepComplete(Player,BC_F,5)        
+    SetStepComplete(Player,BC_F,6)        
+    SetStepComplete(Player,BC_F,7)        
+    SetStepComplete(Player,BC_F,8)        
+    SetStepComplete(Player,BC_F,9)        
+    SetStepComplete(Player,BC_F,10)        
+    SetStepComplete(Player,BC_F,11)        
+    SetStepComplete(Player,BC_F,12)
+    end               
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if HasQuest(Player,TS_F) then
+    SetStepComplete(Player,TS_F,1)        
+    SetStepComplete(Player,TS_F,2)        
+    SetStepComplete(Player,TS_F,3)        
+    SetStepComplete(Player,TS_F,4)        
+    SetStepComplete(Player,TS_F,5)        
+    SetStepComplete(Player,TS_F,6)        
+    SetStepComplete(Player,TS_F,7)        
+    SetStepComplete(Player,TS_F,8)        
+    SetStepComplete(Player,TS_F,9)        
+    SetStepComplete(Player,TS_F,10)        
+    SetStepComplete(Player,TS_F,11)        
+    SetStepComplete(Player,TS_F,12)
+    end                      
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if HasQuest(Player,BB_F) then
+    SetStepComplete(Player,BB_F,1)        
+    SetStepComplete(Player,BB_F,2)        
+    SetStepComplete(Player,BB_F,3)        
+    SetStepComplete(Player,BB_F,4)        
+    SetStepComplete(Player,BB_F,5)        
+    SetStepComplete(Player,BB_F,6)        
+    SetStepComplete(Player,BB_F,7)        
+    SetStepComplete(Player,BB_F,8)        
+    SetStepComplete(Player,BB_F,9)        
+    SetStepComplete(Player,BB_F,10)        
+    SetStepComplete(Player,BB_F,11)        
+    SetStepComplete(Player,BB_F,12)
+    end   
+    else
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,1)        
+    SetStepComplete(Player,LA_F,2)        
+    SetStepComplete(Player,LA_F,3)        
+    SetStepComplete(Player,LA_F,4)        
+    SetStepComplete(Player,LA_F,5)        
+    SetStepComplete(Player,LA_F,6)        
+    SetStepComplete(Player,LA_F,7)        
+    SetStepComplete(Player,LA_F,8)        
+    SetStepComplete(Player,LA_F,9)        
+    SetStepComplete(Player,LA_F,10)        
+    SetStepComplete(Player,LA_F,11)        
+    SetStepComplete(Player,LA_F,12)
+    end
+    end
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "There is another form meant to accompany the first. This second mentions a citizenship task. It states something about tokens and needing to prove yourself....\n\nWho has time for that?")
+end
+
+function Task1(Item,Player)
+ local Race = GetRace(Player)
+   conversation = CreateConversation()
+    AddConversationOption(conversation, "[Check all the boxes and sign]","Task2")
+    if Race == 1  or Race == 19 or Race == 17 then
+    if CanReceiveQuest(Player,LA) then
+    OfferQuest(nil,Player,LA)
+    end 
+    -- Barbarian / Iksar / Sarnak
+    elseif Race == 0 or Race == 10 or Race == 18 then
+    if CanReceiveQuest(Player,SY) then
+    OfferQuest(nil,Player,SY)
+    end
+ 
+    -- Erudite / Kerra
+    elseif Race == 3 or Race == 11 then
+    if CanReceiveQuest(Player,SB) then
+    OfferQuest(nil,Player,SB)
+    end
+      -- Human / Half Elf
+    elseif Race == 9 or Race == 6 then
+    if CanReceiveQuest(Player,BC) then
+    OfferQuest(nil,Player,BC)
+    end       
+      -- Ratonga / Gnome
+    elseif Race == 5 or Race == 13 then
+    if CanReceiveQuest(Player,TS) then
+     OfferQuest(nil,Player,TS)
+    end      
+   -- Orge / Troll
+    elseif Race == 12 or Race == 14 then
+    if CanReceiveQuest(Player,BB) then
+    OfferQuest(nil,Player,BB)
+    end
+    else
+    if CanReceiveQuest(Player,BC) then
+    OfferQuest(nil,Player,BC)
+    end 
+    end
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The second form lists...yadda yadda yadda.\n\nA few marks here and there should finish up everything.\n\n[ ACCEPT THE QUEST ]")
+end
+
+function Task2(Item,Player)
+local Race = GetRace(Player)
+    if Race == 11 then --Kerra
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,13)        
+    end
+    if HasQuest(Player,LA) then
+    SetStepComplete(Player,LA,1)        
+    SetStepComplete(Player,LA,2)        
+    SetStepComplete(Player,LA,3)        
+    SetStepComplete(Player,LA,4)        
+    SetStepComplete(Player,LA,5)        
+    SetStepComplete(Player,LA,6)        
+    SetStepComplete(Player,LA,7)        
+    end
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if HasQuest(Player,SY_F) then
+    SetStepComplete(Player,SY_F,13)        
+    end
+    if HasQuest(Player,SY) then
+    SetStepComplete(Player,SY,1)        
+    SetStepComplete(Player,SY,2)        
+    SetStepComplete(Player,SY,3)        
+    SetStepComplete(Player,SY,4)        
+    SetStepComplete(Player,SY,5)        
+    SetStepComplete(Player,SY,6)        
+    SetStepComplete(Player,SY,7)        
+    end
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,13)        
+    end
+    if HasQuest(Player,LA) then
+    SetStepComplete(Player,LA,1)        
+    SetStepComplete(Player,LA,2)        
+    SetStepComplete(Player,LA,3)        
+    SetStepComplete(Player,LA,4)        
+    SetStepComplete(Player,LA,5)        
+    SetStepComplete(Player,LA,6)        
+    SetStepComplete(Player,LA,7)        
+    end
+    if HasQuest(Player,SY_F) then
+    SetStepComplete(Player,SY_F,13)        
+    end
+    if HasQuest(Player,SY) then
+    SetStepComplete(Player,SY,1)        
+    SetStepComplete(Player,SY,2)        
+    SetStepComplete(Player,SY,3)        
+    SetStepComplete(Player,SY,4)        
+    SetStepComplete(Player,SY,5)        
+    SetStepComplete(Player,SY,6)        
+    SetStepComplete(Player,SY,7)        
+    end
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if HasQuest(Player,SB_F) then
+    SetStepComplete(Player,SB_F,13)        
+    end
+    if HasQuest(Player,SB) then
+    SetStepComplete(Player,SB,1)        
+    SetStepComplete(Player,SB,2)        
+    SetStepComplete(Player,SB,3)        
+    SetStepComplete(Player,SB,4)        
+    SetStepComplete(Player,SB,5)        
+    SetStepComplete(Player,SB,6)        
+    SetStepComplete(Player,SB,7)        
+    end     
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if HasQuest(Player,BC_F) then
+    SetStepComplete(Player,BC_F,13)        
+    end
+    if HasQuest(Player,BC) then
+    SetStepComplete(Player,BC,1)        
+    SetStepComplete(Player,BC,2)        
+    SetStepComplete(Player,BC,3)        
+    SetStepComplete(Player,BC,4)        
+    SetStepComplete(Player,BC,5)        
+    SetStepComplete(Player,BC,6)        
+    SetStepComplete(Player,BC,7)        
+    end             
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if HasQuest(Player,TS_F) then
+    SetStepComplete(Player,TS_F,13)        
+    end
+    if HasQuest(Player,TS) then
+    SetStepComplete(Player,TS,1)        
+    SetStepComplete(Player,TS,2)        
+    SetStepComplete(Player,TS,3)        
+    SetStepComplete(Player,TS,4)        
+    SetStepComplete(Player,TS,5)        
+    SetStepComplete(Player,TS,6)        
+    SetStepComplete(Player,TS,7)        
+    end                  
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if HasQuest(Player,BB_F) then
+    SetStepComplete(Player,BB_F,13)        
+    end
+    if HasQuest(Player,BB) then
+    SetStepComplete(Player,BB,1)        
+    SetStepComplete(Player,BB,2)        
+    SetStepComplete(Player,BB,3)        
+    SetStepComplete(Player,BB,4)        
+    SetStepComplete(Player,BB,5)        
+    SetStepComplete(Player,BB,6)        
+    SetStepComplete(Player,BB,7)        
+    end    
+    else
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,13)        
+    end
+    if HasQuest(Player,LA) then
+    SetStepComplete(Player,LA,1)        
+    SetStepComplete(Player,LA,2)        
+    SetStepComplete(Player,LA,3)        
+    SetStepComplete(Player,LA,4)        
+    SetStepComplete(Player,LA,5)        
+    SetStepComplete(Player,LA,6)        
+    SetStepComplete(Player,LA,7)        
+    end
+end
+   conversation = CreateConversation()
+   
+        if GetClass(Player)==1 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Fighter", "Task3")
+        elseif GetClass(Player)==11 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Priest", "Task3")
+        elseif GetClass(Player)==21 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Mage", "Task3")
+        elseif GetClass(Player)==31 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Scout", "Task3")
+        else
+	    AddConversationOption(conversation, ""..GetName(Player).."", "Task3")
+        end   
+   
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "All that is left to do is sign your name...\n\nAre you ready to be a citizen of Freeport?")
+end
+
+function Task3(Item,Player)
+local Race = GetRace(Player)
+    if Race == 11 then --Kerra
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,14)
+    end
+    if HasQuest(Player,LA) then
+    SetStepComplete(Player,LA,8)        
+    end
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if HasQuest(Player,SY_F) then
+    SetStepComplete(Player,SY_F,14)
+    end
+    if HasQuest(Player,SY) then
+    SetStepComplete(Player,SY,8)        
+    end
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,14)
+    end
+    if HasQuest(Player,LA) then
+    SetStepComplete(Player,LA,8)        
+    end
+    if HasQuest(Player,SY_F) then
+    SetStepComplete(Player,SY_F,14)
+    end
+    if HasQuest(Player,SY) then
+    SetStepComplete(Player,SY,8)        
+    end
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if HasQuest(Player,SB_F) then
+    SetStepComplete(Player,SB_F,14)
+    end
+    if HasQuest(Player,SB) then
+    SetStepComplete(Player,SB,8)        
+    end     
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if HasQuest(Player,BC_F) then
+    SetStepComplete(Player,BC_F,14)
+    end
+    if HasQuest(Player,BC) then
+    SetStepComplete(Player,BC,8)        
+    end             
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if HasQuest(Player,TS_F) then
+    SetStepComplete(Player,TS_F,14)
+    end
+    if HasQuest(Player,TS) then
+    SetStepComplete(Player,TS,8)        
+    end                  
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if HasQuest(Player,BB_F) then
+    SetStepComplete(Player,BB_F,14)
+    end
+    if HasQuest(Player,BB) then
+    SetStepComplete(Player,BB,8)        
+    end    
+    else
+    if HasQuest(Player,LA_F) then
+    SetStepComplete(Player,LA_F,14)
+    end
+    if HasQuest(Player,LA) then
+    SetStepComplete(Player,LA,8)        
+    end
+end
+    AddSpellBookEntry(Player, 8057, 1) --CALL TO QEYNOS
+    SendMessage(Player, "You are now a Citizen of Freeport!","yellow")
+    SendPopUpMessage(Player, "You are now a Citizen of Freeport!",250,250,250)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Spawn), GetY(Spawn), GetZ(Spawn), Spawn)
+    ApplySpellVisual(Player, 324)
+    AddTimer(Player,1000,"TaskDone",1)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Stuff the completed forms away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "Well done, you've faked becoming a citizen of Freeport!")
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001112) then
+    RemoveItem(Player,1001112,1)
+    end
+end
+

+ 634 - 0
server/ItemScripts/ForgeryQeynosCitizenshipPapers.lua

@@ -0,0 +1,634 @@
+--[[
+    Script Name    : ItemScripts/ForgeryQeynosCitizenshipPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.10 11:06:34
+    Script Purpose : 
+                   : 
+--]]
+local BB = 5718  --Welcome to Qeynos (Babbuelshrie)
+local BB_Q = 5760 --Baubbleshire Citizenship Task
+local CV = 5719     --Castleview
+local CV_Q = 5765
+local NV = 5721     --Nettleville
+local NV_Q = 5763
+local GS = 5720     --Graystone
+local GS_Q = 5764
+local SC = 5722     --Starcrest
+local SC_Q = 5762
+local WW = 5723     --Willow Wood
+local WW_Q = 5761
+
+
+
+function examined(Item, Player)
+local Race = GetRace(Player)
+conversation = CreateConversation()
+if not HasQuest(Player,BB)
+ and not HasQuest(Player,BB_Q)
+     
+ and not HasQuest(Player,CV) 
+ and not HasQuest(Player,CV_Q) 
+     
+ and not HasQuest(Player,GS) 
+ and not HasQuest(Player,GS_Q) 
+ 
+  and not HasQuest(Player,NV) 
+ and not HasQuest(Player,NV_Q) 
+     
+ and not HasQuest(Player,SC) 
+ and not HasQuest(Player,SC_Q) 
+  
+  and not HasQuest(Player,WW) 
+ and not HasQuest(Player,WW_Q) then
+     
+    if CanReceiveQuest(Player,BB) or     
+    CanReceiveQuest(Player,CV) or 
+    CanReceiveQuest(Player,GS) or 
+    CanReceiveQuest(Player,NV) or 
+    CanReceiveQuest(Player,SC) or 
+    CanReceiveQuest(Player,WW) then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    AddConversationOption(conversation, "[Put the papers away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This stack of papers looks like Qeynos Citzenship forms. They could be useful for someone looking to quickly become a citizen...")
+elseif
+ GetQuestStep(Player,BB_Q) <12 or   
+ GetQuestStep(Player,CV_Q) <12 or   
+ GetQuestStep(Player,GS_Q) <12 or   
+ GetQuestStep(Player,NV_Q) <12 or   
+ GetQuestStep(Player,SC_Q) <12 or   
+ GetQuestStep(Player,WW_Q) <12 then   
+ Welcome2(Item,Player)
+ elseif
+ GetQuestStep(Player,BB_Q) ==12 and CanReceiveQuest(Player,BB) or   
+ GetQuestStep(Player,CV_Q) ==12 and CanReceiveQuest(Player,CV) or   
+ GetQuestStep(Player,GS_Q) ==12 and CanReceiveQuest(Player,GS) or   
+ GetQuestStep(Player,NV_Q) ==12 and CanReceiveQuest(Player,NV) or   
+ GetQuestStep(Player,SC_Q) ==12 and CanReceiveQuest(Player,SC) or   
+ GetQuestStep(Player,WW_Q) ==12 and CanReceiveQuest(Player,WW) then
+ Task1(Item,Player)    
+ elseif
+ GetQuestStep(Player,BB_Q) ==12 and GetQuestStep(Player,BB)==1 or   
+ GetQuestStep(Player,CV_Q) ==12 and GetQuestStep(Player,CV)==1 or   
+ GetQuestStep(Player,GS_Q) ==12 and GetQuestStep(Player,GS)==1 or   
+ GetQuestStep(Player,NV_Q) ==12 and GetQuestStep(Player,NV)==1 or   
+ GetQuestStep(Player,SC_Q) ==12 and GetQuestStep(Player,SC)==1 or   
+ GetQuestStep(Player,WW_Q) ==12 and GetQuestStep(Player,WW)==1 then 
+ Task1(Item,Player)
+ else
+    Intro(Item,Player)
+end
+end
+
+function Intro(Item,Player)
+    local Race = GetRace(Player)
+    conversation = CreateConversation()
+    if Race == 11 then --Kerra
+    if not HasQuest(Player,NV_Q) and not HasCompletedQuest(Player,NV_Q) then
+    AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+     OfferQuest(nil,Player,NV_Q)
+    end 
+    
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if not HasQuest(Player,SC_Q)  and not HasCompletedQuest(Player,SC_Q) then
+     AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+   OfferQuest(nil,Player,SC_Q)
+    end
+    
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if not HasQuest(Player,NV_Q) and not HasCompletedQuest(Player,NV_Q)  then
+    AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+    OfferQuest(nil,Player,NV_Q)
+    end
+    
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if not HasQuest(Player,GS_Q) and not HasCompletedQuest(Player,GS_Q)  then
+    AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+    OfferQuest(nil,Player,GS_Q)
+    end
+    
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if not HasQuest(Player,CV_Q)  and not HasCompletedQuest(Player,CV_Q) then
+    AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+    OfferQuest(nil,Player,CV_Q)
+    end
+    
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 or Race == 16 then
+    if not HasQuest(Player,WW_Q)  and not HasCompletedQuest(Player,WW_Q) then
+     AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+    OfferQuest(nil,Player,WW_Q)
+    end
+    
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if not HasQuest(Player,BB_Q)  and not HasCompletedQuest(Player,BB_Q) then
+    AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+    OfferQuest(nil,Player,BB_Q)
+    end
+    
+    else
+    if not HasQuest(Player,NV_Q)  and not HasCompletedQuest(Player,NV_Q) then
+    AddConversationOption(conversation, "[Make up a Steward name]","Welcome1")
+    OfferQuest(nil,Player,NV_Q)
+    end
+    end
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "It states a Steward is suppose to sign the document...\n\n[ ACCEPT THE QUEST ]")
+end
+
+function Welcome1(Item,Player)  --ALIGNMENT/FACTION CHANGE + CHECK FOR QUEST1
+local Race = GetRace(Player)
+if not HasQuest(Player,BB)
+ and not HasQuest(Player,BB_Q)
+     
+ and not HasQuest(Player,CV) 
+ and not HasQuest(Player,CV_Q) 
+     
+ and not HasQuest(Player,GS) 
+ and not HasQuest(Player,GS_Q) 
+ 
+  and not HasQuest(Player,NV) 
+ and not HasQuest(Player,NV_Q) 
+     
+ and not HasQuest(Player,SC) 
+ and not HasQuest(Player,SC_Q) 
+  
+  and not HasQuest(Player,WW) 
+ and not HasQuest(Player,WW_Q) then    
+Intro(Item,Player)
+else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Forge an address and check the list]","Welcome2")
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The form states you need signitures from a landlord and to complete their checklist...")
+    Faction(Item,Player)
+end
+end
+
+function Faction(Item,Player)
+    Qeynos = GetFactionAmount(Player, 11)
+    Qeynos_Add = (10000-Qeynos)
+    Freeport = GetFactionAmount(Player, 12)
+    Freeport_Add = (-20000-Freeport)
+    Neriak = GetFactionAmount(Player, 13)
+    Kelethin = GetFactionAmount(Player, 14)
+    Halas = GetFactionAmount(Player, 16)
+    Gorowyn = GetFactionAmount(Player, 17)
+    alignment = GetAlignment(Player)
+ if Qeynos <10000 and Qeynos >=0 then ChangeFaction(Player, 11, Qeynos_Add)
+    elseif Qeynos <0 then ChangeFaction(Player, 11, (Qeynos*-1))
+    Faction(Item,Player)    
+end
+if Freeport <-20000 then ChangeFaction(Player, 12, Freeport_Add)
+    elseif Freeport >-20000 then ChangeFaction(Player, 12, (Freeport*-1))
+end
+if Neriak >0 then ChangeFaction(Player, 13, -Neriak)
+    elseif Neriak <0 then ChangeFaction(Player, 13, (Neriak*-1))
+end
+if Kelethin >0 then ChangeFaction(Player, 14, -Kelethin)
+    elseif Kelethin <0 then  ChangeFaction(Player, 14, (Kelethin*-1))
+end
+if Halas >0 then ChangeFaction(Player, 16, -Halas)
+    elseif Halas <0 then ChangeFaction(Player, 16, (Halas*-1))
+end
+if Gorowyn >0 then ChangeFaction(Player, 17, -Gorowyn)
+    elseif Gorowyn <0 then ChangeFaction(Player, 17, (Gorowyn*-1))
+end
+if GetRace(Player) == 0 or GetRace(Player) == 3 or GetRace(Player) == 5 or GetRace(Player) == 6 or GetRace(Player) == 9 or GetRace(Player) == 11 or GetRace(Player) == 20 then
+SetAlignment(Player, 2)
+end   
+end
+
+
+function Welcome2(Item,Player)
+ local Race = GetRace(Player)
+   conversation = CreateConversation()
+    AddConversationOption(conversation, "[Read the second form]","Task1")
+    if Race == 11 then --Kerra
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,1)        
+    SetStepComplete(Player,NV_Q,2)        
+    SetStepComplete(Player,NV_Q,3)        
+    SetStepComplete(Player,NV_Q,4)        
+    SetStepComplete(Player,NV_Q,5)        
+    SetStepComplete(Player,NV_Q,6)        
+    SetStepComplete(Player,NV_Q,7)        
+    SetStepComplete(Player,NV_Q,8)        
+    SetStepComplete(Player,NV_Q,9)        
+    SetStepComplete(Player,NV_Q,10)        
+    SetStepComplete(Player,NV_Q,11)        
+    SetStepComplete(Player,NV_Q,12)
+    end
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if HasQuest(Player,SC_Q) then
+    SetStepComplete(Player,SC_Q,1)        
+    SetStepComplete(Player,SC_Q,2)        
+    SetStepComplete(Player,SC_Q,3)        
+    SetStepComplete(Player,SC_Q,4)        
+    SetStepComplete(Player,SC_Q,5)        
+    SetStepComplete(Player,SC_Q,6)        
+    SetStepComplete(Player,SC_Q,7)        
+    SetStepComplete(Player,SC_Q,8)        
+    SetStepComplete(Player,SC_Q,9)        
+    SetStepComplete(Player,SC_Q,10)        
+    SetStepComplete(Player,SC_Q,11)        
+    SetStepComplete(Player,SC_Q,12)
+    end    
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,1)        
+    SetStepComplete(Player,NV_Q,2)        
+    SetStepComplete(Player,NV_Q,3)        
+    SetStepComplete(Player,NV_Q,4)        
+    SetStepComplete(Player,NV_Q,5)        
+    SetStepComplete(Player,NV_Q,6)        
+    SetStepComplete(Player,NV_Q,7)        
+    SetStepComplete(Player,NV_Q,8)        
+    SetStepComplete(Player,NV_Q,9)        
+    SetStepComplete(Player,NV_Q,10)        
+    SetStepComplete(Player,NV_Q,11)        
+    SetStepComplete(Player,NV_Q,12)
+    elseif HasQuest(Player,SC_Q) then
+    SetStepComplete(Player,SC_Q,1)        
+    SetStepComplete(Player,SC_Q,2)        
+    SetStepComplete(Player,SC_Q,3)        
+    SetStepComplete(Player,SC_Q,4)        
+    SetStepComplete(Player,SC_Q,5)        
+    SetStepComplete(Player,SC_Q,6)        
+    SetStepComplete(Player,SC_Q,7)        
+    SetStepComplete(Player,SC_Q,8)        
+    SetStepComplete(Player,SC_Q,9)        
+    SetStepComplete(Player,SC_Q,10)        
+    SetStepComplete(Player,SC_Q,11)        
+    SetStepComplete(Player,SC_Q,12)
+    end    
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if HasQuest(Player,GS_Q) then
+    SetStepComplete(Player,GS_Q,1)        
+    SetStepComplete(Player,GS_Q,2)        
+    SetStepComplete(Player,GS_Q,3)        
+    SetStepComplete(Player,GS_Q,4)        
+    SetStepComplete(Player,GS_Q,5)        
+    SetStepComplete(Player,GS_Q,6)        
+    SetStepComplete(Player,GS_Q,7)        
+    SetStepComplete(Player,GS_Q,8)        
+    SetStepComplete(Player,GS_Q,9)        
+    SetStepComplete(Player,GS_Q,10)        
+    SetStepComplete(Player,GS_Q,11)        
+    SetStepComplete(Player,GS_Q,12)
+    end        
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if HasQuest(Player,CV_Q) then
+    SetStepComplete(Player,CV_Q,1)        
+    SetStepComplete(Player,CV_Q,2)        
+    SetStepComplete(Player,CV_Q,3)        
+    SetStepComplete(Player,CV_Q,4)        
+    SetStepComplete(Player,CV_Q,5)        
+    SetStepComplete(Player,CV_Q,6)        
+    SetStepComplete(Player,CV_Q,7)        
+    SetStepComplete(Player,CV_Q,8)        
+    SetStepComplete(Player,CV_Q,9)        
+    SetStepComplete(Player,CV_Q,10)        
+    SetStepComplete(Player,CV_Q,11)        
+    SetStepComplete(Player,CV_Q,12)
+    end               
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if HasQuest(Player,WW_Q) then
+    SetStepComplete(Player,WW_Q,1)        
+    SetStepComplete(Player,WW_Q,2)        
+    SetStepComplete(Player,WW_Q,3)        
+    SetStepComplete(Player,WW_Q,4)        
+    SetStepComplete(Player,WW_Q,5)        
+    SetStepComplete(Player,WW_Q,6)        
+    SetStepComplete(Player,WW_Q,7)        
+    SetStepComplete(Player,WW_Q,8)        
+    SetStepComplete(Player,WW_Q,9)        
+    SetStepComplete(Player,WW_Q,10)        
+    SetStepComplete(Player,WW_Q,11)        
+    SetStepComplete(Player,WW_Q,12)
+    end                      
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if HasQuest(Player,BB_Q) then
+    SetStepComplete(Player,BB_Q,1)        
+    SetStepComplete(Player,BB_Q,2)        
+    SetStepComplete(Player,BB_Q,3)        
+    SetStepComplete(Player,BB_Q,4)        
+    SetStepComplete(Player,BB_Q,5)        
+    SetStepComplete(Player,BB_Q,6)        
+    SetStepComplete(Player,BB_Q,7)        
+    SetStepComplete(Player,BB_Q,8)        
+    SetStepComplete(Player,BB_Q,9)        
+    SetStepComplete(Player,BB_Q,10)        
+    SetStepComplete(Player,BB_Q,11)        
+    SetStepComplete(Player,BB_Q,12)
+    end   
+    else
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,1)        
+    SetStepComplete(Player,NV_Q,2)        
+    SetStepComplete(Player,NV_Q,3)        
+    SetStepComplete(Player,NV_Q,4)        
+    SetStepComplete(Player,NV_Q,5)        
+    SetStepComplete(Player,NV_Q,6)        
+    SetStepComplete(Player,NV_Q,7)        
+    SetStepComplete(Player,NV_Q,8)        
+    SetStepComplete(Player,NV_Q,9)        
+    SetStepComplete(Player,NV_Q,10)        
+    SetStepComplete(Player,NV_Q,11)        
+    SetStepComplete(Player,NV_Q,12)
+    end
+    end
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "There is another form meant to accompany the first. This second mentions a citizenship task. It states something about tokens and needing to prove yourself....\n\nWho has time for that?")
+end
+
+function Task1(Item,Player)
+ local Race = GetRace(Player)
+   conversation = CreateConversation()
+    AddConversationOption(conversation, "[Check all the boxes and sign]","Task2")
+    if Race == 11 then --Kerra
+    if CanReceiveQuest(Player,NV) then
+    OfferQuest(nil,Player,NV)
+    end 
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if CanReceiveQuest(Player,SC) then
+    OfferQuest(nil,Player,SC)
+    end
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if CanReceiveQuest(Player,NV) then
+    OfferQuest(nil,Player,NV)
+    end     
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if CanReceiveQuest(Player,GS) then
+    OfferQuest(nil,Player,GS)
+    end
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if CanReceiveQuest(Player,CV) then
+    OfferQuest(nil,Player,CV)
+    end       
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if CanReceiveQuest(Player,WW) then
+     OfferQuest(nil,Player,WW)
+    end      
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if CanReceiveQuest(Player,BB) then
+    OfferQuest(nil,Player,BB)
+    end
+    else
+    if CanReceiveQuest(Player,NV) then
+    OfferQuest(nil,Player,NV)
+    end 
+    end
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The second form lists...yadda yadda yadda.\n\nA few marks here and there should finish up everything.\n\n[ ACCEPT THE QUEST ]")
+end
+
+function Task2(Item,Player)
+local Race = GetRace(Player)
+    if Race == 11 then --Kerra
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,13)        
+    end
+    if HasQuest(Player,NV) then
+    SetStepComplete(Player,NV,1)        
+    SetStepComplete(Player,NV,2)        
+    SetStepComplete(Player,NV,3)        
+    SetStepComplete(Player,NV,4)        
+    SetStepComplete(Player,NV,5)        
+    SetStepComplete(Player,NV,6)        
+    SetStepComplete(Player,NV,7)        
+    end
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if HasQuest(Player,SC_Q) then
+    SetStepComplete(Player,SC_Q,13)        
+    end
+    if HasQuest(Player,SC) then
+    SetStepComplete(Player,SC,1)        
+    SetStepComplete(Player,SC,2)        
+    SetStepComplete(Player,SC,3)        
+    SetStepComplete(Player,SC,4)        
+    SetStepComplete(Player,SC,5)        
+    SetStepComplete(Player,SC,6)        
+    SetStepComplete(Player,SC,7)        
+    end
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,13)        
+    end
+    if HasQuest(Player,NV) then
+    SetStepComplete(Player,NV,1)        
+    SetStepComplete(Player,NV,2)        
+    SetStepComplete(Player,NV,3)        
+    SetStepComplete(Player,NV,4)        
+    SetStepComplete(Player,NV,5)        
+    SetStepComplete(Player,NV,6)        
+    SetStepComplete(Player,NV,7)        
+    end
+    if HasQuest(Player,SC_Q) then
+    SetStepComplete(Player,SC_Q,13)        
+    end
+    if HasQuest(Player,SC) then
+    SetStepComplete(Player,SC,1)        
+    SetStepComplete(Player,SC,2)        
+    SetStepComplete(Player,SC,3)        
+    SetStepComplete(Player,SC,4)        
+    SetStepComplete(Player,SC,5)        
+    SetStepComplete(Player,SC,6)        
+    SetStepComplete(Player,SC,7)        
+    end
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if HasQuest(Player,GS_Q) then
+    SetStepComplete(Player,GS_Q,13)        
+    end
+    if HasQuest(Player,GS) then
+    SetStepComplete(Player,GS,1)        
+    SetStepComplete(Player,GS,2)        
+    SetStepComplete(Player,GS,3)        
+    SetStepComplete(Player,GS,4)        
+    SetStepComplete(Player,GS,5)        
+    SetStepComplete(Player,GS,6)        
+    SetStepComplete(Player,GS,7)        
+    end     
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if HasQuest(Player,CV_Q) then
+    SetStepComplete(Player,CV_Q,13)        
+    end
+    if HasQuest(Player,CV) then
+    SetStepComplete(Player,CV,1)        
+    SetStepComplete(Player,CV,2)        
+    SetStepComplete(Player,CV,3)        
+    SetStepComplete(Player,CV,4)        
+    SetStepComplete(Player,CV,5)        
+    SetStepComplete(Player,CV,6)        
+    SetStepComplete(Player,CV,7)        
+    end             
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if HasQuest(Player,WW_Q) then
+    SetStepComplete(Player,WW_Q,13)        
+    end
+    if HasQuest(Player,WW) then
+    SetStepComplete(Player,WW,1)        
+    SetStepComplete(Player,WW,2)        
+    SetStepComplete(Player,WW,3)        
+    SetStepComplete(Player,WW,4)        
+    SetStepComplete(Player,WW,5)        
+    SetStepComplete(Player,WW,6)        
+    SetStepComplete(Player,WW,7)        
+    end                  
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if HasQuest(Player,BB_Q) then
+    SetStepComplete(Player,BB_Q,13)        
+    end
+    if HasQuest(Player,BB) then
+    SetStepComplete(Player,BB,1)        
+    SetStepComplete(Player,BB,2)        
+    SetStepComplete(Player,BB,3)        
+    SetStepComplete(Player,BB,4)        
+    SetStepComplete(Player,BB,5)        
+    SetStepComplete(Player,BB,6)        
+    SetStepComplete(Player,BB,7)        
+    end    
+    else
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,13)        
+    end
+    if HasQuest(Player,NV) then
+    SetStepComplete(Player,NV,1)        
+    SetStepComplete(Player,NV,2)        
+    SetStepComplete(Player,NV,3)        
+    SetStepComplete(Player,NV,4)        
+    SetStepComplete(Player,NV,5)        
+    SetStepComplete(Player,NV,6)        
+    SetStepComplete(Player,NV,7)        
+    end
+end
+   conversation = CreateConversation()
+   
+        if GetClass(Player)==1 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Fighter", "Task3")
+        elseif GetClass(Player)==11 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Priest", "Task3")
+        elseif GetClass(Player)==21 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Mage", "Task3")
+        elseif GetClass(Player)==31 then
+	    AddConversationOption(conversation, ""..GetName(Player).." the Scout", "Task3")
+        else
+	    AddConversationOption(conversation, ""..GetName(Player).."", "Task3")
+        end   
+   
+    AddConversationOption(conversation, "[Put the pages away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "All that is left to do is sign your name...\n\nAre you ready to be a citizen of Qeynos?")
+end
+
+function Task3(Item,Player)
+local Race = GetRace(Player)
+    if Race == 11 then --Kerra
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,14)
+    end
+    if HasQuest(Player,NV) then
+    SetStepComplete(Player,NV,8)        
+    end
+    -- Erudite
+    elseif Race == 3 or Race == 20 then
+    if HasQuest(Player,SC_Q) then
+    SetStepComplete(Player,SC_Q,14)
+    end
+    if HasQuest(Player,SC) then
+    SetStepComplete(Player,SC,8)        
+    end
+    elseif Race == 9 then --Human
+       local con = CreateConversation()
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,14)
+    end
+    if HasQuest(Player,NV) then
+    SetStepComplete(Player,NV,8)        
+    end
+    if HasQuest(Player,SC_Q) then
+    SetStepComplete(Player,SC_Q,14)
+    end
+    if HasQuest(Player,SC) then
+    SetStepComplete(Player,SC,8)        
+    end
+    -- Barbarian / Dwarf
+    elseif Race == 0 or Race == 2 then
+    if HasQuest(Player,GS_Q) then
+    SetStepComplete(Player,GS_Q,14)
+    end
+    if HasQuest(Player,GS) then
+    SetStepComplete(Player,GS,8)        
+    end     
+    -- Froglok / High Elf 
+    elseif Race == 4 or Race == 8 then
+    if HasQuest(Player,CV_Q) then
+    SetStepComplete(Player,CV_Q,14)
+    end
+    if HasQuest(Player,CV) then
+    SetStepComplete(Player,CV,8)        
+    end             
+    -- Half Elf / Wood Elf
+    elseif Race == 6 or Race == 15 then
+    if HasQuest(Player,WW_Q) then
+    SetStepComplete(Player,WW_Q,14)
+    end
+    if HasQuest(Player,WW) then
+    SetStepComplete(Player,WW,8)        
+    end                  
+    -- Gnome / Halfling
+    elseif Race == 5 or Race == 7 then
+    if HasQuest(Player,BB_Q) then
+    SetStepComplete(Player,BB_Q,14)
+    end
+    if HasQuest(Player,BB) then
+    SetStepComplete(Player,BB,8)        
+    end    
+    else
+    if HasQuest(Player,NV_Q) then
+    SetStepComplete(Player,NV_Q,14)
+    end
+    if HasQuest(Player,NV) then
+    SetStepComplete(Player,NV,8)        
+    end
+end
+    AddSpellBookEntry(Player, 8057, 1) --CALL TO QEYNOS
+    SendMessage(Player, "You are now a Citizen of Qeynos!","yellow")
+    SendPopUpMessage(Player, "You are now a Citizen of Qeynos!",250,250,250)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Spawn), GetY(Spawn), GetZ(Spawn), Spawn)
+    ApplySpellVisual(Player, 324)
+    AddTimer(Player,1000,"TaskDone",1)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Stuff the completed forms away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "Well done, you've faked becoming a citizen of Qeynos!")
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001095) then
+    RemoveItem(Player,1001095,1)
+    end
+end
+

+ 22 - 0
server/ItemScripts/FroglokPondstoneEvil.lua

@@ -0,0 +1,22 @@
+--[[
+    Script Name    : ItemScripts/FroglokPondstoneEvil.lua
+    Script Author  : neatz09
+    Script Date    : 2023.04.22 09:04:22
+    Script Purpose : handles item id#46435
+                   : 
+--]]
+
+function examined(Item, Player)
+
+end
+
+function used(Item, Player)
+    local Cube = 331142
+    local Spawn2 = GetSpawn(Player, Cube)
+    if Spawn2 == nil then SendMessage(Player, "You must seek an ancient pond to use this item.", "Yellow") else
+    local Distance = GetDistance(Player, Spawn2)
+    if Distance > 50 then SendMessage(Player, "You must seek an ancient pond to use this item.", "Yellow")
+    else CastSpell(Player, 2550399, 1)
+        end
+    end
+end

+ 22 - 0
server/ItemScripts/FroglokPondstoneGood.lua

@@ -0,0 +1,22 @@
+--[[
+    Script Name    : ItemScripts/FroglokPondstoneEvil.lua
+    Script Author  : neatz09
+    Script Date    : 2023.04.22 09:04:22
+    Script Purpose : handles item id#46436
+                   : 
+--]]
+
+function examined(Item, Player)
+
+end
+
+function used(Item, Player)
+    local Cube = 121856
+    local Spawn2 = GetSpawn(Player, Cube)
+    if Spawn2 == nil then SendMessage(Player, "You must seek an ancient pond to use this item.", "Yellow") else
+    local Distance = GetDistance(Player, Spawn2)
+    if Distance > 78 then SendMessage(Player, "You must seek an ancient pond to use this item.", "Yellow")
+    else CastSpell(Player, 2550399, 1)
+        end
+    end
+end

+ 1 - 1
server/ItemScripts/GraystoneYardcitizenshiptask.lua

@@ -46,6 +46,6 @@ if not HasQuest(Player,5720) and not HasCompletedQuest(Player,5720)then
    OfferQuest(nil,Player,5720)
 end
 conversation = CreateConversation()
-AddConversationOption(conversation, "[put the note]","CloseItemConversation")
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
 StartDialogConversation(conversation, 2, Item, Player, "After you complete your task, report to Marshal Glorfel using the citizenship sign.")
 end

+ 158 - 0
server/ItemScripts/IgnatiaCellusFamilyHistoryBook.lua

@@ -0,0 +1,158 @@
+--[[
+    Script Name    : ItemScripts/IgnatiaCellusFamilyHistoryBook.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.30 03:05:08
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5844
+
+function examined(Item, Player)
+conversation = CreateConversation()
+if not HasQuest(Player,Quest) and not HasCompletedQuest(Player,Quest) then
+    AddConversationOption(conversation, "Read the intro","Intro")
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I am trying to compile the Cellus' family stories into remembrances of what was and how it has changed over time. If you bought this volume and its covers were removed, know that the seller is probably keeping out the good bits for him or herself!")
+else
+    Intro(Item,Player)
+end
+end
+
+function Intro(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry One","Page1")
+    if HasQuest(Player,Quest) then
+    AddConversationOption(conversation, "Turn to last page","PageCheck")
+    end
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I am sure that some of my family's writings still exist elsewhere in Norrath. Unless they were destroyed in the Shattering or as mentioned before, held back by unscrupulous vendors. Whatever portion of this tome you have, cherish it and remember the Cellus family of Qeynos.")
+end
+
+function PageCheck(Item,Player)
+    if GetQuestStep(Player,Quest) ==1 or GetQuestStep(Player,Quest) ==2 then
+    Page1(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==3 or GetQuestStep(Player,Quest) == 4 then
+    Page2(Item, Player)
+    elseif GetQuestStep(Player,Quest) == 5 or GetQuestStep(Player,Quest) ==6 then       
+    Page3(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==7 or GetQuestStep(Player,Quest) ==8 then       
+    Page4(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==9 or GetQuestStep(Player,Quest) ==10 then
+    Page5(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==11 or GetQuestStep(Player,Quest) ==12 then
+    Page6(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==13 or GetQuestStep(Player,Quest) ==14 then
+    Page7(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==15 or GetQuestStep(Player,Quest) ==16 then
+    Page8(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==17 or GetQuestStep(Player,Quest) ==18 then
+    Page9(Item, Player)
+    end
+end
+
+function Page1(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest)then
+    QuestStart(Item,Player)
+    end
+if GetQuestStep(Player,Quest) >=2 then
+AddConversationOption(conversation, "Entry Two","Page2")
+end
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "My name is Ignatia Cellus and my story is nothing like my grandmother's Isabella Cellus' tale. She lived in a time of relative peace, while I am in a world besieged by terrors unimaginable. The undead rise up outside Qeynos and we all fear for our --")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+end
+if GetQuestStep(Player,Quest) >=4 then
+AddConversationOption(conversation, "Entry Three","Page3")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- lives. Thank the gods for Kane Bayle, commander of the Guard. His guidance will surely lead Qeynos through this dark time! He has ordered the Guard to watch every possible entry to Qeynos, which means longer shifts and journeys far from home. I am in the Guard and and fortunately, patrol --")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+end
+if GetQuestStep(Player,Quest) >=6 then
+AddConversationOption(conversation, "Entry Four","Page4")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- inside the catacombs near the Guild Halls. There is a strange odor in the air; it is the smell of death. The dead are piled high and cannot be buried, for there is no one to stand guard over the mourners and keep them safe. The undead appear --")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+end
+if GetQuestStep(Player,Quest) >=8 then
+AddConversationOption(conversation, "Entry Five","Page5")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- in waves that we cannot repel easily, as there are so many of them and so few of us. With the Guard trying to keep Qeynos' entrances safe, there are not enough to do other tasks. I do not remember the last time I slept at home. This is exhausting.")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==8 then
+    SetStepComplete(Player,Quest,8)
+end
+if GetQuestStep(Player,Quest) >=10 then
+AddConversationOption(conversation, "Entry Six","Page6")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Alas! Finally, I was able to return to my home in South Qeynos, only to find such sorrow. The block of homes on my street were filled with the dead. The patrol in that quadrant had not reported in a fortnight, so I was sent to check on them. My mother --")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==10 then
+    SetStepComplete(Player,Quest,10)
+end
+if GetQuestStep(Player,Quest) >=12 then
+AddConversationOption(conversation, "Entry Seven","Page7")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- is one who died of this horrible plague that seems to rise from beneath us. Captain Keldrane has been sent to investigate the deepest areas of the Catacombs. Commander Bayle asked me personally to escort the unarmed to safety in Qeynos Hills. Some have said this will --")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==12 then
+    SetStepComplete(Player,Quest,12)
+end
+if GetQuestStep(Player,Quest) >=14 then
+AddConversationOption(conversation, "Entry Eight","Page8")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- spread the Guard too thinly, but Commander Bayle doubtless knows more than the general populace. I trust his judgment. He would never betray Qeynos, never! Meanwhile, I am happy to leave the city; being here reminds me too much of --")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==14 then
+    SetStepComplete(Player,Quest,14)
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- the family and friends I have lost. I am accompanying a group of non-combatants out of the city to a secret place known only to my family until now. I hope we will be safe there. I did not tell the commander of this place, but I know our family's stronghold will not remain secret or hidden for long.")
+end
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Quest)
+end

+ 85 - 0
server/ItemScripts/IgnatiaCellusFamilyHistoryBookHouseItem.lua

@@ -0,0 +1,85 @@
+--[[
+    Script Name    : ItemScripts/IgnatiaCellusFamilyHistoryBookHouseItem.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.30 03:05:00
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5844
+
+function examined(Item, Player)
+conversation = CreateConversation()
+    Intro(Item,Player)
+end
+
+function Intro(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry One","Page1")
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I am sure that some of my family's writings still exist elsewhere in Norrath. Unless they were destroyed in the Shattering or as mentioned before, held back by unscrupulous vendors. Whatever portion of this tome you have, cherish it and remember the Cellus family of Qeynos.")
+end
+
+
+function Page1(Item, Player)
+    conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Two","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "My name is Ignatia Cellus and my story is nothing like my grandmother's Isabella Cellus' tale. She lived in a time of relative peace, while I am in a world besieged by terrors unimaginable. The undead rise up outside Qeynos and we all fear for our --")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Three","Page3")
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- lives. Thank the gods for Kane Bayle, commander of the Guard. His guidance will surely lead Qeynos through this dark time! He has ordered the Guard to watch every possible entry to Qeynos, which means longer shifts and journeys far from home. I am in the Guard and and fortunately, patrol --")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Four","Page4")
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- inside the catacombs near the Guild Halls. There is a strange odor in the air; it is the smell of death. The dead are piled high and cannot be buried, for there is no one to stand guard over the mourners and keep them safe. The undead appear --")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Five","Page5")
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- in waves that we cannot repel easily, as there are so many of them and so few of us. With the Guard trying to keep Qeynos' entrances safe, there are not enough to do other tasks. I do not remember the last time I slept at home. This is exhausting.")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Six","Page6")
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Alas! Finally, I was able to return to my home in South Qeynos, only to find such sorrow. The block of homes on my street were filled with the dead. The patrol in that quadrant had not reported in a fortnight, so I was sent to check on them. My mother --")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Seven","Page7")
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- is one who died of this horrible plague that seems to rise from beneath us. Captain Keldrane has been sent to investigate the deepest areas of the Catacombs. Commander Bayle asked me personally to escort the unarmed to safety in Qeynos Hills. Some have said this will --")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Eight","Page8")
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- spread the Guard too thinly, but Commander Bayle doubtless knows more than the general populace. I trust his judgment. He would never betray Qeynos, never! Meanwhile, I am happy to leave the city; being here reminds me too much of --")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- the family and friends I have lost. I am accompanying a group of non-combatants out of the city to a secret place known only to my family until now. I hope we will be safe there. I did not tell the commander of this place, but I know our family's stronghold will not remain secret or hidden for long.")
+end
+

+ 184 - 0
server/ItemScripts/IsabellaCellusFamilyHistoryBook.lua

@@ -0,0 +1,184 @@
+--[[
+    Script Name    : ItemScripts/IsabellaCellusFamilyHistoryBook.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.20 02:05:33
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5843
+
+function examined(Item, Player)
+conversation = CreateConversation()
+if not HasQuest(Player,Quest) and not HasCompletedQuest(Player,Quest) then
+    AddConversationOption(conversation, "Read the intro","Intro")
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This is more of a portfolio than book as so many pages are missing. Reading through the pages that exist, I get the impression that the remaining pages are likely to be found in and around Antonica.")
+else
+    Intro(Item,Player)
+end
+end
+
+function Intro(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry One","Page1")
+    if HasQuest(Player,Quest) then
+    AddConversationOption(conversation, "Turn to last page","PageCheck")
+    end
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I am sure that some of my family’s writings still exist elsewhere in Norrath. Unless they were destroyed in the Shattering or as mentioned before, held back by unscrupulous vendors. Whatever portion of this tome you have, cherish it and remember the Cellus family of Qeynos.")
+end
+
+function PageCheck(Item,Player)
+    if GetQuestStep(Player,Quest) ==1 or GetQuestStep(Player,Quest) ==2 then
+    Page1(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==3 or GetQuestStep(Player,Quest) == 4 then
+    Page2(Item, Player)
+    elseif GetQuestStep(Player,Quest) == 5 or GetQuestStep(Player,Quest) ==6 then       
+    Page3(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==7 or GetQuestStep(Player,Quest) ==8 then       
+    Page4(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==9 or GetQuestStep(Player,Quest) ==10 then
+    Page5(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==11 or GetQuestStep(Player,Quest) ==12 then
+    Page6(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==13 or GetQuestStep(Player,Quest) ==14 then
+    Page7(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==15 or GetQuestStep(Player,Quest) ==16 then
+    Page8(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==17 or GetQuestStep(Player,Quest) ==18 then
+    Page9(Item, Player)
+    end
+end
+
+function Page1(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest)then
+    QuestStart(Item,Player)
+    end
+if GetQuestStep(Player,Quest) >=2 then
+AddConversationOption(conversation, "Entry Two","Page2")
+end
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "“Antonica,”\nby Isabella Cellus.\n\nI am travelling through an area known as Qeynos Hills. It’s filled with quite a population of animals and different sorts of folks. Someone is following me -")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+end
+if GetQuestStep(Player,Quest) >=4 then
+AddConversationOption(conversation, "Entry Three","Page3")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- so I am not enjoying this journey. Anyway, from these Hills, one can see North Qeynos, Western Karana and the frosted peaks of the northern mountains. The Sabertooth gnolls that came over from Blackburrow are especially annoying. They keep stealing my paper! Those little runts! During my --")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+end
+if GetQuestStep(Player,Quest) >=6 then
+AddConversationOption(conversation, "Entry Four","Page4")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- travels, I’ve met a lovely ranger named Holly Windstalker. She’s very friendly and outgoing, but a bit crazed about wolves and bears. We were having a picnic near the Surefall Glades, when someone walked by with --")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+end
+if GetQuestStep(Player,Quest) >=8 then
+AddConversationOption(conversation, "Entry Five","Page5")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- a wolf pelt over his shoulder. Holly went nuts! She up and gave this poor fellow a piece of her mind, then chased him all the way to Blackburrow! He shouted at her, “My lady --")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==8 then
+    SetStepComplete(Player,Quest,8)
+end
+if GetQuestStep(Player,Quest) >=10 then
+AddConversationOption(conversation, "Entry Six","Page6")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- the wolf attacked me first!” Holly didn’t seem to care. I think I’ll head over that way to interview him for my next bit on Blackburrow. Thanks to Holly, now I know someone who goes there!")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==10 then
+    SetStepComplete(Player,Quest,10)
+end
+if GetQuestStep(Player,Quest) >=12 then
+AddConversationOption(conversation, "Entry Seven","Page7")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The fellow Holly chased to Blackburrow is related to a handsome scout named Malityn. He’s very noble and good-hearted, and I’ve been spending a lot of time with him. Blackburrow is a classic dungeon, very dark and gloomier the further down into it one gets. Groups of Sabertooth gnolls are hard at work digging out tunnels. With Malityn at my side, however, I felt very safe. He must do something about --")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==12 then
+    SetStepComplete(Player,Quest,12)
+end
+if GetQuestStep(Player,Quest) >=14 then
+AddConversationOption(conversation, "Entry Eight","Page8")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- his hair. Anyway, Blackburrow is a pretty dismal place and dampness is not good for my complexion. Malityn was starting to be so possessive! If anyone so much as spoke to me, he’d whack off their head! So, it’s farewell to Malityn and back to Qeynos Hills. Hopefully, I’ll be able to shake this cold. I’m going to gather some willowbark to brew some tea, which will help tremendously with my headache. I saw some willows to the north, beyond the aqueduct.")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==14 then
+    SetStepComplete(Player,Quest,14)
+end
+if GetQuestStep(Player,Quest) >=16 then
+AddConversationOption(conversation, "Entry Nine","Page9")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "There is a lot of unrest these days in the Qeynos Hills, which makes me rethink my adventuring out in the wilds. Barbarians are moving southward from their home in Halas, although the reason isn’t clear to me. They sure are big, though! I might wander up that way. That would mean another trip through Blackburrow, though, and I am not sure I’m ready to face --")
+end
+
+function Page9(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==16 then
+    SetStepComplete(Player,Quest,16)
+end
+if GetQuestStep(Player,Quest) >=18 then
+AddConversationOption(conversation, "Entry Ten","Page10")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page8")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- Malityn. Unless he’s ready to move on with me, there is no point in continuing to see him. Holly says scouts can be that way, especially when he spends all that time underground, investigating those gnolls. Some days I wish I had --")
+end
+
+function Page10(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==18 then
+    SetStepComplete(Player,Quest,18)
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page9")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- never left the safety of South Qeynos. Malityn says he’s ready to leave Blackburrow and come with me, as he thinks the damp is ruining his hair. At last! The woods and hills are lovely but I will lay aside my pen for now and return to my home. Perhaps our daughter will carry on the tale.")
+end
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Quest)
+end

+ 101 - 0
server/ItemScripts/IsabellaCellusFamilyHistoryBook_House.lua

@@ -0,0 +1,101 @@
+--[[
+    Script Name    : ItemScripts/IsabellaCellusFamilyHistoryBook_House.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.20 03:05:50
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5582
+
+function examined(Item, Player)
+    Intro(Item,Player)
+end
+
+function Intro(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry One","Page1")
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I am sure that some of my family’s writings still exist elsewhere in Norrath. Unless they were destroyed in the Shattering or as mentioned before, held back by unscrupulous vendors. Whatever portion of this tome you have, cherish it and remember the Cellus family of Qeynos.")
+end
+
+
+function Page1(Item, Player)
+    conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Two","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "“Antonica,”\nby Isabella Cellus.\n\nI am travelling through an area known as Qeynos Hills. It’s filled with quite a population of animals and different sorts of folks. Someone is following me -")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Three","Page3")
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- so I am not enjoying this journey. Anyway, from these Hills, one can see North Qeynos, Western Karana and the frosted peaks of the northern mountains. The Sabertooth gnolls that came over from Blackburrow are especially annoying. They keep stealing my paper! Those little runts! During my --")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Four","Page4")
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- travels, I’ve met a lovely ranger named Holly Windstalker. She’s very friendly and outgoing, but a bit crazed about wolves and bears. We were having a picnic near the Surefall Glades, when someone walked by with --")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Five","Page5")
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- a wolf pelt over his shoulder. Holly went nuts! She up and gave this poor fellow a piece of her mind, then chased him all the way to Blackburrow! He shouted at her, “My lady --")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Six","Page6")
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- the wolf attacked me first!” Holly didn’t seem to care. I think I’ll head over that way to interview him for my next bit on Blackburrow. Thanks to Holly, now I know someone who goes there!")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Seven","Page7")
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "The fellow Holly chased to Blackburrow is related to a handsome scout named Malityn. He’s very noble and good-hearted, and I’ve been spending a lot of time with him. Blackburrow is a classic dungeon, very dark and gloomier the further down into it one gets. Groups of Sabertooth gnolls are hard at work digging out tunnels. With Malityn at my side, however, I felt very safe. He must do something about --")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Eight","Page8")
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- his hair. Anyway, Blackburrow is a pretty dismal place and dampness is not good for my complexion. Malityn was starting to be so possessive! If anyone so much as spoke to me, he’d whack off their head! So, it’s farewell to Malityn and back to Qeynos Hills. Hopefully, I’ll be able to shake this cold. I’m going to gather some willowbark to brew some tea, which will help tremendously with my headache. I saw some willows to the north, beyond the aqueduct.")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Nine","Page9")
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "There is a lot of unrest these days in the Qeynos Hills, which makes me rethink my adventuring out in the wilds. Barbarians are moving southward from their home in Halas, although the reason isn’t clear to me. They sure are big, though! I might wander up that way. That would mean another trip through Blackburrow, though, and I am not sure I’m ready to face --")
+end
+
+function Page9(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Ten","Page10")
+AddConversationOption(conversation, "Turn back to previous entry.","Page8")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- Malityn. Unless he’s ready to move on with me, there is no point in continuing to see him. Holly says scouts can be that way, especially when he spends all that time underground, investigating those gnolls. Some days I wish I had --")
+end
+
+function Page10(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn back to previous entry.","Page9")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "-- never left the safety of South Qeynos. Malityn says he’s ready to leave Blackburrow and come with me, as he thinks the damp is ruining his hair. At last! The woods and hills are lovely but I will lay aside my pen for now and return to my home. Perhaps our daughter will carry on the tale.")
+end
+
+

+ 52 - 0
server/ItemScripts/LongshadowAlleycitizenshiptask.lua

@@ -0,0 +1,52 @@
+--[[
+    Script Name    : ItemScripts/LongshadowAlleycitizenshiptask.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 12:06:17
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog2")
+StartDialogConversation(conversation, 2, Item, Player, "By order of the Overlord, all residents wishing to become citizens of the city must complete a trial to prove themselves.")
+
+end
+
+
+function Dialog2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read about where tokens are found]","Dialog3")
+StartDialogConversation(conversation, 2, Item, Player, "Tokens are scattered throughout the surrounding area. You must find five of these tokens to earn the right to speak to a city official.")
+end
+
+
+function Dialog3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog4")
+
+StartDialogConversation(conversation, 2, Item, Player, "Each district has been assigned an area in which to hunt for their tokens. Only tokens from within that area will be accepted.")
+end
+
+function Dialog4(Item, Player)
+conversation = CreateConversation()
+if GetLevel(Player)<6 then
+ AddConversationOption(conversation, "[I need more experience to pursue Citizenship]","CloseItemConversation")
+elseif not HasQuest(Player,5868) and not HasCompletedQuest(Player,5868)then
+AddConversationOption(conversation, "[write this in your quest journal]","StartQuest")
+end
+if HasQuest(Player,5868) or  HasCompletedQuest(Player,5868) then
+AddConversationOption(conversation, "[continue]","StartQuest")
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Longshadow Alley residents must gather five tokens from the Ruins.")
+end
+
+function StartQuest(Item,Player)
+conversation = CreateConversation()
+if not HasQuest(Player,5868) and not HasCompletedQuest(Player,5868)then
+   OfferQuest(nil,Player,5868)
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Use the citizenship sign to report to Abbetor T'avi once you complete your task.")
+end

+ 89 - 0
server/ItemScripts/MeteorChunk.lua

@@ -0,0 +1,89 @@
+--[[
+    Script Name    : ItemScripts/MeteorChunk.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.16 08:05:43
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5832
+
+function examined(Item, Player)
+if not HasQuest(Player, Quest) and not HasCompletedQuest(Player, Quest) then
+    Dialog1(Item,Player)
+elseif GetQuestStep(Player,Quest)==1 or GetQuestStep(Player,Quest)==2 then
+    Dialog2(Item,Player)
+elseif GetQuestStep(Player,Quest)==3 or GetQuestStep(Player,Quest)==4 then
+    Dialog3(Item,Player)
+elseif GetQuestStep(Player,Quest)==5 or GetQuestStep(Player,Quest)==6 then
+    Dialog4(Item,Player)
+elseif  HasCompletedQuest(Player, Quest)then
+    Completed(Item,Player)
+end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Examine the rock more closely.]", "Dialog2")
+    AddConversationOption(conversation, "[Put the rock away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This chunk of rock looks much different than most of the rocks you've seen in the surrounding area. The stone itself reminds you of meteor fragments you've seen before.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    AddConversationOption(conversation, "[Use the ink to dye the burned spots.]", "Dialog3")
+    end
+    AddConversationOption(conversation, "[Put the rock away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The more you inspect it the more you're convinced it is a meteor. It's rather mottled due to it burning up on impact. Perhaps if you could find some way to dye the burned spots, such as a dark ink, you just might be able to turn this meteorite into a nice piece of jewelry.")
+end
+
+
+function Dialog3(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==4 then
+    AddConversationOption(conversation, "[Compare the harvested stone to this rock]", "Dialog4")
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+    end    
+    AddConversationOption(conversation, "[Put the rock away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Taking the octopus ink and rubbing it into the stone doesn't do too much. Fortunately you acquired a large amount. After much work you're able to even out the discoloration. Now you're going to need to fashion a hoop to attach the chunk to. You should gather some rock from the surrounding lands of Antonica.")
+end
+
+function Dialog4(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==6 then
+    AddConversationOption(conversation, "[Carefully use the rock hammer to craft the jewelery]", "Dialog5")
+    end
+    if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+    end    
+    AddConversationOption(conversation, "[Put the rock away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "You compare the rock to the meteor chunk and see that this will do just fine. You have enough to turn it into an impressive earring. You'll need a rock hammer to shape it to the form you want, however.")
+end
+
+function Dialog5(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Glorious!", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "After several hours of work, you're able to chip, carve, and shape the rocks in a perfect hoop. Using the meteor as the center ball, you've managed to make a pristine Meteoric Hoop.")
+ end
+--
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+   end    
+    if HasItem(Player,1343) then
+        RemoveItem(Player,1343,1)
+    end
+end
+    
+function Completed(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Keep the rock. It is from beyond this realm, after all!]")
+    AddConversationOption(conversation, "[Toss the rock aside. You've got better things to carry.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This rock shimmers like the meteor chunk you used to make a piece of jewelery! You don't really have another use for it.")
+end

+ 27 - 0
server/ItemScripts/MinorAntiVenin.lua

@@ -0,0 +1,27 @@
+--[[
+    Script Name    : ItemScripts/MinorAntiVenin.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.10 02:10:24
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies Minor Anti-Venin when Activated.
+	* Dispels 18 levels of noxious hostile effects on caster
+
+End Item Effects--]]
+
+function examined(Item, Player)
+
+end
+
+function used(Item, Player)
+    Spell = GetSpell(2550438)
+    SetSpellData(Spell, "name", "Minor Anti-Venin")
+    SetSpellDataIndex(Spell, 0, 18)
+    CastCustomSpell(Spell, Player, Player)
+end
+
+

+ 26 - 0
server/ItemScripts/MinorElementalOintment.lua

@@ -0,0 +1,26 @@
+--[[
+    Script Name    : ItemScripts/MinorElementalOintment.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.10 01:10:30
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies Elemental Ointment when Activated.
+	* Dispels 18 levels of elemental hostile effects on caster
+
+End Item Effects--]]
+
+function examined(Item, Player)
+
+end
+
+function used(Item, Player)
+    Spell = GetSpell(2550436)
+    SetSpellData(Spell, "name", "Minor Elemental Ointment")
+    SetSpellDataIndex(Spell, 0, 18)
+    CastCustomSpell(Spell, Player, Player)
+end
+

+ 21 - 0
server/ItemScripts/MinorEnigmaticFormula.lua

@@ -0,0 +1,21 @@
+--[[
+    Script Name    : ItemScripts/MinorEnigmaticFormula.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.10 02:10:07
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies Minor Enigmatic Formula when Activated.
+	* Dispels 18 levels of arcane hostile effects on caster
+
+End Item Effects--]]
+
+function used(Item, Player)
+    Spell = GetSpell(2550439)
+    SetSpellData(Spell, "name", "Minor Enigmatic Formula")
+    SetSpellDataIndex(Spell, 0, 18)
+    CastCustomSpell(Spell, Player, Player)
+end

+ 21 - 0
server/ItemScripts/MinorSalve.lua

@@ -0,0 +1,21 @@
+--[[
+    Script Name    : ItemScripts/MinorSalve.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.10 01:10:07
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies Minor Salve when Activated.
+	* Dispels 18 levels of physical hostile effects on caster
+
+End Item Effects--]]
+
+function used(Item, Player)
+    Spell = GetSpell(2550437)
+    SetSpellData(Spell, "name", "Minor Salve")
+    SetSpellDataIndex(Spell, 0, 18)
+    CastCustomSpell(Spell, Player, Player)
+end

+ 57 - 0
server/ItemScripts/MutatedRatDrawing.lua

@@ -0,0 +1,57 @@
+--[[
+    Script Name    : ItemScripts/MutatedRatDrawing.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.17 01:05:51
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5834
+
+function examined(Item, Player)
+	if not HasCompletedQuest(Player,Quest) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "These mutated creatures do not belong here!", "Offer")
+    end
+    AddConversationOption(conversation, "[Roll up the drawing and keep it.]")
+    AddConversationOption(conversation, "[Get rid of it. You have done all you can against the rats for now.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This is a similar child's drawing of mutated rats eating a family you've seen before. It still turns your stomach to see it.")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Look closely at the drawing.]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the drawing away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This appears to be a crude drawing consisting of greens, browns, and reds - similar to that of child's.")
+end
+
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "This poor child... I must avenge this child's family!", "Offer")
+    AddConversationOption(conversation, "These mutated creatures have no place here. I must kill them!", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the drawing away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The drawing depicts a gruesome scene with rats devouring a family on the ground while a child is crying near by. The rats look strange, with scorpion-like tails and glowing red eyes. This poor child must have witness this to draw it so accurately.")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,11780) then
+        RemoveItem(Player,11780,1)
+    end
+end

+ 62 - 0
server/ItemScripts/OutlyingQeynosCreatureCatalog.lua

@@ -0,0 +1,62 @@
+--[[
+    Script Name    : ItemScripts/OutlyingQeynosCreatureCatalog.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.09 08:09:58
+    Script Purpose : 
+                   : 
+--]]
+local Catalogue = 519
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Just beyond the city's walls one will find areas which are considered part of Qeynos and yet remain wild. Residents of Qeynos' villages are very familiar with these areas as they usually border on one or more of the residential neighborhoods. Though close to the city, they are by no means a walk in the park.")
+end
+
+
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page2")
+AddConversationOption(conversation, "Turn back to previous section.","examined")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "One reason these areas are still wild is that they exist within steep embankments that make opening them to settlement impractical. The Bog in particular is an area where seasons of growth have compacted upon dense, moist soil and the scent of decay in that section would make living there disagreeable to say the least.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page3")
+AddConversationOption(conversation, "Turn back to previous section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "As these areas are close to Qeynos, they are quite temperate, though perhaps a little cooler due to the thickness of the vegetation. The caves are quite cool and in the past were a welcome Harvest diversion where folks could slip off for a quick swim after their chores were done.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page4")
+AddConversationOption(conversation, "Turn back to previous section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Without a doubt, the loveliest area is the Oakmyst Woods. This woodland preserve is shaded by emerald green broad-leaf trees such as oak and maple. Beneath the trees, the undergrowth is scattered with trillium, bleeding hearts and red-tipped paintbrushes. On the opposite end of the spectrum is the bog, with its greenish brown earth and fallen logs.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+if not HasQuest(Player,Catalogue) and not HasCompletedQuest(Player,Catalogue)then
+AddConversationOption(conversation, "Record the depicted creatures in your journal.","QuestStart")
+end
+AddConversationOption(conversation, "Turn back to previous section.","Page3")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Perhaps it is the abundance of greenery that brings an increase in the number of fey beings to these areas near Qeynos. Amongst the usual scattering of insects and birds, one finds several fairies and sprites protecting their space, attacking all who venture too near. Additionally, the Ruins are home to some unfortunate folk who have not yet earned their eternal sleep.")
+end
+
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Catalogue)
+end
+
+
+
+

+ 55 - 0
server/ItemScripts/OutlyingQeynosCreatureCataloging.lua

@@ -0,0 +1,55 @@
+--[[
+    Script Name    : ItemScripts/OutlyingQeynosCreatureCataloging.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.09 08:09:17
+    Script Purpose : 
+                   : 
+--]]
+local Catalogue = 519
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Just beyond the city's walls one will find areas which are considered part of Qeynos and yet remain wild. Residents of Qeynos' villages are very familiar with these areas as they usually border on one or more of the residential neighborhoods. Though close to the city, they are by no means a walk in the park.")
+end
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "One reason these areas are still wild is that they exist within steep embankments that make opening them to settlement impractical. The Bog in particular is an area where seasons of growth have compacted upon dense, moist soil and the scent of decay in that section would make living there disagreeable to say the least.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page3")
+AddConversationOption(conversation, "Turn back to previous section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "As these areas are close to Qeynos, they are quite temperate, though perhaps a little cooler due to the thickness of the vegetation. The caves are quite cool and in the past were a welcome Harvest diversion where folks could slip off for a quick swim after their chores were done.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page4")
+AddConversationOption(conversation, "Turn back to previous section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Without a doubt, the loveliest area is the Oakmyst Woods. This woodland preserve is shaded by emerald green broad-leaf trees such as oak and maple. Beneath the trees, the undergrowth is scattered with trillium, bleeding hearts and red-tipped paintbrushes. On the opposite end of the spectrum is the bog, with its greenish brown earth and fallen logs.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+if not HasQuest(Player,SunWolf) and not HasCompletedQuest(Player,Catalogue)then
+AddConversationOption(conversation, "Record the depicted creatures in your journal.","QuestStart")
+end
+AddConversationOption(conversation, "Turn back to previous section.","Page3")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Perhaps it is the abundance of greenery that brings an increase in the number of fey beings to these areas near Qeynos. Amongst the usual scattering of insects and birds, one finds several fairies and sprites protecting their space, attacking all who venture too near. Additionally, the Ruins are home to some unfortunate folk who have not yet earned their eternal sleep.")
+end
+
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Catalogue)
+end

+ 52 - 0
server/ItemScripts/OutlyingQeynosCreatureCatalogingDone.lua

@@ -0,0 +1,52 @@
+--[[
+    Script Name    : ItemScripts/OutlyingQeynosCreatureCatalogingDone.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.09 08:09:48
+    Script Purpose : 
+                   : 
+--]]
+local Catalogue = 519
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Just beyond the city's walls one will find areas which are considered part of Qeynos and yet remain wild. Residents of Qeynos' villages are very familiar with these areas as they usually border on one or more of the residential neighborhoods. Though close to the city, they are by no means a walk in the park.")
+end
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "One reason these areas are still wild is that they exist within steep embankments that make opening them to settlement impractical. The Bog in particular is an area where seasons of growth have compacted upon dense, moist soil and the scent of decay in that section would make living there disagreeable to say the least.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page3")
+AddConversationOption(conversation, "Turn back to previous section.","Page1")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "As these areas are close to Qeynos, they are quite temperate, though perhaps a little cooler due to the thickness of the vegetation. The caves are quite cool and in the past were a welcome Harvest diversion where folks could slip off for a quick swim after their chores were done.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn to the next section.","Page4")
+AddConversationOption(conversation, "Turn back to previous section.","Page2")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Without a doubt, the loveliest area is the Oakmyst Woods. This woodland preserve is shaded by emerald green broad-leaf trees such as oak and maple. Beneath the trees, the undergrowth is scattered with trillium, bleeding hearts and red-tipped paintbrushes. On the opposite end of the spectrum is the bog, with its greenish brown earth and fallen logs.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn back to previous section.","Page3")
+AddConversationOption(conversation, "Put the catalogue away.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Perhaps it is the abundance of greenery that brings an increase in the number of fey beings to these areas near Qeynos. Amongst the usual scattering of insects and birds, one finds several fairies and sprites protecting their space, attacking all who venture too near. Additionally, the Ruins are home to some unfortunate folk who have not yet earned their eternal sleep.")
+end
+
+
+
+
+
+
+

+ 1 - 1
server/ItemScripts/OverflowManifest.lua

@@ -15,5 +15,5 @@ function examined(Item, Player)
 	
 	conversation = CreateConversation()
 	AddConversationOption(conversation, "Put the manifest away.", "CloseItemConversation")
-	StartDialogConversation(conversation, 2, Item, Player, "Overflow Manifest: Graystone Yard\n#3CF0F: Under the small ramp east of the docks.\n#3CF1G: Leaning against the north-wall just east of the docks, near Tacklmaster Moyna.\n#2DF0F: Just north of the most north-eastern building in Graystone, off the lip of the raised platform. #4QGCG: Along the eastern wall, behind the Scribe's shop.\n#CC4QF: Just west of the harbor entrance, near the Mail Kiosk and Bowyer.\n#CQC4F: Outside the bank and its western corner, piled between the raised platform and the wall.")
+	StartDialogConversation(conversation, 2, Item, Player, "Overflow Manifest: Graystone Yard\n#3CF0F: Under the small ramp east of the docks.\n#3CF1G: Leaning against the north-wall just east of the docks, near Tacklmaster Moyna.\n#2DF0F: Just north of the most north-eastern building in Graystone, off the lip of the raised platform. #4QGCG: Along the eastern wall, behind the Scribe's shop.\n#CC4QF: Just west of the harbor entrance, near the Mail Kiosk and Bowyer.\n#QGC4F: Outside the bank and its western corner, piled between the raised platform and the wall.")
 end

+ 84 - 0
server/ItemScripts/PatchofDogFur.lua

@@ -0,0 +1,84 @@
+--[[
+    Script Name    : ItemScripts/PatchofDogFur.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.14 04:05:08
+    Script Purpose : 
+                   : 
+--]]
+--
+local Quest = 5815
+
+function examined(Item, Player)
+if not HasQuest(Player, Quest) and not HasCompletedQuest(Player, Quest) then
+    Dialog1(Item,Player)
+elseif GetQuestStep(Player,Quest)==1 or GetQuestStep(Player,Quest)==2 then
+    Dialog2(Item,Player)
+elseif GetQuestStep(Player,Quest)==3 or GetQuestStep(Player,Quest)==4 then
+    Dialog3(Item,Player)
+elseif GetQuestStep(Player,Quest)==5 or GetQuestStep(Player,Quest)==6 then
+    Dialog4(Item,Player)
+elseif  HasCompletedQuest(Player, Quest)then
+    Completed(Item,Player)
+end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Closely study the patch of fur...]", "Dialog2")
+    AddConversationOption(conversation, "[Put the fur away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This is nothing more than a simple patch of fur. Judging by the texture it is probably from a dog. Aside from that there's nothing special about it.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    AddConversationOption(conversation, "[Compare the patches of fur]", "Dialog3")
+    end
+    AddConversationOption(conversation, "[Put the fur away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The small patch of dog fur has given me an idea. If I can gather enough of the pieces together, I might actually be able to make a nice set of gloves that wrap around my fingers perfectly.")
+end
+
+
+function Dialog3(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==4 then
+    AddConversationOption(conversation, "[Stuff the gloves with down]", "Dialog4")
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+    end    
+    AddConversationOption(conversation, "[Put the cut fur patch away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "You throw away the small patch of fur. The large patch will be enough to make a nice set of gloves from. Cutting and shaping the fur, you're now going to have to stuff the gloves with a filling to keep them warm. Maybe you can find something soft in Antonica.")
+end
+
+function Dialog4(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==6 then
+    AddConversationOption(conversation, "[Attempt to sew the lining]", "QuestFinish")
+    end
+    if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+    end    
+    AddConversationOption(conversation, "[Put the stuffed glove pattern away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "You shove as much down as you can in between the lining of the gloves. You managed to grab just enough to do the job. All you need now is a strong way to close up the lining. Perhaps the zombies around the area have some extra tendons they don't need.")
+end
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+    end    
+    if HasItem(Player,10331) then
+        RemoveItem(Player,10331,1)
+    end
+end
+    
+function Completed(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Pack the fur back in your bags.]", "QuestFinish")
+    AddConversationOption(conversation, "[Get rid of the fur.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This patch of dog fur reminds you of some Fur Lined Gloves you've made in the past. They sure were comfortable!")
+end

+ 18 - 0
server/ItemScripts/PickledGuktaJuice.lua

@@ -0,0 +1,18 @@
+--[[
+    Script Name    : ItemScripts/PickledGuktaJuice.lua
+    Script Author  : neatz09
+    Script Date    : 2023.12.12 03:12:39
+    Script Purpose : 
+                   : 
+--]]
+
+function cast(Item, Player)
+	Spell = GetSpell(5463)
+	Regenz = 24.0
+	newDuration = 18000
+	SetSpellData(Spell, "duration1", newDuration)
+	SetSpellData(Spell, "duration2", newDuration)
+	SetSpellDataIndex(Spell, 0, Regenz)
+	SetSpellDisplayEffect(Spell, 0, "description", "Increases Out-of-Combat Power Regeneration of target by " .. Regenz)
+	CastCustomSpell(Spell, Player, Player)
+end

+ 323 - 0
server/ItemScripts/PredatorCertificationPapers.lua

@@ -0,0 +1,323 @@
+--[[
+    Script Name    : ItemScripts/PredatorCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.14 11:06:02
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5856
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==31 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Predator\" if you signed it and are a Commoner or Scout.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Predator.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Predator","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Predator as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Predator.")
+ 	if GetClass(Player)== 31 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,38)   
+   local level = GetLevel(Player)*5
+
+if not HasSkill(Player, 1921433074) then -- Reconnaissance
+    AddSkill(Player, 1921433074,1,level)
+    SendMessage(Player, "You have learned the Reconnaissance skill")
+end
+if not HasSkill(Player, 3167106577) then -- Stalking/Predator
+    AddSkill(Player, 3167106577,1,level)
+    SendMessage(Player, "You have learned the Stalking skill")
+end
+if not HasSkill(Player, 1468243427) then -- Tracking
+    AddSkill(Player, 1468243427,1,level)
+    SendMessage(Player, "You have learned the Tracking skill")
+end
+if not HasSkill(Player, 2200201799) then -- Disarm Trap
+    AddSkill(Player, 2200201799,1,level)
+    SendMessage(Player, "You have learned the Disarm Trap skill")
+end
+if not HasSkill(Player, 3232294366) then -- Safe Fall
+    AddSkill(Player, 3232294366,31,level)
+    SendMessage(Player, "You have learned the Safe Fall skill")
+end
+ if not HasSkill(Player, 1756482397) then -- Ranged
+    AddSkill(Player, 1756482397,1,level)
+    SendMessage(Player, "You have learned the Ranged skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+if not HasSkill(Player, 418532101) then -- Slashing
+    AddSkill(Player, 418532101,1,level)
+    SendMessage(Player,  "You have learned the Slashing skill")
+end
+if not HasSkill(Player, 1852383242) then -- Dual Wield
+    AddSkill(Player, 1852383242,1,level)
+    SendMessage(Player, "You have learned the Dual Wield skill")
+end
+if not HasSkill(Player, 2650425026) then -- Thrown Weapon
+    AddSkill(Player, 2650425026,1,level)
+    SendMessage(Player, "You have learned the Thrown Weapon skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+ if not HasSkill(Player, 2897193374) then -- Light Armor
+    AddSkill(Player, 2897193374,1,level)
+   SendMessage(Player, "You are now more proficient with Light Armor")
+end
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 3173504370) then -- Roundshield
+    AddSkill(Player, 3173504370,1,level)
+    SendMessage(Player, "You are now more proficient with a Roundshield")
+end
+if not HasSkill(Player, 1616998748) then -- Spear
+    AddSkill(Player, 1616998748,1,level)
+    SendMessage(Player, "You are now more proficient with a Spear")
+end
+if not HasSkill(Player, 887279616) then -- Dagger
+    AddSkill(Player, 887279616,1,level)
+    SendMessage(Player, "You are now more proficient with a Dagger")
+end
+if not HasSkill(Player, 1743366740) then -- Bow
+    AddSkill(Player, 1743366740,1,level)
+    SendMessage(Player, "You are now more proficient with a Bow")
+end
+if not HasSkill(Player, 2476073427) then -- Axe
+    AddSkill(Player, 2476073427,1,level)
+    SendMessage(Player, "You are now more proficient with an Axe")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 641561514) then -- Rapier
+    AddSkill(Player, 641561514,1,level)
+    SendMessage(Player, "You are now more proficient with a Rapier")
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    AddSkill(Player, 1696217328,1,level)
+    SendMessage(Player, "You are now more proficient with a Sword")
+end
+--REMOVE SKILLS
+-- Remove Fighter for Scout
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Advance Scout
+
+if HasSkill(Spawn, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Spawn, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest for Scout
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage for Scout
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 1616998748) then -- Spear
+    RemoveSkill(Player, 1616998748)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 1553857724) then -- Investigation
+    RemoveSkill(Player, 1553857724)
+end
+if HasSkill(Player, 3429135390) then -- Mystical Destruction
+    RemoveSkill(Player, 3429135390)
+end
+if HasSkill(Player, 366253016) then --Ministration
+    RemoveSkill(Player, 366253016)
+end
+if HasSkill(Player, 613995491) then -- Disruption
+    RemoveSkill(Player, 613995491)
+end
+if HasSkill(Player, 882983852) then -- Subjigation
+    RemoveSkill(Player, 882983852)
+end
+if HasSkill(Player, 3587918036) then -- Ordination
+    RemoveSkill(Player, 3587918036)
+end
+    SendMessage(Player, "Congratulations! You are a Predator.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Predator.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001100) then
+    RemoveItem(Player,1001100,1)
+    end
+end

+ 311 - 0
server/ItemScripts/QeynosWarriorCertificationPapers.lua

@@ -0,0 +1,311 @@
+--[[
+    Script Name    : ItemScripts/QeynosWarriorCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.11 06:06:43
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==1 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Warrior\" if you signed it and are a Commoner or Fighter.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Warrior.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Warrior","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Warrior as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Warrior.")
+ 	if GetClass(Player)== 1 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,2)   
+   local level = GetLevel(Player)*5
+
+if not HasSkill(Player, 1408356869) then -- Martial
+    AddSkill(Player, 1408356869,1,level)
+    SendMessage(Player, "You have learned the Martial skill")
+end
+if not HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    AddSkill(Player, 1124719197,1,level)
+    SendMessage(Player, "You have learned the Tactics skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 418532101) then -- Slashing
+    AddSkill(Player, 418532101,1,level)
+    SendMessage(Player, "You have learned the Slashing skill")
+end
+ if not HasSkill(Player, 1756482397) then -- Ranged
+    AddSkill(Player, 1756482397,1,level)
+    SendMessage(Player, "You have learned the Ranged skill")
+end
+if not HasSkill(Player, 2650425026) then -- Thrown Weapon
+    AddSkill(Player, 2650425026,1,level)
+    SendMessage(Player, "You have learned the Thrown Weapon skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+if not HasSkill(Player, 1852383242) then -- Dual Wield
+    AddSkill(Player, 1852383242,1,level)
+    SendMessage(Player, "You have learned the Dual Wield skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+--WEAPON SKILLS
+ if not HasSkill(Player, 2897193374) then -- Light Armor
+    AddSkill(Player, 2897193374,1,level)
+    SendMessage(Player, "You are now more proficient with Light Armor")
+end
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    AddSkill(Player, 2246237129,1,level)
+    SendMessage(Player, "You are now more proficient with Medium Armor")
+end
+if not HasSkill(Player, 1743366740) then -- Bow
+    AddSkill(Player, 1743366740,1,level)
+    SendMessage(Player, "You are now more proficient with a Bow")
+end
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 3173504370) then -- Roundshield
+    AddSkill(Player, 3173504370,1,level)
+    SendMessage(Player, "You are now more proficient with a Roundshield")
+end
+if not HasSkill(Player, 2476073427) then -- Axe
+    AddSkill(Player, 2476073427,1,level)
+    SendMessage(Player, "You are now more proficient with an Axe")
+end
+if not HasSkill(Player, 2954459351) then -- Great Axe
+    AddSkill(Player, 2954459351,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Axe")
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    AddSkill(Player, 1696217328,1,level)
+    SendMessage(Player, "You are now more proficient with a Sword")
+end
+if not HasSkill(Player, 2292577688) then -- Great Sword
+    AddSkill(Player, 2292577688,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Sword")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 554333641) then -- Hammer
+    AddSkill(Player, 554333641,1,level)
+   SendMessage(Player, "You are now more proficient with a Hammer")
+end
+if not HasSkill(Player, 1653482350) then -- Great Hammer
+    AddSkill(Player, 1653482350,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Hammer")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+    SendMessage(Player, "You are now more proficient with a Staff")
+end
+if not HasSkill(Player, 641561514) then -- Rapier
+    AddSkill(Player, 641561514,1,level)
+    SendMessage(Player, "You are now more proficient with a Rapier")
+end
+if not HasSkill(Player, 1616998748) then -- Spear
+    AddSkill(Player, 1616998748,1,level)
+    SendMessage(Player, "You are now more proficient with a Spear")
+end
+if not HasSkill(Player, 570458645) then -- Tower Shield
+    AddSkill(Player, 570458645,1,level)
+    SendMessage(Player, "You are now more proficient with a Tower Shield")
+end
+if not HasSkill(Player, 2608320658) then -- Kite Shield
+    AddSkill(Player, 2608320658,1,level)
+    SendMessage(Player, "You are now more proficient with a Kite Shield")
+end
+
+--REMOVED SKILLS
+--Removed Advance Fighter
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Scout for Fighter
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest for Fighter
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage for Fighter
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVED WEAPON
+if not HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 1553857724) then -- Investigation
+    RemoveSkill(Player, 1553857724)
+end
+if HasSkill(Player, 3429135390) then -- Mystical Destruction
+    RemoveSkill(Player, 3429135390)
+end
+if  HasSkill(Player, 2200201799) then -- Disarm Trap
+    RemoveSkill(Player, 2200201799)
+end
+if HasSkill(Player, 366253016) then --Ministration
+    RemoveSkill(Player, 366253016)
+end
+if HasSkill(Player, 613995491) then -- Disruption
+    RemoveSkill(Player, 613995491)
+end
+if HasSkill(Player, 882983852) then -- Subjigation
+    RemoveSkill(Player, 882983852)
+end
+if HasSkill(Player, 3587918036) then -- Ordination
+    RemoveSkill(Player, 3587918036)
+end    
+    SendMessage(Player, "Congratulations! You are a Warrior.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Warrior.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001096) then
+    RemoveItem(Player,1001096,1)
+    end
+end

+ 27 - 0
server/ItemScripts/RemedyoftheGarden.lua

@@ -0,0 +1,27 @@
+--[[
+    Script Name    : ItemScripts/RemedyoftheGarden.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.03 05:10:15
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies Remedy of the Garden when Activated.
+	* Heals caster for 8
+
+End Item Effects--]]
+
+function examined(Item, Player)
+
+end
+
+function used (Item, Player)
+    Spell = GetSpell(2550435)
+    SetSpellData(Spell, "name", "Remedy of the Garden")
+    SetSpellDataIndex(Spell, 0, 8)
+    SetSpellDataIndex(Spell, 1, 8)
+    CastCustomSpell(Spell, Player, Player)
+    
+end

+ 322 - 0
server/ItemScripts/RogueCertificationPapers.lua

@@ -0,0 +1,322 @@
+--[[
+    Script Name    : ItemScripts/RogueCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.14 11:06:10
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5857
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==31 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Rogue\" if you signed it and are a Commoner or Scout.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Rogue.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Rogue","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Rogue as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Rogue.")
+ 	if GetClass(Player)== 31 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,32)   
+   local level = GetLevel(Player)*5
+
+if not HasSkill(Player, 1921433074) then -- Reconnaissance
+    AddSkill(Player, 1921433074,1,level)
+    SendMessage(Player, "You have learned the Reconnaissance skill")
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    AddSkill(Player, 1514256692,1,level)
+    SendMessage(Player, "You have learned the Skulldugery skill")
+end
+if not HasSkill(Player, 1468243427) then -- Tracking
+    AddSkill(Player, 1468243427,1,level)
+    SendMessage(Player, "You have learned the Tracking skill")
+end
+if not HasSkill(Player, 2200201799) then -- Disarm Trap
+    AddSkill(Player, 2200201799,1,level)
+    SendMessage(Player, "You have learned the Disarm Trap skill")
+end
+if not HasSkill(Player, 3232294366) then -- Safe Fall
+    AddSkill(Player, 3232294366,31,level)
+    SendMessage(Player, "You have learned the Safe Fall skill")
+end
+ if not HasSkill(Player, 1756482397) then -- Ranged
+    AddSkill(Player, 1756482397,1,level)
+    SendMessage(Player, "You have learned the Ranged skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+if not HasSkill(Player, 418532101,1,level) then -- Slashing
+    AddSkill(Player, 418532101,1,level)
+    SendMessage(Player,  "You have learned the Slashing skill")
+end
+if not HasSkill(Player, 1852383242) then -- Dual Wield
+    AddSkill(Player, 1852383242,1,level)
+    SendMessage(Player, "You have learned the Dual Wield skill")
+end
+if not HasSkill(Player, 2650425026) then -- Thrown Weapon
+    AddSkill(Player, 2650425026,1,level)
+    SendMessage(Player, "You have learned the Thrown Weapon skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+ if not HasSkill(Player, 2897193374) then -- Light Armor
+    AddSkill(Player, 2897193374,1,level)
+   SendMessage(Player, "You are now more proficient with Light Armor")
+end
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 3173504370) then -- Roundshield
+    AddSkill(Player, 3173504370,1,level)
+    SendMessage(Player, "You are now more proficient with a Roundshield")
+end
+if not HasSkill(Player, 1616998748) then -- Spear
+    AddSkill(Player, 1616998748,1,level)
+    SendMessage(Player, "You are now more proficient with a Spear")
+end
+if not HasSkill(Player, 887279616) then -- Dagger
+    AddSkill(Player, 887279616,1,level)
+    SendMessage(Player, "You are now more proficient with a Dagger")
+end
+if not HasSkill(Player, 1743366740) then -- Bow
+    AddSkill(Player, 1743366740,1,level)
+    SendMessage(Player, "You are now more proficient with a Bow")
+end
+if not HasSkill(Player, 2476073427) then -- Axe
+    AddSkill(Player, 2476073427,1,level)
+    SendMessage(Player, "You are now more proficient with an Axe")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 641561514) then -- Rapier
+    AddSkill(Player, 641561514,1,level)
+    SendMessage(Player, "You are now more proficient with a Rapier")
+end
+if not HasSkill(Player, 1696217328) then -- Sword
+    AddSkill(Player, 1696217328,1,level)
+    SendMessage(Player, "You are now more proficient with a Sword")
+end
+--REMOVE SKILLS
+-- Remove Fighter for Scout
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Advance Scout
+
+if HasSkill(Spawn, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Spawn, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest for Scout
+if HasSkill(Player, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Player, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    RemoveSkill(Player, 3343700951)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage for Scout
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 1616998748) then -- Spear
+    RemoveSkill(Player, 1616998748)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if HasSkill(Player, 540022425) then -- Parry
+    RemoveSkill(Player, 540022425)
+end
+if HasSkill(Player, 1553857724) then -- Investigation
+    RemoveSkill(Player, 1553857724)
+end
+if HasSkill(Player, 3429135390) then -- Mystical Destruction
+    RemoveSkill(Player, 3429135390)
+end
+if HasSkill(Player, 366253016) then --Ministration
+    RemoveSkill(Player, 366253016)
+end
+if HasSkill(Player, 613995491) then -- Disruption
+    RemoveSkill(Player, 613995491)
+end
+if HasSkill(Player, 882983852) then -- Subjigation
+    RemoveSkill(Player, 882983852)
+end
+if HasSkill(Player, 3587918036) then -- Ordination
+    RemoveSkill(Player, 3587918036)
+end
+    SendMessage(Player, "Congratulations! You are a Rogue.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Rogue.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001101) then
+    RemoveItem(Player,1001101,1)
+    end
+end

+ 25 - 0
server/ItemScripts/SacredSustenanceFood.lua

@@ -0,0 +1,25 @@
+--[[
+    Script Name    : ItemScripts/SacredSustenanceFood.lua
+    Script Author  : dorbin
+    Script Date    : 2024.03.22 11:03:12
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Increases Out-of-Combat Health Regeneration of target by 2.0
+* This effect suspends during combat
+
+End Item Effects--]]
+
+function cast(Item, Player)
+	Spell = GetSpell(5462)
+	Regenz = 3.0
+	newDuration = 18000
+	SetSpellData(Spell, "duration1", newDuration)
+	SetSpellData(Spell, "duration2", newDuration)
+	SetSpellDataIndex(Spell, 0, Regenz)
+	SetSpellDisplayEffect(Spell, 0, "description", "Increases Out-of-Combat Health Regeneration of target by " .. Regenz)
+	CastCustomSpell(Spell, Player, Player)
+end

+ 24 - 0
server/ItemScripts/SacredSustenanceWater.lua

@@ -0,0 +1,24 @@
+--[[
+    Script Name    : ItemScripts/SacredSustenanceWater.lua
+    Script Author  : dorbin
+    Script Date    : 2024.03.22 11:03:54
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Increases Out-of-Combat Power Regeneration of target by 3.0
+
+End Item Effects--]]
+
+function cast(Item, Player)
+	Spell = GetSpell(5463)
+	Regenz = 3.0
+	newDuration = 18000
+	SetSpellData(Spell, "duration1", newDuration)
+	SetSpellData(Spell, "duration2", newDuration)
+	SetSpellDataIndex(Spell, 0, Regenz)
+	SetSpellDisplayEffect(Spell, 0, "description", "Increases Out-of-Combat Power Regeneration of target by " .. Regenz)
+	CastCustomSpell(Spell, Player, Player)
+end

+ 284 - 0
server/ItemScripts/ShamanCertificationPapers.lua

@@ -0,0 +1,284 @@
+--[[
+    Script Name    : ItemScripts/ShamanCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.15 03:06:11
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5850
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==11 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Shaman\" if you signed it and are a Commoner or Priest.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Shaman.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Shaman","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Shaman as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Shaman.")
+ 	if GetClass(Player)== 11 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,18)   
+   local level = GetLevel(Player)*5
+
+
+--WEAPON SKILLS
+if not HasSkill(Player, 2463145248) then -- Inspirations
+    AddSkill(Player, 2463145248,1,level)
+    SendMessage(Player, "You have learned the Inspirations skill")
+end
+if not HasSkill(Player, 3343700951) then -- Talismans/Shaman
+    AddSkill(Player, 3343700951,1,level)
+    SendMessage(Player, "You have learned the Talismans skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+--CASTING SKILLS
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+if not HasSkill(Player, 4037812502) then -- Buckler
+    AddSkill(Player, 4037812502,1,level)
+    SendMessage(Player, "You are now more proficient with a Buckler")
+end
+if not HasSkill(Player, 770311065) then -- Mace
+    AddSkill(Player, 770311065,1,level)
+    SendMessage(Player, "You are now more proficient with a Mace")
+end
+if not HasSkill(Player, 1616998748) then -- Spear
+    AddSkill(Player, 1616998748,1,level)
+    SendMessage(Player, "You are now more proficient with a Spear")
+end
+if not HasSkill(Player, 554333641) then -- Hammer
+    AddSkill(Player, 554333641,1,level)
+    SendMessage(Player, "You are now more proficient with a Hammer")
+end
+if not HasSkill(Player, 1653482350) then -- Great Hammer
+    AddSkill(Player, 1653482350,1,level)
+    SendMessage(Player, "You are now more proficient with a Great Hammer")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+   SendMessage(Player, "You are now more proficient with a Staff")
+end
+--REMOVE SKILLS
+-- Remove Fighter
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Remove Scout
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Remove Mage
+if HasSkill(Player, 3820670534) then -- Evocations/Mage
+    RemoveSkill(Player, 3820670534)
+end
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 3173504370) then -- Round Shield
+    RemoveSkill(Player, 3173504370)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if  HasSkill(Player, 545043066) then -- Symbol
+    RemoveSkill(Player, 545043066)
+end
+
+
+    SendMessage(Player, "Congratulations! You are a Shaman.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Shaman.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001103) then
+    RemoveItem(Player,1001103,1)
+    end
+end

+ 25 - 0
server/ItemScripts/SharkFinSouffle.lua

@@ -0,0 +1,25 @@
+--[[
+    Script Name    : ItemScripts/SharkFinSouffle.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2023.10.27 03:10:44
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Increases Out-of-Combat Health Regeneration of target by 10.0
+* This effect suspends during combat
+
+End Item Effects--]]
+
+function cast(Item, Player)
+	Spell = GetSpell(5462)
+	Regenz = 10.0
+	newDuration = 18000
+	SetSpellData(Spell, "duration1", newDuration)
+	SetSpellData(Spell, "duration2", newDuration)
+	SetSpellDataIndex(Spell, 0, Regenz)
+	SetSpellDisplayEffect(Spell, 0, "description", "Increases Out-of-Combat Health Regeneration of target by " .. Regenz)
+	CastCustomSpell(Spell, Player, Player)
+end

+ 280 - 0
server/ItemScripts/SorcererCertificationPapers.lua

@@ -0,0 +1,280 @@
+--[[
+    Script Name    : ItemScripts/SorcererCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.15 04:06:58
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5853
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==21 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Sorcerer\" if you signed it and are a Commoner or Priest.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Sorcerer.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Sorcerer","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Sorcerer as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Sorcerer.")
+ 	if GetClass(Player)== 21 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,22)   
+   local level = GetLevel(Player)*5
+
+
+--WEAPON SKILLS
+if not HasSkill(Player, 3820670534) then -- Evocations/Mage
+    AddSkill(Player, 3820670534,1,level)
+    SendMessage(Player, "You have learned the Evocations skill")
+end
+if not HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    AddSkill(Player, 2533124061,1,level)
+    SendMessage(Player, "You have learned the Sorcery skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+--CASTING SKILLS
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+if not HasSkill(Player, 545043066) then -- Symbol
+    AddSkill(Player, 545043066,1,level)
+    SendMessage(Player, "You are now more proficient with a Symbol")
+end
+if not HasSkill(Player, 887279616) then -- Dagger
+    AddSkill(Player, 887279616,1,level)
+    SendMessage(Player, "You are now more proficient with a Dagger")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+   SendMessage(Player, "You are now more proficient with a Staff")
+end
+
+--REMOVE SKILLS
+-- Remove Fighter
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Advance Scout
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest
+if HasSkill(Spawn, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Spawn, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage
+
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    RemoveSkill(Player, 2120065377)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 770311065) then -- Mace
+    RemoveSkill(Player, 770311065)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 1696217328) then -- Sword
+    RemoveSkill(Player, 1696217328)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 3173504370) then -- Round Shield
+    RemoveSkill(Player, 3173504370)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if HasSkill(Player, 4037812502) then -- Buckler
+    RemoveSkill(Player, 4037812502)
+end
+
+    SendMessage(Player, "Congratulations! You are a Sorcerer.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Sorcerer.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001106) then
+    RemoveItem(Player,1001106,1)
+    end
+end
+

+ 1 - 1
server/ItemScripts/StarcrestCommunecitizenshiptask.lua

@@ -47,6 +47,6 @@ if not HasQuest(Player,5722) and not HasCompletedQuest(Player,5722)then
    OfferQuest(nil,Player,5722)
 end
 conversation = CreateConversation()
-AddConversationOption(conversation, "[put the note]","CloseItemConversation")
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
 StartDialogConversation(conversation, 2, Item, Player, "After you complete your task, report to Marshal Glorfel using the citizenship sign.")
 end

+ 52 - 0
server/ItemScripts/StonestairBywaycitizenshiptask.lua

@@ -0,0 +1,52 @@
+--[[
+    Script Name    : ItemScripts/StonestairBywaycitizenshiptask.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 03:06:36
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog2")
+StartDialogConversation(conversation, 2, Item, Player, "By order of the Overlord, all residents wishing to become citizens of the city must complete a trial to prove themselves.")
+
+end
+
+
+function Dialog2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read about where tokens are found]","Dialog3")
+StartDialogConversation(conversation, 2, Item, Player, "Tokens are scattered throughout the surrounding area. You must find five of these tokens to earn the right to speak to a city official.")
+end
+
+
+function Dialog3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog4")
+
+StartDialogConversation(conversation, 2, Item, Player, "Each district has been assigned an area in which to hunt for their tokens. Only tokens from within that area will be accepted.")
+end
+
+function Dialog4(Item, Player)
+conversation = CreateConversation()
+if GetLevel(Player)<6 then
+ AddConversationOption(conversation, "[I need more experience to pursue Citizenship]","CloseItemConversation")
+elseif not HasQuest(Player,5870) and not HasCompletedQuest(Player,5870)then
+AddConversationOption(conversation, "[write this in your quest journal]","StartQuest")
+end
+if HasQuest(Player,5870) or  HasCompletedQuest(Player,5870) then
+AddConversationOption(conversation, "[continue]","StartQuest")
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Stonestair Byway residents must gather five tokens from the Graveyard.")
+end
+
+function StartQuest(Item,Player)
+conversation = CreateConversation()
+if not HasQuest(Player,5870) and not HasCompletedQuest(Player,5870)then
+   OfferQuest(nil,Player,5870)
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Use the citizenship sign to report to Abbetor T'avi once you complete your task.")
+end

+ 279 - 0
server/ItemScripts/SummonerCertificationPapers.lua

@@ -0,0 +1,279 @@
+--[[
+    Script Name    : ItemScripts/SummonerCertificationPapers.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.15 04:06:09
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5854
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+
+    if GetClass(Player)==0 or GetClass(Player)==21 then
+    AddConversationOption(conversation, "[Glance over the forms]","Intro")
+    end
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This certificate would make you a \"Summoner\" if you signed it and are a Commoner or Priest.\n\nTHIS ACTION IS FINAL!\n\nRead further if you wish to become a Summoner.")
+end
+
+function Intro(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, ""..GetName(Player).." the Summoner","Class")
+    AddConversationOption(conversation, "[Put the certificate away]","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "-- OFFICIAL DOCUMENT --\n\n I, "..GetName(Player)..", am a Summoner as proof by trainer [illegible scribbles].\n\nSigned,")
+end
+
+
+function Class(Item, Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "[Turn in these papers for gear]","QuestStart")
+    end
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "You are now known as \n\n"..GetName(Player).." the Summoner.")
+ 	if GetClass(Player)== 21 or GetClass(Player)== 0 then
+    SetAdventureClass(Player,28)   
+   local level = GetLevel(Player)*5
+
+
+--WEAPON SKILLS
+if not HasSkill(Player, 3820670534) then -- Evocations/Mage
+    AddSkill(Player, 3820670534,1,level)
+    SendMessage(Player, "You have learned the Evocations skill")
+end
+if not HasSkill(Player, 2120065377) then -- Legerdemain/Summoner
+    AddSkill(Player, 2120065377,1,level)
+    SendMessage(Player, "You have learned the Legerdemain skill")
+end
+if not HasSkill(Player, 3421494576) then -- Crushing
+    AddSkill(Player, 3421494576,1,level)
+    SendMessage(Player, "You have learned the Crushing skill")
+end
+if not HasSkill(Player, 3048574950) then -- Piercing
+    AddSkill(Player, 3048574950,1,level)
+    SendMessage(Player,  "You have learned the Piercing skill")
+end
+--CASTING SKILLS
+if not HasSkill(Player, 613995491) then -- Disruption
+    AddSkill(Player, 613995491,1,level)
+    SendMessage(Player, "You have learned the Disruption skill")
+end
+if not HasSkill(Player, 366253016) then -- Ministration
+    AddSkill(Player, 366253016,1,level)
+    SendMessage(Player, "You have learned the Ministration skill")
+end
+if not HasSkill(Player, 3587918036) then -- Ordination
+    AddSkill(Player, 3587918036,1,level)
+    SendMessage(Player, "You have learned the Ordination skill")
+end
+if not HasSkill(Player, 882983852) then -- Subjugation
+    AddSkill(Player, 882983852,1,level)
+    SendMessage(Player, "You have learned the Subjugation skill")
+end
+if not HasSkill(Player, 2638198038) then -- Focus
+    AddSkill(Player, 2638198038,1,level)
+    SendMessage(Player, "You have learned the Focus skill")
+end
+
+--WEAPON SKILLS
+if not HasSkill(Player, 545043066) then -- Symbol
+    AddSkill(Player, 545043066,1,level)
+    SendMessage(Player, "You are now more proficient with a Symbol")
+end
+if not HasSkill(Player, 887279616) then -- Dagger
+    AddSkill(Player, 887279616,1,level)
+    SendMessage(Player, "You are now more proficient with a Dagger")
+end
+if not HasSkill(Player, 3180399725) then -- Staff(2h)
+    AddSkill(Player, 3180399725,1,level)
+   SendMessage(Player, "You are now more proficient with a Staff")
+end
+
+--REMOVE SKILLS
+-- Remove Fighter
+if HasSkill(Player, 1408356869) then -- Martial/Fighter
+    RemoveSkill(Player, 1408356869)
+end
+if HasSkill(Player, 1124719197) then -- Tactics/Warrior
+    RemoveSkill(Player, 1124719197)
+end
+if HasSkill(Player, 433335062) then -- Berserk/Berserker
+    RemoveSkill(Player, 433335062)
+end
+if HasSkill(Player, 1209716810) then -- Protection/Guardian
+    RemoveSkill(Player, 1209716810)
+end
+if HasSkill(Player, 3856706740) then -- Brawl/Brawling
+    RemoveSkill(Player, 3856706740)
+end
+if HasSkill(Player, 2011726342) then -- Tranquility/Monk
+    RemoveSkill(Player, 2011726342)
+end
+if HasSkill(Player, 3067436248) then -- Physicality/Bruiser
+    RemoveSkill(Player, 3067436248)
+end
+if HasSkill(Player, 3809066846) then -- Faith/Crusader
+    RemoveSkill(Player, 3809066846)
+end
+if HasSkill(Player, 90523872) then -- Determined Faith/Paladin
+    RemoveSkill(Player, 90523872)
+end
+if HasSkill(Player, 2741805322) then -- Determined Zeal/Shadowknight
+    RemoveSkill(Player, 2741805322)
+end
+
+--Removed Advance Scout
+if HasSkill(Player, 1921433074) then -- Reconnaissance/Scout
+    RemoveSkill(Player, 1921433074)
+end
+if HasSkill(Player, 1311635100) then -- Melodies/Bard
+    RemoveSkill(Player, 1311635100)
+end
+if HasSkill(Player, 296246391) then -- Ballads/Troubador
+    RemoveSkill(Player, 296246391)
+end
+if HasSkill(Player, 340921594) then -- Dirges/Dirge
+    RemoveSkill(Player, 340921594)
+end
+if HasSkill(Player, 1514256692) then -- Skulldugery/Rogue
+    RemoveSkill(Player, 1514256692)
+end
+if HasSkill(Player, 3167106577) then -- Stalking/Predator
+    RemoveSkill(Player, 3167106577)
+end
+if HasSkill(Player, 2663054519) then -- Swashbuckling/Swashbuckler
+    RemoveSkill(Player, 2663054519)
+end
+if HasSkill(Player, 1519965519) then -- Banditry/Brigand
+    RemoveSkill(Player, 1519965519)
+end
+if HasSkill(Player, 1400160844) then -- Archery/Ranger
+    RemoveSkill(Player, 1400160844)
+end
+if HasSkill(Player, 2711101135) then -- Assassination/Assassin
+    RemoveSkill(Player, 2711101135)
+end
+
+--Removed Priest
+if HasSkill(Spawn, 2463145248) then -- Inspirations/Priest
+    RemoveSkill(Spawn, 2463145248)
+end
+if HasSkill(Player, 3341842907) then -- Theurgy/Cleric
+    RemoveSkill(Player, 3341842907)
+end
+if HasSkill(Player, 2581053277) then -- Regimens/Templar
+    RemoveSkill(Player, 2581053277)
+end
+if HasSkill(Player, 1829443087) then -- Inquisitions/Inquisitor
+    RemoveSkill(Player, 1829443087)
+end
+if HasSkill(Player, 3282420779) then -- Archegenesis/Druid
+    RemoveSkill(Player, 3282420779)
+end
+if HasSkill(Player, 1624274802) then -- Nature's Reckoning/Fury
+    RemoveSkill(Player, 1624274802)
+end
+if HasSkill(Player, 1040683335) then -- Nature's Refuge/Warden
+    RemoveSkill(Player, 1040683335)
+end
+if HasSkill(Player, 3467160477) then -- Fetichisms/Mystic
+    RemoveSkill(Player, 3467160477)
+end
+if HasSkill(Player, 3191839982) then -- Vehemence/Defiler
+    RemoveSkill(Player, 3191839982)
+end
+
+--Removed Mage
+
+if HasSkill(Player, 287643040) then -- Enchantments/Enchanter
+    RemoveSkill(Player, 287643040)
+end
+if HasSkill(Player, 2898101972) then -- Hallucinations/Illusionist
+    RemoveSkill(Player, 2898101972)
+end
+if HasSkill(Player, 2950599749) then -- Protean/Coecerer
+    RemoveSkill(Player, 2950599749)
+end
+if HasSkill(Player, 2533124061) then -- Sorcery/Sorcerer
+    RemoveSkill(Player, 2533124061)
+end
+if HasSkill(Player, 2662430630) then -- Elemental Mastery/Wizard
+    RemoveSkill(Player, 2662430630)
+end
+if HasSkill(Player, 193411854) then -- Noctivagance/Warlock
+    RemoveSkill(Player, 193411854)
+end
+if HasSkill(Player, 2042842194) then -- Conjurations/Conjurer
+    RemoveSkill(Player, 2042842194)
+end
+if HasSkill(Player, 289471519) then -- Sepulchers/Necromancer
+    RemoveSkill(Player, 289471519)
+end
+
+--REMOVE WEAPON
+if HasSkill(Player, 2246237129) then -- Medium Armor
+    RemoveSkill(Player, 2246237129)
+end
+if HasSkill(Player, 241174330) then -- Heavy Armor
+    RemoveSkill(Player, 241174330)
+end
+if HasSkill(Player, 770311065) then -- Mace
+    RemoveSkill(Player, 770311065)
+end
+if HasSkill(Player, 3177806075) then -- Fists
+    RemoveSkill(Player, 3177806075)
+end
+if HasSkill(Player, 1696217328) then -- Sword
+    RemoveSkill(Player, 1696217328)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2292577688) then -- Great Sword
+    RemoveSkill(Player, 2292577688)
+end
+if HasSkill(Player, 2954459351) then -- Great Axe
+    RemoveSkill(Player, 2954459351)
+end
+if HasSkill(Player, 1653482350) then -- Great Spear
+    RemoveSkill(Player, 1653482350)
+end
+if HasSkill(Player, 3173504370) then -- Round Shield
+    RemoveSkill(Player, 3173504370)
+end
+if HasSkill(Player, 2608320658) then -- Kite Shield
+    RemoveSkill(Player, 2608320658)
+end
+if HasSkill(Player, 570458645) then -- Tower Shield
+    RemoveSkill(Player, 570458645)
+end
+if HasSkill(Player, 4037812502) then -- Buckler
+    RemoveSkill(Player, 4037812502)
+end
+
+    SendMessage(Player, "Congratulations! You are a Summoner.","yellow")
+    SendPopUpMessage(Player, "Congratulations! You are a Summoner.",250,250,200)
+    ApplySpellVisual(Player, 324)
+    PlaySound(Player, "sounds/test/endquest.wav", GetX(Player), GetY(Player), GetZ(Player), Player)
+    SetPlayerLevel(Player,10)
+end
+end
+
+function QuestStart(Item,Player)
+    OfferQuest(nil,Player,Quest)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Put the signed certificate away]","TaskDone")
+    StartDialogConversation(conversation, 2, Item, Player, "The Shady Swashbuckler might have some gear I can use...")    
+end
+
+function TaskDone(Item,Player)
+CloseItemConversation(Item,Player)
+if HasItem(Player,1001107) then
+    RemoveItem(Player,1001107,1)
+    end
+end

+ 52 - 0
server/ItemScripts/TempleStreetcitizenshiptask.lua

@@ -0,0 +1,52 @@
+--[[
+    Script Name    : ItemScripts/TempleStreetcitizenshiptask.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 03:06:01
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog2")
+StartDialogConversation(conversation, 2, Item, Player, "By order of the Overlord, all residents wishing to become citizens of the city must complete a trial to prove themselves.")
+
+end
+
+
+function Dialog2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read about where tokens are found]","Dialog3")
+StartDialogConversation(conversation, 2, Item, Player, "Tokens are scattered throughout the surrounding area. You must find five of these tokens to earn the right to speak to a city official.")
+end
+
+
+function Dialog3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog4")
+
+StartDialogConversation(conversation, 2, Item, Player, "Each district has been assigned an area in which to hunt for their tokens. Only tokens from within that area will be accepted.")
+end
+
+function Dialog4(Item, Player)
+conversation = CreateConversation()
+if GetLevel(Player)<6 then
+ AddConversationOption(conversation, "[I need more experience to pursue Citizenship]","CloseItemConversation")
+elseif not HasQuest(Player,5871) and not HasCompletedQuest(Player,5871)then
+AddConversationOption(conversation, "[write this in your quest journal]","StartQuest")
+end
+if HasQuest(Player,5871) or  HasCompletedQuest(Player,5871) then
+AddConversationOption(conversation, "[continue]","StartQuest")
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Temple Street residents must gather five tokens from the Thieves' Way.")
+end
+
+function StartQuest(Item,Player)
+conversation = CreateConversation()
+if not HasQuest(Player,5871) and not HasCompletedQuest(Player,5871)then
+   OfferQuest(nil,Player,5871)
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Use the citizenship sign to report to Abbetor T'avi once you complete your task.")
+end

+ 22 - 0
server/ItemScripts/The5YearFirework.lua

@@ -0,0 +1,22 @@
+--[[
+    Script Name    : ItemScripts/The5YearFirework.lua
+    Script Author  : Premierio015
+    Script Date    : 2023.12.09 10:12:59
+    Script Purpose : 
+                   : 
+--]]
+
+--[[ Begin Item Effects
+
+* Applies 5-Year Firework when Activated.  Lasts for 3.0 seconds.
+	* Launches a firework when used.
+
+End Item Effects--]]
+
+function examined(Item, Player)
+
+end
+
+function used(Item, Player)
+CastSpell(Player, 5289, 1)
+end

+ 1 - 1
server/ItemScripts/TheBaubbleshirecitizenshiptask.lua

@@ -43,7 +43,7 @@ end
 
 function StartQuest(Item,Player)
 conversation = CreateConversation()
-AddConversationOption(conversation, "[put the note]","CloseItemConversation")
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
 if not HasQuest(Player,5718) and not HasCompletedQuest(Player,5718)then
    OfferQuest(nil,Player,5718)
 end

+ 121 - 0
server/ItemScripts/TheFreeportCitizensGuidetoOpportunity.lua

@@ -0,0 +1,121 @@
+--[[
+    Script Name    : ItemScripts/TheFreeportCitizensGuidetoOpportunity.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 02:06:12
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Now that you are a citizen of Freeport, you will want to do your part to bring glory to the Overlord. There are many ways to gain prestige and earn coin. As you grow and learn, your efforts will reflect on our city. Journey through Norrath and know that your efforts will inspire our foes to reconsider their allegiance. Might is not only demonstrated by the sword, but by knowing what can be used to our benefit.")
+end
+
+function Page1(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Collections\n\nOn your journeys you may encounter items which are part of a larger series. You can collect these items as you travel, inspecting them to determine whether they are worthy of retention. You will find this hobby quite rewarding as you learn to identify different animals and their parts.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page3")
+AddConversationOption(conversation, "Previous Page","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Once you have completed a collection, you should present them to Renny Parvat in East Freeport. He will offer rewards for your completed collections. And should you complete an entire series of collectable items, you may receive something special for your home as well. Go, then, and investigate the wilds to find the rewards beneath your feet.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page4")
+AddConversationOption(conversation, "Previous Page","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Exploration\n\nFreeport's history is filled with the greatest explorers of all times. Now that you belong to the Overlord, your finds will add to his glory throughout Norrath. You may have already identified key features throughout the city, such as the Fountain of the Fallen Soldier in the Scale Yard. You are strongly urged to take this moment to look upon the ExecutionPlaza in West Freeport. Go, now.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page5")
+AddConversationOption(conversation, "Previous Page","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "As you explore lands new to you, remember that you represent Freeport and the Overlord. He will not be well-served if you are unable to put the glory of our city before your own insignificant life. Therefore, go without fear through the lands. Should you see something interesting, investigate it more closely that you may learn more about it for your sake.")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page6")
+AddConversationOption(conversation, "Previous Page","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Literature\n\nThe Overlord is proud of the high literacy rate among Freeport's citizens and he strongly encourages those who do not read to learn immediately. To this end, he has graciously allowed Sage Navarius Orvalis to set up shop in North Freeport, even though many of the tomes he sells are incomplete. Despite their lack of pages, Sage Orvalis's tomes are fascinating.")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page7")
+AddConversationOption(conversation, "Previous Page","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "By purchasing a tome such as \"Bird Watching: The Do's and Don'ts of Nektulos Forest,\" you will explore Norrath and gain new insight into its creatures, history and the folk who inhabit our world.\n\nYou can also gain new skills by completing any of the Mastery tomes available.\n\nIndeed, you are very strongly urged by the Overlord to take advantage of the Sage's stock and to also read any tomes you find while in the wilds.")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page8")
+AddConversationOption(conversation, "Previous Page","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Lost and Found\n\nAn active mind is an active soldier for Freeport. While you are going about your work for the glory of the Overlord, you must always carefully observe your surroundings. Is anything out of place? Is there an unusual object jutting up through the ground? Investigate these things, for they may provide clues to activities with which you will want to concern yourself.")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page9")
+AddConversationOption(conversation, "Previous Page","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Many unusual items you will find in your travels hold the keys to mysteries in which the Overlord is interested. It would behoove you to find these items and complete any task necessary to determine their exact nature. This way, if the Overlord should summon you into his Presence Chamber, you will be able to explain exactly what you know and how you came to learn these things.")
+end
+
+function Page9(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page10")
+AddConversationOption(conversation, "Previous Page","Page8")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Adventure\n\nOne of the hallmarks of a citizen of Freeport is his willingness to take on tasks to further the reputation of the Overlord. Freeport has long been a center of commerce throughout Norrath. Look to assist the Far Seas Trading Company's taskmasters where you find them. Strengthening our ties to commerce strengthens our economy as a whole.")
+end
+
+function Page10(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Next Page","Page11")
+AddConversationOption(conversation, "Previous Page","Page9")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Now that you are a citizen of Freeport, you will want to do your part to bring glory to the Overlord. There are many ways to gain prestige and earn coin. As you grow and learn, your efforts will reflect on our city. Journey through Norrath and know that your efforts will inspire our foes to reconsider their allegiance.\n\nMight is not only demonstrated by the sword, but by knowing what can be used to our benefit.")
+end
+
+function Page11(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Final Page","Page12")
+AddConversationOption(conversation, "Previous Page","Page10")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Heritage\n\nThroughout Norrath's history, there are certain items which seem to offer their owners greater protections or abilities. The Overlord is interested in these items and therefore, so must you be. Use your keen observation skills to identify those items, such as the greater lightstones.\n\nLearn how to obtain these things and you will please the Overlord.")
+end
+
+function Page12(Item, Player)
+if CanReceiveQuest(Player,5865) then
+    OfferQuest(Item,Player,5865)
+elseif GetQuestStep(Player,5865) ==8 then    
+AddConversationOption(conversation, "Final Page","Page13")
+end
+endconversation = CreateConversation()
+AddConversationOption(conversation, "Previous Page","Page10")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Making Yourself Useful\n\nThe Overlord requires that all citizens be of some use to the city by advancing their training in their current adventuring profession. We will not have deadbeats and mendicants within the walls of Freeport.\n\nFighters report to Commandant Tychus in the Temple of War.\n\nPriests report to Priest Kelian, also within the Temple of War.\n\nMages are to speak with Arcanist Sonius within the Academy of Arcane Sciences.\n\nScouts are to seek out Emissary Millia, she can be found operating out of the Jade Tiger Inn.\n\nThese locations are all found within the North Freeport section of the city. The prosperity of Freeport will be achieved through blood and sweat! -- Grand Duke Hazran")
+end
+
+function Page13(Item, Player)
+SetStepComplete(Player,5865,8)    
+conversation = CreateConversation()
+AddConversationOption(conversation, "Previous Page","Page10")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "This book is only a guide to what you will be expected to look for and achieve on the Overlord's behalf. Do not waste your time by lazing about. The Age of Destiny is upon us and only those who act quickly will reap the benefits that the world offers.")
+end

+ 111 - 0
server/ItemScripts/TheHistoryofFrogloks.lua

@@ -0,0 +1,111 @@
+--[[
+    Script Name    : ItemScripts/TheHistoryofFrogloks.lua
+    Script Author  : neatz09
+    Script Date    : 2023.11.23 04:11:44
+    Script Purpose : Handles the study guide for the froglok quiz with euurp
+                   : 
+--]]
+
+function examined(Item, Player)
+    conversation = CreateConversation()
+        AddConversationOption(conversation, "Read on", "Page2")
+        AddConversationOption(conversation, "Close", "CloseItemConversation")
+        StartDialogConversation(conversation, 2, Item, Player, "We are the children of Mithaniel Marr, god of valor. He has given unto us a greater share of honor than was given to any other creature. We would rather die with honor than extend our lives through deception of any kind.")
+    end
+
+function Page2(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page3")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This can be challenging for others--the concept that laws are not meant for the breaking. While we try to be understanding that not everyone shares our belief, it is still distressing to see rules bent and broken. The laws of the land are not simply suggestions, as some seem to think.")
+end
+
+function Page3(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page4")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Such is the way of the troll. After many attempts to peacefully coexist with them in the Innothule Swamp, their utter disregard for protocol finally provoked us to battle. The blessing of Mithaniel Marr was with us as we drove them from their filthy city of Grobb. In His honor, we renamed it Gukta, Outpost of Marr.")
+end
+
+function Page4(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page5")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Some may wonder why we contented ourselves with a simple home like Gukta, when our obvious intelligence indicates we might prefer plush surroundings. That is not our way, you see. It seems those whose skin is laced with hair need warmth and softness in their surroundings. We are comforted in other ways.")
+end
+
+function Page5(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page6")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Others have said that we frogloks are too proud and that we deserve the challenges that have been our lot through the Ages. We do not deny the pride we feel in our heritage. We were created by Mithaniel Marr, after all. Through his grace, we have overcome many adversities that would have brought others to the brink of despair.")
+end
+
+function Page6(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page7")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "When the ogres of Rallos Zek began their reign of terror, they tried to start with Gukta. They thought they knew all the deepest reaches of our territory, thinking that we had not changed or developed it after wresting the city from the trolls. The ogres fought without honor, to their own detriment.")
+end
+
+function Page7(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page8")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "We are not taken unawares with ease. The foul ogres thought to destroy us, but we were guided by the Hand of Marr. Our eggs were carried deep into the tunnels, followed by elite forces to guard them. Deep beneath the marshes we went. We sent emissaries to Freeport to advise the Overlord of the rise of the Rallosians.")
+end
+
+function Page8(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page9")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The Overlord brushed our concerns aside and so, with barely three days' rest, our emissaries headed to Qeynos to warn the Bayles. Though sympathetic, they chose only to increase their watches rather than advancing to attack before the Rallosians expanded their reach. How we wished they had listened! The Rallosian Army grew in strength and power until the cities of Freeport and Qeynos were besieged.")
+end
+
+function Page9(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page10")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The blessings of Mithaniel Marr still protected the faithful. The honorless ogres broke faith with their own allies, defiling the Temple of Cazic-Thule. And so, in the darkest hours when it appeared that the Rallosians would conquer all, the Green Mist covered the battlefields, slaying our enemies. However, not all our enemies were destroyed.")
+end
+
+function Page10(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page11")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Though many of our adversaries perished in the time of the Green Mist, some escaped by continuing to pursue us. Deeper into the marshes we fled, and still they followed. It was then that we felt the rage of the gods.")
+end
+
+function Page11(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page12")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "By failing to stand our ground and hold back the tide of the enemy, we disappointed the gods who had held us high in their trust and esteem. Punishment was both swift and severe.")
+end
+
+function Page12(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page13")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Though we had escaped the Rallosians, we could not escape the torments to follow. The Rending kept those of us who had scattered apart. Separated from any other honorable race, we drifted into oblivion.")
+end
+
+function Page13(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page14")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "And yet, oblivion would have been more kind than that which we endured. For those of us who found our way to the Feerrott were taken prisoner by the Tae'Ew, who fed us to their god.")
+end
+
+function Page14(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Read on", "Page15")
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Generation upon generation of froglok has been subjugated by the Alliz Tae'Ew. They demanded service and, weakened by the calamities that had befallen us, we were in no position to rebel. Until now.")
+end
+
+function Page15(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Close", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "In secret, several of our strongest broke free and are repeating the journey made so long ago when we first sent word to Freeport and Qeynos that the Rallosians were on the move. Surely we have atoned for our offenses against the gods and will be saved.")
+end

+ 1 - 1
server/ItemScripts/TheJournaloftheSunWolf.lua

@@ -56,7 +56,7 @@ end
 
 function Page6(Item, Player)
 conversation = CreateConversation()
-if not HasQuest(Spawn,SunWolf) and not HasCompletedQuest(Spawn,Sunwolf)then
+if not HasQuest(Player,SunWolf) and not HasCompletedQuest(Player,Sunwolf)then
 AddConversationOption(conversation, "Attempt to determine the path of the Sun Wolf.","QuestStart")
 end
 AddConversationOption(conversation, "Turn back to previous entry.","Page5")

+ 32 - 0
server/ItemScripts/TheLegendaryDwarvenWorkBoots.lua

@@ -0,0 +1,32 @@
+--[[
+    Script Name    : ItemScripts/TheLegendaryDwarvenWorkBoots.lua
+    Script Author  : Premierio015
+    Script Date    : 2023.04.22 07:04:52
+    Script Purpose : 
+                   : 
+--]]
+
+
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Remove stone from the mounting)", "removemount")
+AddConversationOption(conversation, "Leave the stone alone", "CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Dwarven Work Boots. Given to me by Hwal Ruksif after performing many work tasts for him... including having a new pair of boots made for him!")
+end
+
+function removemount(Item, Player)
+if HasItem(Player,  66088) then
+RemoveItem(Player,  66088) 
+SummonItem(Player , 146379)
+elseif HasItem(Player, 66089) then
+    RemoveItem(Player, 66089) 
+    SummonItem(Player,  146378)
+elseif HasItem(Player, 66091) then
+    RemoveItem(Player, 66091) 
+    SummonItem(Player,  146381)
+elseif HasItem(Player, 66090) then
+    RemoveItem(Player, 66090) 
+    SummonItem(Player,    146380)
+   end
+end

+ 176 - 0
server/ItemScripts/TheRatQueenofVerminsSnye.lua

@@ -0,0 +1,176 @@
+--[[
+    Script Name    : ItemScripts/TheRatQueenofVerminsSnye.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.18 03:09:18
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5886
+
+function examined(Item, Player)
+Intro(Item,Player)
+end
+
+function Intro(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry Two","Page2")
+    if HasQuest(Player,Quest) then
+    AddConversationOption(conversation, "Turn to last page","PageCheck")
+    end
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "\"My Life,\" by Ayamia the Unfortunate, together with \"An Examination of the Rat Queen,\" by the Scholars' Institute for Change, a non-profit organization. Quotations are liberally taken from Ayamia's own volume, interspersed with logical explanations where necessary.")
+end
+
+function PageCheck(Item,Player)
+    if GetQuestStep(Player,Quest) ==1 or GetQuestStep(Player,Quest) ==2 then
+    Page1(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==3 or GetQuestStep(Player,Quest) == 4 then
+    Page2(Item, Player)
+    elseif GetQuestStep(Player,Quest) == 5 or GetQuestStep(Player,Quest) ==6 then       
+    Page3(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==7 or GetQuestStep(Player,Quest) ==8 then       
+    Page4(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==9 or GetQuestStep(Player,Quest) ==10 then
+    Page5(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==11 or GetQuestStep(Player,Quest) ==12 then
+    Page6(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==13 or GetQuestStep(Player,Quest) ==14 then
+    Page7(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==15 or GetQuestStep(Player,Quest) ==16 then
+    Page8(Item, Player)
+    elseif GetQuestStep(Player,Quest) ==17 or GetQuestStep(Player,Quest) ==18 then
+    Page9(Item, Player)
+    end
+end
+
+function Page1(Item, Player)
+    conversation = CreateConversation()
+   if CanReceiveQuest(Player,Quest) then
+    AddConversationOption(conversation, "Start looking for the missing pages","QuestStart")
+    elseif GetQuestStep(Player,Quest) >=2 then 
+    AddConversationOption(conversation, "Entry Two","Page2")
+end
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter One -- How I Came to Live in the Vermin's Snye.\" I've heard what some people say about me, and let me tell you straight away that it is not true. My husband abandoned me and I had no choice to but to find a place to live with my children. Our landlord, wretched human scum, turned us onto the streets! I am not as young as I once was, but I am resourceful. By living below, my children and I would be out of the elements. We could find a cozy place to call our own.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+end
+if GetQuestStep(Player,Quest) >=4 then
+AddConversationOption(conversation, "Entry Three","Page3")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter One.\" Clearly, the subject is in denial of her current status. Her husband is recorded as \"Lord Selien\" so obviously, the subject was a woman who lived in comfort. Her reference to being turned out of her home is correct, but only to the extent that her increasing madness led her to bring to her husband's home all manner of vile creatures, referring to them as her \"children.\" Upon her husband's death in battle, his family shunned the subject, which further isolated her, causing her to seek shelter elsewhere.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+end
+if GetQuestStep(Player,Quest) >=6 then
+AddConversationOption(conversation, "Entry Four","Page4")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Two -- My Children.\" I am blessed with seven sons, all in the peak of their strength and youth. The eldest is Varion. He looks remarkably like his dear, departed father. I wished to name all my sons in such a way that their names began with the same letter, but my husband forbade me. He relented when I became ill at the birth of our youngest, Voland. I am so blessed by Tunare! Seven sons! My only regret is that I have no daughters, but I am not complaining, for my sons will carry on the name of their father's house.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+end
+if GetQuestStep(Player,Quest) >=8 then
+AddConversationOption(conversation, "Entry Five","Page5")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Two.\" Again, the subject tells some of the truth. She did indeed bear seven sons, the first and last of which are named as indicated. And, she did fall ill upon the birth of her final son, rendering her unable to have other children. The subject lay ill for nearly a year, during which time her sons were raised by her sister. When she regained her health, the subject had her sister arrested and executed for treason before she resumed her motherly duties.")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==8 then
+    SetStepComplete(Player,Quest,8)
+end
+if GetQuestStep(Player,Quest) >=10 then
+AddConversationOption(conversation, "Entry Six","Page6")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Three -- A Time of Hardship.\" Our move to the catacombs was not without its troubles, of course. My children needed me more than ever, clinging to me in the seemingly perpetual darkness beneath the city streets. We found that the crews who maintained the drains kept piles of fuel to use in the sconces set into the walls. I learned to borrow a bit of their fire to start my own. My eldest found the place I now call home by turning down a little-used side passage. The way is patrolled by roving gangs of thugs, but they left me alone. After all, I am guarded by my seven strong sons!")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==10 then
+    SetStepComplete(Player,Quest,10)
+end
+if GetQuestStep(Player,Quest) >=12 then
+AddConversationOption(conversation, "Entry Seven","Page7")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Three.\" Again, the subject shows her inability to separate fact from fiction. Her eldest son would not have been able to find her living area as he, together with all his brothers, perished at sea. This occurred during the Shattering, when many travellers perished. In this case, the subject had sent her sons on an errand, the nature of which has never been determined. It is generally believed that the magnitude of the loss, both personally and throughout Norrath, coupled with the knowledge that she sent them on this journey, unhinged her mind.")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==12 then
+    SetStepComplete(Player,Quest,12)
+end
+if GetQuestStep(Player,Quest) >=14 then
+AddConversationOption(conversation, "Entry Eight","Page8")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Four -- The Days Grow Long.\" We are comfortable here, for the most part. I find that the days are sometimes long, but one of the boys will entertain me. Asrey, my middle boy, will recite tales of the distant past. I believe he will grow up to be a bard! His voice is clear and true. He loves to stand in the chambers where the ceilings are highest and sing, listening to his own voice echo. He is a good lad, as are all my sons, and I am grateful for their company.")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==14 then
+    SetStepComplete(Player,Quest,14)
+end
+if GetQuestStep(Player,Quest) >=16 then
+AddConversationOption(conversation, "Entry Nine","Page9")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Four.\" The subject's thrid son, Asrey, did have a legendary voice, even in his youth. He was often called upon to sing before the Bayle family. At the conclusion of one of these events, Lady Larinna Bayle presented him with an engraved flute. The flute was lost at sea with Asrey and his brothers. It is interesting to note that the subject retains excellent memories of the details of her children's lives, but has blocked out the single largest event that befell them -- their own deaths.")
+end
+
+function Page9(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==16 then
+    SetStepComplete(Player,Quest,16)
+end
+if GetQuestStep(Player,Quest) >=18 then
+AddConversationOption(conversation, "Entry Ten","Page8")
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page8")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Five -- A New Beginning.\" I've given up some of the fancy work I used to do before. Now that I must scrape by, I can no longer spend time weaving lace or painting miniatures. I have painted several portraits of my sons, however, that I am quite proud of. They are endlessly fascinating to me. I know it is sometimes difficult for them to live in this place, yet they do not complain. When they wander too far, I miss them terribly. Is that so wrong for a mother? After all, nothing is stronger than a mother\'s love.")
+end
+
+function Page10(Item, Player)
+conversation = CreateConversation()
+if GetQuestStep(Player,Quest)==18 then
+    SetStepComplete(Player,Quest,18)
+end
+AddConversationOption(conversation, "Turn back to previous entry.","Page9")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Five.\" We were unable to determine where the subject's portraits have gone, if indeed she painted any at all. There is no record of her having been interested in miniature painting prior to her exile to the Vermin's Snye. Some of the lace she created was, however, on display at the Museum of Fine Arts until it was stolen by vandals that tied the bits to some of the rats the subject called \"her children\" before setting them afire. The subject became agitated and defended the rats, thus earning her title of \"Rat Queen.\"")
+end
+
+
+function QuestStart(Item,Player)
+	    CloseItemConversation(Item,Player)
+		OfferQuest(nil, Player, Quest)
+end

+ 96 - 0
server/ItemScripts/TheRatQueenofVerminsSnye_Complete.lua

@@ -0,0 +1,96 @@
+--[[
+    Script Name    : ItemScripts/TheRatQueenofVerminsSnye_Complete.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.09.18 03:09:31
+    Script Purpose : 
+                   : 
+--]]
+function examined(Item, Player)
+Intro(Item,Player)
+end
+
+function Intro(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry Two","Page2")
+    AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "\"My Life,\" by Ayamia the Unfortunate, together with \"An Examination of the Rat Queen,\" by the Scholars' Institute for Change, a non-profit organization. Quotations are liberally taken from Ayamia's own volume, interspersed with logical explanations where necessary.")
+end
+
+function Page1(Item, Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Entry Two","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter One -- How I Came to Live in the Vermin's Snye.\" I've heard what some people say about me, and let me tell you straight away that it is not true. My husband abandoned me and I had no choice to but to find a place to live with my children. Our landlord, wretched human scum, turned us onto the streets! I am not as young as I once was, but I am resourceful. By living below, my children and I would be out of the elements. We could find a cozy place to call our own.")
+end
+
+function Page2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Three","Page3")
+AddConversationOption(conversation, "Turn back to previous entry.","Page1")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter One.\" Clearly, the subject is in denial of her current status. Her husband is recorded as \"Lord Selien\" so obviously, the subject was a woman who lived in comfort. Her reference to being turned out of her home is correct, but only to the extent that her increasing madness led her to bring to her husband's home all manner of vile creatures, referring to them as her \"children.\" Upon her husband's death in battle, his family shunned the subject, which further isolated her, causing her to seek shelter elsewhere.")
+end
+
+function Page3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Four","Page4")
+AddConversationOption(conversation, "Turn back to previous entry.","Page2")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Two -- My Children.\" I am blessed with seven sons, all in the peak of their strength and youth. The eldest is Varion. He looks remarkably like his dear, departed father. I wished to name all my sons in such a way that their names began with the same letter, but my husband forbade me. He relented when I became ill at the birth of our youngest, Voland. I am so blessed by Tunare! Seven sons! My only regret is that I have no daughters, but I am not complaining, for my sons will carry on the name of their father's house.")
+end
+
+function Page4(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Five","Page5")
+AddConversationOption(conversation, "Turn back to previous entry.","Page3")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Two.\" Again, the subject tells some of the truth. She did indeed bear seven sons, the first and last of which are named as indicated. And, she did fall ill upon the birth of her final son, rendering her unable to have other children. The subject lay ill for nearly a year, during which time her sons were raised by her sister. When she regained her health, the subject had her sister arrested and executed for treason before she resumed her motherly duties.")
+end
+
+function Page5(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Six","Page6")
+AddConversationOption(conversation, "Turn back to previous entry.","Page4")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Three -- A Time of Hardship.\" Our move to the catacombs was not without its troubles, of course. My children needed me more than ever, clinging to me in the seemingly perpetual darkness beneath the city streets. We found that the crews who maintained the drains kept piles of fuel to use in the sconces set into the walls. I learned to borrow a bit of their fire to start my own. My eldest found the place I now call home by turning down a little-used side passage. The way is patrolled by roving gangs of thugs, but they left me alone. After all, I am guarded by my seven strong sons!")
+end
+
+function Page6(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Seven","Page7")
+AddConversationOption(conversation, "Turn back to previous entry.","Page5")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Three.\" Again, the subject shows her inability to separate fact from fiction. Her eldest son would not have been able to find her living area as he, together with all his brothers, perished at sea. This occurred during the Shattering, when many travellers perished. In this case, the subject had sent her sons on an errand, the nature of which has never been determined. It is generally believed that the magnitude of the loss, both personally and throughout Norrath, coupled with the knowledge that she sent them on this journey, unhinged her mind.")
+end
+
+function Page7(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Eight","Page8")
+AddConversationOption(conversation, "Turn back to previous entry.","Page6")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Four -- The Days Grow Long.\" We are comfortable here, for the most part. I find that the days are sometimes long, but one of the boys will entertain me. Asrey, my middle boy, will recite tales of the distant past. I believe he will grow up to be a bard! His voice is clear and true. He loves to stand in the chambers where the ceilings are highest and sing, listening to his own voice echo. He is a good lad, as are all my sons, and I am grateful for their company.")
+end
+
+function Page8(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Nine","Page9")
+AddConversationOption(conversation, "Turn back to previous entry.","Page7")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Four.\" The subject's thrid son, Asrey, did have a legendary voice, even in his youth. He was often called upon to sing before the Bayle family. At the conclusion of one of these events, Lady Larinna Bayle presented him with an engraved flute. The flute was lost at sea with Asrey and his brothers. It is interesting to note that the subject retains excellent memories of the details of her children's lives, but has blocked out the single largest event that befell them -- their own deaths.")
+end
+
+function Page9(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Entry Ten","Page8")
+AddConversationOption(conversation, "Turn back to previous entry.","Page8")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Chapter Five -- A New Beginning.\" I've given up some of the fancy work I used to do before. Now that I must scrape by, I can no longer spend time weaving lace or painting miniatures. I have painted several portraits of my sons, however, that I am quite proud of. They are endlessly fascinating to me. I know it is sometimes difficult for them to live in this place, yet they do not complain. When they wander too far, I miss them terribly. Is that so wrong for a mother? After all, nothing is stronger than a mother\'s love.")
+end
+
+function Page10(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "Turn back to previous entry.","Page9")
+AddConversationOption(conversation, "Close the book.","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "\"Analysis of Chapter Five.\" We were unable to determine where the subject's portraits have gone, if indeed she painted any at all. There is no record of her having been interested in miniature painting prior to her exile to the Vermin's Snye. Some of the lace she created was, however, on display at the Museum of Fine Arts until it was stolen by vandals that tied the bits to some of the rats the subject called \"her children\" before setting them afire. The subject became agitated and defended the rats, thus earning her title of \"Rat Queen.\"")
+end
+

+ 52 - 0
server/ItemScripts/TheScaleYardcitizenshiptask.lua

@@ -0,0 +1,52 @@
+--[[
+    Script Name    : ItemScripts/TheScaleYardcitizenshiptask.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.06.26 03:06:48
+    Script Purpose : 
+                   : 
+--]]
+
+function examined(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog2")
+StartDialogConversation(conversation, 2, Item, Player, "By order of the Overlord, all residents wishing to become citizens of the city must complete a trial to prove themselves.")
+
+end
+
+
+function Dialog2(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read about where tokens are found]","Dialog3")
+StartDialogConversation(conversation, 2, Item, Player, "Tokens are scattered throughout the surrounding area. You must find five of these tokens to earn the right to speak to a city official.")
+end
+
+
+function Dialog3(Item, Player)
+conversation = CreateConversation()
+AddConversationOption(conversation, "[read more]","Dialog4")
+
+StartDialogConversation(conversation, 2, Item, Player, "Each district has been assigned an area in which to hunt for their tokens. Only tokens from within that area will be accepted.")
+end
+
+function Dialog4(Item, Player)
+conversation = CreateConversation()
+if GetLevel(Player)<6 then
+ AddConversationOption(conversation, "[I need more experience to pursue Citizenship]","CloseItemConversation")
+elseif not HasQuest(Player,5869) and not HasCompletedQuest(Player,5869)then
+AddConversationOption(conversation, "[write this in your quest journal]","StartQuest")
+end
+if HasQuest(Player,5869) or  HasCompletedQuest(Player,5869) then
+AddConversationOption(conversation, "[continue]","StartQuest")
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Scale Yard residents must gather five tokens from the Thieves' Way.")
+end
+
+function StartQuest(Item,Player)
+conversation = CreateConversation()
+if not HasQuest(Player,5869) and not HasCompletedQuest(Player,5869)then
+   OfferQuest(nil,Player,5869)
+end
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
+StartDialogConversation(conversation, 2, Item, Player, "Use the citizenship sign to report to Abbetor T'avi once you complete your task.")
+end

+ 18 - 0
server/ItemScripts/VoleensSweetbread.lua

@@ -0,0 +1,18 @@
+--[[
+    Script Name    : ItemScripts/VoleensSweetbread.lua
+    Script Author  : LordPazuzu
+    Script Date    : 2022.12.28 03:12:18
+    Script Purpose : 
+                   : 
+--]]
+
+function cast(Item, Player)
+	Spell = GetSpell(5010)
+	Regenz = 10.0
+	newDuration = 18000
+	SetSpellData(Spell, "duration1", newDuration)
+	SetSpellData(Spell, "duration2", newDuration)
+	SetSpellDataIndex(Spell, 0, Regenz)
+	SetSpellDisplayEffect(Spell, 0, "description", "Increases Out-of-Combat Health Regeneration of target by " .. Regenz)
+	CastCustomSpell(Spell, Player, Player)
+end

+ 15 - 13
server/ItemScripts/WelcometoQeynosCitizen.lua

@@ -10,14 +10,14 @@ function examined(Item, Player)
 conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page1")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "Welcome to Qeynos!  As a new citizen of our city, there are probably hundreds of questions you still wish to have answered.  This book is meant to assist you in finding activities which will interest and inspire you.  Naturally, such a small book cannot possibly explain all you will need to know.  Let it serve as a brief guide to the richness that you will experience throughout Norrath.  Your citizenship is not affected if you discard this book without accepting the tasks.  If you work on these tasks, you must keep this book until you finish them all.")
+StartDialogConversation(conversation, 2, Item, Player, "Welcome to Qeynos!\n\nAs a new citizen of our city, there are probably hundreds of questions you still wish to have answered.  This book is meant to assist you in finding activities which will interest and inspire you.  Naturally, such a small book cannot possibly explain all you will need to know.  Let it serve as a brief guide to the richness that you will experience throughout Norrath.\n\nYour citizenship is not affected if you discard this book without accepting the tasks.\n\nIf you work on these tasks, you must keep this book until you finish them all.")
 end
 
 function Page1(Item, Player)
 conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page2")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "Collecting stones and shards can be a very rewarding hobby.    You can collect items as you travel, examining them to determine whether they will be worthwhile examples to keep.  Gathering little items can be addicting as well!  Be sure to look up now and again to admire the beauty of Norrath.")
+StartDialogConversation(conversation, 2, Item, Player, "Collecting stones and shards can be a very rewarding hobby.\n\nYou can collect items as you travel, examining them to determine whether they will be worthwhile examples to keep.  Gathering little items can be addicting as well!  Be sure to look up now and again to admire the beauty of Norrath.")
 end
 
 function Page2(Item, Player)
@@ -33,7 +33,7 @@ conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page4")
 AddConversationOption(conversation, "Previous Page","Page2")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "The lands have changed much since the ancient days, and yet there are so many things that remain to remind us of our heritage.  No doubt you have seen some of these precious memorials preserved in some of the villages, such as the Spirit of Faydark park in the Willow Wood.  Please take a moment to remember the fallen by visiting the Claymore Plaza in North Qeynos.")
+StartDialogConversation(conversation, 2, Item, Player, "The lands have changed much since the ancient days, and yet there are so many things that remain to remind us of our heritage.\n\nNo doubt you have seen some of these precious memorials preserved in some of the villages, such as the Spirit of Faydark park in the Willow Wood.  Please take a moment to remember the fallen by visiting the Claymore Plaza in North Qeynos.")
 end
 
 function Page4(Item, Player)
@@ -49,7 +49,7 @@ conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page6")
 AddConversationOption(conversation, "Previous Page","Page4")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "Reading is a great way to learn more about the heritage of the land, the history of its inhabitants and the beliefs of those who are a part of Norrath.  Visit Sage Indis Surion in South Qeynos to purchase some of his fascinating tomes.  Though some are missing a page or two, the Sage has made notations in each volume, indicating where additional pages might be located.")
+StartDialogConversation(conversation, 2, Item, Player, "Reading is a great way to learn more about the heritage of the land, the history of its inhabitants and the beliefs of those who are a part of Norrath.\n\nVisit Sage Indis Surion in South Qeynos to purchase some of his fascinating tomes.  Though some are missing a page or two, the Sage has made notations in each volume, indicating where additional pages might be located.")
 end
 
 function Page6(Item, Player)
@@ -57,7 +57,7 @@ conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page7")
 AddConversationOption(conversation, "Previous Page","Page5")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "The Sage sells \"The Story of the Rat Queen,\" which is part autobiographical and part analysis of the poor woman who lives in the Vermin's Snye.  It is said to be among Antonia Bayle's favorites and is an interesting read.  Additionally, one can find books scattered throughout the world that are excellent sources of information.  You can also gain new skills by completing any of the Mastery tomes available.")
+StartDialogConversation(conversation, 2, Item, Player, "The Sage sells \"The Story of the Rat Queen,\" which is part autobiographical and part analysis of the poor woman who lives in the Vermin's Snye.  It is said to be among Antonia Bayle's favorites and is an interesting read.\n\nAdditionally, one can find books scattered throughout the world that are excellent sources of information.  You can also gain new skills by completing any of the Mastery tomes available.")
 end
 
 function Page7(Item, Player)
@@ -65,7 +65,7 @@ conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page8")
 AddConversationOption(conversation, "Previous Page","Page6")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "As you explore Norrath, you will occasionally find unsual objects.  Sometimes, they are on creatures in the wilds.  Sometimes you will notice something odd in the landscape and pause to take a closer look.  In either case, let curiosity be your guide as many great discoveries have been made serendipitously. ")
+StartDialogConversation(conversation, 2, Item, Player, "As you explore Norrath, you will occasionally find unsual objects.\n\nSometimes, they are on creatures in the wilds.  Sometimes you will notice something odd in the landscape and pause to take a closer look.  In either case, let curiosity be your guide as many great discoveries have been made serendipitously. ")
 end
 
 function Page8(Item, Player)
@@ -73,32 +73,34 @@ conversation = CreateConversation()
 AddConversationOption(conversation, "Next Page","Page9")
 AddConversationOption(conversation, "Previous Page","Page7")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "While Qeynos is now your home, you will likely travel beyond the city limits many times in your life.  As you travel, you will doubtless encounter folks who are trying to rebuild their lives as well as those whose needs are more commercial.  These goals are not mutually exclusive, as strong enterprise can mean work for the displaced.  Please feel free to assist representatives of the Far Seas Trading Company as they are a large local employer.")
+StartDialogConversation(conversation, 2, Item, Player, "While Qeynos is now your home, you will likely travel beyond the city limits many times in your life.\n\nAs you travel, you will doubtless encounter folks who are trying to rebuild their lives as well as those whose needs are more commercial.  These goals are not mutually exclusive, as strong enterprise can mean work for the displaced.  Please feel free to assist representatives of the Far Seas Trading Company as they are a large local employer.")
 end
 
 function Page9(Item, Player)
 conversation = CreateConversation()
-AddConversationOption(conversation, "Next Page [WORK IN PROGRESS]","")
+AddConversationOption(conversation, "Next Page","Page10")
 AddConversationOption(conversation, "Previous Page","Page8")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "Qeynos is proud of its diversity.  Our reasons to move here are varied, but we must never forget our heritage.  Rumors surface that items important to the history of Norrath are found throughout the world.  You could always check with Hwal Rucksif inside the Keep of the Ardent Needle in Antonica for updates as he seems to get a fair amount of foot traffic.")
+StartDialogConversation(conversation, 2, Item, Player, "Qeynos is proud of its diversity.\n\nOur reasons to move here are varied, but we must never forget our heritage.  Rumors surface that items important to the history of Norrath are found throughout the world.\n\nYou could always check with Hwal Rucksif inside the Keep of the Ardent Needle in Antonica for updates as he seems to get a fair amount of foot traffic.")
 end
 
 function Page10(Item, Player)
-if not HasQuest(Player,5766) and not HasCompletedQuest(Player,5766)then
-    OfferQuest(Item,Player,5766)
+if CanReceiveQuest(Player,5766) then
+    OfferQuest(nil,Player,5766)
 elseif GetQuestStep(Player,5766) ==8 then    
 AddConversationOption(conversation, "Next Page","Page11")
 end
+conversation = CreateConversation()
 AddConversationOption(conversation, "Previous Page","Page9")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "Training in your chosen life's path enables you to help others to the best of your abilities by giving you a focus.  Fighters should speak with Master-at-Arms Dagorel in South Qeynos.  Mages, you will learn much with Magister Niksel, also in South Qeynos.  Priests should seek the counsel of Hierophant Aldalad in North Qeynos.  Scouts, seek Vemerik the Counselor in Qeynos North.  Train hard, act wisely and help your neighbors.")
+StartDialogConversation(conversation, 2, Item, Player, "Training in your chosen life's path enables you to help others to the best of your abilities by giving you a focus.\n\nFighters should speak with Master-at-Arms Dagorel in South Qeynos.\n\nMages, you will learn much with Magister Niksel, also in South Qeynos.\n\nPriests should seek the counsel of Hierophant Aldalad in North Qeynos.\n\nScouts, seek Vemerik the Counselor in Qeynos North.\n\nTrain hard, act wisely and help your neighbors.")
 end
 
 function Page11(Item, Player)
 SetStepComplete(Player,5766,8)    
+conversation = CreateConversation()
 AddConversationOption(conversation, "Previous Page","Page10")
 AddConversationOption(conversation, "Close the book.","CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "Though we have come through some dark times, we cannot dwell upon the past.  In the Age of Destiny, every day is a gift and how we use that gift determines our personal destiny.  Compassion, honor and loyalty are ever the standard by which we should live our lives, no matter what challenges may come.")
+StartDialogConversation(conversation, 2, Item, Player, "Though we have come through some dark times, we cannot dwell upon the past.\n\nIn the Age of Destiny, every day is a gift and how we use that gift determines our personal destiny.\n\nCompassion, honor and loyalty are ever the standard by which we should live our lives, no matter what challenges may come.")
 end
 

+ 1 - 1
server/ItemScripts/WillowWoodcitizenshiptask.lua

@@ -47,6 +47,6 @@ conversation = CreateConversation()
 if not HasQuest(Player,5723) and not HasCompletedQuest(Player,5723)then
    OfferQuest(nil,Player,5723)
 end
-AddConversationOption(conversation, "[put the note]","CloseItemConversation")
+AddConversationOption(conversation, "[put the note away]","CloseItemConversation")
 StartDialogConversation(conversation, 2, Item, Player, "After you complete your task, report to Marshal Glorfel using the citizenship sign.")
 end

+ 84 - 0
server/ItemScripts/aRustySword.lua

@@ -0,0 +1,84 @@
+--[[
+    Script Name    : ItemScripts/aRustySword.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.15 07:05:27
+    Script Purpose : 
+                   : 
+--]]
+
+local Quest = 5830
+
+function examined(Item, Player)
+if not HasQuest(Player, Quest) and not HasCompletedQuest(Player, Quest) then
+    Dialog1(Item,Player)
+elseif GetQuestStep(Player,Quest)==1 or GetQuestStep(Player,Quest)==2 then
+    Dialog2(Item,Player)
+elseif GetQuestStep(Player,Quest)==3 or GetQuestStep(Player,Quest)==4 then
+    Dialog3(Item,Player)
+elseif GetQuestStep(Player,Quest)==5 or GetQuestStep(Player,Quest)==6 then
+    Dialog4(Item,Player)
+elseif  HasCompletedQuest(Player, Quest)then
+    Completed(Item,Player)
+end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Inspect the blade closely]", "Dialog2")
+    AddConversationOption(conversation, "[Put the rusty sword away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I've found a rusty blade that looks like it was once a very powerful sword.  It may be possible to restore this sword back to its original condition.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    AddConversationOption(conversation, "[Mix the flour into a paste and apply it to the rust]", "Dialog3")
+    end
+    AddConversationOption(conversation, "[Put the rusty sword away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "As you continue to inspect the sword, you can see that it once had some carvings on both the hilt and the blade. Again, you detect some type of power coming from it. Maybe if you made a paste from some flour and water, you could try to scrub the rust off of the blade.")
+end
+
+
+function Dialog3(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==4 then
+    AddConversationOption(conversation, "[Repair the stars etched in the blade]", "Dialog4")
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+    end    
+    AddConversationOption(conversation, "[Put the sword away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "You apply the paste to the blade, scouring it for quite a while. After a long time you manage to remove nearly all of the rust. This sword is actually rather elegant and you can now see that there were carvings of stars along the entirety of the sword.  Perhaps if you had an etcher, you might be able to carve the stars back into the blade.")
+end
+
+function Dialog4(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==6 then
+    AddConversationOption(conversation, "I am victorious! Starwisp is renewed!", "QuestFinish")
+    end
+    if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+    end    
+    AddConversationOption(conversation, "[Put Starwisp away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Looking at the sword, you can see each one of the stars you etched have a faint glow coming from them. It's as if each of the klicnicks you killed was transferred into the sword somehow. Another thought enters your head - Starwisp.")
+end
+--I've killed quite a number of klicniks in Antonica.  I have a feeling my desire to do so came from the sword.
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+    end    
+    if HasItem(Player,10331) then
+        RemoveItem(Player,10331,1)
+    end
+end
+    
+function Completed(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Hold on to the blade as a keepsake]")
+    AddConversationOption(conversation, "[Get rid of the rusted junk.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "The rusted blade glows slightly in your hands. Your mind flashes a faint memory, a sword you've seen before.")
+end

+ 26 - 11
server/ItemScripts/aRustySymbolOfMarr.lua

@@ -1,21 +1,36 @@
 --[[
 	Script Name	: ItemScripts/RustySymbolOfMarr.lua
 	Script Purpose	: Offers quest "Rusty Symbol of Marr"
-	Script Author	: premierio015
-	Script Date	    : 12.11.2020
+	Script Author	: premierio015\\Dorbin
+	Script Date	    : 12.11.2020 \\ 11.14.2023
 	Script Notes	:  
 --]]
 
-local quest = 584
 
 function examined(Item, Player)
-	if not HasQuest(Player, quest) and not HasCompletedQuest(Player, quest) then
-		OfferQuest(nil, Player, quest)
-		
-	   elseif HasItem(Player, 2555) and HasQuest(Player, quest) then
-			RemoveItem(Player, 2555)
+    conversation = CreateConversation()
+	if CanReceiveQuest(Player,RustySymbol) then
+    AddConversationOption(conversation, "Someone of faith might want this.","Offer")
+    end
+    AddConversationOption(conversation, "[Put the symbol away]")
+    StartDialogConversation(conversation, 2, Item, Player, "The metal medallion is very old and rusty but bears the symbol of Mithaniel Marr.")
 end
-   end
- 
 
-    
+
+
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,RustySymbol) then
+    OfferQuest(nil,Player,RustySymbol)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,2555) then
+        RemoveItem(Player,2555,1)
+    end
+end    

+ 43 - 7
server/ItemScripts/a_locked_chest.lua

@@ -1,21 +1,57 @@
 --[[
 	Script Name	: ItemScripts/a_locked_chest.lua
 	Script Purpose	:
-	Script Author	: Ememjr
+	Script Author	: Ememjr\\Dorbin
 	Script Date	    : 2019-10-07
 	Script Notes	:
 --]]
 
 local quest = 480
 
+
+
 function examined(Item, Player)
-	if not HasQuest(Player, quest) and not HasCompletedQuest(Player, quest) then
-		OfferQuest(nil, Player, quest)
+	if CanReceiveQuest(Player,quest) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Keep the chest]")
+    AddConversationOption(conversation, "[Throw the chest away]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This locked chest has the same markings as one you've found before. It appears worthless to you.")
 	end
 end
 
-function obtained(Item, Player)
-if HasItem(Player, 2115) then
-RemoveItem(Player, 2115)
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,quest) then
+    AddConversationOption(conversation, "[Read the parchment]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the chest away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The chest's lock appears broken beyond opening. A parchment is plastered to the side with the word \"BOUNTY\" in large letters at the top. Perhaps someone was trying to complete this bounty before returning the chest?")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,quest) then
+    AddConversationOption(conversation, "[Commit to the task]", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the chest away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "\"A valuable chest was unlawfully taken by a band of Darkblade brigands.  A generous reward will be provided to the one who returns this stolen property to Anrean Velvinna in the Beggar's Court.\"")
 end
-   end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,quest) then
+    OfferQuest(nil,Player,quest)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,2115,1) then
+        RemoveItem(Player,2115)
+    end
+end

+ 16 - 11
server/ItemScripts/abixieeye.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/abixieeye.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2022.01.01 04:01:36
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendBixie = 5410
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
-OfferQuest(nil, Player, LoreAndLegendBixie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendBixie, 4) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
+    OfferQuest(nil, Player, LoreAndLegendBixie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendBixie) and  GetQuestStepProgress(Player, LoreAndLegendBixie, 4)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendBixie, 4)
-RemoveItem(Player, 1219)
+if HasItem(Player,1219,1) then
+    SetStepComplete(Player, LoreAndLegendBixie, 4)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1219)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/abixieleg.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/abixieleg.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2022.01.01 04:01:48
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendBixie = 5410
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
-OfferQuest(nil, Player, LoreAndLegendBixie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendBixie, 5) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
+    OfferQuest(nil, Player, LoreAndLegendBixie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendBixie) and  GetQuestStepProgress(Player, LoreAndLegendBixie, 5)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendBixie, 5)
-RemoveItem(Player, 1220)
+if HasItem(Player,1220,1) then
+    SetStepComplete(Player, LoreAndLegendBixie, 5)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1220)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/abixiestinger.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/abixiestinger.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2022.01.01 04:01:22
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendBixie = 5410
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
-OfferQuest(nil, Player, LoreAndLegendBixie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendBixie, 6) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
+    OfferQuest(nil, Player, LoreAndLegendBixie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendBixie) and  GetQuestStepProgress(Player, LoreAndLegendBixie, 6)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendBixie, 6)
-RemoveItem(Player, 1221)
+if HasItem(Player,1221,1) then
+    SetStepComplete(Player, LoreAndLegendBixie, 6)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1221)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 15 - 10
server/ItemScripts/abixiethorax.lua

@@ -9,21 +9,26 @@
 local LoreAndLegendBixie = 5410
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
-OfferQuest(nil, Player, LoreAndLegendBixie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendBixie, 7) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
+    OfferQuest(nil, Player, LoreAndLegendBixie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendBixie) and  GetQuestStepProgress(Player, LoreAndLegendBixie, 7)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendBixie, 7)
-RemoveItem(Player, 1222)
+if HasItem(Player,1222,1) then
+    SetStepComplete(Player, LoreAndLegendBixie, 7)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1222)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/abixiewing.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/abixiewing.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2022.01.01 04:01:49
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendBixie = 5410
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
-OfferQuest(nil, Player, LoreAndLegendBixie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendBixie, 8) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendBixie) and not HasCompletedQuest(Player, LoreAndLegendBixie) then
+    OfferQuest(nil, Player, LoreAndLegendBixie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendBixie) and  GetQuestStepProgress(Player, LoreAndLegendBixie, 8)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the bixie. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendBixie, 8)
-RemoveItem(Player, 1223)
+if HasItem(Player,1223,1) then
+    SetStepComplete(Player, LoreAndLegendBixie, 8)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1223)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 7 - 0
server/ItemScripts/abrasskey.lua

@@ -0,0 +1,7 @@
+--[[
+    Script Name    : ItemScripts/abrasskey.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.11 11:05:57
+    Script Purpose : 
+                   : 
+--]]

+ 44 - 3
server/ItemScripts/abrokenmusicbox.lua

@@ -8,8 +8,49 @@
 
 local RewardForAMissingMusicBox = 5261
 
+
 function examined(Item, Player)
-if not HasQuest(Player, RewardForAMissingMusicBox) and not HasCompletedQuest(Player, RewardForAMissingMusicBox) then
-OfferQuest(nil, Player, RewardForAMissingMusicBox)
+	if CanReceiveQuest(Player,RewardForAMissingMusicBox) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Keep the musicbox]")
+    AddConversationOption(conversation, "[Destroy the musicbox]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This floral designed music box is broken like one you found before. Perhaps it is the same one? Oh well.")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,RewardForAMissingMusicBox) then
+    AddConversationOption(conversation, "[Open the musicbox]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the box away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "The music box is decorated with gold trim and a floral design is carved into the lid.  The lid is unlocked.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,RewardForAMissingMusicBox) then
+    AddConversationOption(conversation, "[Write the name in your journal]", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the music box away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Inside the music box is a small engraving of the name \"Lucilla Quietus\" on a little gold plate.  You also discover that the music box no longer plays music.")
 end
-   end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,RewardForAMissingMusicBox) then
+    OfferQuest(nil,Player,RewardForAMissingMusicBox)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,1286,1) then
+        RemoveItem(Player,1286)
+    end
+end

+ 48 - 3
server/ItemScripts/acarvedorcaxe.lua

@@ -8,8 +8,53 @@
 
 local AnAxesRevenge = 5262
 
+
 function examined(Item, Player)
-if not HasQuest(Player, AnAxesRevenge) and not HasCompletedQuest(Player, AnAxesRevenge) then
-OfferQuest(nil, Player, AnAxesRevenge)
+	if CanReceiveQuest(Player,AnAxesRevenge) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Keep the axe]")
+    AddConversationOption(conversation, "[Toss the axe to the ground]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "This axe is familiar to you, but the orcish runes do not respond to your touch.")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,AnAxesRevenge) then
+    AddConversationOption(conversation, "[Run your fingers over the markings]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the axe away]", "CloseItemConversation")
+if HasLanguage(Player, 17) then
+    StartDialogConversation(conversation, 2, Item, Player, "This axe has orcish written across its surface. The markings look recent. You read \n\"Betrayed!\nThier blood will be mine.\n Revenge. Cleave. Restore Honor.\"")
+else
+    StartDialogConversation(conversation, 2, Item, Player, "This orcish looking axe has scratch marks along its face. The markings look recent.")
+end
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,AnAxesRevenge) then
+    AddConversationOption(conversation, "My rage calls for orc blood!", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the axe away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "Images flood your mind of an orc cast out of its clan, betrayed by those trusted for the sake of power. A sense of rage and injustice envelopes your thoughts.\n\nOne word drapes over all other thoughts,\"Revenge\".")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,AnAxesRevenge) then
+    OfferQuest(nil,Player,AnAxesRevenge)
+    end
+    CloseItemConversation(Item,Player)
 end
-   end
+
+
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,1335) then
+        RemoveItem(Player,1335,1)
+    end
+end

+ 16 - 11
server/ItemScripts/acentaurear.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/acentaurear.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 07:12:04
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendCentaur = 5399
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
-OfferQuest(nil, Player, LoreAndLegendCentaur)
-elseif not QuestStepIsComplete(Player, LoreAndLegendCentaur, 7) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
+    OfferQuest(nil, Player, LoreAndLegendCentaur)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendCentaur) and  GetQuestStepProgress(Player, LoreAndLegendCentaur, 7)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendCentaur, 7)
-RemoveItem(Player, 1338)
+if HasItem(Player,1338,1) then
+    SetStepComplete(Player, LoreAndLegendCentaur, 7)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1338)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/acentaureye.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/acentaureye.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 07:12:53
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendCentaur = 5399
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
-OfferQuest(nil, Player, LoreAndLegendCentaur)
-elseif not QuestStepIsComplete(Player, LoreAndLegendCentaur, 5) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
+    OfferQuest(nil, Player, LoreAndLegendCentaur)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendCentaur) and  GetQuestStepProgress(Player, LoreAndLegendCentaur, 5)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendCentaur, 5)
-RemoveItem(Player, 1339)
+if HasItem(Player,1339,1) then
+    SetStepComplete(Player, LoreAndLegendCentaur, 5)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1339)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/acentaurhand.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/acentaurhand.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 07:12:32
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendCentaur = 5399
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
-OfferQuest(nil, Player, LoreAndLegendCentaur)
-elseif not QuestStepIsComplete(Player, LoreAndLegendCentaur, 6) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
+    OfferQuest(nil, Player, LoreAndLegendCentaur)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendCentaur) and  GetQuestStepProgress(Player, LoreAndLegendCentaur, 6)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendCentaur, 6)
-RemoveItem(Player, 1340)
+if HasItem(Player,1340,1) then
+    SetStepComplete(Player, LoreAndLegendCentaur, 6)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1340)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/acentaurhoof.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/acentaurhoof.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 07:12:15
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendCentaur = 5399
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
-OfferQuest(nil, Player, LoreAndLegendCentaur)
-elseif not QuestStepIsComplete(Player, LoreAndLegendCentaur, 4) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
+    OfferQuest(nil, Player, LoreAndLegendCentaur)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendCentaur) and  GetQuestStepProgress(Player, LoreAndLegendCentaur, 4)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendCentaur, 4)
-RemoveItem(Player, 1341)
+if HasItem(Player,1341,1) then
+    SetStepComplete(Player, LoreAndLegendCentaur, 4)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1341)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 16 - 11
server/ItemScripts/acentaurmane.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/acentaurmane.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 07:12:46
     Script Purpose : 
                    : 
@@ -9,21 +9,26 @@
 local LoreAndLegendCentaur = 5399
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
-OfferQuest(nil, Player, LoreAndLegendCentaur)
-elseif not QuestStepIsComplete(Player, LoreAndLegendCentaur, 8) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendCentaur) and not HasCompletedQuest(Player, LoreAndLegendCentaur) then
+    OfferQuest(nil, Player, LoreAndLegendCentaur)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendCentaur) and  GetQuestStepProgress(Player, LoreAndLegendCentaur, 8)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
 end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the centaur. Do you wish to study it?")
    end
+end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendCentaur, 8)
-RemoveItem(Player, 1342)
+if HasItem(Player,1342,1) then
+    SetStepComplete(Player, LoreAndLegendCentaur, 8)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1342)
+end
 end
-
 
 function item_description(Item, Spawn)
     return "You have already examined this item."

+ 89 - 0
server/ItemScripts/achainedbundle.lua

@@ -0,0 +1,89 @@
+--[[
+    Script Name    : ItemScripts/achainedbundle.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.05.16 06:05:51
+    Script Purpose : 
+                   : 
+--]]
+local Quest = 5837
+
+function examined(Item, Player)
+if not HasQuest(Player, Quest) and not HasCompletedQuest(Player, Quest) then
+    Dialog1(Item,Player)
+elseif GetQuestStep(Player,Quest)==1 or GetQuestStep(Player,Quest)==2 then
+    Dialog2(Item,Player)
+elseif GetQuestStep(Player,Quest)==3 or GetQuestStep(Player,Quest)==4 then
+    Dialog3(Item,Player)
+elseif GetQuestStep(Player,Quest)==5 or GetQuestStep(Player,Quest)==6 then
+    Dialog4(Item,Player)
+elseif  HasCompletedQuest(Player, Quest)then
+    Completed(Item,Player)
+end
+end
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Examine the bundle more closely.]", "Dialog2")
+    AddConversationOption(conversation, "[Put the chained bundle away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "I've found a very odd bundle of chains and leather straps.  I'm certain there's something in the center of this bundle, but I can't make out what it is.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,Quest) then
+    OfferQuest(nil,Player,Quest)
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    AddConversationOption(conversation, "[Inspect what caused the noise from the bundle.]", "Dialog3")
+    end
+    AddConversationOption(conversation, "[Put the chained bundle away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This chained bundle is exceptionally heavy and you're not sure what it really is. There seem to be hundreds of chained links that are wrapped around something. To make matters worse there are a bunch of straps that are bound so tight they can't be undone. Finally there is a huge lock binding all of it together.")
+end
+
+
+function Dialog3(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==4 then
+    AddConversationOption(conversation, "[Use the crab claws to cut the leather straps]", "Dialog4")
+    end
+    if GetQuestStep(Player,Quest)==2 then
+    SetStepComplete(Player,Quest,2)
+    end    
+    AddConversationOption(conversation, "[Put the chained bundle away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "You look at bundle and can see that the lock has snapped open.  Something about getting close to the crypt seems to have destroyed the lock.  Unfortunately, the straps still old tight.  If you're going to find out what's hidden inside this bundle, you're going to have to find a way to cut through these straps.")
+end
+
+function Dialog4(Item,Player)
+    conversation = CreateConversation()
+    if GetQuestStep(Player,Quest)==6 then
+    AddConversationOption(conversation, "[Use the arcane saw to cut the chains]", "Dialog5")
+    end
+    if GetQuestStep(Player,Quest)==4 then
+    SetStepComplete(Player,Quest,4)
+    end    
+    AddConversationOption(conversation, "[Put the chained bundle away.]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "You take the sharp ends of the crab claws and start cutting though the leather straps.  You wind up going through each of the claws you collected.  Unfortunately, the chain links are wrapped so tight that the now loosened straps have done you no good.  You're going to need to find a way to cut through all of the chains.  Perhaps the witches of the hills might have something to help you.")
+end
+
+function Dialog5(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "Liberated at last!", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "You used the arcane saw on the bundle of chain links and are surprised at how easy it cuts through the metal.  As you approach the center, nearly all of the chains have been fully cut away.  Once you have cut through all of the chains, the saw disappears from your hands.  Finally, you see what all the effort has brought you - hidden beneath all those oppressing chains is the fabled maul, Freedom.")
+ end
+--
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if GetQuestStep(Player,Quest)==6 then
+    SetStepComplete(Player,Quest,6)
+   end    
+    if HasItem(Player,1343) then
+        RemoveItem(Player,1343,1)
+    end
+end
+    
+function Completed(Item,Player)
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Hold on to the chained bundle.]")
+    AddConversationOption(conversation, "[Get rid of the budnle. You have no further use of it.]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "The bound bundle feels familiar in your hands, but lighter. Whatever was inside it is gone.")
+end

+ 17 - 11
server/ItemScripts/acorruptedzombiebrain.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/acorruptedzombiebrain.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 06:12:16
     Script Purpose : 
                    : 
@@ -9,19 +9,25 @@
 local LoreAndLegendZombie = 5397
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendZombie) and not HasCompletedQuest(Player, LoreAndLegendZombie) then
-OfferQuest(nil, Player, LoreAndLegendZombie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendZombie, 8) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the zombie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendZombie) and not HasCompletedQuest(Player, LoreAndLegendZombie) then
+    OfferQuest(nil, Player, LoreAndLegendZombie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendZombie) and  GetQuestStepProgress(Player, LoreAndLegendZombie, 8)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the zombie. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendZombie, 8)
-RemoveItem(Player, 1434)
+if HasItem(Player,1434,1) then
+    SetStepComplete(Player, LoreAndLegendZombie, 8)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1434)
+end
 end
 
 

+ 17 - 11
server/ItemScripts/adecomposingzombieorgan.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/adecomposingzombieorgan.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 06:12:28
     Script Purpose : 
                    : 
@@ -9,19 +9,25 @@
 local LoreAndLegendZombie = 5397
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendZombie) and not HasCompletedQuest(Player, LoreAndLegendZombie) then
-OfferQuest(nil, Player, LoreAndLegendZombie)
-elseif not QuestStepIsComplete(Player, LoreAndLegendZombie, 7) then
-conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the zombie. Do you wish to study it?")
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendZombie) and not HasCompletedQuest(Player, LoreAndLegendZombie) then
+    OfferQuest(nil, Player, LoreAndLegendZombie)
+else
+    conversation = CreateConversation()    
+if  HasQuest(Player, LoreAndLegendZombie) and  GetQuestStepProgress(Player, LoreAndLegendZombie, 7)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+end
+   AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the zombie. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendZombie, 7)
-RemoveItem(Player, 1553)
+if HasItem(Player,1553,1) then
+    SetStepComplete(Player, LoreAndLegendZombie, 7)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1553)
+end
 end
 
 

+ 56 - 0
server/ItemScripts/adirtygraverobbernote.lua

@@ -0,0 +1,56 @@
+--[[
+    Script Name    : ItemScripts/adirtygraverobbernote.lua
+    Script Author  : Dorbin
+    Script Date    : 2023.11.14 01:11:25
+    Script Purpose : 
+                   : 
+--]]
+
+local NatashaNote = 5927
+
+
+function examined(Item, Player)
+	if CanReceiveQuest(Player,NatashaNote) then
+    Dialog1(Item,Player)
+    else
+    conversation = CreateConversation()
+    AddConversationOption(conversation, "[Keep the note]")
+    AddConversationOption(conversation, "[Toss the note to the away]", "QuestFinish")
+    StartDialogConversation(conversation, 2, Item, Player, "You've seen this note before. It reads... \n\n\"We may have found a new burial site!  Rumor is this may be the richest crypt yet!  Gather at our usual spot tomorrow night.  Do not let that rat Tarakh know about this or so help me I'll have your mangy tail dangling from my wall... Love, Natasha\"")
+	end
+end
+
+
+function Dialog1(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,NatashaNote) then
+    AddConversationOption(conversation, "[Read the note]", "Dialog2")
+    end
+    AddConversationOption(conversation, "[Put the note away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This filthy bit of crumpled paper has the stench of death on it. The words are still legible.")
+end
+
+function Dialog2(Item,Player)
+    conversation = CreateConversation()
+    if CanReceiveQuest(Player,NatashaNote) then
+    AddConversationOption(conversation, "[Write \"Tarakh\" in your journal]", "Offer")
+    end
+    AddConversationOption(conversation, "[Put the note away]", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "\"We may have found a new burial site!  Rumor is this may be the richest crypt yet!  Gather at our usual spot tomorrow night.  Do not let that rat Tarakh know about this or so help me I'll have your mangy tail dangling from my wall... Love, Natasha\"")
+end
+
+function Offer(Item,Player)
+    if CanReceiveQuest(Player,NatashaNote) then
+    OfferQuest(nil,Player,NatashaNote)
+    end
+    CloseItemConversation(Item,Player)
+end
+
+
+
+function QuestFinish(Item,Player)
+    CloseItemConversation(Item,Player)
+    if HasItem(Player,1568,1) then
+        RemoveItem(Player,1568)
+    end
+end

+ 16 - 11
server/ItemScripts/afairydustjar.lua

@@ -1,6 +1,6 @@
 --[[
     Script Name    : ItemScripts/afairydustjar.lua
-    Script Author  : AussieGlen
+    Script Author  : AussieGlen/Dorbin
     Script Date    : 2021.12.31 09:12:00
     Script Purpose : 
                    : 
@@ -9,19 +9,24 @@
 local LoreAndLegendFairy = 5403
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendFairy) and not HasCompletedQuest(Player, LoreAndLegendFairy) then
-OfferQuest(nil, Player, LoreAndLegendFairy)
-elseif not QuestStepIsComplete(Player, LoreAndLegendFairy, 8) then
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendFairy) and not HasCompletedQuest(Player, LoreAndLegendFairy) then
+    OfferQuest(nil, Player, LoreAndLegendFairy)
+else
 conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the fairy. Do you wish to study it?")
+if  HasQuest(Player, LoreAndLegendFairy) and  GetQuestStepProgress(Player, LoreAndLegendFairy, 8)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the fairy. Do you wish to study it?")
+    end
 end
-   end
-
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendFairy, 8)
-RemoveItem(Player, 1636)
+if HasItem(Player,1636,1) then
+    SetStepComplete(Player, LoreAndLegendFairy, 8)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1636)
+end
 end
 
 

+ 15 - 9
server/ItemScripts/afairyear.lua

@@ -9,19 +9,25 @@
 local LoreAndLegendFairy = 5403
 
 function examined(Item, Player)
-if not HasQuest(Player, LoreAndLegendFairy) and not HasCompletedQuest(Player, LoreAndLegendFairy) then
-OfferQuest(nil, Player, LoreAndLegendFairy)
-elseif not QuestStepIsComplete(Player, LoreAndLegendFairy, 4) then
+    local LnLAccept = GetRuleFlagFloat("R_World", "LoreAndLegendAccept")
+if LnLAccept > 0 and not HasQuest(Player, LoreAndLegendFairy) and not HasCompletedQuest(Player, LoreAndLegendFairy) then
+    OfferQuest(nil, Player, LoreAndLegendFairy)
+else
 conversation = CreateConversation()    
-AddConversationOption(conversation, "Begin to study...", "Step_Complete")
-AddConversationOption(conversation, "No, put away", "CloseItemConversation")
-StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the fairy. Do you wish to study it?")
+if  HasQuest(Player, LoreAndLegendFairy) and  GetQuestStepProgress(Player, LoreAndLegendFairy, 4)==0 then
+    AddConversationOption(conversation, "Begin to study...", "Step_Complete")
+end
+    AddConversationOption(conversation, "No, put away", "CloseItemConversation")
+    StartDialogConversation(conversation, 2, Item, Player, "This item can be used to learn the secrets of the fairy. Do you wish to study it?")
+    end
 end
-   end
 
 function Step_Complete(Item, Player)
-SetStepComplete(Player, LoreAndLegendFairy, 4)
-RemoveItem(Player, 1637)
+if HasItem(Player,1638,1) then
+    SetStepComplete(Player, LoreAndLegendFairy, 4)
+    CloseItemConversation(Item, Player)
+    RemoveItem(Player, 1637)
+end
 end
 
 

部分文件因为文件数量过多而无法显示