No description
Find a file
2026-07-18 15:58:43 +02:00
airplane Sirran fixes for The_Spiroc_Lord.lua 2020-05-01 20:01:54 +02:00
akanon more work on ak'anon 2024-08-03 21:59:21 +02:00
arena massive code cleanup (duplicated pl files where their lua equivalent exists) 2017-05-11 10:46:17 +02:00
befallen emotes work 2022-12-30 16:38:24 +01:00
beholder emotes work 2022-12-30 16:38:24 +01:00
blackburrow emotes work 2022-12-30 16:38:24 +01:00
burningwood final fixes for Shaman Cudgel quests 2020-05-02 18:39:28 +02:00
butcher Update Boat subsystem since Trilogy support is live on master. Classic boat ! 2026-07-17 16:12:12 +02:00
cabeast more cabeast/west fixes (flavor, quests etc) 2024-08-04 15:09:00 +02:00
cabwest more cabeast/west fixes (flavor, quests etc) 2024-08-04 15:09:00 +02:00
cauldron tweak bilge farfathom cycle 2024-08-04 16:25:49 +02:00
cazicthule remove useless cazicthule/48104.pl file 2020-05-22 21:58:21 +02:00
charasis mass cleanup of old svn files 2017-04-28 11:27:53 +02:00
chardok massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
citymist fixes for the Shaman Epic quest 2020-01-05 19:56:17 +01:00
cobaltscar massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
commons add quest::ding() 2020-03-03 18:43:17 +01:00
crushbone massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
crystal Started implementation of The Spirit of Garzicor's quest + minor cleanup 2024-01-21 22:28:51 +01:00
cshome remove all occurences of Not_Found.pl 2018-07-13 23:36:04 +02:00
dalnir final fixes for Shaman Cudgel quests 2020-05-02 18:39:28 +02:00
docs docs stuff 2020-05-24 22:26:34 +02:00
dreadlands remove Luclin spires bullshit 2020-02-09 11:59:51 +01:00
droga final fixes for Shaman Cudgel quests 2020-05-02 18:39:28 +02:00
eastkarana added a_druid.lua 2020-03-01 21:58:59 +01:00
eastwastes add some npc randomization flavor for eastwastes & northkarana 2020-08-09 10:15:03 +02:00
ecommons removed Durtwick_Fizzlebong.pl & a_purveyor_of_goods.pl, new static playerbots will take up the mantle. Thanks for your service guys ! 2019-12-05 09:42:08 +01:00
emeraldjungle fixes for the Shaman Epic quest 2020-01-05 19:56:17 +01:00
erudnext Update Boat subsystem since Trilogy support is live on master. Classic boat ! 2026-07-17 16:12:12 +02:00
erudnint Fixes for the Ranger Epic 2020-01-04 17:32:16 +01:00
erudsxing Update Boat subsystem since Trilogy support is live on master. Classic boat ! 2026-07-17 16:12:12 +02:00
everfrost massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
fearplane added DT Shout to Cazic_Thule.lua 2020-03-12 15:36:54 +01:00
feerrott massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
felwithea fixes for the Druid epic 2019-09-22 23:29:32 +02:00
felwitheb fixes for the Druid epic 2019-09-22 23:29:32 +02:00
fieldofbone final fixes for Shaman Cudgel quests 2020-05-02 18:39:28 +02:00
firiona Final adjustments for Trilogy classic boats 2026-07-18 15:58:43 +02:00
freporte Update Boat subsystem since Trilogy support is live on master. Classic boat ! 2026-07-17 16:12:12 +02:00
freportn typo 2024-01-30 17:40:02 +01:00
freportw Boomba the Big picks-up items from the ground now ! Testing NPC:CheckGround() 2024-01-27 10:17:36 +01:00
frontiermtns full rewrite of the Crusader's Tests #1 - #8. 2020-02-23 19:58:33 +01:00
frozenshadow fix frozenshadow's door TP 2023-07-06 14:50:20 +02:00
gfaydark somehow missed a semicolon years ago in this bullshit 2025-07-22 20:33:33 +02:00
global comment this shit 2026-07-13 13:49:21 +02:00
greatdivide Ring 9: added Murdrick's event/council in Greatdivide 2020-05-16 21:55:43 +02:00
grobb small text fix 2020-03-26 13:40:40 +01:00
growthplane remove all occurences of Not_Found.pl 2018-07-13 23:36:04 +02:00
gukbottom remove all occurences of Not_Found.pl 2018-07-13 23:36:04 +02:00
guktop massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
halas Wizard epic fixes 2020-02-11 10:55:45 +01:00
hateplane fluff work on hateplane. 2021-12-28 16:54:06 +01:00
highkeep small cosmetic fix + xp gain for Captain_Bosec.lua 2023-05-08 10:27:05 +02:00
highpass Fixes for the Rogue Epic quest 2020-01-04 22:37:14 +01:00
hole fixes for the Shaman Epic quest 2020-01-05 19:56:17 +01:00
iceclad fix script error in Sojan_the_Sleepless.lua 2023-07-30 21:59:18 +02:00
innothule fluff dialogues / emotes 2023-07-07 13:39:47 +02:00
jaggedpine massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
kael kael quest fixes 2024-01-27 23:42:00 +01:00
kaesora final batch of fixes for Enchanter's epic. 2019-12-29 16:54:35 +01:00
kaladima massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
kaladimb Fixes for the Rogue Epic quest 2020-01-04 22:37:14 +01:00
karnor add a_drolvarg_pawbuster.lua 2020-05-21 16:51:07 +02:00
kedge implemented EQEmu's master branch Heading fixes to quest scripts 2018-02-16 19:48:18 +01:00
kerraridge fixes for Shadowknight Epic quest 2020-01-05 14:12:39 +01:00
kithicor Fixes for the Rogue Epic quest 2020-01-04 22:37:14 +01:00
kurn mass cleanup of old svn files 2017-04-28 11:27:53 +02:00
lakeofillomen final fixes for Shaman Cudgel quests 2020-05-02 18:39:28 +02:00
lakerathe Eldreth depop + cleanup 2024-02-05 13:06:34 +01:00
lavastorm last batch of Monk epic fixes, should be now 100% completable. 2019-12-28 23:04:49 +01:00
lfaydark fixes for the Druid epic 2019-09-22 23:29:32 +02:00
mischiefplane fix POM errors @ turnin quests 2023-07-30 21:50:40 +02:00
mistmoore fixes for the Shaman Epic quest 2020-01-05 19:56:17 +01:00
misty fixes for the Druid epic 2019-09-22 23:29:32 +02:00
najena magician epic fixes 2019-12-29 21:38:10 +01:00
necropolis final touches for Spirit of Garzicor. 2024-01-23 16:19:55 +01:00
nektulos remove player.pl 2020-03-13 08:52:23 +01:00
neriaka fixes for Shadowknight Epic quest 2020-01-05 14:12:39 +01:00
neriakb massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
neriakc Fixes for the Rogue Epic quest 2020-01-04 22:37:14 +01:00
northkarana add some npc randomization flavor for eastwastes & northkarana 2020-08-09 10:15:03 +02:00
nro added NRO -> Iceclad boat system 2020-05-03 12:59:01 +02:00
nurga last batch of Monk epic fixes, should be now 100% completable. 2019-12-28 23:04:49 +01:00
oasis boat system misc cleanup (nothing related to functionality) 2020-03-17 10:37:24 +01:00
oggok final batch of fixes for Enchanter's epic. 2019-12-29 16:54:35 +01:00
oot Final adjustments for Trilogy classic boats 2026-07-18 15:58:43 +02:00
overthere final fixes for Shaman Cudgel quests 2020-05-02 18:39:28 +02:00
paineel Garzicor stuff 2024-01-23 11:42:08 +01:00
paw massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
permafrost sleeper awakening flavor for some specific dragon npcs 2024-01-20 20:43:19 +01:00
qcat fixes for Shadowknight Epic quest 2020-01-05 14:12:39 +01:00
qey2hh1 fixes for the Shaman Epic quest 2020-01-05 19:56:17 +01:00
qeynos Update Boat subsystem since Trilogy support is live on master. Classic boat ! 2026-07-17 16:12:12 +02:00
qeynos2 Fluff quest dialogues & cleanup 2024-01-26 21:43:55 +01:00
qeytoqrg fluff fixes 2023-07-07 15:15:18 +02:00
qrg fluff fixes 2023-07-07 15:15:18 +02:00
rathemtn fluff dialogues / emotes 2023-07-07 13:39:47 +02:00
rivervale rivervale flavor 2023-05-07 16:44:50 +02:00
runnyeye runnyeye flavor texts 2023-05-07 16:38:08 +02:00
sebilis implemented EQEmu's master branch Heading fixes to quest scripts 2018-02-16 19:48:18 +01:00
sirens Initial commit 2017-03-28 18:50:24 +02:00
skyfire Talendor flavor text 2023-05-07 16:25:45 +02:00
skyshrine Garzicor stuff 2024-01-23 11:42:08 +01:00
sleeper remove debug test 2024-01-21 19:47:39 +01:00
soldunga Remove npc teleporters conflicting with trilogy_zone_points 2026-07-13 13:45:48 +02:00
soldungb Remove npc teleporters conflicting with trilogy_zone_points 2026-07-13 13:45:48 +02:00
soldungc massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
soltemple Wizard epic fixes 2020-02-11 10:55:45 +01:00
southkarana southkarana flavor texts 2023-05-07 14:36:05 +02:00
sro sro flavor texts 2023-05-07 14:14:11 +02:00
steamfont flavor text across zones 2023-05-07 14:01:50 +02:00
stonebrunt massive quest update after faction conversion script 2019-03-07 22:27:42 +01:00
swampofnohope flavor text across zones 2023-05-07 14:01:50 +02:00
templeveeshan deactivate flurry drake links to nameds in NTOV 2024-01-13 15:38:08 +01:00
thurgadina Thurgadin fluff 2024-01-26 22:16:26 +01:00
thurgadinb flavor text for icewell keep 2023-03-28 14:57:01 +02:00
timorous Final adjustments for Trilogy classic boats 2026-07-18 15:58:43 +02:00
tox flavor text for tox 2023-03-28 16:08:43 +02:00
trakanon cosmetic stuff 2020-03-15 22:26:13 +01:00
unrest bard epic fixes 2019-09-21 19:18:49 +02:00
veeshan sleeper awakening flavor for some specific dragon npcs 2024-01-20 20:43:19 +01:00
velketor emotes work 2022-12-30 16:38:24 +01:00
wakening sleeper awakening flavor for some specific dragon npcs 2024-01-20 20:43:19 +01:00
warrens Garzicor stuff 2024-01-23 11:42:08 +01:00
warslikswood emotes work 2022-12-30 16:38:24 +01:00
westwastes fix typo in westwastes/Klandicar.lua preventing the script from ever firing. 2024-08-04 13:55:19 +02:00
PlayerBots.html add PlayerBots.html 2023-05-09 16:49:43 +02:00
README.md Update README.md 2020-05-24 22:34:26 +02:00

This is the global readme file for the project: server code, quest scripts, database work.

Note: the server codebase is a direct fork from EQEmu, but, although there are slight customizations here and there, it is 100% compatible with the main branch and is regularly merged-in.

This quest repository is focused on classic - Kunark - Velious.

Right now (May 2020), the bulk of the quest & content work is being done on Kunark. Classic zones & quests are still updated whenever needed. Velious development is in its infancy.

Prefered language

Even though the bulk of the quest repository majorly uses PERL, the long-term goal of the project is to progressively phase it out in favor of LUA. The general rule of thumb is:

  • For any newly created script: use LUA
  • Any existing script being edited: depending on complexity (for example, if it's a simple Hail / response), port it to LUA immediately, and further develop it with LUA.
  • There are special cases of "if it ain't broken, don't fix it", namely the Boats system which relies heavily on PERL and the quest::crosszonesignalnpcbynpctypeid(npctype_id, data) method. Since I don't know if any LUA equivalent exists, and given the very fragile nature of the whole boat system....yeah, just leave that be.

Disclaimer

This project is in no way, shape or form, a direct, 1:1 reproduction of Classic EverQuest, and probably never will be.

List of repositories for this project

Current highlights include, but are not limited to

  • A major feature of this project is the development of "Player Bots". See below for a full explanation.

  • Obviously (this being the quest repo), a ton of quest work/fixes: rewards, drops, dialogues etc.

  • Every single class/race/deity newbie quests (and their associated recipes) have been fixed/implemented wherever needed.

  • Every single class/race/deity newbie Guild Note turn-in (and the associated dialogues / tunics) have been fixed/implemented wherever needed.

  • Restored a ton of fluff/classically accurate dialogues wherever applicable. This is an ongoing process.

  • Fully working boat system (mix of perl & a bit of C++ backend regarding static & empty zones). Firiona Vie's Maiden Voyage is useable and working (due to a small C++ 'hack')

Vanilla boat routes: Freeport -> OOT -> Butcherblock -> Freeport, Erudin (complete with the Erudin shuttles) -> Erud's Crossing -> Qeynos -> Erud's Crossing -> Erudin.

Kunark boat routes: Butcherblock -> Timorous Deep -> Firiona Vie (complete with Shuttle synchronization), Firiona Vie -> Timorous Deep (Elven Outpost with Shuttle synchronization), Overthere -> Timorous Deep (and back again), and the Barrel Barges: Oasis <> Timorous Deep island.

Velious boat routes: North Ro -> Iceclad desert island (pirate's skiff) and back again, Iceclad desert island -> Velious (Icebreaker)

  • A ton of faction work, which, while not 110% classically accurate, will be better than stock database values. This is an ongoing process.

  • A lot of items with newer graphics have been reverted to their classic counterparts. This is an ongoing process.

  • A lot of various NPCs features (faces, textures...) that were lost due to Luclin+ models are restored to their classic counterparts, which drastically reduces the "samey" look of NPCs across the world. A small C++ backend fix has been put in place to make plugin-driven NPC feature randomization persist for clients zoning. This in turn allows generic mobs like karana bandits, dervish cutthroats, mistmoore dark elves etc to have their faces completely randomized each time one of them is spawning. This is an ongoing process.

  • Classic Cazic-Thule (not the high level version)

  • Classic Paw (the gnoll version)

  • Pre-revamp Veeshan's Peak

  • Pre-revamp Skyshrine

  • Day/night cycle in Kithicor Forest. Watch out for those pesky undeads!

  • Day/night cycle in East Karana - boy, those undead gnolls DO smell bad!

  • Day/night cycle in Lake Rathetear - undead gnolls spawn in the camp @ South Karana's zone line. Beware!

  • Generally speaking: day/night cycles enabled wherever needed. A basic spawn_events framework (7 AM - 8 PM) is in place in every zone from classic to Velious. It's then completely trivial to add NPCs to this basic cycle (only a matter of setting the Condition at 1 or 2 on their spawn point and bam, takes 5 secs at most). This is an ongoing process!

  • Fixed tons of bad spawns/bad path grids/statically immobile NPCs/missing spawns etc etc. This is an ongoing process.

  • Classic skeletons (brown/white), classic vendors, gypsy models/textures.

  • Most classic vendors have had their stocks reflect the classic ones (armor sellers etc), instead of being empty. One or three may have slipped under the radar but for the most part this should be accurate.

  • Plane of Sky class hall quests are all in and functional (including the old way of spawning quest givers, with the various tomes etc), mechanically-speaking, the zone itself has been fixed (DT-ing mobs, mobs spawning others upon death, the whole Key system, Sirran the Lunatic, all the good stuff).

  • Visual Day/Night transition cycle has been restored for all the zones where it was broken due to Titanium issues (client-side + server-side fix)

Epic Quests

A massive effort has been made to make all epic quests completable. Some parts were tweaked, some were completely rewritten, some were expanded upon, missing dialogues have been added, missing drops as well, etc etc.

All class Epic Quests are 100% fully scripted & working:

  • Paladin
  • Bard
  • Cleric
  • Druid
  • Monk
  • Enchanter
  • Mage
  • Necromancer
  • Ranger
  • Rogue
  • Shadowknight
  • Shaman
  • Warrior
  • Wizard

Iksar Questlines

A massive effort has been made to make all Iksar questlines (Necromancer's Skullcap, Greenmist etc) completable. Some parts were tweaked, some were completely rewritten, some were expanded upon, missing dialogues have been added, missing drops as well, etc etc.

  • Necromancer's Skullcap
  • Crusader's Tests
  • Warrior's Pike
  • Shaman's Cudgel
  • Monk's Shackle

Velious major questlines

  • Coldain Ring quests, from #1 up to, and including the entire Ring #10 War event (Kael's "plate cycle" is also 100% scripted and working).
  • Coldain Shawl quests, from #1 up to, and including #7 (#8 is post-Velious and thus, out of scope).

Player Bots

  • What are those? They're basically a set of faux-players/NPCs spawning all around Norrath in order to simulate players. They've got the blue nameplates, have their own randomized set of race/class/names/equipment etc. They're "^invitable" by real players in order to help building a bot (as in, EQEmu Bots) group/raid force easily.

  • How? Player Bots are, at first, technically separate from the embedded EQEmu Bots. Behind the scenes, they're actually invisible NPCs with some customizations here and there, dynamically generated at spawn-time. These broadly include, but are not limited to:

  • Blue nameplate, like players.
  • They can leave corpses (non-lootable) upon death.
  • They'll roam most zones freely and engage other mobs, simulating players Exp'ing.
  • They can have guild tags for extra authenticity
  • They'll "buy" all sorts of items that were in demand back in the day (Deathfist belts, bone chips, animal pelts etc)
  • Some classes (ie: enchanters) will be able to assist players with specific tasks like item enchantment (platinum bars etc)
  • They come pre-equipped (that's the whole point) with gear, but in order to not throw things out of balance completely, gear quality is SolRo Temple quest gear at most.

Upon meeting a Player Bot, a real player might want to recruit him in his personal bot army. A new ^invite command has been implemented. This command will clone all the NPC's features (appearance, class, race and equipment) and auto-generate a true Bot (in the EQEmu sense of the word) with all said features. The real Bot will be spawned at the player's location, and the Player Bot NPC will depop.

Besides some C++ backend implementation (all tagged with [player bot] in their respective commit messages), a rather huge and messy LUA script ties the system together. This is the engine that generates a Player Bot upon spawning: name, race, class, spellsets if applicable, and equipment based on level.

  • Rationale

I developed this system due to various reasons:

. I play on my own box, solo, and seeing all those beautiful but systematically empty zones is a bit depressing. . EQEmu bots, while completely awesome, come with a major (in my opinion) drawback: they start-out completely naked. Gearing up one bot can be time-consuming. Equipping multiple bots to tackle on raid zones is pretty discouraging. I felt I needed another layer on top of the EQEmu bots, to bridge that gap.

I thought long about how I could deal with the two issues above, and came up with this idea of fake players roaming the world, equipped, and hunting mobs, ready to join you, the player. Don't get me wrong, I'm not implying I had the idea, in fact, it's a pretty recurring topic over @ EQEmu. But since no one seemed to come up with a satisfying (to my taste!) solution, there weren't a ton of options left on the table besides...well. Doing it.

That system has been "live" in my EQEmu fork for a couple years now and is pretty rock-solid in what it originally set out to do. Zones are teeming with life, content is getting consumed, and since Player Bots have a certain level of gear already, the EQEmu bot "viability" curve is pretty flattened -- bots are useful as soon as you ^invite them.

  • Drawbacks

. The main drawback of this system so far is, since Player Bots come pre-equipped, nothing prevents you from recruiting them and stripping them of all their gear for your personal gain. I'm solo on my server so that's not an issue but yeah, in order to properly "finalize" this system, I'll have to develop some kind of alternative EQEmu bot inventory (kinda like a "vault"), where all the Bot equipment would go when a player trades with them, instead of being returned to the player.

Gallery

Here are various screenshots showcasing the Player Bot system in action. None of those are real players ! They're computer-controlled. Guild names are based on true guilds I've encountered on EQLive and on EQEmu servers as an example, but you can of course add any name you'd like.

A couple of brave adventurers patiently looking for a group at the entrance of City of Mist

A couple of Player Bot adventurers looking for a group in City of Mist

Buffing session in East Commonlands tunnel. Price-check on Deathfist Slashed belts?

Buffing session in East Commonlands tunnel. Price-check on Deathfist Slashed belts?

A Wood-Elf, an Iksar and a Gnome walk into Cazic-Thule: a tragedy in three acts.

Cazic-Thule: a tragedy in three acts

Cazic-Thule: a tragedy in three acts

Cazic-Thule: a tragedy in three acts

As a fun bonus, /who also works. Also, Player Bots love to shout, sometimes.

As a fun bonus, /who also works

Todo list

  • Velious
  • Tradeskills
  • Further customizations to the Bots (PlayerBot system still in the design stages)