Skip to content

My quest scripts to use with my custom db + source

Notifications You must be signed in to change notification settings

proxeeus/quests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)